@appium/base-driver 10.2.0 → 10.2.2
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/LICENSE +201 -0
- package/build/lib/basedriver/capabilities.js +7 -7
- package/build/lib/basedriver/capabilities.js.map +1 -1
- package/build/lib/basedriver/commands/event.d.ts +1 -1
- package/build/lib/basedriver/commands/event.d.ts.map +1 -1
- package/build/lib/basedriver/commands/execute.d.ts +1 -1
- package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
- package/build/lib/basedriver/commands/find.d.ts +1 -1
- package/build/lib/basedriver/commands/find.d.ts.map +1 -1
- package/build/lib/basedriver/commands/mixin.d.ts +1 -1
- package/build/lib/basedriver/commands/mixin.d.ts.map +1 -1
- package/build/lib/basedriver/commands/timeout.d.ts +1 -1
- package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
- package/build/lib/basedriver/device-settings.d.ts +14 -23
- package/build/lib/basedriver/device-settings.d.ts.map +1 -1
- package/build/lib/basedriver/device-settings.js +11 -26
- package/build/lib/basedriver/device-settings.js.map +1 -1
- package/build/lib/basedriver/helpers.d.ts +36 -57
- package/build/lib/basedriver/helpers.d.ts.map +1 -1
- package/build/lib/basedriver/helpers.js +148 -239
- package/build/lib/basedriver/helpers.js.map +1 -1
- package/build/lib/basedriver/logger.d.ts +1 -2
- package/build/lib/basedriver/logger.d.ts.map +1 -1
- package/build/lib/basedriver/logger.js +2 -2
- package/build/lib/basedriver/logger.js.map +1 -1
- package/build/lib/basedriver/validation.d.ts.map +1 -1
- package/build/lib/basedriver/validation.js +3 -3
- package/build/lib/basedriver/validation.js.map +1 -1
- package/build/lib/constants.d.ts +1 -1
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/express/crash.d.ts +8 -2
- package/build/lib/express/crash.d.ts.map +1 -1
- package/build/lib/express/crash.js +6 -0
- package/build/lib/express/crash.js.map +1 -1
- package/build/lib/express/express-logging.d.ts +12 -2
- package/build/lib/express/express-logging.d.ts.map +1 -1
- package/build/lib/express/express-logging.js +34 -26
- package/build/lib/express/express-logging.js.map +1 -1
- package/build/lib/express/idempotency.d.ts +4 -10
- package/build/lib/express/idempotency.d.ts.map +1 -1
- package/build/lib/express/idempotency.js +69 -73
- package/build/lib/express/idempotency.js.map +1 -1
- package/build/lib/express/logger.d.ts +1 -2
- package/build/lib/express/logger.d.ts.map +1 -1
- package/build/lib/express/logger.js +2 -2
- package/build/lib/express/logger.js.map +1 -1
- package/build/lib/express/middleware.d.ts +37 -41
- package/build/lib/express/middleware.d.ts.map +1 -1
- package/build/lib/express/middleware.js +48 -60
- package/build/lib/express/middleware.js.map +1 -1
- package/build/lib/express/server.d.ts +57 -101
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +51 -128
- package/build/lib/express/server.js.map +1 -1
- package/build/lib/express/static.d.ts +10 -5
- package/build/lib/express/static.d.ts.map +1 -1
- package/build/lib/express/static.js +32 -42
- package/build/lib/express/static.js.map +1 -1
- package/build/lib/express/websocket.d.ts +22 -6
- package/build/lib/express/websocket.d.ts.map +1 -1
- package/build/lib/express/websocket.js +10 -15
- package/build/lib/express/websocket.js.map +1 -1
- package/build/lib/helpers/capabilities.d.ts +4 -16
- package/build/lib/helpers/capabilities.d.ts.map +1 -1
- package/build/lib/helpers/capabilities.js +36 -48
- package/build/lib/helpers/capabilities.js.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts +42 -78
- package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.js +87 -139
- package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.d.ts +1 -1
- package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.js +2 -2
- package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
- package/build/lib/jsonwp-status/status.d.ts +113 -158
- package/build/lib/jsonwp-status/status.d.ts.map +1 -1
- package/build/lib/jsonwp-status/status.js +10 -14
- package/build/lib/jsonwp-status/status.js.map +1 -1
- package/build/lib/protocol/bidi-commands.d.ts +31 -36
- package/build/lib/protocol/bidi-commands.d.ts.map +1 -1
- package/build/lib/protocol/bidi-commands.js +5 -5
- package/build/lib/protocol/bidi-commands.js.map +1 -1
- package/build/lib/protocol/errors.d.ts.map +1 -1
- package/build/lib/protocol/helpers.d.ts +7 -11
- package/build/lib/protocol/helpers.d.ts.map +1 -1
- package/build/lib/protocol/helpers.js +5 -9
- package/build/lib/protocol/helpers.js.map +1 -1
- package/build/lib/protocol/index.d.ts +4 -21
- package/build/lib/protocol/index.d.ts.map +1 -1
- package/build/lib/protocol/index.js.map +1 -1
- package/build/lib/protocol/protocol.d.ts +15 -1
- package/build/lib/protocol/protocol.d.ts.map +1 -1
- package/build/lib/protocol/protocol.js +50 -20
- package/build/lib/protocol/protocol.js.map +1 -1
- package/build/lib/protocol/routes.d.ts +8 -15
- package/build/lib/protocol/routes.d.ts.map +1 -1
- package/build/lib/protocol/routes.js +18 -33
- package/build/lib/protocol/routes.js.map +1 -1
- package/lib/basedriver/capabilities.ts +1 -1
- package/lib/basedriver/commands/event.ts +2 -2
- package/lib/basedriver/commands/execute.ts +2 -2
- package/lib/basedriver/commands/find.ts +2 -2
- package/lib/basedriver/commands/mixin.ts +1 -1
- package/lib/basedriver/commands/timeout.ts +2 -2
- package/lib/basedriver/{device-settings.js → device-settings.ts} +24 -35
- package/lib/basedriver/{helpers.js → helpers.ts} +208 -266
- package/lib/basedriver/logger.ts +3 -0
- package/lib/basedriver/validation.ts +2 -2
- package/lib/constants.ts +1 -1
- package/lib/express/crash.ts +15 -0
- package/lib/express/express-logging.ts +84 -0
- package/lib/express/{idempotency.js → idempotency.ts} +105 -89
- package/lib/express/logger.ts +3 -0
- package/lib/express/middleware.ts +187 -0
- package/lib/express/{server.js → server.ts} +175 -167
- package/lib/express/static.ts +77 -0
- package/lib/express/websocket.ts +81 -0
- package/lib/helpers/capabilities.ts +83 -0
- package/lib/jsonwp-proxy/protocol-converter.ts +284 -0
- package/lib/jsonwp-proxy/proxy.js +1 -1
- package/lib/jsonwp-status/{status.js → status.ts} +12 -15
- package/lib/protocol/{bidi-commands.js → bidi-commands.ts} +7 -5
- package/lib/protocol/errors.ts +1 -1
- package/lib/protocol/{helpers.js → helpers.ts} +8 -11
- package/lib/protocol/protocol.ts +57 -26
- package/lib/protocol/{routes.js → routes.ts} +29 -40
- package/package.json +11 -11
- package/tsconfig.json +3 -1
- package/lib/basedriver/logger.js +0 -4
- package/lib/express/crash.js +0 -11
- package/lib/express/express-logging.js +0 -60
- package/lib/express/logger.js +0 -4
- package/lib/express/middleware.js +0 -171
- package/lib/express/static.js +0 -76
- package/lib/express/websocket.js +0 -79
- package/lib/helpers/capabilities.js +0 -93
- package/lib/jsonwp-proxy/protocol-converter.js +0 -317
- /package/lib/protocol/{index.js → index.ts} +0 -0
|
@@ -13,7 +13,7 @@ const node_http_1 = __importDefault(require("node:http"));
|
|
|
13
13
|
const serve_favicon_1 = __importDefault(require("serve-favicon"));
|
|
14
14
|
const body_parser_1 = __importDefault(require("body-parser"));
|
|
15
15
|
const method_override_1 = __importDefault(require("method-override"));
|
|
16
|
-
const logger_1 =
|
|
16
|
+
const logger_1 = require("./logger");
|
|
17
17
|
const express_logging_1 = require("./express-logging");
|
|
18
18
|
const middleware_1 = require("./middleware");
|
|
19
19
|
const static_1 = require("./static");
|
|
@@ -24,12 +24,11 @@ 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
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
* @
|
|
29
|
-
* @returns {Promise<AppiumServer>}
|
|
27
|
+
* @param opts - Server options
|
|
28
|
+
* @returns Promise resolving to the Appium server instance
|
|
30
29
|
*/
|
|
31
30
|
async function server(opts) {
|
|
32
|
-
const { routeConfiguringFunction, port, hostname, cliArgs =
|
|
31
|
+
const { routeConfiguringFunction, port, hostname, cliArgs = {}, allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, serverUpdaters = [], keepAliveTimeout = KEEP_ALIVE_TIMEOUT_MS, requestTimeout, } = opts;
|
|
33
32
|
const app = (0, express_1.default)();
|
|
34
33
|
const httpServer = await createServer(app, cliArgs);
|
|
35
34
|
return await new bluebird_1.default(async (resolve, reject) => {
|
|
@@ -78,8 +77,9 @@ async function server(opts) {
|
|
|
78
77
|
});
|
|
79
78
|
}
|
|
80
79
|
/**
|
|
81
|
-
* Sets up
|
|
82
|
-
*
|
|
80
|
+
* Sets up Express middleware and routes.
|
|
81
|
+
*
|
|
82
|
+
* @param opts - Configuration options
|
|
83
83
|
*/
|
|
84
84
|
function configureServer({ app, addRoutes, allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, webSocketsMapping = {}, useLegacyUpgradeHandler = true, }) {
|
|
85
85
|
basePath = normalizeBasePath(basePath);
|
|
@@ -91,7 +91,7 @@ function configureServer({ app, addRoutes, allowCors = true, basePath = constant
|
|
|
91
91
|
// crash routes, for testing
|
|
92
92
|
app.use(`${basePath}/produce_error`, crash_1.produceError);
|
|
93
93
|
app.use(`${basePath}/crash`, crash_1.produceCrash);
|
|
94
|
-
// Only use legacy Express middleware for WebSocket upgrades if shouldUpgradeCallback is not available
|
|
94
|
+
// Only use legacy Express middleware for WebSocket upgrades if shouldUpgradeCallback is not available.
|
|
95
95
|
// When shouldUpgradeCallback is available, upgrades are handled directly on the HTTP server
|
|
96
96
|
// to avoid Express middleware timeout issues with long-lived connections
|
|
97
97
|
if (useLegacyUpgradeHandler) {
|
|
@@ -120,16 +120,16 @@ function configureServer({ app, addRoutes, allowCors = true, basePath = constant
|
|
|
120
120
|
app.all('/test/guinea-pig-app-banner', static_1.guineaPigAppBanner);
|
|
121
121
|
}
|
|
122
122
|
/**
|
|
123
|
-
* Normalize base path string
|
|
124
|
-
*
|
|
125
|
-
* @
|
|
123
|
+
* Normalize base path string (leading slash, no trailing slash).
|
|
124
|
+
*
|
|
125
|
+
* @param basePath - Raw base path
|
|
126
|
+
* @returns Normalized base path
|
|
126
127
|
*/
|
|
127
128
|
function normalizeBasePath(basePath) {
|
|
128
129
|
if (!lodash_1.default.isString(basePath)) {
|
|
129
130
|
throw new Error(`Invalid path prefix ${basePath}`);
|
|
130
131
|
}
|
|
131
|
-
// ensure the path prefix does not end in '/', since our method map
|
|
132
|
-
// starts all paths with '/'
|
|
132
|
+
// ensure the path prefix does not end in '/', since our method map starts all paths with '/'
|
|
133
133
|
basePath = basePath.replace(/\/$/, '');
|
|
134
134
|
// likewise, ensure the path prefix does always START with /, unless the path
|
|
135
135
|
// is empty meaning no base path at all
|
|
@@ -138,12 +138,6 @@ function normalizeBasePath(basePath) {
|
|
|
138
138
|
}
|
|
139
139
|
return basePath;
|
|
140
140
|
}
|
|
141
|
-
/**
|
|
142
|
-
*
|
|
143
|
-
* @param {import('express').Express} app
|
|
144
|
-
* @param {Partial<import('@appium/types').ServerArgs>} [cliArgs]
|
|
145
|
-
* @returns {Promise<http.Server>}
|
|
146
|
-
*/
|
|
147
141
|
async function createServer(app, cliArgs) {
|
|
148
142
|
const { sslCertificatePath, sslKeyPath } = cliArgs ?? {};
|
|
149
143
|
if (!sslCertificatePath && !sslKeyPath) {
|
|
@@ -160,43 +154,40 @@ async function createServer(app, cliArgs) {
|
|
|
160
154
|
}
|
|
161
155
|
}
|
|
162
156
|
const [cert, key] = await bluebird_1.default.all(certKey.map((p) => support_1.fs.readFile(p, 'utf8')));
|
|
163
|
-
logger_1.
|
|
164
|
-
|
|
157
|
+
logger_1.log.debug('Enabling TLS/SPDY on the server using the provided certificate');
|
|
158
|
+
const spdy = require('spdy');
|
|
159
|
+
return spdy.createServer({
|
|
165
160
|
cert,
|
|
166
161
|
key,
|
|
167
162
|
spdy: {
|
|
168
163
|
plain: false,
|
|
169
164
|
ssl: true,
|
|
170
|
-
}
|
|
165
|
+
},
|
|
171
166
|
}, app);
|
|
172
167
|
}
|
|
173
168
|
/**
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
* @
|
|
169
|
+
* Attaches Appium-specific behavior to the HTTP server and returns it as {@linkcode AppiumServer}.
|
|
170
|
+
* Mutates the `httpServer` parameter.
|
|
171
|
+
*
|
|
172
|
+
* @param opts - Configuration options
|
|
173
|
+
* @returns The same server instance typed as AppiumServer
|
|
178
174
|
*/
|
|
179
|
-
function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownTimeout }) {
|
|
180
|
-
|
|
181
|
-
* @type {AppiumServer}
|
|
182
|
-
*/
|
|
183
|
-
const appiumServer = /** @type {any} */ (httpServer);
|
|
175
|
+
function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownTimeout, }) {
|
|
176
|
+
const appiumServer = httpServer;
|
|
184
177
|
appiumServer.webSocketsMapping = {};
|
|
185
178
|
appiumServer.addWebSocketHandler = websocket_1.addWebSocketHandler;
|
|
186
179
|
appiumServer.removeWebSocketHandler = websocket_1.removeWebSocketHandler;
|
|
187
180
|
appiumServer.removeAllWebSocketHandlers = websocket_1.removeAllWebSocketHandlers;
|
|
188
181
|
appiumServer.getWebSocketHandlers = websocket_1.getWebSocketHandlers;
|
|
189
182
|
appiumServer.isSecure = function isSecure() {
|
|
190
|
-
|
|
191
|
-
return Boolean(this['_spdyState']?.secure);
|
|
183
|
+
return Boolean(this._spdyState?.secure);
|
|
192
184
|
};
|
|
193
185
|
// This avoids Express middleware timeout issues with long-lived WebSocket connections
|
|
194
186
|
// See: https://github.com/appium/appium/issues/20760
|
|
195
187
|
// See: https://github.com/nodejs/node/pull/59824
|
|
196
188
|
if (hasShouldUpgradeCallback(httpServer)) {
|
|
197
189
|
// shouldUpgradeCallback only returns a boolean to indicate if the upgrade should proceed
|
|
198
|
-
|
|
199
|
-
appiumServer['shouldUpgradeCallback'] = (req) => lodash_1.default.toLower(req.headers?.upgrade) === 'websocket';
|
|
190
|
+
appiumServer.shouldUpgradeCallback = (req) => lodash_1.default.toLower(req.headers?.upgrade) === 'websocket';
|
|
200
191
|
appiumServer.on('upgrade', (req, socket, head) => {
|
|
201
192
|
if (!(0, middleware_1.tryHandleWebSocketUpgrade)(req, socket, head, appiumServer.webSocketsMapping)) {
|
|
202
193
|
socket.destroy();
|
|
@@ -207,35 +198,38 @@ function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownT
|
|
|
207
198
|
// all connections are closed and the `close` event is emitted
|
|
208
199
|
const originalClose = appiumServer.close.bind(appiumServer);
|
|
209
200
|
appiumServer.close = async () => await new bluebird_1.default((_resolve, _reject) => {
|
|
210
|
-
logger_1.
|
|
201
|
+
logger_1.log.info('Closing Appium HTTP server');
|
|
211
202
|
const timer = new support_1.timing.Timer().start();
|
|
212
203
|
const onTimeout = setTimeout(() => {
|
|
213
|
-
if (gracefulShutdownTimeout > 0) {
|
|
214
|
-
logger_1.
|
|
204
|
+
if ((gracefulShutdownTimeout ?? 0) > 0) {
|
|
205
|
+
logger_1.log.info(`Not all active connections have been closed within ${gracefulShutdownTimeout}ms. ` +
|
|
215
206
|
`This timeout might be customized by the --shutdown-timeout command line ` +
|
|
216
207
|
`argument. Closing the server anyway.`);
|
|
217
208
|
}
|
|
218
209
|
process.exit(process.exitCode ?? 0);
|
|
219
|
-
}, gracefulShutdownTimeout);
|
|
220
|
-
|
|
221
|
-
logger_1.
|
|
210
|
+
}, gracefulShutdownTimeout ?? 0);
|
|
211
|
+
const onClose = () => {
|
|
212
|
+
logger_1.log.info(`Appium HTTP server has been successfully closed after ` +
|
|
222
213
|
`${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
|
|
223
214
|
clearTimeout(onTimeout);
|
|
224
215
|
_resolve();
|
|
225
|
-
}
|
|
226
|
-
|
|
216
|
+
};
|
|
217
|
+
httpServer.once('close', onClose);
|
|
218
|
+
originalClose((err) => {
|
|
227
219
|
if (err) {
|
|
220
|
+
clearTimeout(onTimeout);
|
|
221
|
+
httpServer.removeListener('close', onClose);
|
|
228
222
|
_reject(err);
|
|
229
223
|
}
|
|
230
224
|
});
|
|
231
225
|
});
|
|
232
|
-
appiumServer.once('error',
|
|
233
|
-
/** @param {NodeJS.ErrnoException} err */ (err) => {
|
|
226
|
+
appiumServer.once('error', (err) => {
|
|
234
227
|
if (err.code === 'EADDRNOTAVAIL') {
|
|
235
|
-
logger_1.
|
|
228
|
+
logger_1.log.error('Could not start REST http interface listener. ' +
|
|
229
|
+
'Requested address is not available.');
|
|
236
230
|
}
|
|
237
231
|
else {
|
|
238
|
-
logger_1.
|
|
232
|
+
logger_1.log.error('Could not start REST http interface listener. The requested ' +
|
|
239
233
|
'port may already be in use. Please make sure there is no ' +
|
|
240
234
|
'other instance of this server running already.');
|
|
241
235
|
}
|
|
@@ -244,16 +238,11 @@ function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownT
|
|
|
244
238
|
appiumServer.on('connection', (socket) => socket.setTimeout(keepAliveTimeout));
|
|
245
239
|
return appiumServer;
|
|
246
240
|
}
|
|
247
|
-
/**
|
|
248
|
-
* Starts an {@linkcode AppiumServer}
|
|
249
|
-
* @param {StartServerOpts} opts
|
|
250
|
-
* @returns {Promise<void>}
|
|
251
|
-
*/
|
|
252
241
|
async function startServer({ httpServer, port, hostname, keepAliveTimeout, requestTimeout, }) {
|
|
253
|
-
// If the hostname is omitted, the server will accept
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
242
|
+
// If the hostname is omitted, the server will accept connections on any IP address
|
|
243
|
+
const start = bluebird_1.default.promisify(httpServer.listen, {
|
|
244
|
+
context: httpServer,
|
|
245
|
+
});
|
|
257
246
|
const startPromise = start(port, hostname);
|
|
258
247
|
httpServer.keepAliveTimeout = keepAliveTimeout;
|
|
259
248
|
if (lodash_1.default.isInteger(requestTimeout)) {
|
|
@@ -264,86 +253,20 @@ async function startServer({ httpServer, port, hostname, keepAliveTimeout, reque
|
|
|
264
253
|
await startPromise;
|
|
265
254
|
}
|
|
266
255
|
/**
|
|
267
|
-
* Checks if the
|
|
268
|
-
*
|
|
269
|
-
* @param
|
|
270
|
-
* @returns
|
|
256
|
+
* Checks if the server supports `shouldUpgradeCallback` (Node.js v22.21.0+ / v24.9.0+).
|
|
257
|
+
*
|
|
258
|
+
* @param server - The HTTP server instance
|
|
259
|
+
* @returns true if shouldUpgradeCallback is available
|
|
271
260
|
*/
|
|
272
261
|
function hasShouldUpgradeCallback(server) {
|
|
273
262
|
// Check if shouldUpgradeCallback is available on http.Server
|
|
274
263
|
// This is a runtime check that works regardless of TypeScript types
|
|
275
264
|
try {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
return typeof server['shouldUpgradeCallback'] !== 'undefined';
|
|
265
|
+
return (typeof server.shouldUpgradeCallback !==
|
|
266
|
+
'undefined');
|
|
279
267
|
}
|
|
280
268
|
catch {
|
|
281
269
|
return false;
|
|
282
270
|
}
|
|
283
271
|
}
|
|
284
|
-
/**
|
|
285
|
-
* Options for {@linkcode startServer}.
|
|
286
|
-
* @typedef StartServerOpts
|
|
287
|
-
* @property {import('http').Server} httpServer - HTTP server instance
|
|
288
|
-
* @property {number} port - Port to run on
|
|
289
|
-
* @property {number} keepAliveTimeout - Keep-alive timeout in milliseconds
|
|
290
|
-
* @property {string} [hostname] - Optional hostname
|
|
291
|
-
* @property {number} [requestTimeout] - The timeout value in milliseconds for
|
|
292
|
-
* receiving the entire request from the client
|
|
293
|
-
*/
|
|
294
|
-
/**
|
|
295
|
-
* @typedef {import('@appium/types').AppiumServer} AppiumServer
|
|
296
|
-
*/
|
|
297
|
-
/**
|
|
298
|
-
* @typedef {import('@appium/types').MethodMap<import('@appium/types').ExternalDriver>} MethodMap
|
|
299
|
-
*/
|
|
300
|
-
/**
|
|
301
|
-
* Options for {@linkcode configureHttp}
|
|
302
|
-
* @typedef ConfigureHttpOpts
|
|
303
|
-
* @property {import('http').Server} httpServer - HTTP server instance
|
|
304
|
-
* @property {(error?: any) => void} reject - Rejection function from `Promise` constructor
|
|
305
|
-
* @property {number} keepAliveTimeout - Keep-alive timeout in milliseconds
|
|
306
|
-
* @property {number} gracefulShutdownTimeout - For how long the server should delay its
|
|
307
|
-
* shutdown before force-closing all open connections to it. Providing zero will force-close
|
|
308
|
-
* the server without waiting for any connections.
|
|
309
|
-
*/
|
|
310
|
-
/**
|
|
311
|
-
* Options for {@linkcode server}
|
|
312
|
-
* @typedef ServerOpts
|
|
313
|
-
* @property {RouteConfiguringFunction} routeConfiguringFunction
|
|
314
|
-
* @property {number} port
|
|
315
|
-
* @property {import('@appium/types').ServerArgs} [cliArgs]
|
|
316
|
-
* @property {string} [hostname]
|
|
317
|
-
* @property {boolean} [allowCors]
|
|
318
|
-
* @property {string} [basePath]
|
|
319
|
-
* @property {MethodMap} [extraMethodMap]
|
|
320
|
-
* @property {import('@appium/types').UpdateServerCallback[]} [serverUpdaters]
|
|
321
|
-
* @property {number} [keepAliveTimeout]
|
|
322
|
-
* @property {number} [requestTimeout]
|
|
323
|
-
*/
|
|
324
|
-
/**
|
|
325
|
-
* A function which configures routes
|
|
326
|
-
* @callback RouteConfiguringFunction
|
|
327
|
-
* @param {import('express').Express} app
|
|
328
|
-
* @param {RouteConfiguringFunctionOpts} [opts]
|
|
329
|
-
* @returns {void}
|
|
330
|
-
*/
|
|
331
|
-
/**
|
|
332
|
-
* Options for a {@linkcode RouteConfiguringFunction}
|
|
333
|
-
* @typedef RouteConfiguringFunctionOpts
|
|
334
|
-
* @property {string} [basePath]
|
|
335
|
-
* @property {MethodMap} [extraMethodMap]
|
|
336
|
-
*/
|
|
337
|
-
/**
|
|
338
|
-
* Options for {@linkcode configureServer}
|
|
339
|
-
* @typedef ConfigureServerOpts
|
|
340
|
-
* @property {import('express').Express} app
|
|
341
|
-
* @property {RouteConfiguringFunction} addRoutes
|
|
342
|
-
* @property {boolean} [allowCors]
|
|
343
|
-
* @property {string} [basePath]
|
|
344
|
-
* @property {MethodMap} [extraMethodMap]
|
|
345
|
-
* @property {import('@appium/types').StringRecord} [webSocketsMapping={}]
|
|
346
|
-
* @property {boolean} [useLegacyUpgradeHandler=true] - Whether to use legacy Express middleware for WebSocket upgrades.
|
|
347
|
-
* Set to false when using shouldUpgradeCallback on the HTTP server (Node.js >= 22.21.0 or >= 24.9.0).
|
|
348
|
-
*/
|
|
349
272
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
export function
|
|
5
|
-
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
export declare const STATIC_DIR: string;
|
|
3
|
+
/** Dynamic page mapped to /test/guinea-pig */
|
|
4
|
+
export declare function guineaPig(req: Request, res: Response): Promise<void>;
|
|
5
|
+
/** Dynamic page mapped to /test/guinea-pig-scrollable */
|
|
6
|
+
export declare function guineaPigScrollable(req: Request, res: Response): Promise<void>;
|
|
7
|
+
/** Dynamic page mapped to /test/guinea-pig-app-banner */
|
|
8
|
+
export declare function guineaPigAppBanner(req: Request, res: Response): Promise<void>;
|
|
9
|
+
/** Dynamic page mapped to /welcome */
|
|
10
|
+
export declare function welcome(req: Request, res: Response): Promise<void>;
|
|
6
11
|
//# sourceMappingURL=static.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../lib/express/static.
|
|
1
|
+
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../lib/express/static.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,UAAU,QAEgC,CAAC;AAIxD,8CAA8C;AAC9C,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAED,yDAAyD;AACzD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;AAED,yDAAyD;AACzD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF;AAED,sCAAsC;AACtC,wBAAsB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxE"}
|
|
@@ -9,32 +9,47 @@ exports.guineaPigScrollable = guineaPigScrollable;
|
|
|
9
9
|
exports.guineaPigAppBanner = guineaPigAppBanner;
|
|
10
10
|
exports.welcome = welcome;
|
|
11
11
|
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
-
const logger_1 =
|
|
12
|
+
const logger_1 = require("./logger");
|
|
13
13
|
const lodash_1 = __importDefault(require("lodash"));
|
|
14
14
|
const support_1 = require("@appium/support");
|
|
15
15
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
exports.STATIC_DIR = lodash_1.default.isNull(node_path_1.default.resolve(__dirname).match(/build[/\\]lib[/\\]express$/))
|
|
17
|
+
? node_path_1.default.resolve(__dirname, '..', '..', 'static')
|
|
18
|
+
: node_path_1.default.resolve(__dirname, '..', '..', '..', 'static');
|
|
19
|
+
/** Dynamic page mapped to /test/guinea-pig */
|
|
20
|
+
async function guineaPig(req, res) {
|
|
21
|
+
await guineaPigTemplate(req, res, 'guinea-pig.html');
|
|
22
|
+
}
|
|
23
|
+
/** Dynamic page mapped to /test/guinea-pig-scrollable */
|
|
24
|
+
async function guineaPigScrollable(req, res) {
|
|
25
|
+
await guineaPigTemplate(req, res, 'guinea-pig-scrollable.html');
|
|
26
|
+
}
|
|
27
|
+
/** Dynamic page mapped to /test/guinea-pig-app-banner */
|
|
28
|
+
async function guineaPigAppBanner(req, res) {
|
|
29
|
+
await guineaPigTemplate(req, res, 'guinea-pig-app-banner.html');
|
|
30
|
+
}
|
|
31
|
+
/** Dynamic page mapped to /welcome */
|
|
32
|
+
async function welcome(req, res) {
|
|
33
|
+
const params = { message: "Let's browse!" };
|
|
34
|
+
logger_1.log.debug(`Sending welcome response with params: ${JSON.stringify(params)}`);
|
|
35
|
+
const template = await getTemplate('welcome.html');
|
|
36
|
+
res.send(template(params));
|
|
22
37
|
}
|
|
23
38
|
async function guineaPigTemplate(req, res, page) {
|
|
24
|
-
const delay = parseInt(req.params.delay
|
|
25
|
-
const throwError = req.params.throwError
|
|
26
|
-
|
|
39
|
+
const delay = parseInt(String(req.params.delay ?? (req.query?.delay ?? 0)), 10);
|
|
40
|
+
const throwError = String(req.params.throwError ?? req.query?.throwError ?? '');
|
|
41
|
+
const params = {
|
|
27
42
|
throwError,
|
|
28
43
|
serverTime: new Date(),
|
|
29
44
|
userAgent: req.headers['user-agent'],
|
|
30
45
|
comment: 'None',
|
|
31
46
|
};
|
|
32
|
-
if (req.method === 'POST') {
|
|
33
|
-
params.comment = req.body.comments
|
|
47
|
+
if (req.method === 'POST' && req.body && typeof req.body === 'object' && 'comments' in req.body) {
|
|
48
|
+
params.comment = String(req.body.comments ?? params.comment);
|
|
34
49
|
}
|
|
35
|
-
logger_1.
|
|
50
|
+
logger_1.log.debug(`Sending guinea pig response with params: ${JSON.stringify(params)}`);
|
|
36
51
|
if (delay) {
|
|
37
|
-
logger_1.
|
|
52
|
+
logger_1.log.debug(`Waiting ${delay}ms before responding`);
|
|
38
53
|
await bluebird_1.default.delay(delay);
|
|
39
54
|
}
|
|
40
55
|
res.set('content-type', 'text/html');
|
|
@@ -44,36 +59,11 @@ async function guineaPigTemplate(req, res, page) {
|
|
|
44
59
|
domain: '.blargimarg.com',
|
|
45
60
|
path: '/',
|
|
46
61
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
/*
|
|
50
|
-
* Dynamic page mapped to /test/guinea-pig
|
|
51
|
-
*/
|
|
52
|
-
async function guineaPig(req, res) {
|
|
53
|
-
return await guineaPigTemplate(req, res, 'guinea-pig.html');
|
|
54
|
-
}
|
|
55
|
-
/*
|
|
56
|
-
* Dynamic page mapped to /test/guinea-pig-scrollable
|
|
57
|
-
*/
|
|
58
|
-
async function guineaPigScrollable(req, res) {
|
|
59
|
-
return await guineaPigTemplate(req, res, 'guinea-pig-scrollable.html');
|
|
60
|
-
}
|
|
61
|
-
/*
|
|
62
|
-
* Dynamic page mapped to /test/guinea-pig-app-banner
|
|
63
|
-
*/
|
|
64
|
-
async function guineaPigAppBanner(req, res) {
|
|
65
|
-
return await guineaPigTemplate(req, res, 'guinea-pig-app-banner.html');
|
|
66
|
-
}
|
|
67
|
-
/*
|
|
68
|
-
* Dynamic page mapped to /welcome
|
|
69
|
-
*/
|
|
70
|
-
async function welcome(req, res) {
|
|
71
|
-
let params = { message: "Let's browse!" };
|
|
72
|
-
logger_1.default.debug(`Sending welcome response with params: ${JSON.stringify(params)}`);
|
|
73
|
-
res.send((await getTemplate('welcome.html'))(params));
|
|
62
|
+
const template = await getTemplate(page);
|
|
63
|
+
res.send(template(params));
|
|
74
64
|
}
|
|
75
65
|
async function getTemplate(templateName) {
|
|
76
|
-
|
|
66
|
+
const content = await support_1.fs.readFile(node_path_1.default.resolve(exports.STATIC_DIR, 'test', templateName));
|
|
77
67
|
return lodash_1.default.template(content.toString());
|
|
78
68
|
}
|
|
79
69
|
//# sourceMappingURL=static.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../../lib/express/static.
|
|
1
|
+
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../../lib/express/static.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { AppiumServer, WSServer } from '@appium/types';
|
|
2
|
+
export declare const DEFAULT_WS_PATHNAME_PREFIX = "/ws";
|
|
3
|
+
/**
|
|
4
|
+
* Adds a WebSocket handler to this server's mapping.
|
|
5
|
+
* @see AppiumServerExtension.addWebSocketHandler
|
|
6
|
+
*/
|
|
7
|
+
export declare function addWebSocketHandler(this: AppiumServer, handlerPathname: string, handlerServer: WSServer): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Returns WebSocket handlers for this server, optionally filtered by pathname.
|
|
10
|
+
* @see AppiumServerExtension.getWebSocketHandlers
|
|
11
|
+
*/
|
|
12
|
+
export declare function getWebSocketHandlers(this: AppiumServer, keysFilter?: string | null): Promise<Record<string, WSServer>>;
|
|
13
|
+
/**
|
|
14
|
+
* Removes a WebSocket handler by pathname.
|
|
15
|
+
* @see AppiumServerExtension.removeWebSocketHandler
|
|
16
|
+
*/
|
|
17
|
+
export declare function removeWebSocketHandler(this: AppiumServer, handlerPathname: string): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Removes all WebSocket handlers from this server.
|
|
20
|
+
* @see AppiumServerExtension.removeAllWebSocketHandlers
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeAllWebSocketHandlers(this: AppiumServer): Promise<boolean>;
|
|
7
23
|
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAE1D,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,YAAY,EAClB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,QAAQ,GACtB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,YAAY,EAClB,UAAU,GAAE,MAAM,GAAG,IAAW,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAUnC;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,YAAY,EAClB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAYrF"}
|
|
@@ -5,23 +5,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DEFAULT_WS_PATHNAME_PREFIX = void 0;
|
|
7
7
|
exports.addWebSocketHandler = addWebSocketHandler;
|
|
8
|
+
exports.getWebSocketHandlers = getWebSocketHandlers;
|
|
8
9
|
exports.removeWebSocketHandler = removeWebSocketHandler;
|
|
9
10
|
exports.removeAllWebSocketHandlers = removeAllWebSocketHandlers;
|
|
10
|
-
exports.getWebSocketHandlers = getWebSocketHandlers;
|
|
11
11
|
const lodash_1 = __importDefault(require("lodash"));
|
|
12
12
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
13
|
-
|
|
14
|
-
exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
|
|
13
|
+
exports.DEFAULT_WS_PATHNAME_PREFIX = '/ws';
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
15
|
+
* Adds a WebSocket handler to this server's mapping.
|
|
16
|
+
* @see AppiumServerExtension.addWebSocketHandler
|
|
18
17
|
*/
|
|
19
18
|
async function addWebSocketHandler(handlerPathname, handlerServer) {
|
|
20
19
|
this.webSocketsMapping[handlerPathname] = handlerServer;
|
|
21
20
|
}
|
|
22
21
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @
|
|
22
|
+
* Returns WebSocket handlers for this server, optionally filtered by pathname.
|
|
23
|
+
* @see AppiumServerExtension.getWebSocketHandlers
|
|
25
24
|
*/
|
|
26
25
|
async function getWebSocketHandlers(keysFilter = null) {
|
|
27
26
|
return lodash_1.default.toPairs(this.webSocketsMapping).reduce((acc, [pathname, wsServer]) => {
|
|
@@ -32,8 +31,8 @@ async function getWebSocketHandlers(keysFilter = null) {
|
|
|
32
31
|
}, {});
|
|
33
32
|
}
|
|
34
33
|
/**
|
|
35
|
-
*
|
|
36
|
-
* @
|
|
34
|
+
* Removes a WebSocket handler by pathname.
|
|
35
|
+
* @see AppiumServerExtension.removeWebSocketHandler
|
|
37
36
|
*/
|
|
38
37
|
async function removeWebSocketHandler(handlerPathname) {
|
|
39
38
|
const wsServer = this.webSocketsMapping?.[handlerPathname];
|
|
@@ -56,9 +55,8 @@ async function removeWebSocketHandler(handlerPathname) {
|
|
|
56
55
|
return false;
|
|
57
56
|
}
|
|
58
57
|
/**
|
|
59
|
-
*
|
|
60
|
-
* @
|
|
61
|
-
* @type {AppiumServer['removeAllWebSocketHandlers']}
|
|
58
|
+
* Removes all WebSocket handlers from this server.
|
|
59
|
+
* @see AppiumServerExtension.removeAllWebSocketHandlers
|
|
62
60
|
*/
|
|
63
61
|
async function removeAllWebSocketHandlers() {
|
|
64
62
|
if (lodash_1.default.isEmpty(this.webSocketsMapping)) {
|
|
@@ -66,7 +64,4 @@ async function removeAllWebSocketHandlers() {
|
|
|
66
64
|
}
|
|
67
65
|
return lodash_1.default.some(await bluebird_1.default.all(lodash_1.default.keys(this.webSocketsMapping).map((pathname) => this.removeWebSocketHandler(pathname))));
|
|
68
66
|
}
|
|
69
|
-
/**
|
|
70
|
-
* @typedef {import('@appium/types').AppiumServer} AppiumServer
|
|
71
|
-
*/
|
|
72
67
|
//# sourceMappingURL=websocket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../lib/express/websocket.
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../lib/express/websocket.ts"],"names":[],"mappings":";;;;;;AAUA,kDAMC;AAMD,oDAaC;AAMD,wDAqBC;AAMD,gEAYC;AAhFD,oDAAuB;AACvB,wDAAyB;AAGZ,QAAA,0BAA0B,GAAG,KAAK,CAAC;AAEhD;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CAEvC,eAAuB,EACvB,aAAuB;IAEvB,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CAExC,aAA4B,IAAI;IAEhC,OAAO,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC5B,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAE1C,eAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;YAAS,CAAC;QACT,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,0BAA0B;IAC9C,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,gBAAC,CAAC,IAAI,CACX,MAAM,kBAAC,CAAC,GAAG,CACT,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CACtC,CACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,23 +1,11 @@
|
|
|
1
|
+
import type { Constraints, W3CCapabilities, Capabilities, AppiumLogger } from '@appium/types';
|
|
1
2
|
/**
|
|
2
3
|
* Determine whether the given argument is valid
|
|
3
4
|
* W3C capabilities instance.
|
|
4
|
-
*
|
|
5
|
-
* @param {any} caps
|
|
6
|
-
* @returns {caps is import('@appium/types').W3CCapabilities}
|
|
7
5
|
*/
|
|
8
|
-
export function isW3cCaps(caps:
|
|
6
|
+
export declare function isW3cCaps(caps: unknown): caps is W3CCapabilities<Constraints>;
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
11
|
-
* @template {Constraints} C
|
|
12
|
-
* @param {any} oldCaps
|
|
13
|
-
* @param {C} desiredCapConstraints
|
|
14
|
-
* @param {AppiumLogger} log
|
|
15
|
-
* @returns {Capabilities<C>}
|
|
8
|
+
* Normalize capability values according to constraints (e.g. string 'true' → boolean).
|
|
16
9
|
*/
|
|
17
|
-
export function fixCaps<C extends Constraints>(oldCaps:
|
|
18
|
-
export type Constraints = import("@appium/types").Constraints;
|
|
19
|
-
export type AppiumLogger = import("@appium/types").AppiumLogger;
|
|
20
|
-
export type StringRecord = import("@appium/types").StringRecord;
|
|
21
|
-
export type BaseDriverCapConstraints = import("@appium/types").BaseDriverCapConstraints;
|
|
22
|
-
export type Capabilities<C extends Constraints> = import("@appium/types").Capabilities<C>;
|
|
10
|
+
export declare function fixCaps<C extends Constraints>(oldCaps: Record<string, unknown>, desiredCapConstraints: C, log: AppiumLogger): Capabilities<C>;
|
|
23
11
|
//# sourceMappingURL=capabilities.d.ts.map
|