@appium/base-driver 10.1.2 → 10.2.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.
Files changed (133) hide show
  1. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  2. package/build/lib/basedriver/capabilities.js +7 -7
  3. package/build/lib/basedriver/capabilities.js.map +1 -1
  4. package/build/lib/basedriver/commands/event.d.ts +1 -1
  5. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  6. package/build/lib/basedriver/commands/execute.d.ts +1 -1
  7. package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
  8. package/build/lib/basedriver/commands/find.d.ts +1 -1
  9. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  10. package/build/lib/basedriver/commands/mixin.d.ts +1 -1
  11. package/build/lib/basedriver/commands/mixin.d.ts.map +1 -1
  12. package/build/lib/basedriver/commands/timeout.d.ts +1 -1
  13. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  14. package/build/lib/basedriver/device-settings.d.ts +14 -23
  15. package/build/lib/basedriver/device-settings.d.ts.map +1 -1
  16. package/build/lib/basedriver/device-settings.js +11 -26
  17. package/build/lib/basedriver/device-settings.js.map +1 -1
  18. package/build/lib/basedriver/helpers.d.ts +36 -57
  19. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  20. package/build/lib/basedriver/helpers.js +160 -248
  21. package/build/lib/basedriver/helpers.js.map +1 -1
  22. package/build/lib/basedriver/logger.d.ts +1 -2
  23. package/build/lib/basedriver/logger.d.ts.map +1 -1
  24. package/build/lib/basedriver/logger.js +2 -2
  25. package/build/lib/basedriver/logger.js.map +1 -1
  26. package/build/lib/basedriver/validation.d.ts.map +1 -1
  27. package/build/lib/basedriver/validation.js +3 -3
  28. package/build/lib/basedriver/validation.js.map +1 -1
  29. package/build/lib/constants.d.ts +1 -1
  30. package/build/lib/constants.d.ts.map +1 -1
  31. package/build/lib/express/crash.d.ts +8 -2
  32. package/build/lib/express/crash.d.ts.map +1 -1
  33. package/build/lib/express/crash.js +6 -0
  34. package/build/lib/express/crash.js.map +1 -1
  35. package/build/lib/express/express-logging.d.ts +12 -2
  36. package/build/lib/express/express-logging.d.ts.map +1 -1
  37. package/build/lib/express/express-logging.js +34 -26
  38. package/build/lib/express/express-logging.js.map +1 -1
  39. package/build/lib/express/idempotency.d.ts +4 -10
  40. package/build/lib/express/idempotency.d.ts.map +1 -1
  41. package/build/lib/express/idempotency.js +71 -75
  42. package/build/lib/express/idempotency.js.map +1 -1
  43. package/build/lib/express/logger.d.ts +1 -2
  44. package/build/lib/express/logger.d.ts.map +1 -1
  45. package/build/lib/express/logger.js +2 -2
  46. package/build/lib/express/logger.js.map +1 -1
  47. package/build/lib/express/middleware.d.ts +37 -41
  48. package/build/lib/express/middleware.d.ts.map +1 -1
  49. package/build/lib/express/middleware.js +48 -60
  50. package/build/lib/express/middleware.js.map +1 -1
  51. package/build/lib/express/server.d.ts +57 -101
  52. package/build/lib/express/server.d.ts.map +1 -1
  53. package/build/lib/express/server.js +55 -133
  54. package/build/lib/express/server.js.map +1 -1
  55. package/build/lib/express/static.d.ts +10 -5
  56. package/build/lib/express/static.d.ts.map +1 -1
  57. package/build/lib/express/static.js +33 -43
  58. package/build/lib/express/static.js.map +1 -1
  59. package/build/lib/express/websocket.d.ts +22 -6
  60. package/build/lib/express/websocket.d.ts.map +1 -1
  61. package/build/lib/express/websocket.js +10 -15
  62. package/build/lib/express/websocket.js.map +1 -1
  63. package/build/lib/helpers/capabilities.d.ts +4 -16
  64. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  65. package/build/lib/helpers/capabilities.js +36 -48
  66. package/build/lib/helpers/capabilities.js.map +1 -1
  67. package/build/lib/jsonwp-proxy/proxy.d.ts +4 -2
  68. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  69. package/build/lib/jsonwp-proxy/proxy.js +9 -4
  70. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  71. package/build/lib/jsonwp-status/status.d.ts +113 -158
  72. package/build/lib/jsonwp-status/status.d.ts.map +1 -1
  73. package/build/lib/jsonwp-status/status.js +10 -14
  74. package/build/lib/jsonwp-status/status.js.map +1 -1
  75. package/build/lib/protocol/bidi-commands.d.ts +31 -36
  76. package/build/lib/protocol/bidi-commands.d.ts.map +1 -1
  77. package/build/lib/protocol/bidi-commands.js +5 -5
  78. package/build/lib/protocol/bidi-commands.js.map +1 -1
  79. package/build/lib/protocol/errors.d.ts.map +1 -1
  80. package/build/lib/protocol/errors.js.map +1 -1
  81. package/build/lib/protocol/helpers.d.ts +7 -11
  82. package/build/lib/protocol/helpers.d.ts.map +1 -1
  83. package/build/lib/protocol/helpers.js +5 -9
  84. package/build/lib/protocol/helpers.js.map +1 -1
  85. package/build/lib/protocol/index.d.ts +4 -21
  86. package/build/lib/protocol/index.d.ts.map +1 -1
  87. package/build/lib/protocol/index.js.map +1 -1
  88. package/build/lib/protocol/protocol.d.ts +15 -1
  89. package/build/lib/protocol/protocol.d.ts.map +1 -1
  90. package/build/lib/protocol/protocol.js +50 -20
  91. package/build/lib/protocol/protocol.js.map +1 -1
  92. package/build/lib/protocol/routes.d.ts +8 -15
  93. package/build/lib/protocol/routes.d.ts.map +1 -1
  94. package/build/lib/protocol/routes.js +18 -33
  95. package/build/lib/protocol/routes.js.map +1 -1
  96. package/lib/basedriver/capabilities.ts +2 -2
  97. package/lib/basedriver/commands/event.ts +2 -2
  98. package/lib/basedriver/commands/execute.ts +2 -2
  99. package/lib/basedriver/commands/find.ts +2 -2
  100. package/lib/basedriver/commands/mixin.ts +1 -1
  101. package/lib/basedriver/commands/timeout.ts +2 -2
  102. package/lib/basedriver/{device-settings.js → device-settings.ts} +24 -35
  103. package/lib/basedriver/{helpers.js → helpers.ts} +215 -270
  104. package/lib/basedriver/logger.ts +3 -0
  105. package/lib/basedriver/validation.ts +2 -2
  106. package/lib/constants.ts +1 -1
  107. package/lib/express/crash.ts +15 -0
  108. package/lib/express/express-logging.ts +84 -0
  109. package/lib/express/{idempotency.js → idempotency.ts} +106 -90
  110. package/lib/express/logger.ts +3 -0
  111. package/lib/express/middleware.ts +187 -0
  112. package/lib/express/{server.js → server.ts} +177 -170
  113. package/lib/express/static.ts +77 -0
  114. package/lib/express/websocket.ts +81 -0
  115. package/lib/helpers/capabilities.ts +83 -0
  116. package/lib/jsonwp-proxy/proxy.js +7 -2
  117. package/lib/jsonwp-status/{status.js → status.ts} +12 -15
  118. package/lib/protocol/{bidi-commands.js → bidi-commands.ts} +7 -5
  119. package/lib/protocol/errors.ts +4 -4
  120. package/lib/protocol/{helpers.js → helpers.ts} +8 -11
  121. package/lib/protocol/protocol.ts +57 -26
  122. package/lib/protocol/{routes.js → routes.ts} +29 -40
  123. package/package.json +15 -15
  124. package/tsconfig.json +3 -1
  125. package/lib/basedriver/logger.js +0 -4
  126. package/lib/express/crash.js +0 -11
  127. package/lib/express/express-logging.js +0 -60
  128. package/lib/express/logger.js +0 -4
  129. package/lib/express/middleware.js +0 -171
  130. package/lib/express/static.js +0 -76
  131. package/lib/express/websocket.js +0 -79
  132. package/lib/helpers/capabilities.js +0 -93
  133. /package/lib/protocol/{index.js → index.ts} +0 -0
@@ -7,13 +7,13 @@ exports.server = server;
7
7
  exports.configureServer = configureServer;
8
8
  exports.normalizeBasePath = normalizeBasePath;
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
- const path_1 = __importDefault(require("path"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
11
  const express_1 = __importDefault(require("express"));
12
- const http_1 = __importDefault(require("http"));
12
+ 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 = __importDefault(require("./logger"));
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
- * @param {ServerOpts} opts
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 = /** @type {import('@appium/types').ServerArgs} */ ({}), allowCors = true, basePath = constants_1.DEFAULT_BASE_PATH, extraMethodMap = {}, serverUpdaters = [], keepAliveTimeout = KEEP_ALIVE_TIMEOUT_MS, requestTimeout, } = opts;
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,21 +77,21 @@ async function server(opts) {
78
77
  });
79
78
  }
80
79
  /**
81
- * Sets up some Express middleware and stuff
82
- * @param {ConfigureServerOpts} opts
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);
86
86
  app.use(express_logging_1.endLogFormatter);
87
87
  app.use(middleware_1.handleLogContext);
88
88
  // set up static assets
89
- app.use((0, serve_favicon_1.default)(path_1.default.resolve(static_1.STATIC_DIR, 'favicon.ico')));
90
- // eslint-disable-next-line import/no-named-as-default-member
89
+ app.use((0, serve_favicon_1.default)(node_path_1.default.resolve(static_1.STATIC_DIR, 'favicon.ico')));
91
90
  app.use(express_1.default.static(static_1.STATIC_DIR));
92
91
  // crash routes, for testing
93
92
  app.use(`${basePath}/produce_error`, crash_1.produceError);
94
93
  app.use(`${basePath}/crash`, crash_1.produceCrash);
95
- // 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.
96
95
  // When shouldUpgradeCallback is available, upgrades are handled directly on the HTTP server
97
96
  // to avoid Express middleware timeout issues with long-lived connections
98
97
  if (useLegacyUpgradeHandler) {
@@ -121,16 +120,16 @@ function configureServer({ app, addRoutes, allowCors = true, basePath = constant
121
120
  app.all('/test/guinea-pig-app-banner', static_1.guineaPigAppBanner);
122
121
  }
123
122
  /**
124
- * Normalize base path string
125
- * @param {string} basePath
126
- * @returns {string}
123
+ * Normalize base path string (leading slash, no trailing slash).
124
+ *
125
+ * @param basePath - Raw base path
126
+ * @returns Normalized base path
127
127
  */
128
128
  function normalizeBasePath(basePath) {
129
129
  if (!lodash_1.default.isString(basePath)) {
130
130
  throw new Error(`Invalid path prefix ${basePath}`);
131
131
  }
132
- // ensure the path prefix does not end in '/', since our method map
133
- // starts all paths with '/'
132
+ // ensure the path prefix does not end in '/', since our method map starts all paths with '/'
134
133
  basePath = basePath.replace(/\/$/, '');
135
134
  // likewise, ensure the path prefix does always START with /, unless the path
136
135
  // is empty meaning no base path at all
@@ -139,16 +138,10 @@ function normalizeBasePath(basePath) {
139
138
  }
140
139
  return basePath;
141
140
  }
142
- /**
143
- *
144
- * @param {import('express').Express} app
145
- * @param {Partial<import('@appium/types').ServerArgs>} [cliArgs]
146
- * @returns {Promise<http.Server>}
147
- */
148
141
  async function createServer(app, cliArgs) {
149
142
  const { sslCertificatePath, sslKeyPath } = cliArgs ?? {};
150
143
  if (!sslCertificatePath && !sslKeyPath) {
151
- return http_1.default.createServer(app);
144
+ return node_http_1.default.createServer(app);
152
145
  }
153
146
  if (!sslCertificatePath || !sslKeyPath) {
154
147
  throw new Error(`Both certificate path and key path must be provided to enable TLS`);
@@ -161,43 +154,40 @@ async function createServer(app, cliArgs) {
161
154
  }
162
155
  }
163
156
  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({
157
+ logger_1.log.debug('Enabling TLS/SPDY on the server using the provided certificate');
158
+ const spdy = require('spdy');
159
+ return spdy.createServer({
166
160
  cert,
167
161
  key,
168
162
  spdy: {
169
163
  plain: false,
170
164
  ssl: true,
171
- }
165
+ },
172
166
  }, app);
173
167
  }
174
168
  /**
175
- * Monkeypatches the `http.Server` instance and returns a {@linkcode AppiumServer}.
176
- * This function _mutates_ the `httpServer` parameter.
177
- * @param {ConfigureHttpOpts} opts
178
- * @returns {AppiumServer}
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
179
174
  */
180
- function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownTimeout }) {
181
- /**
182
- * @type {AppiumServer}
183
- */
184
- const appiumServer = /** @type {any} */ (httpServer);
175
+ function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownTimeout, }) {
176
+ const appiumServer = httpServer;
185
177
  appiumServer.webSocketsMapping = {};
186
178
  appiumServer.addWebSocketHandler = websocket_1.addWebSocketHandler;
187
179
  appiumServer.removeWebSocketHandler = websocket_1.removeWebSocketHandler;
188
180
  appiumServer.removeAllWebSocketHandlers = websocket_1.removeAllWebSocketHandlers;
189
181
  appiumServer.getWebSocketHandlers = websocket_1.getWebSocketHandlers;
190
182
  appiumServer.isSecure = function isSecure() {
191
- // eslint-disable-next-line dot-notation
192
- return Boolean(this['_spdyState']?.secure);
183
+ return Boolean(this._spdyState?.secure);
193
184
  };
194
185
  // This avoids Express middleware timeout issues with long-lived WebSocket connections
195
186
  // See: https://github.com/appium/appium/issues/20760
196
187
  // See: https://github.com/nodejs/node/pull/59824
197
188
  if (hasShouldUpgradeCallback(httpServer)) {
198
189
  // 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';
190
+ appiumServer.shouldUpgradeCallback = (req) => lodash_1.default.toLower(req.headers?.upgrade) === 'websocket';
201
191
  appiumServer.on('upgrade', (req, socket, head) => {
202
192
  if (!(0, middleware_1.tryHandleWebSocketUpgrade)(req, socket, head, appiumServer.webSocketsMapping)) {
203
193
  socket.destroy();
@@ -208,35 +198,38 @@ function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownT
208
198
  // all connections are closed and the `close` event is emitted
209
199
  const originalClose = appiumServer.close.bind(appiumServer);
210
200
  appiumServer.close = async () => await new bluebird_1.default((_resolve, _reject) => {
211
- logger_1.default.info('Closing Appium HTTP server');
201
+ logger_1.log.info('Closing Appium HTTP server');
212
202
  const timer = new support_1.timing.Timer().start();
213
203
  const onTimeout = setTimeout(() => {
214
- if (gracefulShutdownTimeout > 0) {
215
- logger_1.default.info(`Not all active connections have been closed within ${gracefulShutdownTimeout}ms. ` +
204
+ if ((gracefulShutdownTimeout ?? 0) > 0) {
205
+ logger_1.log.info(`Not all active connections have been closed within ${gracefulShutdownTimeout}ms. ` +
216
206
  `This timeout might be customized by the --shutdown-timeout command line ` +
217
207
  `argument. Closing the server anyway.`);
218
208
  }
219
209
  process.exit(process.exitCode ?? 0);
220
- }, gracefulShutdownTimeout);
221
- httpServer.once('close', () => {
222
- logger_1.default.info(`Appium HTTP server has been successfully closed after ` +
210
+ }, gracefulShutdownTimeout ?? 0);
211
+ const onClose = () => {
212
+ logger_1.log.info(`Appium HTTP server has been successfully closed after ` +
223
213
  `${timer.getDuration().asMilliSeconds.toFixed(0)}ms`);
224
214
  clearTimeout(onTimeout);
225
215
  _resolve();
226
- });
227
- originalClose((/** @type {Error|undefined} */ err) => {
216
+ };
217
+ httpServer.once('close', onClose);
218
+ originalClose((err) => {
228
219
  if (err) {
220
+ clearTimeout(onTimeout);
221
+ httpServer.removeListener('close', onClose);
229
222
  _reject(err);
230
223
  }
231
224
  });
232
225
  });
233
- appiumServer.once('error',
234
- /** @param {NodeJS.ErrnoException} err */ (err) => {
226
+ appiumServer.once('error', (err) => {
235
227
  if (err.code === 'EADDRNOTAVAIL') {
236
- logger_1.default.error('Could not start REST http interface listener. ' + 'Requested address is not available.');
228
+ logger_1.log.error('Could not start REST http interface listener. ' +
229
+ 'Requested address is not available.');
237
230
  }
238
231
  else {
239
- logger_1.default.error('Could not start REST http interface listener. The requested ' +
232
+ logger_1.log.error('Could not start REST http interface listener. The requested ' +
240
233
  'port may already be in use. Please make sure there is no ' +
241
234
  'other instance of this server running already.');
242
235
  }
@@ -245,16 +238,11 @@ function configureHttp({ httpServer, reject, keepAliveTimeout, gracefulShutdownT
245
238
  appiumServer.on('connection', (socket) => socket.setTimeout(keepAliveTimeout));
246
239
  return appiumServer;
247
240
  }
248
- /**
249
- * Starts an {@linkcode AppiumServer}
250
- * @param {StartServerOpts} opts
251
- * @returns {Promise<void>}
252
- */
253
241
  async function startServer({ httpServer, port, hostname, keepAliveTimeout, requestTimeout, }) {
254
- // If the hostname is omitted, the server will accept
255
- // connections on any IP address
256
- /** @type {(port: number, hostname?: string) => B<http.Server>} */
257
- const start = bluebird_1.default.promisify(httpServer.listen, { context: httpServer });
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
+ });
258
246
  const startPromise = start(port, hostname);
259
247
  httpServer.keepAliveTimeout = keepAliveTimeout;
260
248
  if (lodash_1.default.isInteger(requestTimeout)) {
@@ -265,86 +253,20 @@ async function startServer({ httpServer, port, hostname, keepAliveTimeout, reque
265
253
  await startPromise;
266
254
  }
267
255
  /**
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}
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
272
260
  */
273
261
  function hasShouldUpgradeCallback(server) {
274
262
  // Check if shouldUpgradeCallback is available on http.Server
275
263
  // This is a runtime check that works regardless of TypeScript types
276
264
  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';
265
+ return (typeof server.shouldUpgradeCallback !==
266
+ 'undefined');
280
267
  }
281
268
  catch {
282
269
  return false;
283
270
  }
284
271
  }
285
- /**
286
- * Options for {@linkcode startServer}.
287
- * @typedef StartServerOpts
288
- * @property {import('http').Server} httpServer - HTTP server instance
289
- * @property {number} port - Port to run on
290
- * @property {number} keepAliveTimeout - Keep-alive timeout in milliseconds
291
- * @property {string} [hostname] - Optional hostname
292
- * @property {number} [requestTimeout] - The timeout value in milliseconds for
293
- * receiving the entire request from the client
294
- */
295
- /**
296
- * @typedef {import('@appium/types').AppiumServer} AppiumServer
297
- */
298
- /**
299
- * @typedef {import('@appium/types').MethodMap<import('@appium/types').ExternalDriver>} MethodMap
300
- */
301
- /**
302
- * Options for {@linkcode configureHttp}
303
- * @typedef ConfigureHttpOpts
304
- * @property {import('http').Server} httpServer - HTTP server instance
305
- * @property {(error?: any) => void} reject - Rejection function from `Promise` constructor
306
- * @property {number} keepAliveTimeout - Keep-alive timeout in milliseconds
307
- * @property {number} gracefulShutdownTimeout - For how long the server should delay its
308
- * shutdown before force-closing all open connections to it. Providing zero will force-close
309
- * the server without waiting for any connections.
310
- */
311
- /**
312
- * Options for {@linkcode server}
313
- * @typedef ServerOpts
314
- * @property {RouteConfiguringFunction} routeConfiguringFunction
315
- * @property {number} port
316
- * @property {import('@appium/types').ServerArgs} [cliArgs]
317
- * @property {string} [hostname]
318
- * @property {boolean} [allowCors]
319
- * @property {string} [basePath]
320
- * @property {MethodMap} [extraMethodMap]
321
- * @property {import('@appium/types').UpdateServerCallback[]} [serverUpdaters]
322
- * @property {number} [keepAliveTimeout]
323
- * @property {number} [requestTimeout]
324
- */
325
- /**
326
- * A function which configures routes
327
- * @callback RouteConfiguringFunction
328
- * @param {import('express').Express} app
329
- * @param {RouteConfiguringFunctionOpts} [opts]
330
- * @returns {void}
331
- */
332
- /**
333
- * Options for a {@linkcode RouteConfiguringFunction}
334
- * @typedef RouteConfiguringFunctionOpts
335
- * @property {string} [basePath]
336
- * @property {MethodMap} [extraMethodMap]
337
- */
338
- /**
339
- * Options for {@linkcode configureServer}
340
- * @typedef ConfigureServerOpts
341
- * @property {import('express').Express} app
342
- * @property {RouteConfiguringFunction} addRoutes
343
- * @property {boolean} [allowCors]
344
- * @property {string} [basePath]
345
- * @property {MethodMap} [extraMethodMap]
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).
349
- */
350
272
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../lib/express/server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
- export function guineaPig(req: any, res: any): Promise<void>;
2
- export function guineaPigScrollable(req: any, res: any): Promise<void>;
3
- export function guineaPigAppBanner(req: any, res: any): Promise<void>;
4
- export function welcome(req: any, res: any): Promise<void>;
5
- export let STATIC_DIR: string;
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.js"],"names":[],"mappings":"AA2CA,6DAEC;AAKD,uEAEC;AAKD,sEAEC;AAKD,2DAIC;AA9DD,8BAAqE"}
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"}
@@ -8,33 +8,48 @@ exports.guineaPig = guineaPig;
8
8
  exports.guineaPigScrollable = guineaPigScrollable;
9
9
  exports.guineaPigAppBanner = guineaPigAppBanner;
10
10
  exports.welcome = welcome;
11
- const path_1 = __importDefault(require("path"));
12
- const logger_1 = __importDefault(require("./logger"));
11
+ const node_path_1 = __importDefault(require("node:path"));
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
- let STATIC_DIR = path_1.default.resolve(__dirname, '..', '..', '..', 'static');
17
- exports.STATIC_DIR = STATIC_DIR;
18
- if (lodash_1.default.isNull(path_1.default.resolve(__dirname).match(/build[/\\]lib[/\\]express$/))) {
19
- // in some contexts we are not in the build directory,
20
- // so we don't want to go back the extra level
21
- exports.STATIC_DIR = STATIC_DIR = path_1.default.resolve(__dirname, '..', '..', 'static');
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 || req.query.delay || 0, 10);
25
- const throwError = req.params.throwError || req.query.throwError || '';
26
- let params = {
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 || params.comment;
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.default.debug(`Sending guinea pig response with params: ${JSON.stringify(params)}`);
50
+ logger_1.log.debug(`Sending guinea pig response with params: ${JSON.stringify(params)}`);
36
51
  if (delay) {
37
- logger_1.default.debug(`Waiting ${delay}ms before responding`);
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
- res.send((await getTemplate(page))(params));
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
- let content = await support_1.fs.readFile(path_1.default.resolve(STATIC_DIR, 'test', templateName));
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.js"],"names":[],"mappings":";;;;;;AA2EQ,8BAAS;AAAE,kDAAmB;AAAE,gDAAkB;AAAE,0BAAO;AA3EnE,gDAAwB;AACxB,sDAA2B;AAC3B,oDAAuB;AACvB,6CAAmC;AACnC,wDAAyB;AAEzB,IAAI,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAqEA,gCAAU;AApE/E,IAAI,gBAAC,CAAC,MAAM,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC;IAC1E,sDAAsD;IACtD,8CAA8C;IAC9C,qBAAA,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IACvE,IAAI,MAAM,GAAG;QACX,UAAU;QACV,UAAU,EAAE,IAAI,IAAI,EAAE;QACtB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACpC,OAAO,EAAE,MAAM;KAChB,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;IACvD,CAAC;IACD,gBAAG,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChF,IAAI,KAAK,EAAE,CAAC;QACV,gBAAG,CAAC,KAAK,CAAC,WAAW,KAAK,sBAAsB,CAAC,CAAC;QAClD,MAAM,kBAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;IAChE,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;IACpD,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,kBAAkB,EAAE;QAC9C,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,GAAG,EAAE,GAAG;IAC/B,OAAO,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,GAAG,EAAE,GAAG;IACzC,OAAO,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,GAAG,EAAE,GAAG;IACxC,OAAO,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CAAC,GAAG,EAAE,GAAG;IAC7B,IAAI,MAAM,GAAG,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC;IACxC,gBAAG,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,YAAY;IACrC,IAAI,OAAO,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAChF,OAAO,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"static.js","sourceRoot":"","sources":["../../../lib/express/static.ts"],"names":[],"mappings":";;;;;;AAcA,8BAEC;AAGD,kDAEC;AAGD,gDAEC;AAGD,0BAKC;AAlCD,0DAA6B;AAC7B,qCAA6B;AAC7B,oDAAuB;AACvB,6CAAmC;AACnC,wDAAyB;AAGZ,QAAA,UAAU,GAAG,gBAAC,CAAC,MAAM,CAAC,mBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC7F,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC/C,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAIxD,8CAA8C;AACvC,KAAK,UAAU,SAAS,CAAC,GAAY,EAAE,GAAa;IACzD,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACvD,CAAC;AAED,yDAAyD;AAClD,KAAK,UAAU,mBAAmB,CAAC,GAAY,EAAE,GAAa;IACnE,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;AAClE,CAAC;AAED,yDAAyD;AAClD,KAAK,UAAU,kBAAkB,CAAC,GAAY,EAAE,GAAa;IAClE,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;AAClE,CAAC;AAED,sCAAsC;AAC/B,KAAK,UAAU,OAAO,CAAC,GAAY,EAAE,GAAa;IACvD,MAAM,MAAM,GAAmB,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC;IAC1D,YAAG,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAY,EACZ,GAAa,EACb,IAAY;IAEZ,MAAM,KAAK,GAAG,QAAQ,CACpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EACnD,EAAE,CACH,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IAChF,MAAM,MAAM,GAAmB;QAC7B,UAAU;QACV,UAAU,EAAE,IAAI,IAAI,EAAE;QACtB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;QACpC,OAAO,EAAE,MAAM;KAChB,CAAC;IACF,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAChG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAE,GAAG,CAAC,IAA4B,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IACxF,CAAC;IACD,YAAG,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChF,IAAI,KAAK,EAAE,CAAC;QACV,YAAG,CAAC,KAAK,CAAC,WAAW,KAAK,sBAAsB,CAAC,CAAC;QAClD,MAAM,kBAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACrC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;IAChE,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAC;IACpD,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,kBAAkB,EAAE;QAC9C,MAAM,EAAE,iBAAiB;QACzB,IAAI,EAAE,GAAG;KACV,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,YAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,OAAO,CAAC,kBAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAClF,OAAO,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAuC,CAAC;AAC9E,CAAC"}
@@ -1,7 +1,23 @@
1
- export type AppiumServer = import("@appium/types").AppiumServer;
2
- export function addWebSocketHandler(this: import("@appium/types").AppiumServer, handlerPathname: string, handlerServer: import("ws").Server): Promise<void>;
3
- export function removeWebSocketHandler(this: import("@appium/types").AppiumServer, handlerPathname: string): Promise<boolean>;
4
- export function removeAllWebSocketHandlers(this: import("@appium/types").AppiumServer): Promise<boolean>;
5
- export function getWebSocketHandlers(this: import("@appium/types").AppiumServer, keysFilter?: string | null): Promise<Record<string, import("ws").Server>>;
6
- export const DEFAULT_WS_PATHNAME_PREFIX: "/ws";
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.js"],"names":[],"mappings":"2BA6Ea,OAAO,eAAe,EAAE,YAAY;;;;;AAzEjD,yCAAmC,KAAK,CAAC"}
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
- const DEFAULT_WS_PATHNAME_PREFIX = '/ws';
14
- exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
13
+ exports.DEFAULT_WS_PATHNAME_PREFIX = '/ws';
15
14
  /**
16
- * @this {AppiumServer}
17
- * @type {AppiumServer['addWebSocketHandler']}
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
- * @this {AppiumServer}
24
- * @type {AppiumServer['getWebSocketHandlers']}
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
- * @this {AppiumServer}
36
- * @type {AppiumServer['removeWebSocketHandler']}
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
- * @this {AppiumServer}
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.js"],"names":[],"mappings":";;;;;;AAqEE,kDAAmB;AACnB,wDAAsB;AACtB,gEAA0B;AAC1B,oDAAoB;AAvEtB,oDAAuB;AACvB,wDAAyB;AAEzB,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAqEvC,gEAA0B;AAnE5B;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,eAAe,EAAE,aAAa;IAC/D,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,UAAU,GAAG,IAAI;IACnD,OAAO,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC5E,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,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,eAAe;IACnD,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;;;;GAIG;AACH,KAAK,UAAU,0BAA0B;IACvC,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,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CACxF,CACF,CAAC;AACJ,CAAC;AAUD;;GAEG"}
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"}