@appium/base-driver 9.16.1 → 9.16.3

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.
@@ -1,12 +1,8 @@
1
- export default JWProxy;
2
- export type ProxyError = Error & {
3
- response: {
4
- data: import("type-fest").JsonObject;
5
- status: import("http-status-codes").StatusCodes;
6
- };
7
- };
8
1
  export class JWProxy {
9
- constructor(opts?: {});
2
+ /**
3
+ * @param {import('@appium/types').ProxyOptions} [opts={}]
4
+ */
5
+ constructor(opts?: import("@appium/types").ProxyOptions);
10
6
  /** @type {string} */
11
7
  scheme: string;
12
8
  /** @type {string} */
@@ -21,13 +17,15 @@ export class JWProxy {
21
17
  sessionId: string | null;
22
18
  /** @type {number} */
23
19
  timeout: number;
24
- _activeRequests: any[];
25
- _downstreamProtocol: any;
20
+ /** @type {Protocol | null | undefined} */
21
+ _downstreamProtocol: Protocol | null | undefined;
22
+ /** @type {ProxyRequest[]} */
23
+ _activeRequests: ProxyRequest[];
26
24
  httpAgent: http.Agent;
27
25
  httpsAgent: https.Agent;
28
26
  protocolConverter: ProtocolConverter;
29
- _log: any;
30
- get log(): any;
27
+ _log: import("@appium/types").AppiumLogger | undefined;
28
+ get log(): import("@appium/types").AppiumLogger;
31
29
  /**
32
30
  * Performs requests to the downstream server
33
31
  *
@@ -38,10 +36,16 @@ export class JWProxy {
38
36
  * @returns {Promise<import('axios').AxiosResponse>}
39
37
  */
40
38
  private request;
39
+ /**
40
+ * @returns {number}
41
+ */
41
42
  getActiveRequestsCount(): number;
42
43
  cancelActiveRequests(): void;
43
- set downstreamProtocol(value: any);
44
- get downstreamProtocol(): any;
44
+ /**
45
+ * @param {Protocol | null | undefined} value
46
+ */
47
+ set downstreamProtocol(value: Protocol | null | undefined);
48
+ get downstreamProtocol(): Protocol | null | undefined;
45
49
  /**
46
50
  *
47
51
  * @param {string} url
@@ -53,12 +57,18 @@ export class JWProxy {
53
57
  *
54
58
  * @param {string} url
55
59
  * @param {string} method
56
- * @param {any} body
57
- * @returns {Promise<any>}
60
+ * @param {import('@appium/types').HTTPBody} [body=null]
61
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
58
62
  */
59
- proxy(url: string, method: string, body?: any): Promise<any>;
60
- getProtocolFromResBody(resObj: any): "MJSONWP" | "W3C" | undefined;
63
+ proxy(url: string, method: string, body?: import("@appium/types").HTTPBody): Promise<[import("@appium/types").ProxyResponse, import("@appium/types").HTTPBody]>;
61
64
  /**
65
+ *
66
+ * @param {Record<string, any>} resObj
67
+ * @returns {Protocol | undefined}
68
+ */
69
+ getProtocolFromResBody(resObj: Record<string, any>): Protocol | undefined;
70
+ /**
71
+ * @deprecated This method is not used anymore and will be removed
62
72
  *
63
73
  * @param {string} url
64
74
  * @param {import('@appium/types').HTTPMethod} method
@@ -69,21 +79,56 @@ export class JWProxy {
69
79
  *
70
80
  * @param {string} url
71
81
  * @param {import('@appium/types').HTTPMethod} method
72
- * @param {any?} body
82
+ * @param {import('@appium/types').HTTPBody} [body=null]
83
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
73
84
  */
74
- proxyCommand(url: string, method: import("@appium/types").HTTPMethod, body?: any | null): Promise<any>;
85
+ proxyCommand(url: string, method: import("@appium/types").HTTPMethod, body?: import("@appium/types").HTTPBody): Promise<[import("@appium/types").ProxyResponse, import("@appium/types").HTTPBody]>;
75
86
  /**
76
87
  *
77
88
  * @param {string} url
78
89
  * @param {import('@appium/types').HTTPMethod} method
79
- * @param {any?} body
80
- * @returns {Promise<unknown>}
90
+ * @param {import('@appium/types').HTTPBody} [body=null]
91
+ * @returns {Promise<import('@appium/types').HTTPBody>}
92
+ */
93
+ command(url: string, method: import("@appium/types").HTTPMethod, body?: import("@appium/types").HTTPBody): Promise<import("@appium/types").HTTPBody>;
94
+ /**
95
+ *
96
+ * @param {string} url
97
+ * @returns {string | null}
98
+ */
99
+ getSessionIdFromUrl(url: string): string | null;
100
+ /**
101
+ *
102
+ * @param {import('express').Request} req
103
+ * @param {import('express').Response} res
104
+ */
105
+ proxyReqRes(req: import("express").Request, res: import("express").Response): Promise<void>;
106
+ /**
107
+ *
108
+ * @param {string} url
109
+ * @returns {ParsedUrl}
81
110
  */
82
- command(url: string, method: import("@appium/types").HTTPMethod, body?: any | null): Promise<unknown>;
83
- getSessionIdFromUrl(url: any): any;
84
- proxyReqRes(req: any, res: any): Promise<void>;
111
+ _parseUrl(url: string): ParsedUrl;
112
+ /**
113
+ *
114
+ * @param {ParsedUrl} parsedUrl
115
+ * @returns {string}
116
+ */
117
+ _toNormalizedPathname(parsedUrl: ParsedUrl): string;
85
118
  }
119
+ export default JWProxy;
120
+ export type ProxyError = Error & {
121
+ response: {
122
+ data: import("type-fest").JsonObject;
123
+ status: import("http-status-codes").StatusCodes;
124
+ };
125
+ };
126
+ export type ParsedUrl = nodeUrl.UrlWithStringQuery;
127
+ export type Protocol = (typeof PROTOCOLS)[keyof typeof PROTOCOLS];
128
+ import { ProxyRequest } from './proxy-request';
86
129
  import http from 'http';
87
130
  import https from 'https';
88
131
  import ProtocolConverter from './protocol-converter';
132
+ import nodeUrl from 'node:url';
133
+ import { PROTOCOLS } from '../constants';
89
134
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":";yBAqba,KAAK,GAAG;IAAC,QAAQ,EAAE;QAAC,IAAI,EAAE,OAAO,WAAW,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,OAAO,mBAAmB,EAAE,WAAW,CAAA;KAAC,CAAA;CAAC;AA9YxH;IAgBE,uBA4BC;IA3CD,qBAAqB;IACrB,QADW,MAAM,CACV;IACP,qBAAqB;IACrB,QADW,MAAM,CACV;IACP,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,qBAAqB;IACrB,aADW,MAAM,CACL;IACZ,sBAAsB;IACtB,WADW,MAAM,OAAC,CACR;IACV,qBAAqB;IACrB,SADW,MAAM,CACT;IAmBN,uBAAyB;IACzB,yBAA+B;IAM/B,sBAA0C;IAC1C,wBAA4C;IAC5C,qCAA+E;IAC/E,UAAoB;IAGtB,eAEC;IAED;;;;;;;;OAQG;IACH,gBAQC;IAED,iCAEC;IAED,6BAEC;IAED,mCAGC;IAED,8BAEC;IAED;;;;;OAKG;IACH,oBAJW,MAAM,WACN,MAAM,GACJ,MAAM,CAuClB;IAED;;;;;;OAMG;IACH,WALW,MAAM,UACN,MAAM,SACN,GAAG,GACD,OAAO,CAAC,GAAG,CAAC,CA+FxB;IAED,mEAOC;IAED;;;;;OAKG;IACH,0BAJW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,GAChC,MAAM,GAAC,SAAS,CAwB5B;IAED;;;;;OAKG;IACH,kBAJW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,SAClC,GAAG,OAAC,gBAUd;IAED;;;;;;OAMG;IACH,aALW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,SAClC,GAAG,OAAC,GACF,OAAO,CAAC,OAAO,CAAC,CAoD5B;IAED,mCAGC;IAED,+CAuCC;CACF;iBAhagB,MAAM;kBACL,OAAO;8BAHK,sBAAsB"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":"AAsCA;IAoBE;;OAEG;IACH,mBAFW,OAAO,eAAe,EAAE,YAAY,EAgC9C;IApDD,qBAAqB;IACrB,QADW,MAAM,CACV;IACP,qBAAqB;IACrB,QADW,MAAM,CACV;IACP,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,qBAAqB;IACrB,aADW,MAAM,CACL;IACZ,sBAAsB;IACtB,WADW,MAAM,OAAC,CACR;IACV,qBAAqB;IACrB,SADW,MAAM,CACT;IACR,0CAA0C;IAC1C,qBADW,QAAQ,GAAG,IAAI,GAAG,SAAS,CAClB;IACpB,6BAA6B;IAC7B,iBADW,YAAY,EAAE,CACT;IA6Bd,sBAA0C;IAC1C,wBAA4C;IAC5C,qCAA+E;IAC/E,uDAAoB;IAKtB,gDAEC;IAED;;;;;;;;OAQG;IACH,gBAQC;IAED;;OAEG;IACH,0BAFa,MAAM,CAIlB;IAED,6BAKC;IAED;;OAEG;IACH,8BAFW,QAAQ,GAAG,IAAI,GAAG,SAAS,EAKrC;IAED,0BAPW,QAAQ,GAAG,IAAI,GAAG,SAAS,CASrC;IAED;;;;;OAKG;IACH,oBAJW,MAAM,WACN,MAAM,GACJ,MAAM,CAwBlB;IAED;;;;;;OAMG;IACH,WALW,MAAM,UACN,MAAM,SACN,OAAO,eAAe,EAAE,QAAQ,GAC9B,OAAO,CAAC,CAAC,OAAO,eAAe,EAAE,aAAa,EAAE,OAAO,eAAe,EAAE,QAAQ,CAAC,CAAC,CAmG9F;IAED;;;;OAIG;IACH,+BAHW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,QAAQ,GAAG,SAAS,CAShC;IAED;;;;;;OAMG;IACH,0BAJW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,GAChC,MAAM,GAAC,SAAS,CAwB5B;IAED;;;;;;OAMG;IACH,kBALW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,SAClC,OAAO,eAAe,EAAE,QAAQ,GAC9B,OAAO,CAAC,CAAC,OAAO,eAAe,EAAE,aAAa,EAAE,OAAO,eAAe,EAAE,QAAQ,CAAC,CAAC,CAY9F;IAED;;;;;;OAMG;IACH,aALW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,SAClC,OAAO,eAAe,EAAE,QAAQ,GAC9B,OAAO,CAAC,OAAO,eAAe,EAAE,QAAQ,CAAC,CAoDrD;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,MAAM,GAAG,IAAI,CAKzB;IAED;;;;OAIG;IACH,iBAHW,OAAO,SAAS,EAAE,OAAO,OACzB,OAAO,SAAS,EAAE,QAAQ,iBAmDpC;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,SAAS,CAWrB;IAED;;;;OAIG;IACH,iCAHW,SAAS,GACP,MAAM,CAwBlB;CACF;;yBAKY,KAAK,GAAG;IAAC,QAAQ,EAAE;QAAC,IAAI,EAAE,OAAO,WAAW,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,OAAO,mBAAmB,EAAE,WAAW,CAAA;KAAC,CAAA;CAAC;wBAC3G,OAAO,CAAC,kBAAkB;uBAC1B,CAAA,OAAO,SAAS,EAAC,MAAM,OAAO,SAAS,CAAC;6BApfxB,iBAAiB;iBAJ7B,MAAM;kBACL,OAAO;8BAHK,sBAAsB;oBAKhC,UAAU;0BANkC,cAAc"}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.JWProxy = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const support_1 = require("@appium/support");
9
- const axios_1 = __importDefault(require("axios"));
10
9
  const status_1 = require("../jsonwp-status/status");
11
10
  const errors_1 = require("../protocol/errors");
12
11
  const protocol_1 = require("../protocol");
@@ -17,9 +16,10 @@ const http_1 = __importDefault(require("http"));
17
16
  const https_1 = __importDefault(require("https"));
18
17
  const path_to_regexp_1 = require("path-to-regexp");
19
18
  const node_url_1 = __importDefault(require("node:url"));
19
+ const proxy_request_1 = require("./proxy-request");
20
20
  const DEFAULT_LOG = support_1.logger.getLogger('WD Proxy');
21
21
  const DEFAULT_REQUEST_TIMEOUT = 240000;
22
- const COMMAND_WITH_SESSION_ID_MATCHER = (0, path_to_regexp_1.match)('/session/:sessionId{/*command}');
22
+ const COMMAND_WITH_SESSION_ID_MATCHER = (0, path_to_regexp_1.match)('{/*prefix}/session/:sessionId{/*command}');
23
23
  const { MJSONWP, W3C } = constants_1.PROTOCOLS;
24
24
  const ALLOWED_OPTS = [
25
25
  'scheme',
@@ -33,11 +33,15 @@ const ALLOWED_OPTS = [
33
33
  'keepAlive',
34
34
  ];
35
35
  class JWProxy {
36
+ /**
37
+ * @param {import('@appium/types').ProxyOptions} [opts={}]
38
+ */
36
39
  constructor(opts = {}) {
37
- opts = lodash_1.default.pick(opts, ALLOWED_OPTS);
40
+ const filteredOpts = lodash_1.default.pick(opts, ALLOWED_OPTS);
38
41
  // omit 'log' in the defaults assignment here because 'log' is a getter and we are going to set
39
42
  // it to this._log (which lies behind the getter) further down
40
- const options = lodash_1.default.defaults(lodash_1.default.omit(opts, 'log'), {
43
+ /** @type {import('@appium/types').ProxyOptions} */
44
+ const options = lodash_1.default.defaults(lodash_1.default.omit(filteredOpts, 'log'), {
41
45
  scheme: 'http',
42
46
  server: 'localhost',
43
47
  port: 4444,
@@ -46,7 +50,7 @@ class JWProxy {
46
50
  sessionId: null,
47
51
  timeout: DEFAULT_REQUEST_TIMEOUT,
48
52
  });
49
- options.scheme = options.scheme.toLowerCase();
53
+ options.scheme = /** @type {string} */ (options.scheme).toLowerCase();
50
54
  Object.assign(this, options);
51
55
  this._activeRequests = [];
52
56
  this._downstreamProtocol = null;
@@ -59,6 +63,7 @@ class JWProxy {
59
63
  this.httpsAgent = new https_1.default.Agent(agentOpts);
60
64
  this.protocolConverter = new protocol_converter_1.default(this.proxy.bind(this), opts.log);
61
65
  this._log = opts.log;
66
+ this.log.debug(`${this.constructor.name} options: ${JSON.stringify(options)}`);
62
67
  }
63
68
  get log() {
64
69
  return this._log ?? DEFAULT_LOG;
@@ -73,21 +78,30 @@ class JWProxy {
73
78
  * @returns {Promise<import('axios').AxiosResponse>}
74
79
  */
75
80
  async request(requestConfig) {
76
- const reqPromise = (0, axios_1.default)(requestConfig);
77
- this._activeRequests.push(reqPromise);
81
+ const req = new proxy_request_1.ProxyRequest(requestConfig);
82
+ this._activeRequests.push(req);
78
83
  try {
79
- return await reqPromise;
84
+ return await req.execute();
80
85
  }
81
86
  finally {
82
- lodash_1.default.pull(this._activeRequests, reqPromise);
87
+ lodash_1.default.pull(this._activeRequests, req);
83
88
  }
84
89
  }
90
+ /**
91
+ * @returns {number}
92
+ */
85
93
  getActiveRequestsCount() {
86
94
  return this._activeRequests.length;
87
95
  }
88
96
  cancelActiveRequests() {
97
+ for (const ar of this._activeRequests) {
98
+ ar.cancel();
99
+ }
89
100
  this._activeRequests = [];
90
101
  }
102
+ /**
103
+ * @param {Protocol | null | undefined} value
104
+ */
91
105
  set downstreamProtocol(value) {
92
106
  this._downstreamProtocol = value;
93
107
  this.protocolConverter.downstreamProtocol = value;
@@ -102,18 +116,8 @@ class JWProxy {
102
116
  * @returns {string}
103
117
  */
104
118
  getUrlForProxy(url, method) {
105
- const parsedUrl = node_url_1.default.parse(url || '/');
106
- if (!parsedUrl.href || !parsedUrl.pathname
107
- || (parsedUrl.protocol && !['http:', 'https:'].includes(parsedUrl.protocol))) {
108
- throw new Error(`Did not know how to proxy the url '${url}'`);
109
- }
110
- const pathname = this.reqBasePath && parsedUrl.pathname.startsWith(this.reqBasePath)
111
- ? parsedUrl.pathname.replace(this.reqBasePath, '')
112
- : parsedUrl.pathname;
113
- const match = COMMAND_WITH_SESSION_ID_MATCHER(pathname);
114
- const normalizedPathname = lodash_1.default.trimEnd(match && lodash_1.default.isArray(match.params?.command)
115
- ? `/${match.params.command.join('/')}`
116
- : pathname, '/');
119
+ const parsedUrl = this._parseUrl(url);
120
+ const normalizedPathname = this._toNormalizedPathname(parsedUrl);
117
121
  const commandName = normalizedPathname
118
122
  ? (0, protocol_1.routeToCommandName)(normalizedPathname,
119
123
  /** @type {import('@appium/types').HTTPMethod | undefined} */ (method))
@@ -136,8 +140,8 @@ class JWProxy {
136
140
  *
137
141
  * @param {string} url
138
142
  * @param {string} method
139
- * @param {any} body
140
- * @returns {Promise<any>}
143
+ * @param {import('@appium/types').HTTPBody} [body=null]
144
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
141
145
  */
142
146
  async proxy(url, method, body = null) {
143
147
  method = method.toUpperCase();
@@ -207,8 +211,12 @@ class JWProxy {
207
211
  // Some servers, like chromedriver may return response code 200 for non-zero JSONWP statuses
208
212
  throwProxyError(data);
209
213
  }
210
- const res = { statusCode: status, headers, body: data };
211
- return [res, data];
214
+ const headersMap = /** @type {import('@appium/types').HTTPHeaders} */ (headers);
215
+ return [{
216
+ statusCode: status,
217
+ headers: headersMap,
218
+ body: data,
219
+ }, data];
212
220
  }
213
221
  catch (e) {
214
222
  // We only consider an error unexpected if this was not
@@ -230,6 +238,11 @@ class JWProxy {
230
238
  throw new errors_1.errors.ProxyRequestError(proxyErrorMsg, e.response?.data, e.response?.status);
231
239
  }
232
240
  }
241
+ /**
242
+ *
243
+ * @param {Record<string, any>} resObj
244
+ * @returns {Protocol | undefined}
245
+ */
233
246
  getProtocolFromResBody(resObj) {
234
247
  if (lodash_1.default.isInteger(resObj.status)) {
235
248
  return MJSONWP;
@@ -239,6 +252,7 @@ class JWProxy {
239
252
  }
240
253
  }
241
254
  /**
255
+ * @deprecated This method is not used anymore and will be removed
242
256
  *
243
257
  * @param {string} url
244
258
  * @param {import('@appium/types').HTTPMethod} method
@@ -269,10 +283,13 @@ class JWProxy {
269
283
  *
270
284
  * @param {string} url
271
285
  * @param {import('@appium/types').HTTPMethod} method
272
- * @param {any?} body
286
+ * @param {import('@appium/types').HTTPBody} [body=null]
287
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
273
288
  */
274
289
  async proxyCommand(url, method, body = null) {
275
- const commandName = this.requestToCommandName(url, method);
290
+ const parsedUrl = this._parseUrl(url);
291
+ const normalizedPathname = this._toNormalizedPathname(parsedUrl);
292
+ const commandName = normalizedPathname ? (0, protocol_1.routeToCommandName)(normalizedPathname, method) : '';
276
293
  if (!commandName) {
277
294
  return await this.proxy(url, method, body);
278
295
  }
@@ -283,8 +300,8 @@ class JWProxy {
283
300
  *
284
301
  * @param {string} url
285
302
  * @param {import('@appium/types').HTTPMethod} method
286
- * @param {any?} body
287
- * @returns {Promise<unknown>}
303
+ * @param {import('@appium/types').HTTPBody} [body=null]
304
+ * @returns {Promise<import('@appium/types').HTTPBody>}
288
305
  */
289
306
  async command(url, method, body = null) {
290
307
  let response;
@@ -331,19 +348,36 @@ class JWProxy {
331
348
  length: 300,
332
349
  })}'`);
333
350
  }
351
+ /**
352
+ *
353
+ * @param {string} url
354
+ * @returns {string | null}
355
+ */
334
356
  getSessionIdFromUrl(url) {
335
357
  const match = url.match(/\/session\/([^/]+)/);
336
358
  return match ? match[1] : null;
337
359
  }
360
+ /**
361
+ *
362
+ * @param {import('express').Request} req
363
+ * @param {import('express').Response} res
364
+ */
338
365
  async proxyReqRes(req, res) {
339
366
  // ! this method must not throw any exceptions
340
367
  // ! make sure to call res.send before return
368
+ /** @type {number} */
341
369
  let statusCode;
370
+ /** @type {import('@appium/types').HTTPBody} */
342
371
  let resBodyObj;
343
372
  try {
344
373
  let response;
345
- [response, resBodyObj] = await this.proxyCommand(req.originalUrl, req.method, req.body);
346
- res.headers = response.headers;
374
+ [response, resBodyObj] = await this.proxyCommand(req.originalUrl,
375
+ /** @type {import('@appium/types').HTTPMethod} */ (req.method), req.body);
376
+ for (const [name, value] of lodash_1.default.toPairs(response.headers)) {
377
+ if (!lodash_1.default.isNil(value)) {
378
+ res.setHeader(name, lodash_1.default.isBoolean(value) ? String(value) : value);
379
+ }
380
+ }
347
381
  statusCode = response.statusCode;
348
382
  }
349
383
  catch (err) {
@@ -372,10 +406,54 @@ class JWProxy {
372
406
  resBodyObj.value = (0, helpers_1.formatResponseValue)(resBodyObj.value);
373
407
  res.status(statusCode).send(JSON.stringify((0, helpers_1.formatStatus)(resBodyObj)));
374
408
  }
409
+ /**
410
+ *
411
+ * @param {string} url
412
+ * @returns {ParsedUrl}
413
+ */
414
+ _parseUrl(url) {
415
+ const parsedUrl = node_url_1.default.parse(url || '/');
416
+ if (lodash_1.default.isNil(parsedUrl.href) || lodash_1.default.isNil(parsedUrl.pathname)
417
+ || (parsedUrl.protocol && !['http:', 'https:'].includes(parsedUrl.protocol))) {
418
+ throw new Error(`Did not know how to proxy the url '${url}'`);
419
+ }
420
+ return parsedUrl;
421
+ }
422
+ /**
423
+ *
424
+ * @param {ParsedUrl} parsedUrl
425
+ * @returns {string}
426
+ */
427
+ _toNormalizedPathname(parsedUrl) {
428
+ if (!lodash_1.default.isString(parsedUrl.pathname)) {
429
+ return '';
430
+ }
431
+ let pathname = this.reqBasePath && parsedUrl.pathname.startsWith(this.reqBasePath)
432
+ ? parsedUrl.pathname.replace(this.reqBasePath, '')
433
+ : parsedUrl.pathname;
434
+ const match = COMMAND_WITH_SESSION_ID_MATCHER(pathname);
435
+ // This is needed for the backward compatibility
436
+ // if drivers don't set reqBasePath properly
437
+ if (!this.reqBasePath) {
438
+ if (match && lodash_1.default.isArray(match.params?.prefix)) {
439
+ pathname = pathname.replace(`/${match.params?.prefix.join('/')}`, '');
440
+ }
441
+ else if (lodash_1.default.startsWith(pathname, '/wd/hub')) {
442
+ pathname = pathname.replace('/wd/hub', '');
443
+ }
444
+ }
445
+ let result = pathname;
446
+ if (match) {
447
+ result = lodash_1.default.isArray(match.params?.command) ? `/${match.params.command.join('/')}` : '';
448
+ }
449
+ return lodash_1.default.trimEnd(result, '/');
450
+ }
375
451
  }
376
452
  exports.JWProxy = JWProxy;
377
453
  exports.default = JWProxy;
378
454
  /**
379
455
  * @typedef {Error & {response: {data: import('type-fest').JsonObject, status: import('http-status-codes').StatusCodes}}} ProxyError
456
+ * @typedef {nodeUrl.UrlWithStringQuery} ParsedUrl
457
+ * @typedef {typeof PROTOCOLS[keyof typeof PROTOCOLS]} Protocol
380
458
  */
381
459
  //# sourceMappingURL=proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":"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"}
@@ -373,29 +373,33 @@ export function duplicateKeys(input, firstKey, secondKey) {
373
373
  }
374
374
 
375
375
  /**
376
- * Takes a desired capability and tries to JSON.parse it as an array,
376
+ * Takes a capability value and tries to JSON.parse it as an array,
377
377
  * and either returns the parsed array or a singleton array.
378
378
  *
379
- * @param {string|Array<String>} cap A desired capability
379
+ * @param {string|string[]} capValue Capability value
380
+ * @returns {string[]}
380
381
  */
381
- export function parseCapsArray(cap) {
382
- if (_.isArray(cap)) {
383
- return cap;
382
+ export function parseCapsArray(capValue) {
383
+ if (_.isArray(capValue)) {
384
+ return capValue;
384
385
  }
385
386
 
386
- let parsedCaps;
387
387
  try {
388
- parsedCaps = JSON.parse(cap);
389
- if (_.isArray(parsedCaps)) {
390
- return parsedCaps;
388
+ const parsed = JSON.parse(capValue);
389
+ if (_.isArray(parsed)) {
390
+ return parsed;
391
391
  }
392
392
  } catch (e) {
393
- logger.warn(`Failed to parse capability as JSON array: ${e.message}`);
393
+ const message = `Failed to parse capability as JSON array: ${e.message}`;
394
+ if (_.isString(capValue) && _.startsWith(_.trimStart(capValue), '[')) {
395
+ throw new TypeError(message);
396
+ }
397
+ logger.warn(message);
394
398
  }
395
- if (_.isString(cap)) {
396
- return [cap];
399
+ if (_.isString(capValue)) {
400
+ return [capValue];
397
401
  }
398
- throw new Error(`must provide a string or JSON Array; received ${cap}`);
402
+ throw new TypeError(`Expected a string or a valid JSON array; received '${capValue}'`);
399
403
  }
400
404
 
401
405
  /**
@@ -43,6 +43,11 @@ const {MJSONWP, W3C} = PROTOCOLS;
43
43
  const DEFAULT_LOG = logger.getLogger('Protocol Converter');
44
44
 
45
45
  class ProtocolConverter {
46
+ /**
47
+ *
48
+ * @param {ProxyFunction} proxyFunc
49
+ * @param {import('@appium/types').AppiumLogger | null} [log=null]
50
+ */
46
51
  constructor(proxyFunc, log = null) {
47
52
  this.proxyFunc = proxyFunc;
48
53
  this._downstreamProtocol = null;
@@ -67,7 +72,7 @@ class ProtocolConverter {
67
72
  * provided in the request, we need to do 3 proxies and combine the result
68
73
  *
69
74
  * @param {Object} body Request body
70
- * @return {Array} Array of W3C + MJSONWP compatible timeout objects
75
+ * @return {Object[]} Array of W3C + MJSONWP compatible timeout objects
71
76
  */
72
77
  getTimeoutRequestObjects(body) {
73
78
  if (this.downstreamProtocol === W3C && _.has(body, 'ms') && _.has(body, 'type')) {
@@ -99,9 +104,10 @@ class ProtocolConverter {
99
104
 
100
105
  /**
101
106
  * Proxy an array of timeout objects and merge the result
102
- * @param {String} url Endpoint url
103
- * @param {String} method Endpoint method
104
- * @param {Object} body Request body
107
+ * @param {string} url Endpoint url
108
+ * @param {string} method Endpoint method
109
+ * @param {import('@appium/types').HTTPBody} body Request body
110
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
105
111
  */
106
112
  async proxySetTimeouts(url, method, body) {
107
113
  let response, resBody;
@@ -127,9 +133,16 @@ class ProtocolConverter {
127
133
 
128
134
  // ...Otherwise, continue to the next timeouts call
129
135
  }
130
- return [response, resBody];
136
+ return [/** @type {import('@appium/types').ProxyResponse} */(response), resBody];
131
137
  }
132
138
 
139
+ /**
140
+ *
141
+ * @param {string} url
142
+ * @param {string} method
143
+ * @param {import('@appium/types').HTTPBody} body
144
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
145
+ */
133
146
  async proxySetWindow(url, method, body) {
134
147
  const bodyObj = util.safeJsonParse(body);
135
148
  if (_.isPlainObject(bodyObj)) {
@@ -160,6 +173,13 @@ class ProtocolConverter {
160
173
  return await this.proxyFunc(url, method, body);
161
174
  }
162
175
 
176
+ /**
177
+ *
178
+ * @param {string} url
179
+ * @param {string} method
180
+ * @param {import('@appium/types').HTTPBody} body
181
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
182
+ */
163
183
  async proxySetValue(url, method, body) {
164
184
  const bodyObj = util.safeJsonParse(body);
165
185
  if (_.isPlainObject(bodyObj) && (util.hasValue(bodyObj.text) || util.hasValue(bodyObj.value))) {
@@ -186,6 +206,13 @@ class ProtocolConverter {
186
206
  return await this.proxyFunc(url, method, body);
187
207
  }
188
208
 
209
+ /**
210
+ *
211
+ * @param {string} url
212
+ * @param {string} method
213
+ * @param {import('@appium/types').HTTPBody} body
214
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
215
+ */
189
216
  async proxySetFrame(url, method, body) {
190
217
  const bodyObj = util.safeJsonParse(body);
191
218
  return _.has(bodyObj, 'id') && _.isPlainObject(bodyObj.id)
@@ -196,6 +223,13 @@ class ProtocolConverter {
196
223
  : await this.proxyFunc(url, method, body);
197
224
  }
198
225
 
226
+ /**
227
+ *
228
+ * @param {string} url
229
+ * @param {string} method
230
+ * @param {import('@appium/types').HTTPBody} body
231
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
232
+ */
199
233
  async proxyPerformActions(url, method, body) {
200
234
  const bodyObj = util.safeJsonParse(body);
201
235
  return _.isPlainObject(bodyObj)
@@ -207,6 +241,12 @@ class ProtocolConverter {
207
241
  : await this.proxyFunc(url, method, body);
208
242
  }
209
243
 
244
+ /**
245
+ *
246
+ * @param {string} url
247
+ * @param {string} method
248
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
249
+ */
210
250
  async proxyReleaseActions(url, method) {
211
251
  return await this.proxyFunc(url, method);
212
252
  }
@@ -218,8 +258,8 @@ class ProtocolConverter {
218
258
  * @param {string} commandName
219
259
  * @param {string} url
220
260
  * @param {string} method
221
- * @param {?string|object} body
222
- * @returns The proxyfying result as [response, responseBody] tuple
261
+ * @param {import('@appium/types').HTTPBody} [body]
262
+ * @returns {Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>}
223
263
  */
224
264
  async convertAndProxy(commandName, url, method, body) {
225
265
  if (!this.downstreamProtocol) {
@@ -272,3 +312,7 @@ class ProtocolConverter {
272
312
  }
273
313
 
274
314
  export default ProtocolConverter;
315
+
316
+ /**
317
+ * @typedef {(url: string, method: string, body?: import('@appium/types').HTTPBody) => Promise<[import('@appium/types').ProxyResponse, import('@appium/types').HTTPBody]>} ProxyFunction
318
+ */