doc-detective 4.35.0 → 4.37.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/cli.js +9 -0
- package/dist/cli.js.map +1 -1
- package/dist/common/src/schemas/schemas.json +6702 -393
- package/dist/common/src/types/generated/annotate_v3.d.ts +48 -0
- package/dist/common/src/types/generated/annotate_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/annotation_v3.d.ts +24 -0
- package/dist/common/src/types/generated/annotation_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/closeSurface_v3.d.ts +2 -2
- package/dist/common/src/types/generated/config_v3.d.ts +12 -0
- package/dist/common/src/types/generated/config_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/context_v3.d.ts +4 -0
- package/dist/common/src/types/generated/context_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/report_v3.d.ts +12 -0
- package/dist/common/src/types/generated/report_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts +20 -0
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/screenshot_v3.d.ts +25 -1
- package/dist/common/src/types/generated/screenshot_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/spec_v3.d.ts +8 -0
- package/dist/common/src/types/generated/spec_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/step_v3.d.ts +162 -6
- package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/surface_v3.d.ts +1 -1
- package/dist/common/src/types/generated/swipe_v3.d.ts +2 -2
- package/dist/common/src/types/generated/test_v3.d.ts +336 -12
- package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/type_v3.d.ts +1 -1
- package/dist/core/annotations/geometry.d.ts +2 -1
- package/dist/core/annotations/geometry.d.ts.map +1 -1
- package/dist/core/annotations/geometry.js +11 -1
- package/dist/core/annotations/geometry.js.map +1 -1
- package/dist/core/tests/activeSurface.d.ts +46 -0
- package/dist/core/tests/activeSurface.d.ts.map +1 -0
- package/dist/core/tests/activeSurface.js +141 -0
- package/dist/core/tests/activeSurface.js.map +1 -0
- package/dist/core/tests/appSurface.d.ts +2 -0
- package/dist/core/tests/appSurface.d.ts.map +1 -1
- package/dist/core/tests/appSurface.js +24 -13
- package/dist/core/tests/appSurface.js.map +1 -1
- package/dist/core/tests/browserSessions.d.ts +3 -0
- package/dist/core/tests/browserSessions.d.ts.map +1 -1
- package/dist/core/tests/browserSessions.js +3 -0
- package/dist/core/tests/browserSessions.js.map +1 -1
- package/dist/core/tests/click.d.ts +3 -1
- package/dist/core/tests/click.d.ts.map +1 -1
- package/dist/core/tests/click.js +3 -1
- package/dist/core/tests/click.js.map +1 -1
- package/dist/core/tests/findElement.d.ts +4 -1
- package/dist/core/tests/findElement.d.ts.map +1 -1
- package/dist/core/tests/findElement.js +52 -27
- package/dist/core/tests/findElement.js.map +1 -1
- package/dist/core/tests/saveScreenshot.d.ts +4 -1
- package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
- package/dist/core/tests/saveScreenshot.js +70 -54
- package/dist/core/tests/saveScreenshot.js.map +1 -1
- package/dist/core/tests/startSurface.d.ts +3 -1
- package/dist/core/tests/startSurface.d.ts.map +1 -1
- package/dist/core/tests/startSurface.js +36 -2
- package/dist/core/tests/startSurface.js.map +1 -1
- package/dist/core/tests/swipe.d.ts +4 -1
- package/dist/core/tests/swipe.d.ts.map +1 -1
- package/dist/core/tests/swipe.js +37 -25
- package/dist/core/tests/swipe.js.map +1 -1
- package/dist/core/tests/typeKeys.d.ts +3 -1
- package/dist/core/tests/typeKeys.d.ts.map +1 -1
- package/dist/core/tests/typeKeys.js +42 -36
- package/dist/core/tests/typeKeys.js.map +1 -1
- package/dist/core/tests.d.ts +9 -2
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +257 -15
- package/dist/core/tests.js.map +1 -1
- package/dist/core/utils.d.ts +7 -1
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +141 -2
- package/dist/core/utils.js.map +1 -1
- package/dist/hints/context.d.ts +15 -0
- package/dist/hints/context.d.ts.map +1 -1
- package/dist/hints/context.js +115 -0
- package/dist/hints/context.js.map +1 -1
- package/dist/hints/hints.d.ts.map +1 -1
- package/dist/hints/hints.js +38 -0
- package/dist/hints/hints.js.map +1 -1
- package/dist/hints/types.d.ts +15 -0
- package/dist/hints/types.d.ts.map +1 -1
- package/dist/index.cjs +7565 -884
- package/dist/reporters/htmlReporter.js +3 -3
- package/dist/runtime/browserStepKeys.d.ts +37 -0
- package/dist/runtime/browserStepKeys.d.ts.map +1 -1
- package/dist/runtime/browserStepKeys.js +73 -0
- package/dist/runtime/browserStepKeys.js.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.d.ts.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.js +18 -11
- package/dist/runtime/inferRuntimeNeeds.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -0
- package/dist/utils.js.map +1 -1
- package/package.json +2 -1
|
@@ -61,7 +61,7 @@ export type TypeKeysDetailed = {
|
|
|
61
61
|
*/
|
|
62
62
|
export type TypeKeysSimple1 = string | string[];
|
|
63
63
|
/**
|
|
64
|
-
* The surface a step acts on. Omit to act on the active surface. Supports background processes, browser windows/tabs, and native app windows.
|
|
64
|
+
* The surface a step acts on. Omit to act on the active surface — the most recently opened, focused, or explicitly targeted surface, whatever its kind. Specifying a surface switches the active surface for the steps that follow. Supports background processes, browser windows/tabs, and native app windows.
|
|
65
65
|
*/
|
|
66
66
|
export type Surface = SurfaceByName | ProcessSurface | BrowserSurface | AppSurface;
|
|
67
67
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ResolvedAnnotation } from "./model.js";
|
|
2
2
|
import type { PlacedAnnotation, Rect } from "./svg.js";
|
|
3
|
-
export { computeScale, toCanvasRect, positionTargetRect, appCriteriaError, allTargetError, appWindowOrigin, resolveAnnotationRects, APP_UNSUPPORTED_CRITERIA, APP_SUPPORTED_CRITERIA, };
|
|
3
|
+
export { computeScale, toCanvasRect, positionTargetRect, appCriteriaError, allTargetError, appWindowOrigin, criteriaFromTarget, resolveAnnotationRects, APP_UNSUPPORTED_CRITERIA, APP_SUPPORTED_CRITERIA, };
|
|
4
4
|
type Point = {
|
|
5
5
|
x: number;
|
|
6
6
|
y: number;
|
|
@@ -40,6 +40,7 @@ declare function appWindowOrigin(platform: string | undefined, windowRect: {
|
|
|
40
40
|
} | null | undefined): Point;
|
|
41
41
|
declare function appCriteriaError(target: any): string | null;
|
|
42
42
|
declare function allTargetError(target: any, all: boolean, isAppCapture?: boolean): string | null;
|
|
43
|
+
declare function criteriaFromTarget(target: any): any;
|
|
43
44
|
/**
|
|
44
45
|
* Resolve every annotation's target into a rect in the final image.
|
|
45
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../src/core/annotations/geometry.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,CAAC;AAEF,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAWtC,QAAA,MAAM,wBAAwB,UAI7B,CAAC;AACF,QAAA,MAAM,sBAAsB,UAK3B,CAAC;AAMF,iBAAS,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CASvE;AAKD,iBAAS,YAAY,CACnB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,KAAsB,GACjC,IAAI,CAON;AAOD,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,KAAK,EAAE,MAAM,GACZ,IAAI,CAiBN;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,eAAe,CACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACtD,KAAK,CAKP;AAGD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAYpD;AAaD,iBAAS,cAAc,CACrB,MAAM,EAAE,GAAG,EACX,GAAG,EAAE,OAAO,EACZ,YAAY,UAAQ,GACnB,MAAM,GAAG,IAAI,CASf;
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../src/core/annotations/geometry.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,CAAC;AAEF,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAWtC,QAAA,MAAM,wBAAwB,UAI7B,CAAC;AACF,QAAA,MAAM,sBAAsB,UAK3B,CAAC;AAMF,iBAAS,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CASvE;AAKD,iBAAS,YAAY,CACnB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,KAAsB,GACjC,IAAI,CAON;AAOD,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,KAAK,EAAE,MAAM,GACZ,IAAI,CAiBN;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,eAAe,CACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACtD,KAAK,CAKP;AAGD,iBAAS,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAYpD;AAaD,iBAAS,cAAc,CACrB,MAAM,EAAE,GAAG,EACX,GAAG,EAAE,OAAO,EACZ,YAAY,UAAQ,GACnB,MAAM,GAAG,IAAI,CASf;AAaD,iBAAS,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAY5C;AAsCD;;;;;;;GAOG;AACH,iBAAe,sBAAsB,CAAC,EACpC,MAAM,EACN,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,GACX,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,GAAG,CAAC;IAId,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA0G5D"}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
import { findElement } from "../tests/findElement.js";
|
|
33
33
|
import { findElementByCriteria } from "../tests/findStrategies.js";
|
|
34
34
|
import { anchorPoint } from "./svg.js";
|
|
35
|
-
export { computeScale, toCanvasRect, positionTargetRect, appCriteriaError, allTargetError, appWindowOrigin, resolveAnnotationRects, APP_UNSUPPORTED_CRITERIA, APP_SUPPORTED_CRITERIA, };
|
|
35
|
+
export { computeScale, toCanvasRect, positionTargetRect, appCriteriaError, allTargetError, appWindowOrigin, criteriaFromTarget, resolveAnnotationRects, APP_UNSUPPORTED_CRITERIA, APP_SUPPORTED_CRITERIA, };
|
|
36
36
|
// Criteria with no native-locator equivalent. appSurface.ts maps the semantic
|
|
37
37
|
// fields onto UIA / AX / UiAutomator2 / XCUITest locators, but a CSS selector,
|
|
38
38
|
// a DOM class list, and arbitrary DOM attributes have nothing to map to.
|
|
@@ -159,6 +159,15 @@ function allTargetError(target, all, isAppCapture = false) {
|
|
|
159
159
|
}
|
|
160
160
|
// Turn an annotation target into the criteria object findElement expects.
|
|
161
161
|
// A string target passes straight through as find's selector-or-text shorthand.
|
|
162
|
+
//
|
|
163
|
+
// `timeout` rides along with the finding fields rather than being handled
|
|
164
|
+
// separately, because every consumer below already knows what to do with it:
|
|
165
|
+
// findElement reads `step.find.timeout` on both its browser and app paths, and
|
|
166
|
+
// findElementByCriteria takes it as a parameter. Leaving it out of this list
|
|
167
|
+
// was the only reason annotation targets were pinned to the hardcoded 5000 ms
|
|
168
|
+
// while `find` could ask for longer. Deliberately NOT defaulted here — the
|
|
169
|
+
// number belongs to find, and a copy of it here would be a second thing to
|
|
170
|
+
// keep in sync.
|
|
162
171
|
function criteriaFromTarget(target) {
|
|
163
172
|
if (typeof target === "string")
|
|
164
173
|
return target;
|
|
@@ -170,6 +179,7 @@ function criteriaFromTarget(target) {
|
|
|
170
179
|
elementClass: target?.elementClass,
|
|
171
180
|
elementAttribute: target?.elementAttribute,
|
|
172
181
|
elementAria: target?.elementAria,
|
|
182
|
+
timeout: target?.timeout,
|
|
173
183
|
};
|
|
174
184
|
}
|
|
175
185
|
// Read a browser element's viewport-relative rect. Mirrors the crop path's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../src/core/annotations/geometry.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,wEAAwE;AACxE,8EAA8E;AAC9E,wEAAwE;AACxE,aAAa;AACb,EAAE;AACF,gGAAgG;AAChG,0GAA0G;AAC1G,oGAAoG;AACpG,oGAAoG;AACpG,kFAAkF;AAClF,oGAAoG;AACpG,+GAA+G;AAC/G,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,gBAAgB;AAChB,EAAE;AACF,0EAA0E;AAC1E,+EAA+E;AAC/E,iEAAiE;AACjE,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,CAAC;AAIF,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AACzE,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,sDAAsD;AACtD,MAAM,wBAAwB,GAAG;IAC/B,UAAU;IACV,cAAc;IACd,kBAAkB;CACnB,CAAC;AACF,MAAM,sBAAsB,GAAG;IAC7B,aAAa;IACb,WAAW;IACX,eAAe;IACf,aAAa;CACd,CAAC;AAEF,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,kBAAkB;AAClB,SAAS,YAAY,CAAC,UAAkB,EAAE,YAAqB;IAC7D,IACE,OAAO,YAAY,KAAK,QAAQ;QAChC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,YAAY,IAAI,CAAC,EACjB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,UAAU,GAAG,YAAY,CAAC;AACnC,CAAC;AAED,6EAA6E;AAC7E,2EAA2E;AAC3E,8BAA8B;AAC9B,SAAS,YAAY,CACnB,OAAa,EACb,KAAa,EACb,aAAoB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IAElC,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC;QACnC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,KAAK;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK;KAC/B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAC9E,8EAA8E;AAC9E,mEAAmE;AACnE,SAAS,kBAAkB,CACzB,QAAa,EACb,MAAyC,EACzC,KAAa;IAEb,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,sEAAsE;QACtE,sEAAsE;QACtE,4DAA4D;QAC5D,MAAM,KAAK,GAAG,WAAW,CACvB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAC1D,QAAQ,CACT,CAAC;QACF,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,OAAO;QACL,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;QAC7B,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;QAC7B,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,eAAe,CACtB,QAA4B,EAC5B,UAAuD;IAEvD,IAAI,QAAQ,KAAK,KAAK,IAAI,UAAU,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC;AAED,gFAAgF;AAChF,SAAS,gBAAgB,CAAC,MAAW;IACnC,MAAM,SAAS,GAAG,8BAA8B,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,mEAAmE,MAAM,yJAAyJ,MAAM,SAAS,SAAS,EAAE,CAAC;IACtQ,CAAC;IACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,SAAS,CACzC,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,+EAA+E,SAAS,EAAE,CAAC;IAC3K,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,oEAAoE;AACpE,yEAAyE;AACzE,2BAA2B;AAC3B,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,+EAA+E;AAC/E,0EAA0E;AAC1E,8EAA8E;AAC9E,cAAc;AACd,SAAS,cAAc,CACrB,MAAW,EACX,GAAY,EACZ,YAAY,GAAG,KAAK;IAEpB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,uPAAuP,CAAC;IACjQ,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,gEAAgE,MAAM,iFAAiF,MAAM,MAAM,CAAC;IAC7K,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,SAAS,kBAAkB,CAAC,MAAW;IACrC,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO;QACL,QAAQ,EAAE,MAAM,EAAE,QAAQ;QAC1B,WAAW,EAAE,MAAM,EAAE,WAAW;QAChC,SAAS,EAAE,MAAM,EAAE,SAAS;QAC5B,aAAa,EAAE,MAAM,EAAE,aAAa;QACpC,YAAY,EAAE,MAAM,EAAE,YAAY;QAClC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB;QAC1C,WAAW,EAAE,MAAM,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../src/core/annotations/geometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export { createActiveSurfaceTracker, activateSurface, currentSurface, resolveTargetSurface, };
|
|
2
|
+
export type { ActiveSurfaceTracker, SurfaceHandle, SurfaceTarget };
|
|
3
|
+
type SurfaceKind = "browser" | "app" | "process";
|
|
4
|
+
interface SurfaceHandle {
|
|
5
|
+
kind: SurfaceKind;
|
|
6
|
+
name: string;
|
|
7
|
+
}
|
|
8
|
+
interface ActiveSurfaceTracker {
|
|
9
|
+
mru: SurfaceHandle[];
|
|
10
|
+
}
|
|
11
|
+
interface SurfaceRegistries {
|
|
12
|
+
browserRegistry?: {
|
|
13
|
+
sessions: Map<string, any>;
|
|
14
|
+
};
|
|
15
|
+
appSession?: {
|
|
16
|
+
surfaces: Map<string, any>;
|
|
17
|
+
activeApp?: string;
|
|
18
|
+
};
|
|
19
|
+
processRegistry?: Map<string, any>;
|
|
20
|
+
}
|
|
21
|
+
type SurfaceTarget = {
|
|
22
|
+
kind: "app";
|
|
23
|
+
entry: any;
|
|
24
|
+
window?: any;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "browser";
|
|
27
|
+
surface?: any;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "process";
|
|
30
|
+
name: string;
|
|
31
|
+
entry?: any;
|
|
32
|
+
} | {
|
|
33
|
+
kind: "error";
|
|
34
|
+
message: string;
|
|
35
|
+
};
|
|
36
|
+
declare function createActiveSurfaceTracker(): ActiveSurfaceTracker;
|
|
37
|
+
declare function activateSurface(tracker: ActiveSurfaceTracker | undefined, handle: SurfaceHandle): void;
|
|
38
|
+
declare function currentSurface(tracker: ActiveSurfaceTracker | undefined, registries: SurfaceRegistries): SurfaceHandle | null;
|
|
39
|
+
declare function resolveTargetSurface({ surface, tracker, driver, appSession, processRegistry, }: {
|
|
40
|
+
surface?: any;
|
|
41
|
+
tracker?: ActiveSurfaceTracker;
|
|
42
|
+
driver?: any;
|
|
43
|
+
appSession?: SurfaceRegistries["appSession"];
|
|
44
|
+
processRegistry?: Map<string, any>;
|
|
45
|
+
}): SurfaceTarget;
|
|
46
|
+
//# sourceMappingURL=activeSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeSurface.d.ts","sourceRoot":"","sources":["../../../src/core/tests/activeSurface.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,CAAC;AACF,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAEnE,KAAK,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjD,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,UAAU,oBAAoB;IAC5B,GAAG,EAAE,aAAa,EAAE,CAAC;CACtB;AAID,UAAU,iBAAiB;IACzB,eAAe,CAAC,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IACjD,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC;AAQD,KAAK,aAAa,GACd;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAOvC,iBAAS,0BAA0B,IAAI,oBAAoB,CAE1D;AAKD,iBAAS,eAAe,CACtB,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,MAAM,EAAE,aAAa,GACpB,IAAI,CAQN;AAaD,iBAAS,cAAc,CACrB,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,UAAU,EAAE,iBAAiB,GAC5B,aAAa,GAAG,IAAI,CAKtB;AAUD,iBAAS,oBAAoB,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,eAAe,GAChB,EAAE;IACD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACpC,GAAG,aAAa,CAsFhB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// Uniform active-surface routing (ADR 01081). One per-context MRU tracker
|
|
2
|
+
// covers every surface kind — browser sessions, app surfaces, background
|
|
3
|
+
// processes — and one resolver classifies each surface-sensitive step's
|
|
4
|
+
// target. The routing rule is kind-agnostic: an explicit `surface` reference
|
|
5
|
+
// switches to that surface; an omitted `surface` acts on the most recently
|
|
6
|
+
// active one, whatever its kind. Only EXECUTION differs per kind (an element
|
|
7
|
+
// find on a driver vs. stdin bytes to a process), and a step whose action the
|
|
8
|
+
// resolved kind can't perform fails with a capability error — routing never
|
|
9
|
+
// silently reroutes to another kind.
|
|
10
|
+
//
|
|
11
|
+
// The module is dependency-free (registries are duck-typed), so the browser
|
|
12
|
+
// session registry and the app session can both import `activateSurface`
|
|
13
|
+
// without a cycle, and unit tests drive it with plain objects.
|
|
14
|
+
export { createActiveSurfaceTracker, activateSurface, currentSurface, resolveTargetSurface, };
|
|
15
|
+
const ENGINE_KEYWORDS = new Set(["chrome", "firefox", "safari", "webkit", "edge"]);
|
|
16
|
+
const NO_ACTIVE_SURFACE_MESSAGE = "No active surface to act on. Open one first with a startSurface step (or a goTo step for a browser), or target a surface explicitly with `surface`.";
|
|
17
|
+
function createActiveSurfaceTracker() {
|
|
18
|
+
return { mru: [] };
|
|
19
|
+
}
|
|
20
|
+
// Move-to-front activation, deduped by kind+name. Tolerates an undefined
|
|
21
|
+
// tracker so callers outside runContext (unit tests, embedders) need no
|
|
22
|
+
// guards.
|
|
23
|
+
function activateSurface(tracker, handle) {
|
|
24
|
+
if (!tracker)
|
|
25
|
+
return;
|
|
26
|
+
tracker.mru = [
|
|
27
|
+
handle,
|
|
28
|
+
...tracker.mru.filter((h) => !(h.kind === handle.kind && h.name === handle.name)),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
function isLive(handle, registries) {
|
|
32
|
+
if (handle.kind === "browser")
|
|
33
|
+
return !!registries.browserRegistry?.sessions?.has(handle.name);
|
|
34
|
+
if (handle.kind === "app")
|
|
35
|
+
return !!registries.appSession?.surfaces?.has(handle.name);
|
|
36
|
+
return !!registries.processRegistry?.has(handle.name);
|
|
37
|
+
}
|
|
38
|
+
// The active surface: the most recently activated handle whose surface is
|
|
39
|
+
// still open. Dead entries (closed surfaces) are pruned as they're passed
|
|
40
|
+
// over, so closes never have to touch the tracker.
|
|
41
|
+
function currentSurface(tracker, registries) {
|
|
42
|
+
if (!tracker)
|
|
43
|
+
return null;
|
|
44
|
+
const live = tracker.mru.filter((h) => isLive(h, registries));
|
|
45
|
+
tracker.mru = live;
|
|
46
|
+
return live[0] ?? null;
|
|
47
|
+
}
|
|
48
|
+
// Classify a step's surface target. Explicit references resolve by shape —
|
|
49
|
+
// `{ app }` / `{ browser }` / `{ process }` are authoritative by key; a bare
|
|
50
|
+
// string is an engine keyword (browser) or a unique cross-registry name
|
|
51
|
+
// lookup (names are unique across kinds per context) — and a surface-less
|
|
52
|
+
// step resolves to the active surface. Pure classification: activation side
|
|
53
|
+
// effects stay in the kinds' execution paths (switchToSurface's session
|
|
54
|
+
// activation, ensureAppForeground, the process lanes), so a reference that
|
|
55
|
+
// fails to act never becomes the active surface.
|
|
56
|
+
function resolveTargetSurface({ surface, tracker, driver, appSession, processRegistry, }) {
|
|
57
|
+
const browserRegistry = driver?.state?.sessionRegistry;
|
|
58
|
+
const registries = {
|
|
59
|
+
browserRegistry,
|
|
60
|
+
appSession,
|
|
61
|
+
processRegistry,
|
|
62
|
+
};
|
|
63
|
+
if (surface !== undefined && surface !== null) {
|
|
64
|
+
// Object forms: the key names the kind.
|
|
65
|
+
if (typeof surface === "object") {
|
|
66
|
+
if (typeof surface.app === "string") {
|
|
67
|
+
const name = surface.app.trim();
|
|
68
|
+
if (!appSession) {
|
|
69
|
+
return {
|
|
70
|
+
kind: "error",
|
|
71
|
+
message: `The surface names an app ("${name}"), but no app session is active in this context. Open the app first with startSurface.`,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const entry = appSession.surfaces.get(name);
|
|
75
|
+
if (!entry) {
|
|
76
|
+
return {
|
|
77
|
+
kind: "error",
|
|
78
|
+
message: `No app surface named "${name}" is open. Open it first with startSurface.`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return { kind: "app", entry, window: surface.window };
|
|
82
|
+
}
|
|
83
|
+
if (typeof surface.process === "string") {
|
|
84
|
+
const name = surface.process.trim();
|
|
85
|
+
return { kind: "process", name, entry: processRegistry?.get(name) };
|
|
86
|
+
}
|
|
87
|
+
// { browser: … } and any other object shape resolve in the browser
|
|
88
|
+
// execution path (session + window/tab sub-resolution).
|
|
89
|
+
return { kind: "browser", surface };
|
|
90
|
+
}
|
|
91
|
+
if (typeof surface === "string") {
|
|
92
|
+
const name = surface.trim();
|
|
93
|
+
if (ENGINE_KEYWORDS.has(name.toLowerCase())) {
|
|
94
|
+
return { kind: "browser", surface };
|
|
95
|
+
}
|
|
96
|
+
// Bare-string identity lookup. Names are unique across kinds per
|
|
97
|
+
// context (registries enforce cross-kind collisions at open time), so
|
|
98
|
+
// the precedence below only decides ties left by pre-uniqueness runs:
|
|
99
|
+
// app registry (authoritative for its names, matching the pre-ADR
|
|
100
|
+
// handler order), then browser sessions, then processes.
|
|
101
|
+
if (appSession?.surfaces?.has(name)) {
|
|
102
|
+
return { kind: "app", entry: appSession.surfaces.get(name) };
|
|
103
|
+
}
|
|
104
|
+
if (browserRegistry?.sessions?.has(name)) {
|
|
105
|
+
return { kind: "browser", surface };
|
|
106
|
+
}
|
|
107
|
+
if (processRegistry?.has(name)) {
|
|
108
|
+
return { kind: "process", name, entry: processRegistry.get(name) };
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
kind: "error",
|
|
112
|
+
message: `No surface named "${name}" is open in this context. Open it first with a startSurface step (or a goTo step for a browser).`,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Surface-less: the active surface, whatever its kind.
|
|
117
|
+
const active = currentSurface(tracker, registries);
|
|
118
|
+
if (active) {
|
|
119
|
+
if (active.kind === "app") {
|
|
120
|
+
return { kind: "app", entry: appSession.surfaces.get(active.name) };
|
|
121
|
+
}
|
|
122
|
+
if (active.kind === "process") {
|
|
123
|
+
return {
|
|
124
|
+
kind: "process",
|
|
125
|
+
name: active.name,
|
|
126
|
+
entry: processRegistry?.get(active.name),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return { kind: "browser" };
|
|
130
|
+
}
|
|
131
|
+
// No tracker, or nothing live in it: legacy defaults so handlers invoked
|
|
132
|
+
// outside runContext keep their pre-ADR behavior — a live driver means the
|
|
133
|
+
// browser, an app session with an active app means that app.
|
|
134
|
+
if (driver)
|
|
135
|
+
return { kind: "browser" };
|
|
136
|
+
if (appSession?.activeApp && appSession.surfaces?.has(appSession.activeApp)) {
|
|
137
|
+
return { kind: "app", entry: appSession.surfaces.get(appSession.activeApp) };
|
|
138
|
+
}
|
|
139
|
+
return { kind: "error", message: NO_ACTIVE_SURFACE_MESSAGE };
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=activeSurface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeSurface.js","sourceRoot":"","sources":["../../../src/core/tests/activeSurface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { resolveHeavyDepPath, resolveHeavyDepPathInCache, resolveHeavyDepSource, ensureRuntimeInstalled } from "../../runtime/loader.js";
|
|
2
2
|
import { type ManagedWdaHit } from "../../runtime/wdaProducts.js";
|
|
3
3
|
import { stepTargetsAppSurface } from "../../runtime/browserStepKeys.js";
|
|
4
|
+
import { type ActiveSurfaceTracker } from "./activeSurface.js";
|
|
4
5
|
export { classifyAppIdentifier, defaultAppSurfaceName, classifyNativeSelector, buildUiaLocator, buildAxLocator, buildUiAutomator2Locator, buildXCUITestLocator, createAppSessionState, appSurfacePreflight, probeMacAccessibility, isAppDriverRequired, stepTargetsAppSurface, resolveAppSurfaceRef, ensureAppForeground, startAppSurface, findAppElement, buildAppLocator, closeAppSurface, teardownAppSession, snapshotAppServerDescendants, reapConsoleOrphans, listWindowsDescendantPids, invalidateStaleAppiumManifest, probeIosToolchain, };
|
|
5
6
|
export type { AppSessionState, AppSurfaceEntry };
|
|
6
7
|
type AppIdentifierKind = "path" | "aumid" | "id";
|
|
@@ -111,6 +112,7 @@ interface AppSessionState {
|
|
|
111
112
|
appiumHome?: string;
|
|
112
113
|
surfaces: Map<string, AppSurfaceEntry>;
|
|
113
114
|
activeApp?: string;
|
|
115
|
+
tracker?: ActiveSurfaceTracker;
|
|
114
116
|
recordingHost: {
|
|
115
117
|
state: {
|
|
116
118
|
recordings: any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appSurface.d.ts","sourceRoot":"","sources":["../../../src/core/tests/appSurface.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAUtC,OAAO,EACL,qBAAqB,EAEtB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"appSurface.d.ts","sourceRoot":"","sources":["../../../src/core/tests/appSurface.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ import { normalizeDeviceDescriptor } from "./androidEmulator.js";
|
|
|
20
20
|
import { APP_GESTURES } from "./appGestures.js";
|
|
21
21
|
import { isMobileTargetPlatform } from "./mobilePlatform.js";
|
|
22
22
|
import { stepTargetsAppSurface, stepOpensAppSurface, } from "../../runtime/browserStepKeys.js";
|
|
23
|
+
import { activateSurface, } from "./activeSurface.js";
|
|
23
24
|
import { validate } from "../../common/src/validate.js";
|
|
24
25
|
export { classifyAppIdentifier, defaultAppSurfaceName, classifyNativeSelector, buildUiaLocator, buildAxLocator, buildUiAutomator2Locator, buildXCUITestLocator, createAppSessionState, appSurfacePreflight,
|
|
25
26
|
// Exported as a test seam: the JXA probe must return a definitive boolean
|
|
@@ -1100,6 +1101,7 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps,
|
|
|
1100
1101
|
deviceName,
|
|
1101
1102
|
});
|
|
1102
1103
|
appSession.activeApp = name;
|
|
1104
|
+
activateSurface(appSession.tracker, { kind: "app", name });
|
|
1103
1105
|
// Window-selector baseline (ADR 01036, desktop): capture the main window
|
|
1104
1106
|
// handle / pid / known-vs-foreign handles (Windows) or the (title, frame)
|
|
1105
1107
|
// baseline (macOS) so `-1` "newest window" diffs and pid-filtered adoption
|
|
@@ -1169,11 +1171,19 @@ async function startAppSurface({ config, step, appSession, platform, serverDeps,
|
|
|
1169
1171
|
}
|
|
1170
1172
|
// Bring an app surface's app to the foreground on its shared Android device
|
|
1171
1173
|
// session before acting on it — the active-surface switch, mirroring browser
|
|
1172
|
-
// tab focus.
|
|
1173
|
-
//
|
|
1174
|
+
// tab focus. Desktop surfaces (one driver per app) need no driver-level
|
|
1175
|
+
// foregrounding, but the ACTIVE-SURFACE pointer still moves (ADR 01081): a
|
|
1176
|
+
// step that references an app surface makes it the surface later
|
|
1177
|
+
// surface-less steps act on, uniformly across kinds. Returns an error string
|
|
1178
|
+
// if activation fails.
|
|
1174
1179
|
async function ensureAppForeground(entry, appSession) {
|
|
1175
|
-
if (!
|
|
1180
|
+
if (!appSession)
|
|
1181
|
+
return {};
|
|
1182
|
+
if (!entry.deviceName) {
|
|
1183
|
+
appSession.activeApp = entry.name;
|
|
1184
|
+
activateSurface(appSession.tracker, { kind: "app", name: entry.name });
|
|
1176
1185
|
return {};
|
|
1186
|
+
}
|
|
1177
1187
|
const session = appSession.deviceSessions?.get(entry.deviceName);
|
|
1178
1188
|
// A surface carrying a deviceName must have a live device session. A missing
|
|
1179
1189
|
// one is an internal inconsistency — fail loudly instead of skipping the
|
|
@@ -1183,18 +1193,19 @@ async function ensureAppForeground(entry, appSession) {
|
|
|
1183
1193
|
error: `Couldn't switch to app surface "${entry.name}" (${entry.appId}): no active session for device "${entry.deviceName}".`,
|
|
1184
1194
|
};
|
|
1185
1195
|
}
|
|
1186
|
-
if (session.foregroundApp
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
}
|
|
1196
|
+
if (session.foregroundApp !== entry.appId) {
|
|
1197
|
+
try {
|
|
1198
|
+
await session.driver.activateApp(entry.appId);
|
|
1199
|
+
}
|
|
1200
|
+
catch (error) {
|
|
1201
|
+
return {
|
|
1202
|
+
error: `Couldn't switch to app surface "${entry.name}" (${entry.appId}) on device "${entry.deviceName}": ${error?.message ?? error}`,
|
|
1203
|
+
};
|
|
1204
|
+
}
|
|
1205
|
+
session.foregroundApp = entry.appId;
|
|
1195
1206
|
}
|
|
1196
|
-
session.foregroundApp = entry.appId;
|
|
1197
1207
|
appSession.activeApp = entry.name;
|
|
1208
|
+
activateSurface(appSession.tracker, { kind: "app", name: entry.name });
|
|
1198
1209
|
return {};
|
|
1199
1210
|
}
|
|
1200
1211
|
// Close a registered app surface and deregister it. On desktop, ending the
|