doc-detective 4.21.0 → 4.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/src/schemas/schemas.json +264 -264
- package/dist/common/src/types/generated/config_v3.d.ts +4 -4
- package/dist/common/src/types/generated/context_v3.d.ts +4 -4
- package/dist/common/src/types/generated/report_v3.d.ts +4 -4
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts +8 -8
- package/dist/common/src/types/generated/spec_v3.d.ts +4 -4
- package/dist/common/src/types/generated/startSurface_v3.d.ts +7 -7
- package/dist/common/src/types/generated/step_v3.d.ts +7 -7
- package/dist/common/src/types/generated/test_v3.d.ts +18 -18
- package/dist/core/tests/androidEmulator.d.ts +2 -12
- package/dist/core/tests/androidEmulator.d.ts.map +1 -1
- package/dist/core/tests/androidEmulator.js +5 -17
- package/dist/core/tests/androidEmulator.js.map +1 -1
- package/dist/core/tests/appSurface.d.ts +35 -1
- package/dist/core/tests/appSurface.d.ts.map +1 -1
- package/dist/core/tests/appSurface.js +162 -20
- package/dist/core/tests/appSurface.js.map +1 -1
- package/dist/core/tests/iosSimulator.d.ts +89 -0
- package/dist/core/tests/iosSimulator.d.ts.map +1 -0
- package/dist/core/tests/iosSimulator.js +453 -0
- package/dist/core/tests/iosSimulator.js.map +1 -0
- package/dist/core/tests/mobileDevice.d.ts +15 -0
- package/dist/core/tests/mobileDevice.d.ts.map +1 -0
- package/dist/core/tests/mobileDevice.js +24 -0
- package/dist/core/tests/mobileDevice.js.map +1 -0
- package/dist/core/tests/mobilePlatform.d.ts +1 -2
- package/dist/core/tests/mobilePlatform.d.ts.map +1 -1
- package/dist/core/tests/mobilePlatform.js +15 -14
- package/dist/core/tests/mobilePlatform.js.map +1 -1
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +152 -45
- package/dist/core/tests.js.map +1 -1
- package/dist/index.cjs +845 -331
- package/dist/runtime/heavyDeps.d.ts +1 -1
- package/dist/runtime/heavyDeps.d.ts.map +1 -1
- package/dist/runtime/heavyDeps.js +1 -0
- package/dist/runtime/heavyDeps.js.map +1 -1
- package/dist/runtime/installCommand.d.ts +1 -1
- package/dist/runtime/installCommand.d.ts.map +1 -1
- package/dist/runtime/installCommand.js +21 -4
- package/dist/runtime/installCommand.js.map +1 -1
- package/dist/runtime/iosInstaller.d.ts +23 -0
- package/dist/runtime/iosInstaller.d.ts.map +1 -0
- package/dist/runtime/iosInstaller.js +104 -0
- package/dist/runtime/iosInstaller.js.map +1 -0
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -2834,7 +2834,7 @@ var init_schemas = __esm({
|
|
|
2834
2834
|
]
|
|
2835
2835
|
},
|
|
2836
2836
|
device: {
|
|
2837
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
2837
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
2838
2838
|
examples: [
|
|
2839
2839
|
"pixel7",
|
|
2840
2840
|
{
|
|
@@ -2873,7 +2873,7 @@ var init_schemas = __esm({
|
|
|
2873
2873
|
transform: [
|
|
2874
2874
|
"trim"
|
|
2875
2875
|
],
|
|
2876
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
2876
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
2877
2877
|
},
|
|
2878
2878
|
deviceType: {
|
|
2879
2879
|
type: "string",
|
|
@@ -2886,11 +2886,11 @@ var init_schemas = __esm({
|
|
|
2886
2886
|
osVersion: {
|
|
2887
2887
|
type: "string",
|
|
2888
2888
|
minLength: 1,
|
|
2889
|
-
description: "Platform version used when creating a device; must match an installed
|
|
2889
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
2890
2890
|
},
|
|
2891
2891
|
headless: {
|
|
2892
2892
|
type: "boolean",
|
|
2893
|
-
description: "Run the Android emulator without a window.
|
|
2893
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
2894
2894
|
},
|
|
2895
2895
|
orientation: {
|
|
2896
2896
|
type: "string",
|
|
@@ -38839,7 +38839,7 @@ var init_schemas = __esm({
|
|
|
38839
38839
|
startSurface: {
|
|
38840
38840
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
38841
38841
|
title: "startSurface",
|
|
38842
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
38842
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
38843
38843
|
components: {
|
|
38844
38844
|
schemas: {
|
|
38845
38845
|
appDescriptor: {
|
|
@@ -38891,15 +38891,15 @@ var init_schemas = __esm({
|
|
|
38891
38891
|
install: {
|
|
38892
38892
|
type: "string",
|
|
38893
38893
|
minLength: 1,
|
|
38894
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
38894
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
38895
38895
|
},
|
|
38896
38896
|
activity: {
|
|
38897
38897
|
type: "string",
|
|
38898
38898
|
minLength: 1,
|
|
38899
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
38899
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
38900
38900
|
},
|
|
38901
38901
|
device: {
|
|
38902
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
38902
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
38903
38903
|
anyOf: [
|
|
38904
38904
|
{
|
|
38905
38905
|
type: "string",
|
|
@@ -38932,7 +38932,7 @@ var init_schemas = __esm({
|
|
|
38932
38932
|
transform: [
|
|
38933
38933
|
"trim"
|
|
38934
38934
|
],
|
|
38935
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
38935
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
38936
38936
|
},
|
|
38937
38937
|
deviceType: {
|
|
38938
38938
|
type: "string",
|
|
@@ -38945,11 +38945,11 @@ var init_schemas = __esm({
|
|
|
38945
38945
|
osVersion: {
|
|
38946
38946
|
type: "string",
|
|
38947
38947
|
minLength: 1,
|
|
38948
|
-
description: "Platform version used when creating a device; must match an installed
|
|
38948
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
38949
38949
|
},
|
|
38950
38950
|
headless: {
|
|
38951
38951
|
type: "boolean",
|
|
38952
|
-
description: "Run the Android emulator without a window.
|
|
38952
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
38953
38953
|
},
|
|
38954
38954
|
orientation: {
|
|
38955
38955
|
type: "string",
|
|
@@ -39121,7 +39121,7 @@ var init_schemas = __esm({
|
|
|
39121
39121
|
transform: [
|
|
39122
39122
|
"trim"
|
|
39123
39123
|
],
|
|
39124
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
39124
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
39125
39125
|
},
|
|
39126
39126
|
deviceType: {
|
|
39127
39127
|
type: "string",
|
|
@@ -39134,11 +39134,11 @@ var init_schemas = __esm({
|
|
|
39134
39134
|
osVersion: {
|
|
39135
39135
|
type: "string",
|
|
39136
39136
|
minLength: 1,
|
|
39137
|
-
description: "Platform version used when creating a device; must match an installed
|
|
39137
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
39138
39138
|
},
|
|
39139
39139
|
headless: {
|
|
39140
39140
|
type: "boolean",
|
|
39141
|
-
description: "Run the Android emulator without a window.
|
|
39141
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
39142
39142
|
},
|
|
39143
39143
|
orientation: {
|
|
39144
39144
|
type: "string",
|
|
@@ -39237,15 +39237,15 @@ var init_schemas = __esm({
|
|
|
39237
39237
|
install: {
|
|
39238
39238
|
type: "string",
|
|
39239
39239
|
minLength: 1,
|
|
39240
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
39240
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
39241
39241
|
},
|
|
39242
39242
|
activity: {
|
|
39243
39243
|
type: "string",
|
|
39244
39244
|
minLength: 1,
|
|
39245
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
39245
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
39246
39246
|
},
|
|
39247
39247
|
device: {
|
|
39248
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
39248
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
39249
39249
|
anyOf: [
|
|
39250
39250
|
{
|
|
39251
39251
|
type: "string",
|
|
@@ -39278,7 +39278,7 @@ var init_schemas = __esm({
|
|
|
39278
39278
|
transform: [
|
|
39279
39279
|
"trim"
|
|
39280
39280
|
],
|
|
39281
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
39281
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
39282
39282
|
},
|
|
39283
39283
|
deviceType: {
|
|
39284
39284
|
type: "string",
|
|
@@ -39291,11 +39291,11 @@ var init_schemas = __esm({
|
|
|
39291
39291
|
osVersion: {
|
|
39292
39292
|
type: "string",
|
|
39293
39293
|
minLength: 1,
|
|
39294
|
-
description: "Platform version used when creating a device; must match an installed
|
|
39294
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
39295
39295
|
},
|
|
39296
39296
|
headless: {
|
|
39297
39297
|
type: "boolean",
|
|
39298
|
-
description: "Run the Android emulator without a window.
|
|
39298
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
39299
39299
|
},
|
|
39300
39300
|
orientation: {
|
|
39301
39301
|
type: "string",
|
|
@@ -81030,7 +81030,7 @@ var init_schemas = __esm({
|
|
|
81030
81030
|
startSurface: {
|
|
81031
81031
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
81032
81032
|
title: "startSurface",
|
|
81033
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
81033
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
81034
81034
|
components: {
|
|
81035
81035
|
schemas: {
|
|
81036
81036
|
appDescriptor: {
|
|
@@ -81082,15 +81082,15 @@ var init_schemas = __esm({
|
|
|
81082
81082
|
install: {
|
|
81083
81083
|
type: "string",
|
|
81084
81084
|
minLength: 1,
|
|
81085
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
81085
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
81086
81086
|
},
|
|
81087
81087
|
activity: {
|
|
81088
81088
|
type: "string",
|
|
81089
81089
|
minLength: 1,
|
|
81090
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
81090
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
81091
81091
|
},
|
|
81092
81092
|
device: {
|
|
81093
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
81093
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
81094
81094
|
anyOf: [
|
|
81095
81095
|
{
|
|
81096
81096
|
type: "string",
|
|
@@ -81123,7 +81123,7 @@ var init_schemas = __esm({
|
|
|
81123
81123
|
transform: [
|
|
81124
81124
|
"trim"
|
|
81125
81125
|
],
|
|
81126
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
81126
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
81127
81127
|
},
|
|
81128
81128
|
deviceType: {
|
|
81129
81129
|
type: "string",
|
|
@@ -81136,11 +81136,11 @@ var init_schemas = __esm({
|
|
|
81136
81136
|
osVersion: {
|
|
81137
81137
|
type: "string",
|
|
81138
81138
|
minLength: 1,
|
|
81139
|
-
description: "Platform version used when creating a device; must match an installed
|
|
81139
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
81140
81140
|
},
|
|
81141
81141
|
headless: {
|
|
81142
81142
|
type: "boolean",
|
|
81143
|
-
description: "Run the Android emulator without a window.
|
|
81143
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
81144
81144
|
},
|
|
81145
81145
|
orientation: {
|
|
81146
81146
|
type: "string",
|
|
@@ -81312,7 +81312,7 @@ var init_schemas = __esm({
|
|
|
81312
81312
|
transform: [
|
|
81313
81313
|
"trim"
|
|
81314
81314
|
],
|
|
81315
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
81315
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
81316
81316
|
},
|
|
81317
81317
|
deviceType: {
|
|
81318
81318
|
type: "string",
|
|
@@ -81325,11 +81325,11 @@ var init_schemas = __esm({
|
|
|
81325
81325
|
osVersion: {
|
|
81326
81326
|
type: "string",
|
|
81327
81327
|
minLength: 1,
|
|
81328
|
-
description: "Platform version used when creating a device; must match an installed
|
|
81328
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
81329
81329
|
},
|
|
81330
81330
|
headless: {
|
|
81331
81331
|
type: "boolean",
|
|
81332
|
-
description: "Run the Android emulator without a window.
|
|
81332
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
81333
81333
|
},
|
|
81334
81334
|
orientation: {
|
|
81335
81335
|
type: "string",
|
|
@@ -81428,15 +81428,15 @@ var init_schemas = __esm({
|
|
|
81428
81428
|
install: {
|
|
81429
81429
|
type: "string",
|
|
81430
81430
|
minLength: 1,
|
|
81431
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
81431
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
81432
81432
|
},
|
|
81433
81433
|
activity: {
|
|
81434
81434
|
type: "string",
|
|
81435
81435
|
minLength: 1,
|
|
81436
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
81436
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
81437
81437
|
},
|
|
81438
81438
|
device: {
|
|
81439
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
81439
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
81440
81440
|
anyOf: [
|
|
81441
81441
|
{
|
|
81442
81442
|
type: "string",
|
|
@@ -81469,7 +81469,7 @@ var init_schemas = __esm({
|
|
|
81469
81469
|
transform: [
|
|
81470
81470
|
"trim"
|
|
81471
81471
|
],
|
|
81472
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
81472
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
81473
81473
|
},
|
|
81474
81474
|
deviceType: {
|
|
81475
81475
|
type: "string",
|
|
@@ -81482,11 +81482,11 @@ var init_schemas = __esm({
|
|
|
81482
81482
|
osVersion: {
|
|
81483
81483
|
type: "string",
|
|
81484
81484
|
minLength: 1,
|
|
81485
|
-
description: "Platform version used when creating a device; must match an installed
|
|
81485
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
81486
81486
|
},
|
|
81487
81487
|
headless: {
|
|
81488
81488
|
type: "boolean",
|
|
81489
|
-
description: "Run the Android emulator without a window.
|
|
81489
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
81490
81490
|
},
|
|
81491
81491
|
orientation: {
|
|
81492
81492
|
type: "string",
|
|
@@ -87405,7 +87405,7 @@ var init_schemas = __esm({
|
|
|
87405
87405
|
]
|
|
87406
87406
|
},
|
|
87407
87407
|
device: {
|
|
87408
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
87408
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
87409
87409
|
examples: [
|
|
87410
87410
|
"pixel7",
|
|
87411
87411
|
{
|
|
@@ -87444,7 +87444,7 @@ var init_schemas = __esm({
|
|
|
87444
87444
|
transform: [
|
|
87445
87445
|
"trim"
|
|
87446
87446
|
],
|
|
87447
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
87447
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
87448
87448
|
},
|
|
87449
87449
|
deviceType: {
|
|
87450
87450
|
type: "string",
|
|
@@ -87457,11 +87457,11 @@ var init_schemas = __esm({
|
|
|
87457
87457
|
osVersion: {
|
|
87458
87458
|
type: "string",
|
|
87459
87459
|
minLength: 1,
|
|
87460
|
-
description: "Platform version used when creating a device; must match an installed
|
|
87460
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
87461
87461
|
},
|
|
87462
87462
|
headless: {
|
|
87463
87463
|
type: "boolean",
|
|
87464
|
-
description: "Run the Android emulator without a window.
|
|
87464
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
87465
87465
|
},
|
|
87466
87466
|
orientation: {
|
|
87467
87467
|
type: "string",
|
|
@@ -100296,7 +100296,7 @@ var init_schemas = __esm({
|
|
|
100296
100296
|
]
|
|
100297
100297
|
},
|
|
100298
100298
|
device: {
|
|
100299
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
100299
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
100300
100300
|
examples: [
|
|
100301
100301
|
"pixel7",
|
|
100302
100302
|
{
|
|
@@ -100335,7 +100335,7 @@ var init_schemas = __esm({
|
|
|
100335
100335
|
transform: [
|
|
100336
100336
|
"trim"
|
|
100337
100337
|
],
|
|
100338
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
100338
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
100339
100339
|
},
|
|
100340
100340
|
deviceType: {
|
|
100341
100341
|
type: "string",
|
|
@@ -100348,11 +100348,11 @@ var init_schemas = __esm({
|
|
|
100348
100348
|
osVersion: {
|
|
100349
100349
|
type: "string",
|
|
100350
100350
|
minLength: 1,
|
|
100351
|
-
description: "Platform version used when creating a device; must match an installed
|
|
100351
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
100352
100352
|
},
|
|
100353
100353
|
headless: {
|
|
100354
100354
|
type: "boolean",
|
|
100355
|
-
description: "Run the Android emulator without a window.
|
|
100355
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
100356
100356
|
},
|
|
100357
100357
|
orientation: {
|
|
100358
100358
|
type: "string",
|
|
@@ -136301,7 +136301,7 @@ var init_schemas = __esm({
|
|
|
136301
136301
|
startSurface: {
|
|
136302
136302
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
136303
136303
|
title: "startSurface",
|
|
136304
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
136304
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
136305
136305
|
components: {
|
|
136306
136306
|
schemas: {
|
|
136307
136307
|
appDescriptor: {
|
|
@@ -136353,15 +136353,15 @@ var init_schemas = __esm({
|
|
|
136353
136353
|
install: {
|
|
136354
136354
|
type: "string",
|
|
136355
136355
|
minLength: 1,
|
|
136356
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
136356
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
136357
136357
|
},
|
|
136358
136358
|
activity: {
|
|
136359
136359
|
type: "string",
|
|
136360
136360
|
minLength: 1,
|
|
136361
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
136361
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
136362
136362
|
},
|
|
136363
136363
|
device: {
|
|
136364
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
136364
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
136365
136365
|
anyOf: [
|
|
136366
136366
|
{
|
|
136367
136367
|
type: "string",
|
|
@@ -136394,7 +136394,7 @@ var init_schemas = __esm({
|
|
|
136394
136394
|
transform: [
|
|
136395
136395
|
"trim"
|
|
136396
136396
|
],
|
|
136397
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
136397
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
136398
136398
|
},
|
|
136399
136399
|
deviceType: {
|
|
136400
136400
|
type: "string",
|
|
@@ -136407,11 +136407,11 @@ var init_schemas = __esm({
|
|
|
136407
136407
|
osVersion: {
|
|
136408
136408
|
type: "string",
|
|
136409
136409
|
minLength: 1,
|
|
136410
|
-
description: "Platform version used when creating a device; must match an installed
|
|
136410
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
136411
136411
|
},
|
|
136412
136412
|
headless: {
|
|
136413
136413
|
type: "boolean",
|
|
136414
|
-
description: "Run the Android emulator without a window.
|
|
136414
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
136415
136415
|
},
|
|
136416
136416
|
orientation: {
|
|
136417
136417
|
type: "string",
|
|
@@ -136583,7 +136583,7 @@ var init_schemas = __esm({
|
|
|
136583
136583
|
transform: [
|
|
136584
136584
|
"trim"
|
|
136585
136585
|
],
|
|
136586
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
136586
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
136587
136587
|
},
|
|
136588
136588
|
deviceType: {
|
|
136589
136589
|
type: "string",
|
|
@@ -136596,11 +136596,11 @@ var init_schemas = __esm({
|
|
|
136596
136596
|
osVersion: {
|
|
136597
136597
|
type: "string",
|
|
136598
136598
|
minLength: 1,
|
|
136599
|
-
description: "Platform version used when creating a device; must match an installed
|
|
136599
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
136600
136600
|
},
|
|
136601
136601
|
headless: {
|
|
136602
136602
|
type: "boolean",
|
|
136603
|
-
description: "Run the Android emulator without a window.
|
|
136603
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
136604
136604
|
},
|
|
136605
136605
|
orientation: {
|
|
136606
136606
|
type: "string",
|
|
@@ -136699,15 +136699,15 @@ var init_schemas = __esm({
|
|
|
136699
136699
|
install: {
|
|
136700
136700
|
type: "string",
|
|
136701
136701
|
minLength: 1,
|
|
136702
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
136702
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
136703
136703
|
},
|
|
136704
136704
|
activity: {
|
|
136705
136705
|
type: "string",
|
|
136706
136706
|
minLength: 1,
|
|
136707
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
136707
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
136708
136708
|
},
|
|
136709
136709
|
device: {
|
|
136710
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
136710
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
136711
136711
|
anyOf: [
|
|
136712
136712
|
{
|
|
136713
136713
|
type: "string",
|
|
@@ -136740,7 +136740,7 @@ var init_schemas = __esm({
|
|
|
136740
136740
|
transform: [
|
|
136741
136741
|
"trim"
|
|
136742
136742
|
],
|
|
136743
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
136743
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
136744
136744
|
},
|
|
136745
136745
|
deviceType: {
|
|
136746
136746
|
type: "string",
|
|
@@ -136753,11 +136753,11 @@ var init_schemas = __esm({
|
|
|
136753
136753
|
osVersion: {
|
|
136754
136754
|
type: "string",
|
|
136755
136755
|
minLength: 1,
|
|
136756
|
-
description: "Platform version used when creating a device; must match an installed
|
|
136756
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
136757
136757
|
},
|
|
136758
136758
|
headless: {
|
|
136759
136759
|
type: "boolean",
|
|
136760
|
-
description: "Run the Android emulator without a window.
|
|
136760
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
136761
136761
|
},
|
|
136762
136762
|
orientation: {
|
|
136763
136763
|
type: "string",
|
|
@@ -178492,7 +178492,7 @@ var init_schemas = __esm({
|
|
|
178492
178492
|
startSurface: {
|
|
178493
178493
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
178494
178494
|
title: "startSurface",
|
|
178495
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
178495
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
178496
178496
|
components: {
|
|
178497
178497
|
schemas: {
|
|
178498
178498
|
appDescriptor: {
|
|
@@ -178544,15 +178544,15 @@ var init_schemas = __esm({
|
|
|
178544
178544
|
install: {
|
|
178545
178545
|
type: "string",
|
|
178546
178546
|
minLength: 1,
|
|
178547
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
178547
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
178548
178548
|
},
|
|
178549
178549
|
activity: {
|
|
178550
178550
|
type: "string",
|
|
178551
178551
|
minLength: 1,
|
|
178552
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
178552
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
178553
178553
|
},
|
|
178554
178554
|
device: {
|
|
178555
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
178555
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
178556
178556
|
anyOf: [
|
|
178557
178557
|
{
|
|
178558
178558
|
type: "string",
|
|
@@ -178585,7 +178585,7 @@ var init_schemas = __esm({
|
|
|
178585
178585
|
transform: [
|
|
178586
178586
|
"trim"
|
|
178587
178587
|
],
|
|
178588
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
178588
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
178589
178589
|
},
|
|
178590
178590
|
deviceType: {
|
|
178591
178591
|
type: "string",
|
|
@@ -178598,11 +178598,11 @@ var init_schemas = __esm({
|
|
|
178598
178598
|
osVersion: {
|
|
178599
178599
|
type: "string",
|
|
178600
178600
|
minLength: 1,
|
|
178601
|
-
description: "Platform version used when creating a device; must match an installed
|
|
178601
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
178602
178602
|
},
|
|
178603
178603
|
headless: {
|
|
178604
178604
|
type: "boolean",
|
|
178605
|
-
description: "Run the Android emulator without a window.
|
|
178605
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
178606
178606
|
},
|
|
178607
178607
|
orientation: {
|
|
178608
178608
|
type: "string",
|
|
@@ -178774,7 +178774,7 @@ var init_schemas = __esm({
|
|
|
178774
178774
|
transform: [
|
|
178775
178775
|
"trim"
|
|
178776
178776
|
],
|
|
178777
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
178777
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
178778
178778
|
},
|
|
178779
178779
|
deviceType: {
|
|
178780
178780
|
type: "string",
|
|
@@ -178787,11 +178787,11 @@ var init_schemas = __esm({
|
|
|
178787
178787
|
osVersion: {
|
|
178788
178788
|
type: "string",
|
|
178789
178789
|
minLength: 1,
|
|
178790
|
-
description: "Platform version used when creating a device; must match an installed
|
|
178790
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
178791
178791
|
},
|
|
178792
178792
|
headless: {
|
|
178793
178793
|
type: "boolean",
|
|
178794
|
-
description: "Run the Android emulator without a window.
|
|
178794
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
178795
178795
|
},
|
|
178796
178796
|
orientation: {
|
|
178797
178797
|
type: "string",
|
|
@@ -178890,15 +178890,15 @@ var init_schemas = __esm({
|
|
|
178890
178890
|
install: {
|
|
178891
178891
|
type: "string",
|
|
178892
178892
|
minLength: 1,
|
|
178893
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
178893
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
178894
178894
|
},
|
|
178895
178895
|
activity: {
|
|
178896
178896
|
type: "string",
|
|
178897
178897
|
minLength: 1,
|
|
178898
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
178898
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
178899
178899
|
},
|
|
178900
178900
|
device: {
|
|
178901
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
178901
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
178902
178902
|
anyOf: [
|
|
178903
178903
|
{
|
|
178904
178904
|
type: "string",
|
|
@@ -178931,7 +178931,7 @@ var init_schemas = __esm({
|
|
|
178931
178931
|
transform: [
|
|
178932
178932
|
"trim"
|
|
178933
178933
|
],
|
|
178934
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
178934
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
178935
178935
|
},
|
|
178936
178936
|
deviceType: {
|
|
178937
178937
|
type: "string",
|
|
@@ -178944,11 +178944,11 @@ var init_schemas = __esm({
|
|
|
178944
178944
|
osVersion: {
|
|
178945
178945
|
type: "string",
|
|
178946
178946
|
minLength: 1,
|
|
178947
|
-
description: "Platform version used when creating a device; must match an installed
|
|
178947
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
178948
178948
|
},
|
|
178949
178949
|
headless: {
|
|
178950
178950
|
type: "boolean",
|
|
178951
|
-
description: "Run the Android emulator without a window.
|
|
178951
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
178952
178952
|
},
|
|
178953
178953
|
orientation: {
|
|
178954
178954
|
type: "string",
|
|
@@ -184929,7 +184929,7 @@ var init_schemas = __esm({
|
|
|
184929
184929
|
]
|
|
184930
184930
|
},
|
|
184931
184931
|
device: {
|
|
184932
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
184932
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
184933
184933
|
examples: [
|
|
184934
184934
|
"pixel7",
|
|
184935
184935
|
{
|
|
@@ -184968,7 +184968,7 @@ var init_schemas = __esm({
|
|
|
184968
184968
|
transform: [
|
|
184969
184969
|
"trim"
|
|
184970
184970
|
],
|
|
184971
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
184971
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
184972
184972
|
},
|
|
184973
184973
|
deviceType: {
|
|
184974
184974
|
type: "string",
|
|
@@ -184981,11 +184981,11 @@ var init_schemas = __esm({
|
|
|
184981
184981
|
osVersion: {
|
|
184982
184982
|
type: "string",
|
|
184983
184983
|
minLength: 1,
|
|
184984
|
-
description: "Platform version used when creating a device; must match an installed
|
|
184984
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
184985
184985
|
},
|
|
184986
184986
|
headless: {
|
|
184987
184987
|
type: "boolean",
|
|
184988
|
-
description: "Run the Android emulator without a window.
|
|
184988
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
184989
184989
|
},
|
|
184990
184990
|
orientation: {
|
|
184991
184991
|
type: "string",
|
|
@@ -185771,7 +185771,7 @@ var init_schemas = __esm({
|
|
|
185771
185771
|
]
|
|
185772
185772
|
},
|
|
185773
185773
|
device: {
|
|
185774
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
185774
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
185775
185775
|
examples: [
|
|
185776
185776
|
"pixel7",
|
|
185777
185777
|
{
|
|
@@ -185810,7 +185810,7 @@ var init_schemas = __esm({
|
|
|
185810
185810
|
transform: [
|
|
185811
185811
|
"trim"
|
|
185812
185812
|
],
|
|
185813
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
185813
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
185814
185814
|
},
|
|
185815
185815
|
deviceType: {
|
|
185816
185816
|
type: "string",
|
|
@@ -185823,11 +185823,11 @@ var init_schemas = __esm({
|
|
|
185823
185823
|
osVersion: {
|
|
185824
185824
|
type: "string",
|
|
185825
185825
|
minLength: 1,
|
|
185826
|
-
description: "Platform version used when creating a device; must match an installed
|
|
185826
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
185827
185827
|
},
|
|
185828
185828
|
headless: {
|
|
185829
185829
|
type: "boolean",
|
|
185830
|
-
description: "Run the Android emulator without a window.
|
|
185830
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
185831
185831
|
},
|
|
185832
185832
|
orientation: {
|
|
185833
185833
|
type: "string",
|
|
@@ -222416,7 +222416,7 @@ var init_schemas = __esm({
|
|
|
222416
222416
|
startSurface: {
|
|
222417
222417
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
222418
222418
|
title: "startSurface",
|
|
222419
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
222419
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
222420
222420
|
components: {
|
|
222421
222421
|
schemas: {
|
|
222422
222422
|
appDescriptor: {
|
|
@@ -222468,15 +222468,15 @@ var init_schemas = __esm({
|
|
|
222468
222468
|
install: {
|
|
222469
222469
|
type: "string",
|
|
222470
222470
|
minLength: 1,
|
|
222471
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
222471
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
222472
222472
|
},
|
|
222473
222473
|
activity: {
|
|
222474
222474
|
type: "string",
|
|
222475
222475
|
minLength: 1,
|
|
222476
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
222476
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
222477
222477
|
},
|
|
222478
222478
|
device: {
|
|
222479
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
222479
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
222480
222480
|
anyOf: [
|
|
222481
222481
|
{
|
|
222482
222482
|
type: "string",
|
|
@@ -222509,7 +222509,7 @@ var init_schemas = __esm({
|
|
|
222509
222509
|
transform: [
|
|
222510
222510
|
"trim"
|
|
222511
222511
|
],
|
|
222512
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
222512
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
222513
222513
|
},
|
|
222514
222514
|
deviceType: {
|
|
222515
222515
|
type: "string",
|
|
@@ -222522,11 +222522,11 @@ var init_schemas = __esm({
|
|
|
222522
222522
|
osVersion: {
|
|
222523
222523
|
type: "string",
|
|
222524
222524
|
minLength: 1,
|
|
222525
|
-
description: "Platform version used when creating a device; must match an installed
|
|
222525
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
222526
222526
|
},
|
|
222527
222527
|
headless: {
|
|
222528
222528
|
type: "boolean",
|
|
222529
|
-
description: "Run the Android emulator without a window.
|
|
222529
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
222530
222530
|
},
|
|
222531
222531
|
orientation: {
|
|
222532
222532
|
type: "string",
|
|
@@ -222698,7 +222698,7 @@ var init_schemas = __esm({
|
|
|
222698
222698
|
transform: [
|
|
222699
222699
|
"trim"
|
|
222700
222700
|
],
|
|
222701
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
222701
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
222702
222702
|
},
|
|
222703
222703
|
deviceType: {
|
|
222704
222704
|
type: "string",
|
|
@@ -222711,11 +222711,11 @@ var init_schemas = __esm({
|
|
|
222711
222711
|
osVersion: {
|
|
222712
222712
|
type: "string",
|
|
222713
222713
|
minLength: 1,
|
|
222714
|
-
description: "Platform version used when creating a device; must match an installed
|
|
222714
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
222715
222715
|
},
|
|
222716
222716
|
headless: {
|
|
222717
222717
|
type: "boolean",
|
|
222718
|
-
description: "Run the Android emulator without a window.
|
|
222718
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
222719
222719
|
},
|
|
222720
222720
|
orientation: {
|
|
222721
222721
|
type: "string",
|
|
@@ -222814,15 +222814,15 @@ var init_schemas = __esm({
|
|
|
222814
222814
|
install: {
|
|
222815
222815
|
type: "string",
|
|
222816
222816
|
minLength: 1,
|
|
222817
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
222817
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
222818
222818
|
},
|
|
222819
222819
|
activity: {
|
|
222820
222820
|
type: "string",
|
|
222821
222821
|
minLength: 1,
|
|
222822
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
222822
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
222823
222823
|
},
|
|
222824
222824
|
device: {
|
|
222825
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
222825
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
222826
222826
|
anyOf: [
|
|
222827
222827
|
{
|
|
222828
222828
|
type: "string",
|
|
@@ -222855,7 +222855,7 @@ var init_schemas = __esm({
|
|
|
222855
222855
|
transform: [
|
|
222856
222856
|
"trim"
|
|
222857
222857
|
],
|
|
222858
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
222858
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
222859
222859
|
},
|
|
222860
222860
|
deviceType: {
|
|
222861
222861
|
type: "string",
|
|
@@ -222868,11 +222868,11 @@ var init_schemas = __esm({
|
|
|
222868
222868
|
osVersion: {
|
|
222869
222869
|
type: "string",
|
|
222870
222870
|
minLength: 1,
|
|
222871
|
-
description: "Platform version used when creating a device; must match an installed
|
|
222871
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
222872
222872
|
},
|
|
222873
222873
|
headless: {
|
|
222874
222874
|
type: "boolean",
|
|
222875
|
-
description: "Run the Android emulator without a window.
|
|
222875
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
222876
222876
|
},
|
|
222877
222877
|
orientation: {
|
|
222878
222878
|
type: "string",
|
|
@@ -263906,7 +263906,7 @@ var init_schemas = __esm({
|
|
|
263906
263906
|
startSurface: {
|
|
263907
263907
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
263908
263908
|
title: "startSurface",
|
|
263909
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
263909
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
263910
263910
|
components: {
|
|
263911
263911
|
schemas: {
|
|
263912
263912
|
appDescriptor: {
|
|
@@ -263958,15 +263958,15 @@ var init_schemas = __esm({
|
|
|
263958
263958
|
install: {
|
|
263959
263959
|
type: "string",
|
|
263960
263960
|
minLength: 1,
|
|
263961
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
263961
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
263962
263962
|
},
|
|
263963
263963
|
activity: {
|
|
263964
263964
|
type: "string",
|
|
263965
263965
|
minLength: 1,
|
|
263966
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
263966
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
263967
263967
|
},
|
|
263968
263968
|
device: {
|
|
263969
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
263969
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
263970
263970
|
anyOf: [
|
|
263971
263971
|
{
|
|
263972
263972
|
type: "string",
|
|
@@ -263999,7 +263999,7 @@ var init_schemas = __esm({
|
|
|
263999
263999
|
transform: [
|
|
264000
264000
|
"trim"
|
|
264001
264001
|
],
|
|
264002
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
264002
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
264003
264003
|
},
|
|
264004
264004
|
deviceType: {
|
|
264005
264005
|
type: "string",
|
|
@@ -264012,11 +264012,11 @@ var init_schemas = __esm({
|
|
|
264012
264012
|
osVersion: {
|
|
264013
264013
|
type: "string",
|
|
264014
264014
|
minLength: 1,
|
|
264015
|
-
description: "Platform version used when creating a device; must match an installed
|
|
264015
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
264016
264016
|
},
|
|
264017
264017
|
headless: {
|
|
264018
264018
|
type: "boolean",
|
|
264019
|
-
description: "Run the Android emulator without a window.
|
|
264019
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
264020
264020
|
},
|
|
264021
264021
|
orientation: {
|
|
264022
264022
|
type: "string",
|
|
@@ -264188,7 +264188,7 @@ var init_schemas = __esm({
|
|
|
264188
264188
|
transform: [
|
|
264189
264189
|
"trim"
|
|
264190
264190
|
],
|
|
264191
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
264191
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
264192
264192
|
},
|
|
264193
264193
|
deviceType: {
|
|
264194
264194
|
type: "string",
|
|
@@ -264201,11 +264201,11 @@ var init_schemas = __esm({
|
|
|
264201
264201
|
osVersion: {
|
|
264202
264202
|
type: "string",
|
|
264203
264203
|
minLength: 1,
|
|
264204
|
-
description: "Platform version used when creating a device; must match an installed
|
|
264204
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
264205
264205
|
},
|
|
264206
264206
|
headless: {
|
|
264207
264207
|
type: "boolean",
|
|
264208
|
-
description: "Run the Android emulator without a window.
|
|
264208
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
264209
264209
|
},
|
|
264210
264210
|
orientation: {
|
|
264211
264211
|
type: "string",
|
|
@@ -264304,15 +264304,15 @@ var init_schemas = __esm({
|
|
|
264304
264304
|
install: {
|
|
264305
264305
|
type: "string",
|
|
264306
264306
|
minLength: 1,
|
|
264307
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
264307
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
264308
264308
|
},
|
|
264309
264309
|
activity: {
|
|
264310
264310
|
type: "string",
|
|
264311
264311
|
minLength: 1,
|
|
264312
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
264312
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
264313
264313
|
},
|
|
264314
264314
|
device: {
|
|
264315
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
264315
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
264316
264316
|
anyOf: [
|
|
264317
264317
|
{
|
|
264318
264318
|
type: "string",
|
|
@@ -264345,7 +264345,7 @@ var init_schemas = __esm({
|
|
|
264345
264345
|
transform: [
|
|
264346
264346
|
"trim"
|
|
264347
264347
|
],
|
|
264348
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
264348
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
264349
264349
|
},
|
|
264350
264350
|
deviceType: {
|
|
264351
264351
|
type: "string",
|
|
@@ -264358,11 +264358,11 @@ var init_schemas = __esm({
|
|
|
264358
264358
|
osVersion: {
|
|
264359
264359
|
type: "string",
|
|
264360
264360
|
minLength: 1,
|
|
264361
|
-
description: "Platform version used when creating a device; must match an installed
|
|
264361
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
264362
264362
|
},
|
|
264363
264363
|
headless: {
|
|
264364
264364
|
type: "boolean",
|
|
264365
|
-
description: "Run the Android emulator without a window.
|
|
264365
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
264366
264366
|
},
|
|
264367
264367
|
orientation: {
|
|
264368
264368
|
type: "string",
|
|
@@ -270830,7 +270830,7 @@ var init_schemas = __esm({
|
|
|
270830
270830
|
]
|
|
270831
270831
|
},
|
|
270832
270832
|
device: {
|
|
270833
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
270833
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
270834
270834
|
examples: [
|
|
270835
270835
|
"pixel7",
|
|
270836
270836
|
{
|
|
@@ -270869,7 +270869,7 @@ var init_schemas = __esm({
|
|
|
270869
270869
|
transform: [
|
|
270870
270870
|
"trim"
|
|
270871
270871
|
],
|
|
270872
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
270872
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
270873
270873
|
},
|
|
270874
270874
|
deviceType: {
|
|
270875
270875
|
type: "string",
|
|
@@ -270882,11 +270882,11 @@ var init_schemas = __esm({
|
|
|
270882
270882
|
osVersion: {
|
|
270883
270883
|
type: "string",
|
|
270884
270884
|
minLength: 1,
|
|
270885
|
-
description: "Platform version used when creating a device; must match an installed
|
|
270885
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
270886
270886
|
},
|
|
270887
270887
|
headless: {
|
|
270888
270888
|
type: "boolean",
|
|
270889
|
-
description: "Run the Android emulator without a window.
|
|
270889
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
270890
270890
|
},
|
|
270891
270891
|
orientation: {
|
|
270892
270892
|
type: "string",
|
|
@@ -271672,7 +271672,7 @@ var init_schemas = __esm({
|
|
|
271672
271672
|
]
|
|
271673
271673
|
},
|
|
271674
271674
|
device: {
|
|
271675
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
271675
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
271676
271676
|
examples: [
|
|
271677
271677
|
"pixel7",
|
|
271678
271678
|
{
|
|
@@ -271711,7 +271711,7 @@ var init_schemas = __esm({
|
|
|
271711
271711
|
transform: [
|
|
271712
271712
|
"trim"
|
|
271713
271713
|
],
|
|
271714
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
271714
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
271715
271715
|
},
|
|
271716
271716
|
deviceType: {
|
|
271717
271717
|
type: "string",
|
|
@@ -271724,11 +271724,11 @@ var init_schemas = __esm({
|
|
|
271724
271724
|
osVersion: {
|
|
271725
271725
|
type: "string",
|
|
271726
271726
|
minLength: 1,
|
|
271727
|
-
description: "Platform version used when creating a device; must match an installed
|
|
271727
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
271728
271728
|
},
|
|
271729
271729
|
headless: {
|
|
271730
271730
|
type: "boolean",
|
|
271731
|
-
description: "Run the Android emulator without a window.
|
|
271731
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
271732
271732
|
},
|
|
271733
271733
|
orientation: {
|
|
271734
271734
|
type: "string",
|
|
@@ -308317,7 +308317,7 @@ var init_schemas = __esm({
|
|
|
308317
308317
|
startSurface: {
|
|
308318
308318
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
308319
308319
|
title: "startSurface",
|
|
308320
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
308320
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
308321
308321
|
components: {
|
|
308322
308322
|
schemas: {
|
|
308323
308323
|
appDescriptor: {
|
|
@@ -308369,15 +308369,15 @@ var init_schemas = __esm({
|
|
|
308369
308369
|
install: {
|
|
308370
308370
|
type: "string",
|
|
308371
308371
|
minLength: 1,
|
|
308372
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
308372
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
308373
308373
|
},
|
|
308374
308374
|
activity: {
|
|
308375
308375
|
type: "string",
|
|
308376
308376
|
minLength: 1,
|
|
308377
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
308377
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
308378
308378
|
},
|
|
308379
308379
|
device: {
|
|
308380
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
308380
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
308381
308381
|
anyOf: [
|
|
308382
308382
|
{
|
|
308383
308383
|
type: "string",
|
|
@@ -308410,7 +308410,7 @@ var init_schemas = __esm({
|
|
|
308410
308410
|
transform: [
|
|
308411
308411
|
"trim"
|
|
308412
308412
|
],
|
|
308413
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
308413
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
308414
308414
|
},
|
|
308415
308415
|
deviceType: {
|
|
308416
308416
|
type: "string",
|
|
@@ -308423,11 +308423,11 @@ var init_schemas = __esm({
|
|
|
308423
308423
|
osVersion: {
|
|
308424
308424
|
type: "string",
|
|
308425
308425
|
minLength: 1,
|
|
308426
|
-
description: "Platform version used when creating a device; must match an installed
|
|
308426
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
308427
308427
|
},
|
|
308428
308428
|
headless: {
|
|
308429
308429
|
type: "boolean",
|
|
308430
|
-
description: "Run the Android emulator without a window.
|
|
308430
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
308431
308431
|
},
|
|
308432
308432
|
orientation: {
|
|
308433
308433
|
type: "string",
|
|
@@ -308599,7 +308599,7 @@ var init_schemas = __esm({
|
|
|
308599
308599
|
transform: [
|
|
308600
308600
|
"trim"
|
|
308601
308601
|
],
|
|
308602
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
308602
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
308603
308603
|
},
|
|
308604
308604
|
deviceType: {
|
|
308605
308605
|
type: "string",
|
|
@@ -308612,11 +308612,11 @@ var init_schemas = __esm({
|
|
|
308612
308612
|
osVersion: {
|
|
308613
308613
|
type: "string",
|
|
308614
308614
|
minLength: 1,
|
|
308615
|
-
description: "Platform version used when creating a device; must match an installed
|
|
308615
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
308616
308616
|
},
|
|
308617
308617
|
headless: {
|
|
308618
308618
|
type: "boolean",
|
|
308619
|
-
description: "Run the Android emulator without a window.
|
|
308619
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
308620
308620
|
},
|
|
308621
308621
|
orientation: {
|
|
308622
308622
|
type: "string",
|
|
@@ -308715,15 +308715,15 @@ var init_schemas = __esm({
|
|
|
308715
308715
|
install: {
|
|
308716
308716
|
type: "string",
|
|
308717
308717
|
minLength: 1,
|
|
308718
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
308718
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
308719
308719
|
},
|
|
308720
308720
|
activity: {
|
|
308721
308721
|
type: "string",
|
|
308722
308722
|
minLength: 1,
|
|
308723
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
308723
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
308724
308724
|
},
|
|
308725
308725
|
device: {
|
|
308726
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
308726
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
308727
308727
|
anyOf: [
|
|
308728
308728
|
{
|
|
308729
308729
|
type: "string",
|
|
@@ -308756,7 +308756,7 @@ var init_schemas = __esm({
|
|
|
308756
308756
|
transform: [
|
|
308757
308757
|
"trim"
|
|
308758
308758
|
],
|
|
308759
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
308759
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
308760
308760
|
},
|
|
308761
308761
|
deviceType: {
|
|
308762
308762
|
type: "string",
|
|
@@ -308769,11 +308769,11 @@ var init_schemas = __esm({
|
|
|
308769
308769
|
osVersion: {
|
|
308770
308770
|
type: "string",
|
|
308771
308771
|
minLength: 1,
|
|
308772
|
-
description: "Platform version used when creating a device; must match an installed
|
|
308772
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
308773
308773
|
},
|
|
308774
308774
|
headless: {
|
|
308775
308775
|
type: "boolean",
|
|
308776
|
-
description: "Run the Android emulator without a window.
|
|
308776
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
308777
308777
|
},
|
|
308778
308778
|
orientation: {
|
|
308779
308779
|
type: "string",
|
|
@@ -349807,7 +349807,7 @@ var init_schemas = __esm({
|
|
|
349807
349807
|
startSurface: {
|
|
349808
349808
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
349809
349809
|
title: "startSurface",
|
|
349810
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
349810
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
349811
349811
|
components: {
|
|
349812
349812
|
schemas: {
|
|
349813
349813
|
appDescriptor: {
|
|
@@ -349859,15 +349859,15 @@ var init_schemas = __esm({
|
|
|
349859
349859
|
install: {
|
|
349860
349860
|
type: "string",
|
|
349861
349861
|
minLength: 1,
|
|
349862
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
349862
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
349863
349863
|
},
|
|
349864
349864
|
activity: {
|
|
349865
349865
|
type: "string",
|
|
349866
349866
|
minLength: 1,
|
|
349867
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
349867
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
349868
349868
|
},
|
|
349869
349869
|
device: {
|
|
349870
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
349870
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
349871
349871
|
anyOf: [
|
|
349872
349872
|
{
|
|
349873
349873
|
type: "string",
|
|
@@ -349900,7 +349900,7 @@ var init_schemas = __esm({
|
|
|
349900
349900
|
transform: [
|
|
349901
349901
|
"trim"
|
|
349902
349902
|
],
|
|
349903
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
349903
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
349904
349904
|
},
|
|
349905
349905
|
deviceType: {
|
|
349906
349906
|
type: "string",
|
|
@@ -349913,11 +349913,11 @@ var init_schemas = __esm({
|
|
|
349913
349913
|
osVersion: {
|
|
349914
349914
|
type: "string",
|
|
349915
349915
|
minLength: 1,
|
|
349916
|
-
description: "Platform version used when creating a device; must match an installed
|
|
349916
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
349917
349917
|
},
|
|
349918
349918
|
headless: {
|
|
349919
349919
|
type: "boolean",
|
|
349920
|
-
description: "Run the Android emulator without a window.
|
|
349920
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
349921
349921
|
},
|
|
349922
349922
|
orientation: {
|
|
349923
349923
|
type: "string",
|
|
@@ -350089,7 +350089,7 @@ var init_schemas = __esm({
|
|
|
350089
350089
|
transform: [
|
|
350090
350090
|
"trim"
|
|
350091
350091
|
],
|
|
350092
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
350092
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
350093
350093
|
},
|
|
350094
350094
|
deviceType: {
|
|
350095
350095
|
type: "string",
|
|
@@ -350102,11 +350102,11 @@ var init_schemas = __esm({
|
|
|
350102
350102
|
osVersion: {
|
|
350103
350103
|
type: "string",
|
|
350104
350104
|
minLength: 1,
|
|
350105
|
-
description: "Platform version used when creating a device; must match an installed
|
|
350105
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
350106
350106
|
},
|
|
350107
350107
|
headless: {
|
|
350108
350108
|
type: "boolean",
|
|
350109
|
-
description: "Run the Android emulator without a window.
|
|
350109
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
350110
350110
|
},
|
|
350111
350111
|
orientation: {
|
|
350112
350112
|
type: "string",
|
|
@@ -350205,15 +350205,15 @@ var init_schemas = __esm({
|
|
|
350205
350205
|
install: {
|
|
350206
350206
|
type: "string",
|
|
350207
350207
|
minLength: 1,
|
|
350208
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
350208
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
350209
350209
|
},
|
|
350210
350210
|
activity: {
|
|
350211
350211
|
type: "string",
|
|
350212
350212
|
minLength: 1,
|
|
350213
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
350213
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
350214
350214
|
},
|
|
350215
350215
|
device: {
|
|
350216
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
350216
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
350217
350217
|
anyOf: [
|
|
350218
350218
|
{
|
|
350219
350219
|
type: "string",
|
|
@@ -350246,7 +350246,7 @@ var init_schemas = __esm({
|
|
|
350246
350246
|
transform: [
|
|
350247
350247
|
"trim"
|
|
350248
350248
|
],
|
|
350249
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
350249
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
350250
350250
|
},
|
|
350251
350251
|
deviceType: {
|
|
350252
350252
|
type: "string",
|
|
@@ -350259,11 +350259,11 @@ var init_schemas = __esm({
|
|
|
350259
350259
|
osVersion: {
|
|
350260
350260
|
type: "string",
|
|
350261
350261
|
minLength: 1,
|
|
350262
|
-
description: "Platform version used when creating a device; must match an installed
|
|
350262
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
350263
350263
|
},
|
|
350264
350264
|
headless: {
|
|
350265
350265
|
type: "boolean",
|
|
350266
|
-
description: "Run the Android emulator without a window.
|
|
350266
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
350267
350267
|
},
|
|
350268
350268
|
orientation: {
|
|
350269
350269
|
type: "string",
|
|
@@ -359944,7 +359944,7 @@ var init_schemas = __esm({
|
|
|
359944
359944
|
]
|
|
359945
359945
|
},
|
|
359946
359946
|
device: {
|
|
359947
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
359947
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
359948
359948
|
examples: [
|
|
359949
359949
|
"pixel7",
|
|
359950
359950
|
{
|
|
@@ -359983,7 +359983,7 @@ var init_schemas = __esm({
|
|
|
359983
359983
|
transform: [
|
|
359984
359984
|
"trim"
|
|
359985
359985
|
],
|
|
359986
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
359986
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
359987
359987
|
},
|
|
359988
359988
|
deviceType: {
|
|
359989
359989
|
type: "string",
|
|
@@ -359996,11 +359996,11 @@ var init_schemas = __esm({
|
|
|
359996
359996
|
osVersion: {
|
|
359997
359997
|
type: "string",
|
|
359998
359998
|
minLength: 1,
|
|
359999
|
-
description: "Platform version used when creating a device; must match an installed
|
|
359999
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
360000
360000
|
},
|
|
360001
360001
|
headless: {
|
|
360002
360002
|
type: "boolean",
|
|
360003
|
-
description: "Run the Android emulator without a window.
|
|
360003
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
360004
360004
|
},
|
|
360005
360005
|
orientation: {
|
|
360006
360006
|
type: "string",
|
|
@@ -360786,7 +360786,7 @@ var init_schemas = __esm({
|
|
|
360786
360786
|
]
|
|
360787
360787
|
},
|
|
360788
360788
|
device: {
|
|
360789
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
360789
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
360790
360790
|
examples: [
|
|
360791
360791
|
"pixel7",
|
|
360792
360792
|
{
|
|
@@ -360825,7 +360825,7 @@ var init_schemas = __esm({
|
|
|
360825
360825
|
transform: [
|
|
360826
360826
|
"trim"
|
|
360827
360827
|
],
|
|
360828
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
360828
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
360829
360829
|
},
|
|
360830
360830
|
deviceType: {
|
|
360831
360831
|
type: "string",
|
|
@@ -360838,11 +360838,11 @@ var init_schemas = __esm({
|
|
|
360838
360838
|
osVersion: {
|
|
360839
360839
|
type: "string",
|
|
360840
360840
|
minLength: 1,
|
|
360841
|
-
description: "Platform version used when creating a device; must match an installed
|
|
360841
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
360842
360842
|
},
|
|
360843
360843
|
headless: {
|
|
360844
360844
|
type: "boolean",
|
|
360845
|
-
description: "Run the Android emulator without a window.
|
|
360845
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
360846
360846
|
},
|
|
360847
360847
|
orientation: {
|
|
360848
360848
|
type: "string",
|
|
@@ -397431,7 +397431,7 @@ var init_schemas = __esm({
|
|
|
397431
397431
|
startSurface: {
|
|
397432
397432
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
397433
397433
|
title: "startSurface",
|
|
397434
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
397434
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
397435
397435
|
components: {
|
|
397436
397436
|
schemas: {
|
|
397437
397437
|
appDescriptor: {
|
|
@@ -397483,15 +397483,15 @@ var init_schemas = __esm({
|
|
|
397483
397483
|
install: {
|
|
397484
397484
|
type: "string",
|
|
397485
397485
|
minLength: 1,
|
|
397486
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
397486
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
397487
397487
|
},
|
|
397488
397488
|
activity: {
|
|
397489
397489
|
type: "string",
|
|
397490
397490
|
minLength: 1,
|
|
397491
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
397491
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
397492
397492
|
},
|
|
397493
397493
|
device: {
|
|
397494
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
397494
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
397495
397495
|
anyOf: [
|
|
397496
397496
|
{
|
|
397497
397497
|
type: "string",
|
|
@@ -397524,7 +397524,7 @@ var init_schemas = __esm({
|
|
|
397524
397524
|
transform: [
|
|
397525
397525
|
"trim"
|
|
397526
397526
|
],
|
|
397527
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
397527
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
397528
397528
|
},
|
|
397529
397529
|
deviceType: {
|
|
397530
397530
|
type: "string",
|
|
@@ -397537,11 +397537,11 @@ var init_schemas = __esm({
|
|
|
397537
397537
|
osVersion: {
|
|
397538
397538
|
type: "string",
|
|
397539
397539
|
minLength: 1,
|
|
397540
|
-
description: "Platform version used when creating a device; must match an installed
|
|
397540
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
397541
397541
|
},
|
|
397542
397542
|
headless: {
|
|
397543
397543
|
type: "boolean",
|
|
397544
|
-
description: "Run the Android emulator without a window.
|
|
397544
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
397545
397545
|
},
|
|
397546
397546
|
orientation: {
|
|
397547
397547
|
type: "string",
|
|
@@ -397713,7 +397713,7 @@ var init_schemas = __esm({
|
|
|
397713
397713
|
transform: [
|
|
397714
397714
|
"trim"
|
|
397715
397715
|
],
|
|
397716
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
397716
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
397717
397717
|
},
|
|
397718
397718
|
deviceType: {
|
|
397719
397719
|
type: "string",
|
|
@@ -397726,11 +397726,11 @@ var init_schemas = __esm({
|
|
|
397726
397726
|
osVersion: {
|
|
397727
397727
|
type: "string",
|
|
397728
397728
|
minLength: 1,
|
|
397729
|
-
description: "Platform version used when creating a device; must match an installed
|
|
397729
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
397730
397730
|
},
|
|
397731
397731
|
headless: {
|
|
397732
397732
|
type: "boolean",
|
|
397733
|
-
description: "Run the Android emulator without a window.
|
|
397733
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
397734
397734
|
},
|
|
397735
397735
|
orientation: {
|
|
397736
397736
|
type: "string",
|
|
@@ -397829,15 +397829,15 @@ var init_schemas = __esm({
|
|
|
397829
397829
|
install: {
|
|
397830
397830
|
type: "string",
|
|
397831
397831
|
minLength: 1,
|
|
397832
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
397832
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
397833
397833
|
},
|
|
397834
397834
|
activity: {
|
|
397835
397835
|
type: "string",
|
|
397836
397836
|
minLength: 1,
|
|
397837
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
397837
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
397838
397838
|
},
|
|
397839
397839
|
device: {
|
|
397840
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
397840
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
397841
397841
|
anyOf: [
|
|
397842
397842
|
{
|
|
397843
397843
|
type: "string",
|
|
@@ -397870,7 +397870,7 @@ var init_schemas = __esm({
|
|
|
397870
397870
|
transform: [
|
|
397871
397871
|
"trim"
|
|
397872
397872
|
],
|
|
397873
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
397873
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
397874
397874
|
},
|
|
397875
397875
|
deviceType: {
|
|
397876
397876
|
type: "string",
|
|
@@ -397883,11 +397883,11 @@ var init_schemas = __esm({
|
|
|
397883
397883
|
osVersion: {
|
|
397884
397884
|
type: "string",
|
|
397885
397885
|
minLength: 1,
|
|
397886
|
-
description: "Platform version used when creating a device; must match an installed
|
|
397886
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
397887
397887
|
},
|
|
397888
397888
|
headless: {
|
|
397889
397889
|
type: "boolean",
|
|
397890
|
-
description: "Run the Android emulator without a window.
|
|
397890
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
397891
397891
|
},
|
|
397892
397892
|
orientation: {
|
|
397893
397893
|
type: "string",
|
|
@@ -438921,7 +438921,7 @@ var init_schemas = __esm({
|
|
|
438921
438921
|
startSurface: {
|
|
438922
438922
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
438923
438923
|
title: "startSurface",
|
|
438924
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
438924
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
438925
438925
|
components: {
|
|
438926
438926
|
schemas: {
|
|
438927
438927
|
appDescriptor: {
|
|
@@ -438973,15 +438973,15 @@ var init_schemas = __esm({
|
|
|
438973
438973
|
install: {
|
|
438974
438974
|
type: "string",
|
|
438975
438975
|
minLength: 1,
|
|
438976
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
438976
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
438977
438977
|
},
|
|
438978
438978
|
activity: {
|
|
438979
438979
|
type: "string",
|
|
438980
438980
|
minLength: 1,
|
|
438981
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
438981
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
438982
438982
|
},
|
|
438983
438983
|
device: {
|
|
438984
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
438984
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
438985
438985
|
anyOf: [
|
|
438986
438986
|
{
|
|
438987
438987
|
type: "string",
|
|
@@ -439014,7 +439014,7 @@ var init_schemas = __esm({
|
|
|
439014
439014
|
transform: [
|
|
439015
439015
|
"trim"
|
|
439016
439016
|
],
|
|
439017
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
439017
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
439018
439018
|
},
|
|
439019
439019
|
deviceType: {
|
|
439020
439020
|
type: "string",
|
|
@@ -439027,11 +439027,11 @@ var init_schemas = __esm({
|
|
|
439027
439027
|
osVersion: {
|
|
439028
439028
|
type: "string",
|
|
439029
439029
|
minLength: 1,
|
|
439030
|
-
description: "Platform version used when creating a device; must match an installed
|
|
439030
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
439031
439031
|
},
|
|
439032
439032
|
headless: {
|
|
439033
439033
|
type: "boolean",
|
|
439034
|
-
description: "Run the Android emulator without a window.
|
|
439034
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
439035
439035
|
},
|
|
439036
439036
|
orientation: {
|
|
439037
439037
|
type: "string",
|
|
@@ -439203,7 +439203,7 @@ var init_schemas = __esm({
|
|
|
439203
439203
|
transform: [
|
|
439204
439204
|
"trim"
|
|
439205
439205
|
],
|
|
439206
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
439206
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
439207
439207
|
},
|
|
439208
439208
|
deviceType: {
|
|
439209
439209
|
type: "string",
|
|
@@ -439216,11 +439216,11 @@ var init_schemas = __esm({
|
|
|
439216
439216
|
osVersion: {
|
|
439217
439217
|
type: "string",
|
|
439218
439218
|
minLength: 1,
|
|
439219
|
-
description: "Platform version used when creating a device; must match an installed
|
|
439219
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
439220
439220
|
},
|
|
439221
439221
|
headless: {
|
|
439222
439222
|
type: "boolean",
|
|
439223
|
-
description: "Run the Android emulator without a window.
|
|
439223
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
439224
439224
|
},
|
|
439225
439225
|
orientation: {
|
|
439226
439226
|
type: "string",
|
|
@@ -439319,15 +439319,15 @@ var init_schemas = __esm({
|
|
|
439319
439319
|
install: {
|
|
439320
439320
|
type: "string",
|
|
439321
439321
|
minLength: 1,
|
|
439322
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
439322
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
439323
439323
|
},
|
|
439324
439324
|
activity: {
|
|
439325
439325
|
type: "string",
|
|
439326
439326
|
minLength: 1,
|
|
439327
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
439327
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
439328
439328
|
},
|
|
439329
439329
|
device: {
|
|
439330
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
439330
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
439331
439331
|
anyOf: [
|
|
439332
439332
|
{
|
|
439333
439333
|
type: "string",
|
|
@@ -439360,7 +439360,7 @@ var init_schemas = __esm({
|
|
|
439360
439360
|
transform: [
|
|
439361
439361
|
"trim"
|
|
439362
439362
|
],
|
|
439363
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
439363
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
439364
439364
|
},
|
|
439365
439365
|
deviceType: {
|
|
439366
439366
|
type: "string",
|
|
@@ -439373,11 +439373,11 @@ var init_schemas = __esm({
|
|
|
439373
439373
|
osVersion: {
|
|
439374
439374
|
type: "string",
|
|
439375
439375
|
minLength: 1,
|
|
439376
|
-
description: "Platform version used when creating a device; must match an installed
|
|
439376
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
439377
439377
|
},
|
|
439378
439378
|
headless: {
|
|
439379
439379
|
type: "boolean",
|
|
439380
|
-
description: "Run the Android emulator without a window.
|
|
439380
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
439381
439381
|
},
|
|
439382
439382
|
orientation: {
|
|
439383
439383
|
type: "string",
|
|
@@ -445217,7 +445217,7 @@ var init_schemas = __esm({
|
|
|
445217
445217
|
startSurface_v3: {
|
|
445218
445218
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
445219
445219
|
title: "startSurface",
|
|
445220
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
445220
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
445221
445221
|
components: {
|
|
445222
445222
|
schemas: {
|
|
445223
445223
|
appDescriptor: {
|
|
@@ -445269,15 +445269,15 @@ var init_schemas = __esm({
|
|
|
445269
445269
|
install: {
|
|
445270
445270
|
type: "string",
|
|
445271
445271
|
minLength: 1,
|
|
445272
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
445272
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
445273
445273
|
},
|
|
445274
445274
|
activity: {
|
|
445275
445275
|
type: "string",
|
|
445276
445276
|
minLength: 1,
|
|
445277
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
445277
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
445278
445278
|
},
|
|
445279
445279
|
device: {
|
|
445280
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
445280
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
445281
445281
|
anyOf: [
|
|
445282
445282
|
{
|
|
445283
445283
|
type: "string",
|
|
@@ -445310,7 +445310,7 @@ var init_schemas = __esm({
|
|
|
445310
445310
|
transform: [
|
|
445311
445311
|
"trim"
|
|
445312
445312
|
],
|
|
445313
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
445313
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
445314
445314
|
},
|
|
445315
445315
|
deviceType: {
|
|
445316
445316
|
type: "string",
|
|
@@ -445323,11 +445323,11 @@ var init_schemas = __esm({
|
|
|
445323
445323
|
osVersion: {
|
|
445324
445324
|
type: "string",
|
|
445325
445325
|
minLength: 1,
|
|
445326
|
-
description: "Platform version used when creating a device; must match an installed
|
|
445326
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
445327
445327
|
},
|
|
445328
445328
|
headless: {
|
|
445329
445329
|
type: "boolean",
|
|
445330
|
-
description: "Run the Android emulator without a window.
|
|
445330
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
445331
445331
|
},
|
|
445332
445332
|
orientation: {
|
|
445333
445333
|
type: "string",
|
|
@@ -445499,7 +445499,7 @@ var init_schemas = __esm({
|
|
|
445499
445499
|
transform: [
|
|
445500
445500
|
"trim"
|
|
445501
445501
|
],
|
|
445502
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
445502
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
445503
445503
|
},
|
|
445504
445504
|
deviceType: {
|
|
445505
445505
|
type: "string",
|
|
@@ -445512,11 +445512,11 @@ var init_schemas = __esm({
|
|
|
445512
445512
|
osVersion: {
|
|
445513
445513
|
type: "string",
|
|
445514
445514
|
minLength: 1,
|
|
445515
|
-
description: "Platform version used when creating a device; must match an installed
|
|
445515
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
445516
445516
|
},
|
|
445517
445517
|
headless: {
|
|
445518
445518
|
type: "boolean",
|
|
445519
|
-
description: "Run the Android emulator without a window.
|
|
445519
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
445520
445520
|
},
|
|
445521
445521
|
orientation: {
|
|
445522
445522
|
type: "string",
|
|
@@ -445615,15 +445615,15 @@ var init_schemas = __esm({
|
|
|
445615
445615
|
install: {
|
|
445616
445616
|
type: "string",
|
|
445617
445617
|
minLength: 1,
|
|
445618
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
445618
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
445619
445619
|
},
|
|
445620
445620
|
activity: {
|
|
445621
445621
|
type: "string",
|
|
445622
445622
|
minLength: 1,
|
|
445623
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
445623
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
445624
445624
|
},
|
|
445625
445625
|
device: {
|
|
445626
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
445626
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
445627
445627
|
anyOf: [
|
|
445628
445628
|
{
|
|
445629
445629
|
type: "string",
|
|
@@ -445656,7 +445656,7 @@ var init_schemas = __esm({
|
|
|
445656
445656
|
transform: [
|
|
445657
445657
|
"trim"
|
|
445658
445658
|
],
|
|
445659
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
445659
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
445660
445660
|
},
|
|
445661
445661
|
deviceType: {
|
|
445662
445662
|
type: "string",
|
|
@@ -445669,11 +445669,11 @@ var init_schemas = __esm({
|
|
|
445669
445669
|
osVersion: {
|
|
445670
445670
|
type: "string",
|
|
445671
445671
|
minLength: 1,
|
|
445672
|
-
description: "Platform version used when creating a device; must match an installed
|
|
445672
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
445673
445673
|
},
|
|
445674
445674
|
headless: {
|
|
445675
445675
|
type: "boolean",
|
|
445676
|
-
description: "Run the Android emulator without a window.
|
|
445676
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
445677
445677
|
},
|
|
445678
445678
|
orientation: {
|
|
445679
445679
|
type: "string",
|
|
@@ -481297,7 +481297,7 @@ var init_schemas = __esm({
|
|
|
481297
481297
|
startSurface: {
|
|
481298
481298
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
481299
481299
|
title: "startSurface",
|
|
481300
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
481300
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
481301
481301
|
components: {
|
|
481302
481302
|
schemas: {
|
|
481303
481303
|
appDescriptor: {
|
|
@@ -481349,15 +481349,15 @@ var init_schemas = __esm({
|
|
|
481349
481349
|
install: {
|
|
481350
481350
|
type: "string",
|
|
481351
481351
|
minLength: 1,
|
|
481352
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
481352
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
481353
481353
|
},
|
|
481354
481354
|
activity: {
|
|
481355
481355
|
type: "string",
|
|
481356
481356
|
minLength: 1,
|
|
481357
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
481357
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
481358
481358
|
},
|
|
481359
481359
|
device: {
|
|
481360
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
481360
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
481361
481361
|
anyOf: [
|
|
481362
481362
|
{
|
|
481363
481363
|
type: "string",
|
|
@@ -481390,7 +481390,7 @@ var init_schemas = __esm({
|
|
|
481390
481390
|
transform: [
|
|
481391
481391
|
"trim"
|
|
481392
481392
|
],
|
|
481393
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
481393
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
481394
481394
|
},
|
|
481395
481395
|
deviceType: {
|
|
481396
481396
|
type: "string",
|
|
@@ -481403,11 +481403,11 @@ var init_schemas = __esm({
|
|
|
481403
481403
|
osVersion: {
|
|
481404
481404
|
type: "string",
|
|
481405
481405
|
minLength: 1,
|
|
481406
|
-
description: "Platform version used when creating a device; must match an installed
|
|
481406
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
481407
481407
|
},
|
|
481408
481408
|
headless: {
|
|
481409
481409
|
type: "boolean",
|
|
481410
|
-
description: "Run the Android emulator without a window.
|
|
481410
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
481411
481411
|
},
|
|
481412
481412
|
orientation: {
|
|
481413
481413
|
type: "string",
|
|
@@ -481579,7 +481579,7 @@ var init_schemas = __esm({
|
|
|
481579
481579
|
transform: [
|
|
481580
481580
|
"trim"
|
|
481581
481581
|
],
|
|
481582
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
481582
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
481583
481583
|
},
|
|
481584
481584
|
deviceType: {
|
|
481585
481585
|
type: "string",
|
|
@@ -481592,11 +481592,11 @@ var init_schemas = __esm({
|
|
|
481592
481592
|
osVersion: {
|
|
481593
481593
|
type: "string",
|
|
481594
481594
|
minLength: 1,
|
|
481595
|
-
description: "Platform version used when creating a device; must match an installed
|
|
481595
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
481596
481596
|
},
|
|
481597
481597
|
headless: {
|
|
481598
481598
|
type: "boolean",
|
|
481599
|
-
description: "Run the Android emulator without a window.
|
|
481599
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
481600
481600
|
},
|
|
481601
481601
|
orientation: {
|
|
481602
481602
|
type: "string",
|
|
@@ -481695,15 +481695,15 @@ var init_schemas = __esm({
|
|
|
481695
481695
|
install: {
|
|
481696
481696
|
type: "string",
|
|
481697
481697
|
minLength: 1,
|
|
481698
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
481698
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
481699
481699
|
},
|
|
481700
481700
|
activity: {
|
|
481701
481701
|
type: "string",
|
|
481702
481702
|
minLength: 1,
|
|
481703
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
481703
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
481704
481704
|
},
|
|
481705
481705
|
device: {
|
|
481706
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
481706
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
481707
481707
|
anyOf: [
|
|
481708
481708
|
{
|
|
481709
481709
|
type: "string",
|
|
@@ -481736,7 +481736,7 @@ var init_schemas = __esm({
|
|
|
481736
481736
|
transform: [
|
|
481737
481737
|
"trim"
|
|
481738
481738
|
],
|
|
481739
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
481739
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
481740
481740
|
},
|
|
481741
481741
|
deviceType: {
|
|
481742
481742
|
type: "string",
|
|
@@ -481749,11 +481749,11 @@ var init_schemas = __esm({
|
|
|
481749
481749
|
osVersion: {
|
|
481750
481750
|
type: "string",
|
|
481751
481751
|
minLength: 1,
|
|
481752
|
-
description: "Platform version used when creating a device; must match an installed
|
|
481752
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
481753
481753
|
},
|
|
481754
481754
|
headless: {
|
|
481755
481755
|
type: "boolean",
|
|
481756
|
-
description: "Run the Android emulator without a window.
|
|
481756
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
481757
481757
|
},
|
|
481758
481758
|
orientation: {
|
|
481759
481759
|
type: "string",
|
|
@@ -488091,7 +488091,7 @@ var init_schemas = __esm({
|
|
|
488091
488091
|
]
|
|
488092
488092
|
},
|
|
488093
488093
|
device: {
|
|
488094
|
-
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android`). Same shape as `startSurface.device`.",
|
|
488094
|
+
description: "Default device for a mobile (`android`/`ios`) context. A string references a device by name; an object refines it. The `platform` is implied by the context, so it is not required here. When the named device doesn't already exist, Doc Detective creates it with defaults (see `deviceType`/`osVersion`), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`). Same shape as `startSurface.device`.",
|
|
488095
488095
|
examples: [
|
|
488096
488096
|
"pixel7",
|
|
488097
488097
|
{
|
|
@@ -488130,7 +488130,7 @@ var init_schemas = __esm({
|
|
|
488130
488130
|
transform: [
|
|
488131
488131
|
"trim"
|
|
488132
488132
|
],
|
|
488133
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
488133
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
488134
488134
|
},
|
|
488135
488135
|
deviceType: {
|
|
488136
488136
|
type: "string",
|
|
@@ -488143,11 +488143,11 @@ var init_schemas = __esm({
|
|
|
488143
488143
|
osVersion: {
|
|
488144
488144
|
type: "string",
|
|
488145
488145
|
minLength: 1,
|
|
488146
|
-
description: "Platform version used when creating a device; must match an installed
|
|
488146
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
488147
488147
|
},
|
|
488148
488148
|
headless: {
|
|
488149
488149
|
type: "boolean",
|
|
488150
|
-
description: "Run the Android emulator without a window.
|
|
488150
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
488151
488151
|
},
|
|
488152
488152
|
orientation: {
|
|
488153
488153
|
type: "string",
|
|
@@ -524736,7 +524736,7 @@ var init_schemas = __esm({
|
|
|
524736
524736
|
startSurface: {
|
|
524737
524737
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
524738
524738
|
title: "startSurface",
|
|
524739
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
524739
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
524740
524740
|
components: {
|
|
524741
524741
|
schemas: {
|
|
524742
524742
|
appDescriptor: {
|
|
@@ -524788,15 +524788,15 @@ var init_schemas = __esm({
|
|
|
524788
524788
|
install: {
|
|
524789
524789
|
type: "string",
|
|
524790
524790
|
minLength: 1,
|
|
524791
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
524791
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
524792
524792
|
},
|
|
524793
524793
|
activity: {
|
|
524794
524794
|
type: "string",
|
|
524795
524795
|
minLength: 1,
|
|
524796
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
524796
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
524797
524797
|
},
|
|
524798
524798
|
device: {
|
|
524799
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
524799
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
524800
524800
|
anyOf: [
|
|
524801
524801
|
{
|
|
524802
524802
|
type: "string",
|
|
@@ -524829,7 +524829,7 @@ var init_schemas = __esm({
|
|
|
524829
524829
|
transform: [
|
|
524830
524830
|
"trim"
|
|
524831
524831
|
],
|
|
524832
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
524832
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
524833
524833
|
},
|
|
524834
524834
|
deviceType: {
|
|
524835
524835
|
type: "string",
|
|
@@ -524842,11 +524842,11 @@ var init_schemas = __esm({
|
|
|
524842
524842
|
osVersion: {
|
|
524843
524843
|
type: "string",
|
|
524844
524844
|
minLength: 1,
|
|
524845
|
-
description: "Platform version used when creating a device; must match an installed
|
|
524845
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
524846
524846
|
},
|
|
524847
524847
|
headless: {
|
|
524848
524848
|
type: "boolean",
|
|
524849
|
-
description: "Run the Android emulator without a window.
|
|
524849
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
524850
524850
|
},
|
|
524851
524851
|
orientation: {
|
|
524852
524852
|
type: "string",
|
|
@@ -525018,7 +525018,7 @@ var init_schemas = __esm({
|
|
|
525018
525018
|
transform: [
|
|
525019
525019
|
"trim"
|
|
525020
525020
|
],
|
|
525021
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
525021
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
525022
525022
|
},
|
|
525023
525023
|
deviceType: {
|
|
525024
525024
|
type: "string",
|
|
@@ -525031,11 +525031,11 @@ var init_schemas = __esm({
|
|
|
525031
525031
|
osVersion: {
|
|
525032
525032
|
type: "string",
|
|
525033
525033
|
minLength: 1,
|
|
525034
|
-
description: "Platform version used when creating a device; must match an installed
|
|
525034
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
525035
525035
|
},
|
|
525036
525036
|
headless: {
|
|
525037
525037
|
type: "boolean",
|
|
525038
|
-
description: "Run the Android emulator without a window.
|
|
525038
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
525039
525039
|
},
|
|
525040
525040
|
orientation: {
|
|
525041
525041
|
type: "string",
|
|
@@ -525134,15 +525134,15 @@ var init_schemas = __esm({
|
|
|
525134
525134
|
install: {
|
|
525135
525135
|
type: "string",
|
|
525136
525136
|
minLength: 1,
|
|
525137
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
525137
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
525138
525138
|
},
|
|
525139
525139
|
activity: {
|
|
525140
525140
|
type: "string",
|
|
525141
525141
|
minLength: 1,
|
|
525142
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
525142
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
525143
525143
|
},
|
|
525144
525144
|
device: {
|
|
525145
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
525145
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
525146
525146
|
anyOf: [
|
|
525147
525147
|
{
|
|
525148
525148
|
type: "string",
|
|
@@ -525175,7 +525175,7 @@ var init_schemas = __esm({
|
|
|
525175
525175
|
transform: [
|
|
525176
525176
|
"trim"
|
|
525177
525177
|
],
|
|
525178
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
525178
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
525179
525179
|
},
|
|
525180
525180
|
deviceType: {
|
|
525181
525181
|
type: "string",
|
|
@@ -525188,11 +525188,11 @@ var init_schemas = __esm({
|
|
|
525188
525188
|
osVersion: {
|
|
525189
525189
|
type: "string",
|
|
525190
525190
|
minLength: 1,
|
|
525191
|
-
description: "Platform version used when creating a device; must match an installed
|
|
525191
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
525192
525192
|
},
|
|
525193
525193
|
headless: {
|
|
525194
525194
|
type: "boolean",
|
|
525195
|
-
description: "Run the Android emulator without a window.
|
|
525195
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
525196
525196
|
},
|
|
525197
525197
|
orientation: {
|
|
525198
525198
|
type: "string",
|
|
@@ -566226,7 +566226,7 @@ var init_schemas = __esm({
|
|
|
566226
566226
|
startSurface: {
|
|
566227
566227
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
566228
566228
|
title: "startSurface",
|
|
566229
|
-
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator
|
|
566229
|
+
description: "Open (provision) a surface and register it by name so later steps can target it with `surface`. Phases A1\u2013A2 ship the desktop native app branch: launch a Windows or macOS application by executable path, `.app` path, bundle ID, or UWP AppUserModelID. macOS additionally requires the Accessibility permission for the process that runs Doc Detective (System Settings \u2192 Privacy & Security \u2192 Accessibility); without it the context lands as SKIPPED with a walkthrough. Phase A3 adds Android apps on a managed emulator, and phase A4 adds iOS app surfaces on macOS via XCUITest/simctl. Browser/process branches and the parallel array form arrive with multi-surface Phase 6. See docs/design/native-app-surfaces.md.",
|
|
566230
566230
|
components: {
|
|
566231
566231
|
schemas: {
|
|
566232
566232
|
appDescriptor: {
|
|
@@ -566278,15 +566278,15 @@ var init_schemas = __esm({
|
|
|
566278
566278
|
install: {
|
|
566279
566279
|
type: "string",
|
|
566280
566280
|
minLength: 1,
|
|
566281
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
566281
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
566282
566282
|
},
|
|
566283
566283
|
activity: {
|
|
566284
566284
|
type: "string",
|
|
566285
566285
|
minLength: 1,
|
|
566286
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
566286
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
566287
566287
|
},
|
|
566288
566288
|
device: {
|
|
566289
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
566289
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
566290
566290
|
anyOf: [
|
|
566291
566291
|
{
|
|
566292
566292
|
type: "string",
|
|
@@ -566319,7 +566319,7 @@ var init_schemas = __esm({
|
|
|
566319
566319
|
transform: [
|
|
566320
566320
|
"trim"
|
|
566321
566321
|
],
|
|
566322
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
566322
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
566323
566323
|
},
|
|
566324
566324
|
deviceType: {
|
|
566325
566325
|
type: "string",
|
|
@@ -566332,11 +566332,11 @@ var init_schemas = __esm({
|
|
|
566332
566332
|
osVersion: {
|
|
566333
566333
|
type: "string",
|
|
566334
566334
|
minLength: 1,
|
|
566335
|
-
description: "Platform version used when creating a device; must match an installed
|
|
566335
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
566336
566336
|
},
|
|
566337
566337
|
headless: {
|
|
566338
566338
|
type: "boolean",
|
|
566339
|
-
description: "Run the Android emulator without a window.
|
|
566339
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
566340
566340
|
},
|
|
566341
566341
|
orientation: {
|
|
566342
566342
|
type: "string",
|
|
@@ -566508,7 +566508,7 @@ var init_schemas = __esm({
|
|
|
566508
566508
|
transform: [
|
|
566509
566509
|
"trim"
|
|
566510
566510
|
],
|
|
566511
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
566511
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
566512
566512
|
},
|
|
566513
566513
|
deviceType: {
|
|
566514
566514
|
type: "string",
|
|
@@ -566521,11 +566521,11 @@ var init_schemas = __esm({
|
|
|
566521
566521
|
osVersion: {
|
|
566522
566522
|
type: "string",
|
|
566523
566523
|
minLength: 1,
|
|
566524
|
-
description: "Platform version used when creating a device; must match an installed
|
|
566524
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
566525
566525
|
},
|
|
566526
566526
|
headless: {
|
|
566527
566527
|
type: "boolean",
|
|
566528
|
-
description: "Run the Android emulator without a window.
|
|
566528
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
566529
566529
|
},
|
|
566530
566530
|
orientation: {
|
|
566531
566531
|
type: "string",
|
|
@@ -566624,15 +566624,15 @@ var init_schemas = __esm({
|
|
|
566624
566624
|
install: {
|
|
566625
566625
|
type: "string",
|
|
566626
566626
|
minLength: 1,
|
|
566627
|
-
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch.
|
|
566627
|
+
description: "Path to an installable artifact (`.apk`/`.app`/`.ipa`) to install on the device before launch. Supported on Android and iOS app surfaces."
|
|
566628
566628
|
},
|
|
566629
566629
|
activity: {
|
|
566630
566630
|
type: "string",
|
|
566631
566631
|
minLength: 1,
|
|
566632
|
-
description: "Android main activity override (defaults to the package's launcher activity).
|
|
566632
|
+
description: "Android main activity override (defaults to the package's launcher activity). Android-only."
|
|
566633
566633
|
},
|
|
566634
566634
|
device: {
|
|
566635
|
-
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it.
|
|
566635
|
+
description: "Device the app runs on. Omit for a host desktop app, or (in a mobile context) to use the context's default device. A string references a device by name; an object refines it. Supported on Android and iOS mobile targets.",
|
|
566636
566636
|
anyOf: [
|
|
566637
566637
|
{
|
|
566638
566638
|
type: "string",
|
|
@@ -566665,7 +566665,7 @@ var init_schemas = __esm({
|
|
|
566665
566665
|
transform: [
|
|
566666
566666
|
"trim"
|
|
566667
566667
|
],
|
|
566668
|
-
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain
|
|
566668
|
+
description: "Device name and registry identity \u2014 the same name resolves to the same device. Reference form: names an existing AVD (Android) / simulator (iOS) to reuse. If no device by this name exists, Doc Detective creates one under this name using `deviceType`/`osVersion` (or their defaults), provided the toolchain is installed (`doc-detective install android` or `doc-detective install ios`)."
|
|
566669
566669
|
},
|
|
566670
566670
|
deviceType: {
|
|
566671
566671
|
type: "string",
|
|
@@ -566678,11 +566678,11 @@ var init_schemas = __esm({
|
|
|
566678
566678
|
osVersion: {
|
|
566679
566679
|
type: "string",
|
|
566680
566680
|
minLength: 1,
|
|
566681
|
-
description: "Platform version used when creating a device; must match an installed
|
|
566681
|
+
description: "Platform version used when creating a device; must match an installed image/runtime for the target platform (install more with `doc-detective install android` or `doc-detective install ios`). Ignored when `name` already matches an existing device. Default: the newest installed version."
|
|
566682
566682
|
},
|
|
566683
566683
|
headless: {
|
|
566684
566684
|
type: "boolean",
|
|
566685
|
-
description: "Run the Android emulator without a window.
|
|
566685
|
+
description: "Run the Android emulator without a window. No-op on iOS (simulators boot without the Simulator UI on CI) and ignored where not applicable."
|
|
566686
566686
|
},
|
|
566687
566687
|
orientation: {
|
|
566688
566688
|
type: "string",
|
|
@@ -592845,6 +592845,20 @@ async function extractZip(zipPath, destDir) {
|
|
|
592845
592845
|
throw new Error(`couldn't extract ${zipPath}: no working zip extractor found (${lastError?.message ?? lastError})`);
|
|
592846
592846
|
}
|
|
592847
592847
|
|
|
592848
|
+
// dist/core/tests/mobileDevice.js
|
|
592849
|
+
function normalizeDeviceDescriptor({ contextDevice, stepDevice, platform }) {
|
|
592850
|
+
const asObj = (d) => typeof d === "string" ? { name: d.trim() } : d ? { ...d } : {};
|
|
592851
|
+
const ctx = asObj(contextDevice);
|
|
592852
|
+
const step = asObj(stepDevice);
|
|
592853
|
+
const merged = { ...ctx, ...step };
|
|
592854
|
+
for (const k of Object.keys(step)) {
|
|
592855
|
+
if (step[k] === void 0 && ctx[k] !== void 0)
|
|
592856
|
+
merged[k] = ctx[k];
|
|
592857
|
+
}
|
|
592858
|
+
merged.platform = step.platform ?? ctx.platform ?? platform;
|
|
592859
|
+
return merged;
|
|
592860
|
+
}
|
|
592861
|
+
|
|
592848
592862
|
// dist/core/tests/androidEmulator.js
|
|
592849
592863
|
function parseAdbDevices(text) {
|
|
592850
592864
|
const out = [];
|
|
@@ -592875,18 +592889,6 @@ function parseAccelCheck({ code, text = "" }) {
|
|
|
592875
592889
|
return false;
|
|
592876
592890
|
return !/not installed|not usable|is not/i.test(text);
|
|
592877
592891
|
}
|
|
592878
|
-
function normalizeDeviceDescriptor({ contextDevice, stepDevice, platform }) {
|
|
592879
|
-
const asObj = (d) => typeof d === "string" ? { name: d.trim() } : d ? { ...d } : {};
|
|
592880
|
-
const ctx = asObj(contextDevice);
|
|
592881
|
-
const step = asObj(stepDevice);
|
|
592882
|
-
const merged = { ...ctx, ...step };
|
|
592883
|
-
for (const k of Object.keys(step)) {
|
|
592884
|
-
if (step[k] === void 0 && ctx[k] !== void 0)
|
|
592885
|
-
merged[k] = ctx[k];
|
|
592886
|
-
}
|
|
592887
|
-
merged.platform = step.platform ?? ctx.platform ?? platform;
|
|
592888
|
-
return merged;
|
|
592889
|
-
}
|
|
592890
592892
|
function udidForPort(port) {
|
|
592891
592893
|
return `emulator-${port}`;
|
|
592892
592894
|
}
|
|
@@ -593192,6 +593194,26 @@ function buildAcquireDeviceDeps(sdk, abi, log3) {
|
|
|
593192
593194
|
};
|
|
593193
593195
|
}
|
|
593194
593196
|
|
|
593197
|
+
// dist/core/tests/mobilePlatform.js
|
|
593198
|
+
function isMobileTargetPlatform(platform) {
|
|
593199
|
+
if (platform === "android" || platform === "ios")
|
|
593200
|
+
return platform;
|
|
593201
|
+
return null;
|
|
593202
|
+
}
|
|
593203
|
+
function mobileContextSkipReason({ platform }) {
|
|
593204
|
+
const roadmap = "docs/design/native-app-surfaces.md";
|
|
593205
|
+
if (platform === "ios") {
|
|
593206
|
+
return {
|
|
593207
|
+
level: "warning",
|
|
593208
|
+
reason: `Skipping context on 'ios': mobile browser testing on iOS lands in phase A5 of the native app roadmap (${roadmap}). Native iOS app tests run on capable macOS hosts.`
|
|
593209
|
+
};
|
|
593210
|
+
}
|
|
593211
|
+
return {
|
|
593212
|
+
level: "warning",
|
|
593213
|
+
reason: `Skipping context on 'android': mobile browser testing on Android lands in phase A5 of the native app roadmap (${roadmap}). Native Android app tests (no browser steps) run today.`
|
|
593214
|
+
};
|
|
593215
|
+
}
|
|
593216
|
+
|
|
593195
593217
|
// dist/core/tests/appSurface.js
|
|
593196
593218
|
init_validate();
|
|
593197
593219
|
function classifyAppIdentifier(app) {
|
|
@@ -593368,6 +593390,9 @@ function buildUiAutomator2Locator(criteria) {
|
|
|
593368
593390
|
const predicate = predicates.length ? `[${predicates.join(" and ")}]` : "";
|
|
593369
593391
|
return { strategy: "xpath", value: `//${tag ?? "*"}${predicate}` };
|
|
593370
593392
|
}
|
|
593393
|
+
function buildXCUITestLocator(criteria) {
|
|
593394
|
+
return buildAxLocator(criteria);
|
|
593395
|
+
}
|
|
593371
593396
|
var DESKTOP_UNSUPPORTED_MOBILE_FIELDS = ["device", "install", "activity"].map((field) => ({
|
|
593372
593397
|
field,
|
|
593373
593398
|
isSet: (value) => value !== void 0,
|
|
@@ -593493,6 +593518,63 @@ var APP_DRIVER_PLATFORMS = {
|
|
|
593493
593518
|
guidance: "A working directory is meaningless for an Android package launch."
|
|
593494
593519
|
}
|
|
593495
593520
|
]
|
|
593521
|
+
},
|
|
593522
|
+
ios: {
|
|
593523
|
+
driverPackage: "appium-xcuitest-driver",
|
|
593524
|
+
driverLabel: "iOS app driver",
|
|
593525
|
+
platformName: "iOS",
|
|
593526
|
+
automationName: "XCUITest",
|
|
593527
|
+
buildLocator: (criteria) => buildXCUITestLocator(criteria),
|
|
593528
|
+
// iOS maps text/name through the same XCUI naming surface as macOS.
|
|
593529
|
+
nameFieldsCollide: true,
|
|
593530
|
+
buildCapabilities(descriptor, appId, extras) {
|
|
593531
|
+
const capabilities = {
|
|
593532
|
+
platformName: "iOS",
|
|
593533
|
+
"appium:automationName": "XCUITest",
|
|
593534
|
+
"appium:newCommandTimeout": 600,
|
|
593535
|
+
"wdio:enforceWebDriverClassic": true
|
|
593536
|
+
};
|
|
593537
|
+
if (classifyAppIdentifier(appId) === "id") {
|
|
593538
|
+
capabilities["appium:bundleId"] = appId;
|
|
593539
|
+
} else {
|
|
593540
|
+
capabilities["appium:app"] = import_node_path13.default.resolve(appId);
|
|
593541
|
+
}
|
|
593542
|
+
if (descriptor.install) {
|
|
593543
|
+
capabilities["appium:app"] = import_node_path13.default.resolve(descriptor.install);
|
|
593544
|
+
}
|
|
593545
|
+
if (extras?.udid)
|
|
593546
|
+
capabilities["appium:udid"] = extras.udid;
|
|
593547
|
+
const timeout = descriptor.timeout ?? 6e4;
|
|
593548
|
+
capabilities["appium:wdaLaunchTimeout"] = Math.max(timeout, 12e4);
|
|
593549
|
+
capabilities["appium:wdaConnectionTimeout"] = Math.max(timeout, 12e4);
|
|
593550
|
+
const derivedDataPath = process.env.DOC_DETECTIVE_IOS_WDA_DERIVED_DATA_PATH;
|
|
593551
|
+
if (derivedDataPath && derivedDataPath.trim()) {
|
|
593552
|
+
capabilities["appium:derivedDataPath"] = derivedDataPath.trim();
|
|
593553
|
+
}
|
|
593554
|
+
return capabilities;
|
|
593555
|
+
},
|
|
593556
|
+
unsupportedFields: [
|
|
593557
|
+
{
|
|
593558
|
+
field: "activity",
|
|
593559
|
+
isSet: (value) => value !== void 0,
|
|
593560
|
+
guidance: "`activity` is Android-only; iOS launches by bundle identifier or installed app payload."
|
|
593561
|
+
},
|
|
593562
|
+
{
|
|
593563
|
+
field: "args",
|
|
593564
|
+
isSet: (value) => Array.isArray(value) && value.length > 0,
|
|
593565
|
+
guidance: "The iOS driver does not honor desktop-style process arguments for AUT launch."
|
|
593566
|
+
},
|
|
593567
|
+
{
|
|
593568
|
+
field: "workingDirectory",
|
|
593569
|
+
isSet: (value) => value !== void 0 && value !== ".",
|
|
593570
|
+
guidance: "A working directory is not meaningful for iOS app launches."
|
|
593571
|
+
},
|
|
593572
|
+
{
|
|
593573
|
+
field: "env",
|
|
593574
|
+
isSet: (value) => value !== void 0,
|
|
593575
|
+
guidance: "Use driverOptions for iOS-specific launch controls; app environment overrides are not supported here."
|
|
593576
|
+
}
|
|
593577
|
+
]
|
|
593496
593578
|
}
|
|
593497
593579
|
};
|
|
593498
593580
|
var MAC_TCC_WALKTHROUGH = "Open System Settings \u2192 Privacy & Security \u2192 Accessibility and enable the app that launches Doc Detective (your terminal, IDE, or CI runner process), then rerun.";
|
|
@@ -593557,14 +593639,65 @@ async function probeMacAccessibility() {
|
|
|
593557
593639
|
});
|
|
593558
593640
|
});
|
|
593559
593641
|
}
|
|
593642
|
+
function probeIosToolchain(deps = {}) {
|
|
593643
|
+
const platform = deps.platform ?? process.platform;
|
|
593644
|
+
const run = deps.run ?? ((command, args) => {
|
|
593645
|
+
const result = (0, import_node_child_process8.spawnSync)(command, args, {
|
|
593646
|
+
encoding: "utf8",
|
|
593647
|
+
windowsHide: true,
|
|
593648
|
+
// xcrun/simctl gets 2 minutes for the cold CoreSimulator warm-up;
|
|
593649
|
+
// xcode-select is a cheap path lookup.
|
|
593650
|
+
timeout: command === "xcrun" ? 12e4 : 15e3,
|
|
593651
|
+
maxBuffer: 32 * 1024 * 1024
|
|
593652
|
+
});
|
|
593653
|
+
return {
|
|
593654
|
+
status: result.status,
|
|
593655
|
+
stdout: typeof result.stdout === "string" ? result.stdout : "",
|
|
593656
|
+
stderr: typeof result.stderr === "string" ? result.stderr : ""
|
|
593657
|
+
};
|
|
593658
|
+
});
|
|
593659
|
+
if (platform !== "darwin") {
|
|
593660
|
+
return {
|
|
593661
|
+
ok: false,
|
|
593662
|
+
reason: "Skipping context on 'ios': iOS app surfaces require a macOS host with Xcode and Simulator tooling."
|
|
593663
|
+
};
|
|
593664
|
+
}
|
|
593665
|
+
const xcodeSelect = run("xcode-select", ["-p"]);
|
|
593666
|
+
if (xcodeSelect.status !== 0) {
|
|
593667
|
+
return {
|
|
593668
|
+
ok: false,
|
|
593669
|
+
reason: "Skipping context on 'ios': Xcode command-line tools are not configured. Install Xcode and run `xcode-select --install`."
|
|
593670
|
+
};
|
|
593671
|
+
}
|
|
593672
|
+
const developerDir = String(xcodeSelect.stdout ?? "").trim();
|
|
593673
|
+
const simctl = run("xcrun", ["simctl", "list", "devices", "available"]);
|
|
593674
|
+
if (simctl.status !== 0) {
|
|
593675
|
+
const detail = String(simctl.stderr ?? "").trim().split(/\r?\n/).filter(Boolean).pop() || (simctl.status === null ? "the command timed out" : `exit ${simctl.status}`);
|
|
593676
|
+
return {
|
|
593677
|
+
ok: false,
|
|
593678
|
+
reason: `Skipping context on 'ios': \`xcrun simctl\` is unavailable (developer dir: ${developerDir || "unset"}; ${detail}). If \`xcode-select -p\` points at CommandLineTools, run \`sudo xcode-select -s /Applications/Xcode.app\`; otherwise open Xcode once to finish simulator components and rerun.`
|
|
593679
|
+
};
|
|
593680
|
+
}
|
|
593681
|
+
return { ok: true };
|
|
593682
|
+
}
|
|
593560
593683
|
async function appSurfacePreflight({ config, platform, deps = {} }) {
|
|
593561
593684
|
const platformDriver = APP_DRIVER_PLATFORMS[platform];
|
|
593562
593685
|
if (!platformDriver) {
|
|
593563
593686
|
return {
|
|
593564
593687
|
ok: false,
|
|
593565
|
-
reason: `Skipping context on '${platform}': native app surfaces run on Windows and
|
|
593688
|
+
reason: `Skipping context on '${platform}': native app surfaces run on Windows, macOS, Android, and iOS in this phase. Gate the test with runOn platforms so this skip is intentional.`
|
|
593566
593689
|
};
|
|
593567
593690
|
}
|
|
593691
|
+
if (platform === "ios") {
|
|
593692
|
+
const probe = deps.probeIosToolchain ?? probeIosToolchain;
|
|
593693
|
+
const ios = probe();
|
|
593694
|
+
if (!ios.ok) {
|
|
593695
|
+
return {
|
|
593696
|
+
ok: false,
|
|
593697
|
+
reason: ios.reason
|
|
593698
|
+
};
|
|
593699
|
+
}
|
|
593700
|
+
}
|
|
593568
593701
|
if (platform === "mac") {
|
|
593569
593702
|
const probe = deps.probeAccessibility ?? probeMacAccessibility;
|
|
593570
593703
|
let trusted = null;
|
|
@@ -593708,7 +593841,7 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps
|
|
|
593708
593841
|
const platformDriver = APP_DRIVER_PLATFORMS[platform];
|
|
593709
593842
|
if (!platformDriver) {
|
|
593710
593843
|
result.status = "FAIL";
|
|
593711
|
-
result.description = `startSurface (app) runs on Windows and macOS desktops
|
|
593844
|
+
result.description = `startSurface (app) runs on Windows and macOS desktops plus Android and iOS mobile targets in this phase. Gate the test with runOn platforms (["windows"], ["mac"], ["android"], or ["ios"]).`;
|
|
593712
593845
|
return result;
|
|
593713
593846
|
}
|
|
593714
593847
|
for (const { field, isSet, guidance } of platformDriver.unsupportedFields) {
|
|
@@ -593741,7 +593874,8 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps
|
|
|
593741
593874
|
}
|
|
593742
593875
|
let driver;
|
|
593743
593876
|
let deviceName;
|
|
593744
|
-
if (platform
|
|
593877
|
+
if (isMobileTargetPlatform(platform)) {
|
|
593878
|
+
const targetNoun = platform === "ios" ? "simulator" : "device";
|
|
593745
593879
|
const desc = normalizeDeviceDescriptor({
|
|
593746
593880
|
contextDevice: appSession.defaultDevice,
|
|
593747
593881
|
stepDevice: descriptor.device,
|
|
@@ -593749,7 +593883,7 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps
|
|
|
593749
593883
|
});
|
|
593750
593884
|
if (!serverDeps.acquireDevice) {
|
|
593751
593885
|
result.status = "FAIL";
|
|
593752
|
-
result.description =
|
|
593886
|
+
result.description = `The ${platformDriver.driverLabel} session is missing its ${targetNoun} layer; this is a runner bug (runContext must wire serverDeps.acquireDevice).`;
|
|
593753
593887
|
return result;
|
|
593754
593888
|
}
|
|
593755
593889
|
let acquired;
|
|
@@ -593757,12 +593891,12 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps
|
|
|
593757
593891
|
acquired = await serverDeps.acquireDevice(desc);
|
|
593758
593892
|
} catch (error) {
|
|
593759
593893
|
result.status = "FAIL";
|
|
593760
|
-
result.description = `Couldn't acquire the
|
|
593894
|
+
result.description = `Couldn't acquire the ${targetNoun} for "${appId}": ${error?.message ?? error}`;
|
|
593761
593895
|
return result;
|
|
593762
593896
|
}
|
|
593763
593897
|
if ("skip" in acquired) {
|
|
593764
593898
|
result.status = "FAIL";
|
|
593765
|
-
result.description = `Couldn't acquire the
|
|
593899
|
+
result.description = `Couldn't acquire the ${targetNoun} for "${appId}": ${acquired.skip}`;
|
|
593766
593900
|
return result;
|
|
593767
593901
|
}
|
|
593768
593902
|
deviceName = acquired.entry.name;
|
|
@@ -593777,7 +593911,7 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps
|
|
|
593777
593911
|
driver = await serverDeps.startDriver(capabilities, appSession.server.port);
|
|
593778
593912
|
} catch (error) {
|
|
593779
593913
|
result.status = "FAIL";
|
|
593780
|
-
result.description = `Couldn't launch app "${appId}" on the
|
|
593914
|
+
result.description = `Couldn't launch app "${appId}" on the ${targetNoun} "${deviceName}": ${error?.message ?? error}.`;
|
|
593781
593915
|
return result;
|
|
593782
593916
|
}
|
|
593783
593917
|
sessions.set(deviceName, {
|
|
@@ -593832,7 +593966,7 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps
|
|
|
593832
593966
|
platform
|
|
593833
593967
|
});
|
|
593834
593968
|
if (found.error) {
|
|
593835
|
-
if (platform
|
|
593969
|
+
if (!isMobileTargetPlatform(platform)) {
|
|
593836
593970
|
try {
|
|
593837
593971
|
await driver.deleteSession();
|
|
593838
593972
|
} catch {
|
|
@@ -598613,23 +598747,332 @@ async function closeSurface({ config, step, driver, processRegistry, appSession
|
|
|
598613
598747
|
return result;
|
|
598614
598748
|
}
|
|
598615
598749
|
|
|
598616
|
-
// dist/core/tests/
|
|
598617
|
-
|
|
598618
|
-
|
|
598619
|
-
|
|
598620
|
-
|
|
598750
|
+
// dist/core/tests/iosSimulator.js
|
|
598751
|
+
var import_node_child_process11 = require("node:child_process");
|
|
598752
|
+
function parseSimctlDevices(text) {
|
|
598753
|
+
let data;
|
|
598754
|
+
try {
|
|
598755
|
+
data = JSON.parse(String(text));
|
|
598756
|
+
} catch {
|
|
598757
|
+
return [];
|
|
598758
|
+
}
|
|
598759
|
+
const byRuntime = data?.devices;
|
|
598760
|
+
if (!byRuntime || typeof byRuntime !== "object")
|
|
598761
|
+
return [];
|
|
598762
|
+
const out = [];
|
|
598763
|
+
for (const [runtime, list] of Object.entries(byRuntime)) {
|
|
598764
|
+
if (!Array.isArray(list))
|
|
598765
|
+
continue;
|
|
598766
|
+
for (const d of list) {
|
|
598767
|
+
if (!d || typeof d.udid !== "string" || typeof d.name !== "string")
|
|
598768
|
+
continue;
|
|
598769
|
+
out.push({
|
|
598770
|
+
udid: d.udid,
|
|
598771
|
+
name: d.name,
|
|
598772
|
+
state: typeof d.state === "string" ? d.state : "Unknown",
|
|
598773
|
+
runtime,
|
|
598774
|
+
isAvailable: d.isAvailable !== false,
|
|
598775
|
+
deviceTypeIdentifier: typeof d.deviceTypeIdentifier === "string" ? d.deviceTypeIdentifier : void 0
|
|
598776
|
+
});
|
|
598777
|
+
}
|
|
598778
|
+
}
|
|
598779
|
+
return out;
|
|
598621
598780
|
}
|
|
598622
|
-
function
|
|
598623
|
-
|
|
598624
|
-
|
|
598781
|
+
function parseSimctlRuntimes(text) {
|
|
598782
|
+
let data;
|
|
598783
|
+
try {
|
|
598784
|
+
data = JSON.parse(String(text));
|
|
598785
|
+
} catch {
|
|
598786
|
+
return [];
|
|
598787
|
+
}
|
|
598788
|
+
const list = data?.runtimes;
|
|
598789
|
+
if (!Array.isArray(list))
|
|
598790
|
+
return [];
|
|
598791
|
+
const out = [];
|
|
598792
|
+
for (const r of list) {
|
|
598793
|
+
if (!r || typeof r.identifier !== "string")
|
|
598794
|
+
continue;
|
|
598795
|
+
out.push({
|
|
598796
|
+
identifier: r.identifier,
|
|
598797
|
+
version: typeof r.version === "string" ? r.version : "",
|
|
598798
|
+
name: typeof r.name === "string" ? r.name : r.identifier,
|
|
598799
|
+
isAvailable: r.isAvailable !== false,
|
|
598800
|
+
platform: typeof r.platform === "string" ? r.platform : void 0
|
|
598801
|
+
});
|
|
598802
|
+
}
|
|
598803
|
+
return out;
|
|
598804
|
+
}
|
|
598805
|
+
function parseSimctlDeviceTypes(text) {
|
|
598806
|
+
let data;
|
|
598807
|
+
try {
|
|
598808
|
+
data = JSON.parse(String(text));
|
|
598809
|
+
} catch {
|
|
598810
|
+
return [];
|
|
598811
|
+
}
|
|
598812
|
+
const list = data?.devicetypes;
|
|
598813
|
+
if (!Array.isArray(list))
|
|
598814
|
+
return [];
|
|
598815
|
+
const out = [];
|
|
598816
|
+
for (const t of list) {
|
|
598817
|
+
if (!t || typeof t.identifier !== "string" || typeof t.name !== "string")
|
|
598818
|
+
continue;
|
|
598819
|
+
out.push({
|
|
598820
|
+
identifier: t.identifier,
|
|
598821
|
+
name: t.name,
|
|
598822
|
+
productFamily: typeof t.productFamily === "string" ? t.productFamily : void 0
|
|
598823
|
+
});
|
|
598824
|
+
}
|
|
598825
|
+
return out;
|
|
598826
|
+
}
|
|
598827
|
+
function compareVersions(a, b) {
|
|
598828
|
+
const pa = String(a).split(".").map((n) => parseInt(n, 10) || 0);
|
|
598829
|
+
const pb = String(b).split(".").map((n) => parseInt(n, 10) || 0);
|
|
598830
|
+
const len = Math.max(pa.length, pb.length);
|
|
598831
|
+
for (let i = 0; i < len; i++) {
|
|
598832
|
+
const d = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
598833
|
+
if (d !== 0)
|
|
598834
|
+
return d;
|
|
598835
|
+
}
|
|
598836
|
+
return 0;
|
|
598837
|
+
}
|
|
598838
|
+
function isIosRuntime(r) {
|
|
598839
|
+
if (r.platform)
|
|
598840
|
+
return r.platform === "iOS";
|
|
598841
|
+
return /\.iOS-/i.test(r.identifier) || /^iOS\b/i.test(r.name);
|
|
598842
|
+
}
|
|
598843
|
+
function newestRuntime(runtimes) {
|
|
598844
|
+
const ios = runtimes.filter((r) => r.isAvailable && isIosRuntime(r));
|
|
598845
|
+
if (!ios.length)
|
|
598846
|
+
return null;
|
|
598847
|
+
return ios.reduce((best, r) => compareVersions(r.version, best.version) > 0 ? r : best);
|
|
598848
|
+
}
|
|
598849
|
+
function productFamilyForDeviceType(deviceType) {
|
|
598850
|
+
return deviceType === "tablet" ? "iPad" : "iPhone";
|
|
598851
|
+
}
|
|
598852
|
+
function deviceTypeModelNumber(name) {
|
|
598853
|
+
const match = /\b(\d+)\b/.exec(name);
|
|
598854
|
+
return match ? parseInt(match[1], 10) : -1;
|
|
598855
|
+
}
|
|
598856
|
+
function newestDeviceType(deviceTypes, family) {
|
|
598857
|
+
const rank = (name) => {
|
|
598858
|
+
if (/pro max/i.test(name))
|
|
598859
|
+
return 3;
|
|
598860
|
+
if (/\bpro\b/i.test(name))
|
|
598861
|
+
return 2;
|
|
598862
|
+
if (/\bplus\b/i.test(name))
|
|
598863
|
+
return 1;
|
|
598864
|
+
return 0;
|
|
598865
|
+
};
|
|
598866
|
+
const candidates = deviceTypes.filter((t) => (t.productFamily ?? "").toLowerCase() === family.toLowerCase());
|
|
598867
|
+
if (!candidates.length)
|
|
598868
|
+
return null;
|
|
598869
|
+
return candidates.reduce((best, t) => {
|
|
598870
|
+
const dn = deviceTypeModelNumber(t.name) - deviceTypeModelNumber(best.name);
|
|
598871
|
+
if (dn !== 0)
|
|
598872
|
+
return dn > 0 ? t : best;
|
|
598873
|
+
return rank(t.name) > rank(best.name) ? t : best;
|
|
598874
|
+
});
|
|
598875
|
+
}
|
|
598876
|
+
function candidateDevices(desc, devices, runtimes) {
|
|
598877
|
+
const family = productFamilyForDeviceType(desc.deviceType);
|
|
598878
|
+
const iosRuntimes = new Set(runtimes.filter((r) => r.isAvailable && isIosRuntime(r)).map((r) => r.identifier));
|
|
598879
|
+
const versionOf = (runtimeId) => runtimes.find((r) => r.identifier === runtimeId)?.version ?? "";
|
|
598880
|
+
const familyRe = family === "iPad" ? /iPad/i : /iPhone|iPod/i;
|
|
598881
|
+
return devices.filter((d) => d.isAvailable !== false).filter((d) => iosRuntimes.has(d.runtime)).filter((d) => {
|
|
598882
|
+
if (!desc.osVersion)
|
|
598883
|
+
return true;
|
|
598884
|
+
return versionOf(d.runtime) === desc.osVersion;
|
|
598885
|
+
}).filter((d) => familyRe.test(d.deviceTypeIdentifier ?? "") || familyRe.test(d.name));
|
|
598886
|
+
}
|
|
598887
|
+
function planSimulatorAcquisition(desc, { devices, runtimes, deviceTypes }) {
|
|
598888
|
+
const versionOf = (runtimeId) => runtimes.find((r) => r.identifier === runtimeId)?.version ?? "";
|
|
598889
|
+
const newestOf = (list) => list.length ? list.reduce((best, d) => compareVersions(versionOf(d.runtime), versionOf(best.runtime)) > 0 ? d : best) : null;
|
|
598890
|
+
const isBooted = (d) => /^booted$/i.test(d.state);
|
|
598891
|
+
const iosRuntimeIds = new Set(runtimes.filter((r) => r.isAvailable && isIosRuntime(r)).map((r) => r.identifier));
|
|
598892
|
+
if (desc.name) {
|
|
598893
|
+
const named = devices.filter((d) => d.name === desc.name && d.isAvailable !== false && iosRuntimeIds.has(d.runtime));
|
|
598894
|
+
const booted2 = named.find(isBooted);
|
|
598895
|
+
if (booted2)
|
|
598896
|
+
return { action: "reuse-booted", name: desc.name, udid: booted2.udid };
|
|
598897
|
+
const existing2 = newestOf(named);
|
|
598898
|
+
if (existing2)
|
|
598899
|
+
return { action: "boot", name: desc.name, udid: existing2.udid };
|
|
598900
|
+
return planCreate(desc, runtimes, deviceTypes, devices, desc.name);
|
|
598901
|
+
}
|
|
598902
|
+
const candidates = candidateDevices(desc, devices, runtimes);
|
|
598903
|
+
const booted = candidates.find(isBooted);
|
|
598904
|
+
if (booted)
|
|
598905
|
+
return { action: "reuse-booted", name: booted.name, udid: booted.udid };
|
|
598906
|
+
const existing = newestOf(candidates);
|
|
598907
|
+
if (existing)
|
|
598908
|
+
return { action: "boot", name: existing.name, udid: existing.udid };
|
|
598909
|
+
return planCreate(desc, runtimes, deviceTypes, devices, defaultSimulatorName(desc));
|
|
598910
|
+
}
|
|
598911
|
+
function defaultSimulatorName(desc) {
|
|
598912
|
+
return desc.deviceType === "tablet" ? "doc-detective-ipad" : "doc-detective-iphone";
|
|
598913
|
+
}
|
|
598914
|
+
function planCreate(desc, runtimes, deviceTypes, devices, name) {
|
|
598915
|
+
const family = productFamilyForDeviceType(desc.deviceType);
|
|
598916
|
+
const available = runtimes.filter((r) => r.isAvailable && isIosRuntime(r));
|
|
598917
|
+
let runtime;
|
|
598918
|
+
if (desc.osVersion) {
|
|
598919
|
+
runtime = available.find((r) => r.version === desc.osVersion);
|
|
598920
|
+
} else {
|
|
598921
|
+
const warmedIds = new Set(devices.filter((d) => d.isAvailable !== false).map((d) => d.runtime));
|
|
598922
|
+
const warmed = available.filter((r) => warmedIds.has(r.identifier));
|
|
598923
|
+
runtime = (warmed.length ? newestRuntime(warmed) : null) ?? newestRuntime(available);
|
|
598924
|
+
}
|
|
598925
|
+
if (!runtime) {
|
|
598625
598926
|
return {
|
|
598626
|
-
|
|
598627
|
-
reason: `Skipping context on 'ios':
|
|
598927
|
+
action: "skip",
|
|
598928
|
+
reason: desc.osVersion ? `Skipping context on 'ios': no installed iOS ${desc.osVersion} simulator runtime to create the "${name}" simulator. Install one via Xcode \u2192 Settings \u2192 Components (or \`xcodebuild -downloadPlatform iOS\`).` : `Skipping context on 'ios': no installed iOS simulator runtime is available. Open Xcode once (or run \`xcodebuild -downloadPlatform iOS\`) to install a simulator runtime, then rerun.`
|
|
598929
|
+
};
|
|
598930
|
+
}
|
|
598931
|
+
const deviceType = newestDeviceType(deviceTypes, family);
|
|
598932
|
+
if (!deviceType) {
|
|
598933
|
+
return {
|
|
598934
|
+
action: "skip",
|
|
598935
|
+
reason: `Skipping context on 'ios': no ${family} simulator device type is available to create the "${name}" simulator. Install the iOS platform components in Xcode and rerun.`
|
|
598628
598936
|
};
|
|
598629
598937
|
}
|
|
598630
598938
|
return {
|
|
598631
|
-
|
|
598632
|
-
|
|
598939
|
+
action: "create-boot",
|
|
598940
|
+
name,
|
|
598941
|
+
deviceTypeId: deviceType.identifier,
|
|
598942
|
+
runtimeId: runtime.identifier
|
|
598943
|
+
};
|
|
598944
|
+
}
|
|
598945
|
+
function createSimulatorRegistry() {
|
|
598946
|
+
return /* @__PURE__ */ new Map();
|
|
598947
|
+
}
|
|
598948
|
+
async function acquireSimulator({ desc, registry, deps }) {
|
|
598949
|
+
if (desc.name) {
|
|
598950
|
+
const registered = registry.get(desc.name);
|
|
598951
|
+
if (registered) {
|
|
598952
|
+
const entry = registered.ready ? await registered.ready : registered;
|
|
598953
|
+
return { entry };
|
|
598954
|
+
}
|
|
598955
|
+
}
|
|
598956
|
+
const [devices, runtimes, deviceTypes] = await Promise.all([
|
|
598957
|
+
deps.listDevices(),
|
|
598958
|
+
deps.listRuntimes(),
|
|
598959
|
+
deps.listDeviceTypes()
|
|
598960
|
+
]);
|
|
598961
|
+
const plan = planSimulatorAcquisition(desc, {
|
|
598962
|
+
devices,
|
|
598963
|
+
runtimes,
|
|
598964
|
+
deviceTypes
|
|
598965
|
+
});
|
|
598966
|
+
if (plan.action === "skip")
|
|
598967
|
+
return { skip: plan.reason };
|
|
598968
|
+
const existing = registry.get(plan.name);
|
|
598969
|
+
if (existing) {
|
|
598970
|
+
const entry = existing.ready ? await existing.ready : existing;
|
|
598971
|
+
return { entry };
|
|
598972
|
+
}
|
|
598973
|
+
if (plan.action === "reuse-booted") {
|
|
598974
|
+
const entry = {
|
|
598975
|
+
name: plan.name,
|
|
598976
|
+
udid: plan.udid,
|
|
598977
|
+
bootedByUs: false
|
|
598978
|
+
};
|
|
598979
|
+
registry.set(plan.name, entry);
|
|
598980
|
+
return { entry };
|
|
598981
|
+
}
|
|
598982
|
+
const placeholder = {
|
|
598983
|
+
name: plan.name,
|
|
598984
|
+
udid: plan.action === "boot" ? plan.udid : "",
|
|
598985
|
+
bootedByUs: true
|
|
598986
|
+
};
|
|
598987
|
+
const readyPromise = (async () => {
|
|
598988
|
+
if (plan.action === "create-boot") {
|
|
598989
|
+
deps.log?.(`Creating simulator "${plan.name}" (${plan.deviceTypeId} on ${plan.runtimeId}).`);
|
|
598990
|
+
const created = await deps.create({
|
|
598991
|
+
name: plan.name,
|
|
598992
|
+
deviceTypeId: plan.deviceTypeId,
|
|
598993
|
+
runtimeId: plan.runtimeId
|
|
598994
|
+
});
|
|
598995
|
+
placeholder.udid = created.udid;
|
|
598996
|
+
}
|
|
598997
|
+
deps.log?.(`Booting simulator "${plan.name}" (${placeholder.udid}).`);
|
|
598998
|
+
await deps.boot(placeholder.udid);
|
|
598999
|
+
return placeholder;
|
|
599000
|
+
})();
|
|
599001
|
+
placeholder.ready = readyPromise;
|
|
599002
|
+
registry.set(plan.name, placeholder);
|
|
599003
|
+
try {
|
|
599004
|
+
await readyPromise;
|
|
599005
|
+
} catch (error) {
|
|
599006
|
+
if (registry.get(plan.name) === placeholder)
|
|
599007
|
+
registry.delete(plan.name);
|
|
599008
|
+
throw error;
|
|
599009
|
+
}
|
|
599010
|
+
return { entry: placeholder };
|
|
599011
|
+
}
|
|
599012
|
+
async function teardownSimulatorRegistry(registry, shutdown) {
|
|
599013
|
+
for (const entry of registry.values()) {
|
|
599014
|
+
if (!entry.bootedByUs)
|
|
599015
|
+
continue;
|
|
599016
|
+
try {
|
|
599017
|
+
await shutdown(entry);
|
|
599018
|
+
} catch {
|
|
599019
|
+
}
|
|
599020
|
+
}
|
|
599021
|
+
registry.clear();
|
|
599022
|
+
}
|
|
599023
|
+
function runSimctl(args, timeout = 6e4) {
|
|
599024
|
+
return new Promise((resolve) => {
|
|
599025
|
+
(0, import_node_child_process11.execFile)("xcrun", ["simctl", ...args], { timeout, maxBuffer: 32 * 1024 * 1024 }, (error, stdout, stderr) => {
|
|
599026
|
+
resolve({
|
|
599027
|
+
// A timeout or spawn error sets no numeric `code` (it's null) — treat
|
|
599028
|
+
// that as a failure, not success, so a hung `simctl` doesn't look like
|
|
599029
|
+
// an empty-but-ok result to the boot/create callers.
|
|
599030
|
+
code: error ? typeof error.code === "number" ? error.code : 1 : 0,
|
|
599031
|
+
stdout: String(stdout ?? ""),
|
|
599032
|
+
stderr: String(stderr ?? "")
|
|
599033
|
+
});
|
|
599034
|
+
});
|
|
599035
|
+
});
|
|
599036
|
+
}
|
|
599037
|
+
async function realBootSimulator(udid, timeout = 3e5) {
|
|
599038
|
+
const boot = await runSimctl(["boot", udid], 6e4);
|
|
599039
|
+
if (boot.code !== 0 && !/current state: Booted/i.test(boot.stderr)) {
|
|
599040
|
+
throw new Error(`simctl boot ${udid} failed (code ${boot.code}): ${boot.stderr.trim()}`);
|
|
599041
|
+
}
|
|
599042
|
+
await runSimctl(["bootstatus", udid, "-b"], timeout);
|
|
599043
|
+
}
|
|
599044
|
+
async function realCreateSimulator({ name, deviceTypeId, runtimeId }) {
|
|
599045
|
+
const created = await runSimctl(["create", name, deviceTypeId, runtimeId]);
|
|
599046
|
+
if (created.code !== 0) {
|
|
599047
|
+
throw new Error(`simctl create "${name}" failed (code ${created.code}): ${created.stderr.trim()}`);
|
|
599048
|
+
}
|
|
599049
|
+
const udid = created.stdout.trim().split(/\r?\n/).pop()?.trim() ?? "";
|
|
599050
|
+
if (!udid) {
|
|
599051
|
+
throw new Error(`simctl create "${name}" returned no udid.`);
|
|
599052
|
+
}
|
|
599053
|
+
return { udid };
|
|
599054
|
+
}
|
|
599055
|
+
async function realShutdownSimulator(udid) {
|
|
599056
|
+
await runSimctl(["shutdown", udid], 3e4);
|
|
599057
|
+
}
|
|
599058
|
+
function buildAcquireSimulatorDeps(log3) {
|
|
599059
|
+
return {
|
|
599060
|
+
listDevices: async () => {
|
|
599061
|
+
const { stdout } = await runSimctl(["list", "devices", "--json"], 6e4);
|
|
599062
|
+
return parseSimctlDevices(stdout);
|
|
599063
|
+
},
|
|
599064
|
+
listRuntimes: async () => {
|
|
599065
|
+
const { stdout } = await runSimctl(["list", "runtimes", "--json"], 6e4);
|
|
599066
|
+
return parseSimctlRuntimes(stdout);
|
|
599067
|
+
},
|
|
599068
|
+
listDeviceTypes: async () => {
|
|
599069
|
+
const { stdout } = await runSimctl(["list", "devicetypes", "--json"], 6e4);
|
|
599070
|
+
return parseSimctlDeviceTypes(stdout);
|
|
599071
|
+
},
|
|
599072
|
+
create: realCreateSimulator,
|
|
599073
|
+
boot: realBootSimulator,
|
|
599074
|
+
shutdown: (entry) => realShutdownSimulator(entry.udid),
|
|
599075
|
+
log: log3
|
|
598633
599076
|
};
|
|
598634
599077
|
}
|
|
598635
599078
|
|
|
@@ -598908,7 +599351,7 @@ async function dragAndDropElement({ config, step, driver }) {
|
|
|
598908
599351
|
|
|
598909
599352
|
// dist/core/tests.js
|
|
598910
599353
|
var import_node_path23 = __toESM(require("node:path"), 1);
|
|
598911
|
-
var
|
|
599354
|
+
var import_node_child_process12 = require("node:child_process");
|
|
598912
599355
|
var import_node_crypto7 = require("node:crypto");
|
|
598913
599356
|
init_appium();
|
|
598914
599357
|
init_config();
|
|
@@ -599274,8 +599717,7 @@ async function androidContextPreflight({ config, context, clog }) {
|
|
|
599274
599717
|
const hasBrowserStep = isBrowserRequired({ test: context });
|
|
599275
599718
|
if (hasBrowserStep) {
|
|
599276
599719
|
const { level, reason } = mobileContextSkipReason({
|
|
599277
|
-
platform: "android"
|
|
599278
|
-
hasBrowserStep
|
|
599720
|
+
platform: "android"
|
|
599279
599721
|
});
|
|
599280
599722
|
return { ok: false, level, reason };
|
|
599281
599723
|
}
|
|
@@ -599401,6 +599843,50 @@ async function androidContextPreflight({ config, context, clog }) {
|
|
|
599401
599843
|
};
|
|
599402
599844
|
}
|
|
599403
599845
|
}
|
|
599846
|
+
async function iosContextPreflight({ config, context }) {
|
|
599847
|
+
const hasBrowserStep = isBrowserRequired({ test: context });
|
|
599848
|
+
if (hasBrowserStep) {
|
|
599849
|
+
const { level, reason } = mobileContextSkipReason({
|
|
599850
|
+
platform: "ios"
|
|
599851
|
+
});
|
|
599852
|
+
return { ok: false, level, reason };
|
|
599853
|
+
}
|
|
599854
|
+
const pre = await appSurfacePreflight({ config, platform: "ios" });
|
|
599855
|
+
if (!pre.ok)
|
|
599856
|
+
return { ok: false, level: "info", reason: pre.reason };
|
|
599857
|
+
const simulatorDeps = buildAcquireSimulatorDeps((m) => log(config, "debug", m));
|
|
599858
|
+
try {
|
|
599859
|
+
const desc = normalizeDeviceDescriptor({
|
|
599860
|
+
contextDevice: context.device,
|
|
599861
|
+
platform: "ios"
|
|
599862
|
+
});
|
|
599863
|
+
const [devices, runtimes, deviceTypes] = await Promise.all([
|
|
599864
|
+
simulatorDeps.listDevices(),
|
|
599865
|
+
simulatorDeps.listRuntimes(),
|
|
599866
|
+
simulatorDeps.listDeviceTypes()
|
|
599867
|
+
]);
|
|
599868
|
+
const plan = planSimulatorAcquisition(desc, {
|
|
599869
|
+
devices,
|
|
599870
|
+
runtimes,
|
|
599871
|
+
deviceTypes
|
|
599872
|
+
});
|
|
599873
|
+
if (plan.action === "skip") {
|
|
599874
|
+
return { ok: false, level: "info", reason: plan.reason };
|
|
599875
|
+
}
|
|
599876
|
+
} catch (error) {
|
|
599877
|
+
return {
|
|
599878
|
+
ok: false,
|
|
599879
|
+
level: "info",
|
|
599880
|
+
reason: `Skipping context on 'ios': couldn't probe the iOS simulator environment (${error?.message ?? error}). Check Xcode / simctl, or run \`doc-detective install ios --yes\`.`
|
|
599881
|
+
};
|
|
599882
|
+
}
|
|
599883
|
+
return {
|
|
599884
|
+
ok: true,
|
|
599885
|
+
appiumEntry: pre.appiumEntry,
|
|
599886
|
+
appiumHome: pre.appiumHome,
|
|
599887
|
+
simulatorDeps
|
|
599888
|
+
};
|
|
599889
|
+
}
|
|
599404
599890
|
function getDefaultBrowser({ runnerDetails }) {
|
|
599405
599891
|
let browser = {};
|
|
599406
599892
|
const browserNames = ["firefox", "chrome", "safari"];
|
|
@@ -599817,6 +600303,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
599817
600303
|
}
|
|
599818
600304
|
const processRegistry = /* @__PURE__ */ new Map();
|
|
599819
600305
|
const deviceRegistry = createDeviceRegistry();
|
|
600306
|
+
const simulatorRegistry = createSimulatorRegistry();
|
|
599820
600307
|
const killAllRegistered = async () => {
|
|
599821
600308
|
const entries = [...processRegistry.entries()];
|
|
599822
600309
|
processRegistry.clear();
|
|
@@ -599878,6 +600365,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
599878
600365
|
warmUpResults,
|
|
599879
600366
|
processRegistry,
|
|
599880
600367
|
deviceRegistry,
|
|
600368
|
+
simulatorRegistry,
|
|
599881
600369
|
logPrefix: limit > 1 ? `[${job.test.testId}/${job.context.contextId}]` : ""
|
|
599882
600370
|
});
|
|
599883
600371
|
} catch (error) {
|
|
@@ -599933,6 +600421,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
599933
600421
|
warmUpResults,
|
|
599934
600422
|
processRegistry,
|
|
599935
600423
|
deviceRegistry,
|
|
600424
|
+
simulatorRegistry,
|
|
599936
600425
|
platform,
|
|
599937
600426
|
markAutoRecord,
|
|
599938
600427
|
limit,
|
|
@@ -599975,6 +600464,13 @@ async function runSpecs({ resolvedTests }) {
|
|
|
599975
600464
|
await killTree(entry.process?.pid);
|
|
599976
600465
|
});
|
|
599977
600466
|
}
|
|
600467
|
+
if (simulatorRegistry.size > 0) {
|
|
600468
|
+
const simDeps = buildAcquireSimulatorDeps();
|
|
600469
|
+
await teardownSimulatorRegistry(simulatorRegistry, async (entry) => {
|
|
600470
|
+
log(config, "debug", `Shutting down simulator "${entry.name}" (${entry.udid}).`);
|
|
600471
|
+
await simDeps.shutdown(entry);
|
|
600472
|
+
});
|
|
600473
|
+
}
|
|
599978
600474
|
process.off("SIGINT", onSignal);
|
|
599979
600475
|
process.off("SIGTERM", onSignal);
|
|
599980
600476
|
}
|
|
@@ -600001,7 +600497,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
600001
600497
|
}
|
|
600002
600498
|
return report;
|
|
600003
600499
|
}
|
|
600004
|
-
async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDetails, appiumPool, portToDisplay, metaValues, installAttempts, warmUpResults, processRegistry, deviceRegistry, platform, markAutoRecord, limit, resourceRegistry, exclusivityCtx }) {
|
|
600500
|
+
async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDetails, appiumPool, portToDisplay, metaValues, installAttempts, warmUpResults, processRegistry, deviceRegistry, simulatorRegistry, platform, markAutoRecord, limit, resourceRegistry, exclusivityCtx }) {
|
|
600005
600501
|
let stopRest = false;
|
|
600006
600502
|
let warnedRunStop = false;
|
|
600007
600503
|
const indexByTestId = /* @__PURE__ */ new Map();
|
|
@@ -600117,6 +600613,7 @@ async function runRoutedSpec({ spec, specReport, specGuardSkip, config, runnerDe
|
|
|
600117
600613
|
warmUpResults,
|
|
600118
600614
|
processRegistry,
|
|
600119
600615
|
deviceRegistry,
|
|
600616
|
+
simulatorRegistry,
|
|
600120
600617
|
logPrefix: limit > 1 ? `[${job.test.testId}/${job.context.contextId}]` : ""
|
|
600121
600618
|
});
|
|
600122
600619
|
} catch (error) {
|
|
@@ -600443,7 +600940,7 @@ async function captureAutoScreenshot({ config, driver, spec, test, context, step
|
|
|
600443
600940
|
return null;
|
|
600444
600941
|
}
|
|
600445
600942
|
}
|
|
600446
|
-
async function runContext({ config, spec, test, context, runnerDetails, appiumPool, portToDisplay, metaValues, installAttempts, warmUpResults, processRegistry, deviceRegistry, logPrefix = "" }) {
|
|
600943
|
+
async function runContext({ config, spec, test, context, runnerDetails, appiumPool, portToDisplay, metaValues, installAttempts, warmUpResults, processRegistry, deviceRegistry, simulatorRegistry, logPrefix = "" }) {
|
|
600447
600944
|
const platform = runnerDetails.environment.platform;
|
|
600448
600945
|
let availableApps = runnerDetails.availableApps;
|
|
600449
600946
|
const clog = (level, message) => log(config, level, logPrefix && typeof message === "string" ? `${logPrefix} ${message}` : message);
|
|
@@ -600478,30 +600975,40 @@ async function runContext({ config, spec, test, context, runnerDetails, appiumPo
|
|
|
600478
600975
|
contextReport.resultDescription = requirementsSkip;
|
|
600479
600976
|
return contextReport;
|
|
600480
600977
|
}
|
|
600481
|
-
if (mobileTarget === "
|
|
600482
|
-
const
|
|
600483
|
-
|
|
600484
|
-
|
|
600485
|
-
|
|
600486
|
-
|
|
600487
|
-
|
|
600488
|
-
|
|
600489
|
-
|
|
600490
|
-
|
|
600491
|
-
|
|
600492
|
-
|
|
600493
|
-
|
|
600978
|
+
if (mobileTarget === "android") {
|
|
600979
|
+
const pre = await androidContextPreflight({ config, context, clog });
|
|
600980
|
+
if (!pre.ok) {
|
|
600981
|
+
clog(pre.level, pre.reason);
|
|
600982
|
+
contextReport.result = "SKIPPED";
|
|
600983
|
+
contextReport.resultDescription = pre.reason;
|
|
600984
|
+
return contextReport;
|
|
600985
|
+
}
|
|
600986
|
+
appSession = createAppSessionState();
|
|
600987
|
+
appSession.appiumEntry = pre.appiumEntry;
|
|
600988
|
+
appSession.appiumHome = pre.appiumHome;
|
|
600989
|
+
appSession.defaultDevice = context.device;
|
|
600990
|
+
appSession.androidSdkRoot = pre.sdkRoot;
|
|
600991
|
+
appSession.androidDeviceRegistry = deviceRegistry;
|
|
600992
|
+
appSession.androidDeviceDeps = pre.deviceDeps;
|
|
600993
|
+
contextReport.device = context.device ?? { platform: "android" };
|
|
600994
|
+
if (pre.warnings.length)
|
|
600995
|
+
contextReport.warnings = pre.warnings;
|
|
600996
|
+
} else {
|
|
600997
|
+
const pre = await iosContextPreflight({ config, context });
|
|
600998
|
+
if (!pre.ok) {
|
|
600999
|
+
clog(pre.level, pre.reason);
|
|
601000
|
+
contextReport.result = "SKIPPED";
|
|
601001
|
+
contextReport.resultDescription = pre.reason;
|
|
601002
|
+
return contextReport;
|
|
601003
|
+
}
|
|
601004
|
+
appSession = createAppSessionState();
|
|
601005
|
+
appSession.appiumEntry = pre.appiumEntry;
|
|
601006
|
+
appSession.appiumHome = pre.appiumHome;
|
|
601007
|
+
appSession.defaultDevice = context.device;
|
|
601008
|
+
appSession.iosSimulatorRegistry = simulatorRegistry;
|
|
601009
|
+
appSession.iosSimulatorDeps = pre.simulatorDeps;
|
|
601010
|
+
contextReport.device = context.device ?? { platform: "ios" };
|
|
600494
601011
|
}
|
|
600495
|
-
appSession = createAppSessionState();
|
|
600496
|
-
appSession.appiumEntry = pre.appiumEntry;
|
|
600497
|
-
appSession.appiumHome = pre.appiumHome;
|
|
600498
|
-
appSession.defaultDevice = context.device;
|
|
600499
|
-
appSession.androidSdkRoot = pre.sdkRoot;
|
|
600500
|
-
appSession.androidDeviceRegistry = deviceRegistry;
|
|
600501
|
-
appSession.androidDeviceDeps = pre.deviceDeps;
|
|
600502
|
-
contextReport.device = context.device ?? { platform: "android" };
|
|
600503
|
-
if (pre.warnings.length)
|
|
600504
|
-
contextReport.warnings = pre.warnings;
|
|
600505
601012
|
}
|
|
600506
601013
|
if (context.platform === platform) {
|
|
600507
601014
|
const requirementsSkip = contextRequirementsSkipMessage({ context });
|
|
@@ -601206,15 +601713,22 @@ async function runStep({ config = {}, context = {}, step, driver, metaValues = {
|
|
|
601206
601713
|
return { port: server.port, process: server.process };
|
|
601207
601714
|
},
|
|
601208
601715
|
startDriver: (capabilities, port) => driverStart(capabilities, port, 2, { cacheDir: config?.cacheDir }),
|
|
601209
|
-
//
|
|
601210
|
-
//
|
|
601211
|
-
//
|
|
601716
|
+
// Mobile device acquisition (boot/create-and-boot, or reuse), bound
|
|
601717
|
+
// to the run-level registry stashed on the app session. Android uses
|
|
601718
|
+
// the emulator layer; iOS uses the simctl simulator layer. Both
|
|
601719
|
+
// return the same { entry:{name,udid} } | { skip } shape, so
|
|
601720
|
+
// startAppSurface's mobile branch stays uniform. Only set for a
|
|
601721
|
+
// mobile app session (which only exists on a capable host).
|
|
601212
601722
|
/* c8 ignore start */
|
|
601213
601723
|
acquireDevice: appSession?.androidDeviceDeps ? (desc) => acquireDevice({
|
|
601214
601724
|
desc,
|
|
601215
601725
|
registry: appSession.androidDeviceRegistry,
|
|
601216
601726
|
sdkRoot: appSession.androidSdkRoot,
|
|
601217
601727
|
deps: appSession.androidDeviceDeps
|
|
601728
|
+
}) : appSession?.iosSimulatorDeps ? (desc) => acquireSimulator({
|
|
601729
|
+
desc,
|
|
601730
|
+
registry: appSession.iosSimulatorRegistry,
|
|
601731
|
+
deps: appSession.iosSimulatorDeps
|
|
601218
601732
|
}) : void 0
|
|
601219
601733
|
/* c8 ignore stop */
|
|
601220
601734
|
}
|
|
@@ -601283,7 +601797,7 @@ async function startAppiumServer(appiumEntry, config, display, extraEnv) {
|
|
|
601283
601797
|
...display ? { DISPLAY: display } : {},
|
|
601284
601798
|
...extraEnv ?? {}
|
|
601285
601799
|
} : process.env;
|
|
601286
|
-
const proc = (0,
|
|
601800
|
+
const proc = (0, import_node_child_process12.spawn)(process.execPath, [appiumEntry, "-a", "127.0.0.1", "-p", String(port)], {
|
|
601287
601801
|
windowsHide: true,
|
|
601288
601802
|
cwd: import_node_path23.default.join(__dirname5, "../.."),
|
|
601289
601803
|
env
|
|
@@ -601324,6 +601838,7 @@ async function appiumIsReady(port, timeoutMs = 12e4) {
|
|
|
601324
601838
|
async function driverStart(capabilities, port, maxAttempts = 4, ctx = {}) {
|
|
601325
601839
|
const TRANSIENT = /ECONNREFUSED|ECONNRESET|socket hang up|could not proxy command|crashed during startup|cannot connect to|DevToolsActivePort|session not created/i;
|
|
601326
601840
|
const wdio = await loadHeavyDep("webdriverio", { ctx });
|
|
601841
|
+
const startupCeiling = Math.max(12e4, Number(capabilities?.["appium:wdaLaunchTimeout"]) || 0, Number(capabilities?.["appium:wdaConnectionTimeout"]) || 0, Number(capabilities?.["appium:serverStartupTimeout"]) || 0);
|
|
601327
601842
|
let lastError;
|
|
601328
601843
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
601329
601844
|
try {
|
|
@@ -601334,8 +601849,7 @@ async function driverStart(capabilities, port, maxAttempts = 4, ctx = {}) {
|
|
|
601334
601849
|
path: "/",
|
|
601335
601850
|
logLevel: "error",
|
|
601336
601851
|
capabilities,
|
|
601337
|
-
connectionRetryTimeout:
|
|
601338
|
-
// 2 minutes
|
|
601852
|
+
connectionRetryTimeout: startupCeiling,
|
|
601339
601853
|
waitforTimeout: 12e4
|
|
601340
601854
|
// 2 minutes
|
|
601341
601855
|
});
|
|
@@ -601430,7 +601944,7 @@ async function getRunner(options = {}) {
|
|
|
601430
601944
|
if (!appiumEntry) {
|
|
601431
601945
|
throw new Error("appium is not installed. Run `doc-detective install runtime appium` to install it.");
|
|
601432
601946
|
}
|
|
601433
|
-
const appium = (0,
|
|
601947
|
+
const appium = (0, import_node_child_process12.spawn)(process.execPath, [appiumEntry, "-a", "127.0.0.1", "-p", String(appiumPort)], {
|
|
601434
601948
|
windowsHide: true,
|
|
601435
601949
|
cwd: import_node_path23.default.join(__dirname5, "../..")
|
|
601436
601950
|
});
|