@appium/base-driver 10.0.1 → 10.1.1
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/build/lib/basedriver/capabilities.d.ts +1 -1
- package/build/lib/basedriver/capabilities.d.ts.map +1 -1
- package/build/lib/basedriver/capabilities.js +3 -1
- package/build/lib/basedriver/capabilities.js.map +1 -1
- package/build/lib/basedriver/helpers.d.ts +2 -2
- package/build/lib/basedriver/helpers.js +2 -2
- package/build/lib/express/middleware.d.ts +11 -0
- package/build/lib/express/middleware.d.ts.map +1 -1
- package/build/lib/express/middleware.js +35 -17
- package/build/lib/express/middleware.js.map +1 -1
- package/build/lib/express/server.d.ts +6 -1
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +88 -48
- package/build/lib/express/server.js.map +1 -1
- package/build/lib/helpers/capabilities.d.ts +1 -1
- package/build/lib/helpers/capabilities.js +2 -2
- package/build/lib/protocol/routes.d.ts +328 -184
- package/build/lib/protocol/routes.d.ts.map +1 -1
- package/build/lib/protocol/routes.js +252 -156
- package/build/lib/protocol/routes.js.map +1 -1
- package/lib/basedriver/capabilities.ts +6 -4
- package/lib/basedriver/helpers.js +2 -2
- package/lib/express/middleware.js +35 -16
- package/lib/express/server.js +101 -59
- package/lib/helpers/capabilities.js +2 -2
- package/lib/protocol/routes.js +255 -159
- package/package.json +7 -7
|
@@ -25,7 +25,7 @@ export declare function mergeCaps<T extends Constraints, U extends Constraints,
|
|
|
25
25
|
export declare function validateCaps<C extends Constraints>(caps: Capabilities<C>, constraints?: C | undefined, opts?: ValidateCapsOpts | undefined): Capabilities<C>;
|
|
26
26
|
/**
|
|
27
27
|
* Standard, non-prefixed capabilities
|
|
28
|
-
* @see https://www.w3.org/TR/
|
|
28
|
+
* @see https://www.w3.org/TR/webdriver2/#dfn-table-of-standard-capabilities)
|
|
29
29
|
*/
|
|
30
30
|
export declare const STANDARD_CAPS: Readonly<Set<keyof StandardCapabilities>>;
|
|
31
31
|
export declare function isStandardCap(cap: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,WAAW,CAAC;AAOnB,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,wBAAwB,mBAAmC,CAAC;AAEzE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI;IAC9C,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4CAA4C;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,WAAW,EACrB,OAAO,SAAS,YAAY,CAAC,CAAC,CAAC,EAC/B,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,EAEjC,OAAO,GAAE,OAAO,GAAG,SAAyB,EAC5C,SAAS,GAAE,SAAS,GAAG,SAA2B,GACjD,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAkBpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAChD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,IAAI,GAAE,gBAAgB,GAAG,SAAc,GACtC,YAAY,CAAC,CAAC,CAAC,CAsCjB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,WAAW,CAAC;AAOnB,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,wBAAwB,mBAAmC,CAAC;AAEzE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,IAAI;IAC9C,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4CAA4C;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,WAAW,EACrB,OAAO,SAAS,YAAY,CAAC,CAAC,CAAC,EAC/B,SAAS,SAAS,YAAY,CAAC,CAAC,CAAC,EAEjC,OAAO,GAAE,OAAO,GAAG,SAAyB,EAC5C,SAAS,GAAE,SAAS,GAAG,SAA2B,GACjD,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAkBpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAChD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,IAAI,GAAE,gBAAgB,GAAG,SAAc,GACtC,YAAY,CAAC,CAAC,CAAC,CAsCjB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,2CAiBzB,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAiDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,WAAW,EACvD,EACE,WAAgB,EAChB,UAAe,EAChB,EAAE,eAAe,CAAC,CAAC,CAAC,GACpB,MAAM,EAAE,CAWV;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAC7C,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,kBAAkB,GAAE,OAAO,GAAG,SAAgB,GAC7C,UAAU,CAAC,CAAC,CAAC,CA8Ff;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,WAAW,EACrB,OAAO,SAAS,eAAe,CAAC,CAAC,CAAC,EAElC,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,CAAC,GAAG,SAAmB,EACpC,kBAAkB,GAAE,OAAO,GAAG,SAAgB,GAC7C,YAAY,CAAC,CAAC,CAAC,CAmBjB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAoD9G;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAchH"}
|
|
@@ -72,7 +72,7 @@ function validateCaps(caps, constraints = {}, opts = {}) {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Standard, non-prefixed capabilities
|
|
75
|
-
* @see https://www.w3.org/TR/
|
|
75
|
+
* @see https://www.w3.org/TR/webdriver2/#dfn-table-of-standard-capabilities)
|
|
76
76
|
*/
|
|
77
77
|
exports.STANDARD_CAPS = Object.freeze(new Set(([
|
|
78
78
|
'browserName',
|
|
@@ -83,7 +83,9 @@ exports.STANDARD_CAPS = Object.freeze(new Set(([
|
|
|
83
83
|
'proxy',
|
|
84
84
|
'setWindowRect',
|
|
85
85
|
'timeouts',
|
|
86
|
+
'strictFileInteractability',
|
|
86
87
|
'unhandledPromptBehavior',
|
|
88
|
+
'userAgent',
|
|
87
89
|
'webSocketUrl',
|
|
88
90
|
])));
|
|
89
91
|
const STANDARD_CAPS_LOWER = new Set([...exports.STANDARD_CAPS].map((cap) => cap.toLowerCase()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":";;;;;;AAqCA,8BA0BC;AAKD,oCA0CC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../lib/basedriver/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Perform
|
|
2
|
+
* Perform initial application package configuration
|
|
3
3
|
* to prepare it for the further consumption by a driver:
|
|
4
4
|
*
|
|
5
5
|
* - Manages caching logic
|
|
6
6
|
* - Downloads the app from a remote URL to the local filesystem
|
|
7
7
|
* - Determines package name
|
|
8
|
-
* - Checks basic
|
|
8
|
+
* - Checks basic requirements on the application package
|
|
9
9
|
*
|
|
10
10
|
* @param {string} app
|
|
11
11
|
* @param {string|string[]|import('@appium/types').ConfigureAppOptions} options
|
|
@@ -63,13 +63,13 @@ process.on('exit', () => {
|
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
/**
|
|
66
|
-
* Perform
|
|
66
|
+
* Perform initial application package configuration
|
|
67
67
|
* to prepare it for the further consumption by a driver:
|
|
68
68
|
*
|
|
69
69
|
* - Manages caching logic
|
|
70
70
|
* - Downloads the app from a remote URL to the local filesystem
|
|
71
71
|
* - Determines package name
|
|
72
|
-
* - Checks basic
|
|
72
|
+
* - Checks basic requirements on the application package
|
|
73
73
|
*
|
|
74
74
|
* @param {string} app
|
|
75
75
|
* @param {string|string[]|import('@appium/types').ConfigureAppOptions} options
|
|
@@ -27,6 +27,17 @@ export function handleLogContext(req: import("express").Request, res: import("ex
|
|
|
27
27
|
* @returns {any}
|
|
28
28
|
*/
|
|
29
29
|
export function defaultToJSONContentType(req: import("express").Request, res: import("express").Response, next: import("express").NextFunction): any;
|
|
30
|
+
/**
|
|
31
|
+
* Core function to handle WebSocket upgrade requests by matching the request path
|
|
32
|
+
* against registered WebSocket handlers in the webSocketsMapping.
|
|
33
|
+
*
|
|
34
|
+
* @param {import('http').IncomingMessage} req - The HTTP request
|
|
35
|
+
* @param {import('stream').Duplex} socket - The network socket
|
|
36
|
+
* @param {Buffer} head - The first packet of the upgraded stream
|
|
37
|
+
* @param {import('@appium/types').StringRecord<import('@appium/types').WSServer>} webSocketsMapping - Mapping of paths to WebSocket servers
|
|
38
|
+
* @returns {boolean} - Returns true if the upgrade was handled, false otherwise
|
|
39
|
+
*/
|
|
40
|
+
export function tryHandleWebSocketUpgrade(req: import("http").IncomingMessage, socket: import("stream").Duplex, head: Buffer, webSocketsMapping: import("@appium/types").StringRecord<import("@appium/types").WSServer>): boolean;
|
|
30
41
|
/**
|
|
31
42
|
*
|
|
32
43
|
* @param {import('@appium/types').StringRecord<import('@appium/types').WSServer>} webSocketsMapping
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../lib/express/middleware.js"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,sCALW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,GAC5B,GAAG,CAef;AAED;;;GAGG;AACH,uDAHW,MAAM,GACJ,OAAO,SAAS,EAAE,cAAc,CAc5C;AAED;;;;;;GAMG;AACH,sCALW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,GAC5B,GAAG,CAgBf;AAED;;;;;;GAMG;AACH,8CALW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,GAC5B,GAAG,CAOf;AAED;;;;GAIG;AACH,iDAHW,OAAO,eAAe,EAAE,YAAY,CAAC,OAAO,eAAe,EAAE,QAAQ,CAAC,GACpE,OAAO,SAAS,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../lib/express/middleware.js"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,sCALW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,GAC5B,GAAG,CAef;AAED;;;GAGG;AACH,uDAHW,MAAM,GACJ,OAAO,SAAS,EAAE,cAAc,CAc5C;AAED;;;;;;GAMG;AACH,sCALW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,GAC5B,GAAG,CAgBf;AAED;;;;;;GAMG;AACH,8CALW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,GAC5B,GAAG,CAOf;AAED;;;;;;;;;GASG;AACH,+CANW,OAAO,MAAM,EAAE,eAAe,UAC9B,OAAO,QAAQ,EAAE,MAAM,QACvB,MAAM,qBACN,OAAO,eAAe,EAAE,YAAY,CAAC,OAAO,eAAe,EAAE,QAAQ,CAAC,GACpE,OAAO,CAuBnB;AAED;;;;GAIG;AACH,iDAHW,OAAO,eAAe,EAAE,YAAY,CAAC,OAAO,eAAe,EAAE,QAAQ,CAAC,GACpE,OAAO,SAAS,EAAE,cAAc,CAS5C;AAED;;;;;GAKG;AACH,qCALW,KAAK,OACL,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAC1B,OAAO,SAAS,EAAE,YAAY,QAUxC;AAED;;;GAGG;AACH,qCAHW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,QAMpC"}
|
|
@@ -8,6 +8,7 @@ exports.allowCrossDomain = allowCrossDomain;
|
|
|
8
8
|
exports.allowCrossDomainAsyncExecute = allowCrossDomainAsyncExecute;
|
|
9
9
|
exports.handleLogContext = handleLogContext;
|
|
10
10
|
exports.defaultToJSONContentType = defaultToJSONContentType;
|
|
11
|
+
exports.tryHandleWebSocketUpgrade = tryHandleWebSocketUpgrade;
|
|
11
12
|
exports.handleUpgrade = handleUpgrade;
|
|
12
13
|
exports.catchAllHandler = catchAllHandler;
|
|
13
14
|
exports.catch404Handler = catch404Handler;
|
|
@@ -85,6 +86,38 @@ function defaultToJSONContentType(req, res, next) {
|
|
|
85
86
|
}
|
|
86
87
|
next();
|
|
87
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Core function to handle WebSocket upgrade requests by matching the request path
|
|
91
|
+
* against registered WebSocket handlers in the webSocketsMapping.
|
|
92
|
+
*
|
|
93
|
+
* @param {import('http').IncomingMessage} req - The HTTP request
|
|
94
|
+
* @param {import('stream').Duplex} socket - The network socket
|
|
95
|
+
* @param {Buffer} head - The first packet of the upgraded stream
|
|
96
|
+
* @param {import('@appium/types').StringRecord<import('@appium/types').WSServer>} webSocketsMapping - Mapping of paths to WebSocket servers
|
|
97
|
+
* @returns {boolean} - Returns true if the upgrade was handled, false otherwise
|
|
98
|
+
*/
|
|
99
|
+
function tryHandleWebSocketUpgrade(req, socket, head, webSocketsMapping) {
|
|
100
|
+
if (lodash_1.default.toLower(req.headers?.upgrade) !== 'websocket') {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
let currentPathname;
|
|
104
|
+
try {
|
|
105
|
+
currentPathname = new URL(req.url ?? '', 'http://localhost').pathname;
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
currentPathname = req.url ?? '';
|
|
109
|
+
}
|
|
110
|
+
for (const [pathname, wsServer] of lodash_1.default.toPairs(webSocketsMapping)) {
|
|
111
|
+
if ((0, path_to_regexp_1.match)(pathname)(currentPathname)) {
|
|
112
|
+
wsServer.handleUpgrade(req, socket, head, (ws) => {
|
|
113
|
+
wsServer.emit('connection', ws, req);
|
|
114
|
+
});
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
logger_1.default.info(`Did not match the websocket upgrade request at ${currentPathname} to any known route`);
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
88
121
|
/**
|
|
89
122
|
*
|
|
90
123
|
* @param {import('@appium/types').StringRecord<import('@appium/types').WSServer>} webSocketsMapping
|
|
@@ -92,24 +125,9 @@ function defaultToJSONContentType(req, res, next) {
|
|
|
92
125
|
*/
|
|
93
126
|
function handleUpgrade(webSocketsMapping) {
|
|
94
127
|
return (req, res, next) => {
|
|
95
|
-
if (
|
|
96
|
-
return
|
|
97
|
-
}
|
|
98
|
-
let currentPathname;
|
|
99
|
-
try {
|
|
100
|
-
currentPathname = new URL(req.url ?? '').pathname;
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
currentPathname = req.url ?? '';
|
|
104
|
-
}
|
|
105
|
-
for (const [pathname, wsServer] of lodash_1.default.toPairs(webSocketsMapping)) {
|
|
106
|
-
if ((0, path_to_regexp_1.match)(pathname)(currentPathname)) {
|
|
107
|
-
return wsServer.handleUpgrade(req, req.socket, Buffer.from(''), (ws) => {
|
|
108
|
-
wsServer.emit('connection', ws, req);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
128
|
+
if (tryHandleWebSocketUpgrade(req, req.socket, Buffer.from(''), webSocketsMapping)) {
|
|
129
|
+
return;
|
|
111
130
|
}
|
|
112
|
-
logger_1.default.info(`Did not match the websocket upgrade request at ${currentPathname} to any known route`);
|
|
113
131
|
next();
|
|
114
132
|
};
|
|
115
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../lib/express/middleware.js"],"names":[],"mappings":";;;;;;AAkBA,4CAaC;AAMD,oEAYC;AASD,4CAcC;AASD,4DAKC;AAOD,
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../lib/express/middleware.js"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export function server(opts: ServerOpts): Promise<AppiumServer>;
|
|
|
8
8
|
* Sets up some Express middleware and stuff
|
|
9
9
|
* @param {ConfigureServerOpts} opts
|
|
10
10
|
*/
|
|
11
|
-
export function configureServer({ app, addRoutes, allowCors, basePath, extraMethodMap, webSocketsMapping, }: ConfigureServerOpts): void;
|
|
11
|
+
export function configureServer({ app, addRoutes, allowCors, basePath, extraMethodMap, webSocketsMapping, useLegacyUpgradeHandler, }: ConfigureServerOpts): void;
|
|
12
12
|
/**
|
|
13
13
|
* Normalize base path string
|
|
14
14
|
* @param {string} basePath
|
|
@@ -102,5 +102,10 @@ export type ConfigureServerOpts = {
|
|
|
102
102
|
basePath?: string | undefined;
|
|
103
103
|
extraMethodMap?: Readonly<import("@appium/types").DriverMethodMap<import("@appium/types").ExternalDriver<import("@appium/types").Constraints, string, import("@appium/types").StringRecord, import("@appium/types").StringRecord, import("@appium/types").DefaultCreateSessionResult<import("@appium/types").Constraints>, void, import("@appium/types").StringRecord>>> | undefined;
|
|
104
104
|
webSocketsMapping?: import("@appium/types").StringRecord<any> | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* - Whether to use legacy Express middleware for WebSocket upgrades.
|
|
107
|
+
* Set to false when using shouldUpgradeCallback on the HTTP server (Node.js >= 22.21.0 or >= 24.9.0).
|
|
108
|
+
*/
|
|
109
|
+
useLegacyUpgradeHandler?: boolean | undefined;
|
|
105
110
|
};
|
|
106
111
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":"AAkCA;;;;GAIG;AACH,6BAHW,UAAU,GACR,OAAO,CAAC,YAAY,CAAC,CAiEjC;AAED;;;GAGG;AACH,sIAFW,mBAAmB,QAuD7B;AAED;;;;GAIG;AACH,4CAHW,MAAM,GACJ,MAAM,CAkBlB;;;;;;;;gBAkLa,OAAO,MAAM,EAAE,MAAM;;;;UACrB,MAAM;;;;sBACN,MAAM;;;;;;;;;;;2BAOP,OAAO,eAAe,EAAE,YAAY;wBAIpC,OAAO,eAAe,EAAE,SAAS,CAAC,OAAO,eAAe,EAAE,cAAc,CAAC;;;;;;;;gBAMxE,OAAO,MAAM,EAAE,MAAM;;;;YACrB,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI;;;;sBACrB,MAAM;;;;;;6BACN,MAAM;;;;;;8BAQN,wBAAwB;UACxB,MAAM;;;;;;;;;;;;;6CAcT,OAAO,SAAS,EAAE,OAAO,sDAEvB,IAAI;;;;;;;;;;;;SAaH,OAAO,SAAS,EAAE,OAAO;eACzB,wBAAwB"}
|
|
@@ -23,38 +23,6 @@ const bluebird_1 = __importDefault(require("bluebird"));
|
|
|
23
23
|
const constants_1 = require("../constants");
|
|
24
24
|
const support_1 = require("@appium/support");
|
|
25
25
|
const KEEP_ALIVE_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
* @param {import('express').Express} app
|
|
29
|
-
* @param {Partial<import('@appium/types').ServerArgs>} [cliArgs]
|
|
30
|
-
* @returns {Promise<http.Server>}
|
|
31
|
-
*/
|
|
32
|
-
async function createServer(app, cliArgs) {
|
|
33
|
-
const { sslCertificatePath, sslKeyPath } = cliArgs ?? {};
|
|
34
|
-
if (!sslCertificatePath && !sslKeyPath) {
|
|
35
|
-
return http_1.default.createServer(app);
|
|
36
|
-
}
|
|
37
|
-
if (!sslCertificatePath || !sslKeyPath) {
|
|
38
|
-
throw new Error(`Both certificate path and key path must be provided to enable TLS`);
|
|
39
|
-
}
|
|
40
|
-
const certKey = [sslCertificatePath, sslKeyPath];
|
|
41
|
-
const zipped = lodash_1.default.zip(await bluebird_1.default.all(certKey.map((p) => support_1.fs.exists(p))), ['certificate', 'key'], certKey);
|
|
42
|
-
for (const [exists, desc, p] of zipped) {
|
|
43
|
-
if (!exists) {
|
|
44
|
-
throw new Error(`The provided SSL ${desc} at '${p}' does not exist or is not accessible`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const [cert, key] = await bluebird_1.default.all(certKey.map((p) => support_1.fs.readFile(p, 'utf8')));
|
|
48
|
-
logger_1.default.debug('Enabling TLS/SPDY on the server using the provided certificate');
|
|
49
|
-
return require('spdy').createServer({
|
|
50
|
-
cert,
|
|
51
|
-
key,
|
|
52
|
-
spdy: {
|
|
53
|
-
plain: false,
|
|
54
|
-
ssl: true,
|
|
55
|
-
}
|
|
56
|
-
}, app);
|
|
57
|
-
}
|
|
58
26
|
/**
|
|
59
27
|
*
|
|
60
28
|
* @param {ServerOpts} opts
|
|
@@ -77,6 +45,7 @@ async function server(opts) {
|
|
|
77
45
|
keepAliveTimeout,
|
|
78
46
|
gracefulShutdownTimeout: cliArgs.shutdownTimeout,
|
|
79
47
|
});
|
|
48
|
+
const useLegacyUpgradeHandler = !hasShouldUpgradeCallback(httpServer);
|
|
80
49
|
configureServer({
|
|
81
50
|
app,
|
|
82
51
|
addRoutes: routeConfiguringFunction,
|
|
@@ -84,6 +53,7 @@ async function server(opts) {
|
|
|
84
53
|
basePath,
|
|
85
54
|
extraMethodMap,
|
|
86
55
|
webSocketsMapping: appiumServer.webSocketsMapping,
|
|
56
|
+
useLegacyUpgradeHandler,
|
|
87
57
|
});
|
|
88
58
|
// allow extensions to update the app and http server objects
|
|
89
59
|
for (const updater of serverUpdaters) {
|
|
@@ -111,7 +81,7 @@ async function server(opts) {
|
|
|
111
81
|
* Sets up some Express middleware and stuff
|
|
112
82
|
* @param {ConfigureServerOpts} opts
|
|
113
83
|
*/
|
|
114
|
-
function configureServer({ app, addRoutes, allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, webSocketsMapping = {}, }) {
|
|
84
|
+
function configureServer({ app, addRoutes, allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, webSocketsMapping = {}, useLegacyUpgradeHandler = true, }) {
|
|
115
85
|
basePath = normalizeBasePath(basePath);
|
|
116
86
|
app.use(express_logging_1.endLogFormatter);
|
|
117
87
|
app.use(middleware_1.handleLogContext);
|
|
@@ -122,7 +92,12 @@ function configureServer({ app, addRoutes, allowCors = true, basePath = constant
|
|
|
122
92
|
// crash routes, for testing
|
|
123
93
|
app.use(`${basePath}/produce_error`, crash_1.produceError);
|
|
124
94
|
app.use(`${basePath}/crash`, crash_1.produceCrash);
|
|
125
|
-
|
|
95
|
+
// Only use legacy Express middleware for WebSocket upgrades if shouldUpgradeCallback is not available
|
|
96
|
+
// When shouldUpgradeCallback is available, upgrades are handled directly on the HTTP server
|
|
97
|
+
// to avoid Express middleware timeout issues with long-lived connections
|
|
98
|
+
if (useLegacyUpgradeHandler) {
|
|
99
|
+
app.use((0, middleware_1.handleUpgrade)(webSocketsMapping));
|
|
100
|
+
}
|
|
126
101
|
if (allowCors) {
|
|
127
102
|
app.use(middleware_1.allowCrossDomain);
|
|
128
103
|
}
|
|
@@ -145,6 +120,57 @@ function configureServer({ app, addRoutes, allowCors = true, basePath = constant
|
|
|
145
120
|
app.all('/test/guinea-pig-scrollable', static_1.guineaPigScrollable);
|
|
146
121
|
app.all('/test/guinea-pig-app-banner', static_1.guineaPigAppBanner);
|
|
147
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Normalize base path string
|
|
125
|
+
* @param {string} basePath
|
|
126
|
+
* @returns {string}
|
|
127
|
+
*/
|
|
128
|
+
function normalizeBasePath(basePath) {
|
|
129
|
+
if (!lodash_1.default.isString(basePath)) {
|
|
130
|
+
throw new Error(`Invalid path prefix ${basePath}`);
|
|
131
|
+
}
|
|
132
|
+
// ensure the path prefix does not end in '/', since our method map
|
|
133
|
+
// starts all paths with '/'
|
|
134
|
+
basePath = basePath.replace(/\/$/, '');
|
|
135
|
+
// likewise, ensure the path prefix does always START with /, unless the path
|
|
136
|
+
// is empty meaning no base path at all
|
|
137
|
+
if (basePath !== '' && !basePath.startsWith('/')) {
|
|
138
|
+
basePath = `/${basePath}`;
|
|
139
|
+
}
|
|
140
|
+
return basePath;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
*
|
|
144
|
+
* @param {import('express').Express} app
|
|
145
|
+
* @param {Partial<import('@appium/types').ServerArgs>} [cliArgs]
|
|
146
|
+
* @returns {Promise<http.Server>}
|
|
147
|
+
*/
|
|
148
|
+
async function createServer(app, cliArgs) {
|
|
149
|
+
const { sslCertificatePath, sslKeyPath } = cliArgs ?? {};
|
|
150
|
+
if (!sslCertificatePath && !sslKeyPath) {
|
|
151
|
+
return http_1.default.createServer(app);
|
|
152
|
+
}
|
|
153
|
+
if (!sslCertificatePath || !sslKeyPath) {
|
|
154
|
+
throw new Error(`Both certificate path and key path must be provided to enable TLS`);
|
|
155
|
+
}
|
|
156
|
+
const certKey = [sslCertificatePath, sslKeyPath];
|
|
157
|
+
const zipped = lodash_1.default.zip(await bluebird_1.default.all(certKey.map((p) => support_1.fs.exists(p))), ['certificate', 'key'], certKey);
|
|
158
|
+
for (const [exists, desc, p] of zipped) {
|
|
159
|
+
if (!exists) {
|
|
160
|
+
throw new Error(`The provided SSL ${desc} at '${p}' does not exist or is not accessible`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const [cert, key] = await bluebird_1.default.all(certKey.map((p) => support_1.fs.readFile(p, 'utf8')));
|
|
164
|
+
logger_1.default.debug('Enabling TLS/SPDY on the server using the provided certificate');
|
|
165
|
+
return require('spdy').createServer({
|
|
166
|
+
cert,
|
|
167
|
+
key,
|
|
168
|
+
spdy: {
|
|
169
|
+
plain: false,
|
|
170
|
+
ssl: true,
|
|
171
|
+
}
|
|
172
|
+
}, app);
|
|
173
|
+
}
|
|
148
174
|
/**
|
|
149
175
|
* Monkeypatches the `http.Server` instance and returns a {@linkcode AppiumServer}.
|
|
150
176
|
* This function _mutates_ the `httpServer` parameter.
|
|
@@ -165,6 +191,19 @@ function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownT
|
|
|
165
191
|
// eslint-disable-next-line dot-notation
|
|
166
192
|
return Boolean(this['_spdyState']?.secure);
|
|
167
193
|
};
|
|
194
|
+
// This avoids Express middleware timeout issues with long-lived WebSocket connections
|
|
195
|
+
// See: https://github.com/appium/appium/issues/20760
|
|
196
|
+
// See: https://github.com/nodejs/node/pull/59824
|
|
197
|
+
if (hasShouldUpgradeCallback(httpServer)) {
|
|
198
|
+
// shouldUpgradeCallback only returns a boolean to indicate if the upgrade should proceed
|
|
199
|
+
// eslint-disable-next-line dot-notation
|
|
200
|
+
appiumServer['shouldUpgradeCallback'] = (req) => lodash_1.default.toLower(req.headers?.upgrade) === 'websocket';
|
|
201
|
+
appiumServer.on('upgrade', (req, socket, head) => {
|
|
202
|
+
if (!(0, middleware_1.tryHandleWebSocketUpgrade)(req, socket, head, appiumServer.webSocketsMapping)) {
|
|
203
|
+
socket.destroy();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
168
207
|
// http.Server.close() only stops new connections, but we need to wait until
|
|
169
208
|
// all connections are closed and the `close` event is emitted
|
|
170
209
|
const originalClose = appiumServer.close.bind(appiumServer);
|
|
@@ -226,23 +265,22 @@ async function startServer({ httpServer, port, hostname, keepAliveTimeout, reque
|
|
|
226
265
|
await startPromise;
|
|
227
266
|
}
|
|
228
267
|
/**
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
* @
|
|
268
|
+
* Checks if the provided server instance supports `shouldUpgradeCallback`.
|
|
269
|
+
* This feature was added in Node.js v22.21.0 (LTS) and v24.9.0.
|
|
270
|
+
* @param {import('http').Server} server - The HTTP server instance to check
|
|
271
|
+
* @returns {boolean}
|
|
232
272
|
*/
|
|
233
|
-
function
|
|
234
|
-
if
|
|
235
|
-
|
|
273
|
+
function hasShouldUpgradeCallback(server) {
|
|
274
|
+
// Check if shouldUpgradeCallback is available on http.Server
|
|
275
|
+
// This is a runtime check that works regardless of TypeScript types
|
|
276
|
+
try {
|
|
277
|
+
// Use bracket notation to access property that may not exist in type definitions
|
|
278
|
+
// eslint-disable-next-line dot-notation
|
|
279
|
+
return typeof server['shouldUpgradeCallback'] !== 'undefined';
|
|
236
280
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
basePath = basePath.replace(/\/$/, '');
|
|
240
|
-
// likewise, ensure the path prefix does always START with /, unless the path
|
|
241
|
-
// is empty meaning no base path at all
|
|
242
|
-
if (basePath !== '' && !basePath.startsWith('/')) {
|
|
243
|
-
basePath = `/${basePath}`;
|
|
281
|
+
catch {
|
|
282
|
+
return false;
|
|
244
283
|
}
|
|
245
|
-
return basePath;
|
|
246
284
|
}
|
|
247
285
|
/**
|
|
248
286
|
* Options for {@linkcode startServer}.
|
|
@@ -306,5 +344,7 @@ function normalizeBasePath(basePath) {
|
|
|
306
344
|
* @property {string} [basePath]
|
|
307
345
|
* @property {MethodMap} [extraMethodMap]
|
|
308
346
|
* @property {import('@appium/types').StringRecord} [webSocketsMapping={}]
|
|
347
|
+
* @property {boolean} [useLegacyUpgradeHandler=true] - Whether to use legacy Express middleware for WebSocket upgrades.
|
|
348
|
+
* Set to false when using shouldUpgradeCallback on the HTTP server (Node.js >= 22.21.0 or >= 24.9.0).
|
|
309
349
|
*/
|
|
310
350
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ exports.isW3cCaps = isW3cCaps;
|
|
|
8
8
|
exports.fixCaps = fixCaps;
|
|
9
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
10
10
|
/**
|
|
11
|
-
* Determine whether the given
|
|
11
|
+
* Determine whether the given argument is valid
|
|
12
12
|
* W3C capabilities instance.
|
|
13
13
|
*
|
|
14
14
|
* @param {any} caps
|
|
@@ -57,7 +57,7 @@ function fixCaps(oldCaps, desiredCapConstraints, log) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
// int capabilities are often sent in as strings by frameworks
|
|
60
|
-
let intCaps = /** @type {import('type-fest').
|
|
60
|
+
let intCaps = /** @type {import('type-fest').KeyAsString<typeof caps>[]} */ (lodash_1.default.keys(lodash_1.default.pickBy(desiredCapConstraints, (k) => k.isNumber === true)));
|
|
61
61
|
for (let cap of intCaps) {
|
|
62
62
|
let value = oldCaps[cap];
|
|
63
63
|
if (lodash_1.default.isString(value)) {
|