@appium/base-driver 8.7.2 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +11 -163
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  3. package/build/lib/basedriver/capabilities.js +354 -236
  4. package/build/lib/basedriver/capabilities.js.map +1 -1
  5. package/build/lib/basedriver/commands/event.d.ts +7 -6
  6. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  7. package/build/lib/basedriver/commands/event.js +55 -35
  8. package/build/lib/basedriver/commands/event.js.map +1 -1
  9. package/build/lib/basedriver/commands/execute.d.ts +7 -6
  10. package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
  11. package/build/lib/basedriver/commands/execute.js +66 -58
  12. package/build/lib/basedriver/commands/execute.js.map +1 -1
  13. package/build/lib/basedriver/commands/find.d.ts +9 -7
  14. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  15. package/build/lib/basedriver/commands/find.js +102 -54
  16. package/build/lib/basedriver/commands/find.js.map +1 -1
  17. package/build/lib/basedriver/commands/index.d.ts +3 -7
  18. package/build/lib/basedriver/commands/index.d.ts.map +1 -1
  19. package/build/lib/basedriver/commands/index.js +30 -33
  20. package/build/lib/basedriver/commands/index.js.map +1 -1
  21. package/build/lib/basedriver/commands/log.d.ts +8 -9
  22. package/build/lib/basedriver/commands/log.d.ts.map +1 -1
  23. package/build/lib/basedriver/commands/log.js +54 -38
  24. package/build/lib/basedriver/commands/log.js.map +1 -1
  25. package/build/lib/basedriver/commands/session.d.ts +7 -6
  26. package/build/lib/basedriver/commands/session.d.ts.map +1 -1
  27. package/build/lib/basedriver/commands/session.js +46 -39
  28. package/build/lib/basedriver/commands/session.js.map +1 -1
  29. package/build/lib/basedriver/commands/settings.d.ts +7 -7
  30. package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
  31. package/build/lib/basedriver/commands/settings.js +35 -28
  32. package/build/lib/basedriver/commands/settings.js.map +1 -1
  33. package/build/lib/basedriver/commands/timeout.d.ts +7 -5
  34. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  35. package/build/lib/basedriver/commands/timeout.js +144 -162
  36. package/build/lib/basedriver/commands/timeout.js.map +1 -1
  37. package/build/lib/basedriver/core.d.ts +6 -157
  38. package/build/lib/basedriver/core.d.ts.map +1 -1
  39. package/build/lib/basedriver/core.js +361 -230
  40. package/build/lib/basedriver/core.js.map +1 -1
  41. package/build/lib/basedriver/desired-caps.js +80 -110
  42. package/build/lib/basedriver/desired-caps.js.map +1 -1
  43. package/build/lib/basedriver/device-settings.js +57 -62
  44. package/build/lib/basedriver/device-settings.js.map +1 -1
  45. package/build/lib/basedriver/driver.d.ts +21 -267
  46. package/build/lib/basedriver/driver.d.ts.map +1 -1
  47. package/build/lib/basedriver/driver.js +362 -258
  48. package/build/lib/basedriver/driver.js.map +1 -1
  49. package/build/lib/basedriver/helpers.js +500 -495
  50. package/build/lib/basedriver/helpers.js.map +1 -1
  51. package/build/lib/basedriver/logger.d.ts +1 -1
  52. package/build/lib/basedriver/logger.d.ts.map +1 -1
  53. package/build/lib/basedriver/logger.js +5 -15
  54. package/build/lib/basedriver/logger.js.map +1 -1
  55. package/build/lib/constants.js +14 -14
  56. package/build/lib/constants.js.map +1 -1
  57. package/build/lib/express/crash.js +8 -15
  58. package/build/lib/express/crash.js.map +1 -1
  59. package/build/lib/express/express-logging.js +49 -59
  60. package/build/lib/express/express-logging.js.map +1 -1
  61. package/build/lib/express/idempotency.js +125 -177
  62. package/build/lib/express/idempotency.js.map +1 -1
  63. package/build/lib/express/logger.d.ts +1 -1
  64. package/build/lib/express/logger.d.ts.map +1 -1
  65. package/build/lib/express/logger.js +5 -15
  66. package/build/lib/express/logger.js.map +1 -1
  67. package/build/lib/express/middleware.js +82 -107
  68. package/build/lib/express/middleware.js.map +1 -1
  69. package/build/lib/express/server.d.ts +17 -5
  70. package/build/lib/express/server.d.ts.map +1 -1
  71. package/build/lib/express/server.js +259 -224
  72. package/build/lib/express/server.js.map +1 -1
  73. package/build/lib/express/static.js +64 -81
  74. package/build/lib/express/static.js.map +1 -1
  75. package/build/lib/express/websocket.js +115 -87
  76. package/build/lib/express/websocket.js.map +1 -1
  77. package/build/lib/helpers/capabilities.d.ts +1 -59
  78. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  79. package/build/lib/helpers/capabilities.js +72 -69
  80. package/build/lib/helpers/capabilities.js.map +1 -1
  81. package/build/lib/index.js +64 -180
  82. package/build/lib/index.js.map +1 -1
  83. package/build/lib/jsonwp-proxy/protocol-converter.js +215 -227
  84. package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
  85. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  86. package/build/lib/jsonwp-proxy/proxy.js +355 -393
  87. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  88. package/build/lib/jsonwp-status/status.js +119 -130
  89. package/build/lib/jsonwp-status/status.js.map +1 -1
  90. package/build/lib/protocol/errors.d.ts +135 -32
  91. package/build/lib/protocol/errors.d.ts.map +1 -1
  92. package/build/lib/protocol/errors.js +871 -919
  93. package/build/lib/protocol/errors.js.map +1 -1
  94. package/build/lib/protocol/helpers.js +37 -37
  95. package/build/lib/protocol/helpers.js.map +1 -1
  96. package/build/lib/protocol/index.js +22 -109
  97. package/build/lib/protocol/index.js.map +1 -1
  98. package/build/lib/protocol/protocol.js +394 -350
  99. package/build/lib/protocol/protocol.js.map +1 -1
  100. package/build/lib/protocol/routes.d.ts +1238 -4
  101. package/build/lib/protocol/routes.d.ts.map +1 -1
  102. package/build/lib/protocol/routes.js +964 -1327
  103. package/build/lib/protocol/routes.js.map +1 -1
  104. package/build/lib/protocol/validators.js +32 -39
  105. package/build/lib/protocol/validators.js.map +1 -1
  106. package/build/tsconfig.tsbuildinfo +1 -1
  107. package/lib/basedriver/capabilities.js +80 -39
  108. package/lib/basedriver/commands/event.js +10 -5
  109. package/lib/basedriver/commands/execute.js +14 -9
  110. package/lib/basedriver/commands/find.js +18 -12
  111. package/lib/basedriver/commands/index.js +21 -16
  112. package/lib/basedriver/commands/log.js +24 -18
  113. package/lib/basedriver/commands/session.js +10 -5
  114. package/lib/basedriver/commands/settings.js +9 -6
  115. package/lib/basedriver/commands/timeout.js +10 -4
  116. package/lib/basedriver/core.js +2 -3
  117. package/lib/basedriver/driver.js +29 -18
  118. package/lib/express/server.js +6 -3
  119. package/lib/protocol/errors.js +155 -44
  120. package/lib/protocol/routes.js +11 -7
  121. package/package.json +14 -16
@@ -1,239 +1,227 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.COMMAND_URLS_CONFLICTS = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _lodash = _interopRequireDefault(require("lodash"));
11
-
12
- var _support = require("@appium/support");
13
-
14
- var _helpers = require("../basedriver/helpers");
15
-
16
- var _constants = require("../constants");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- const COMMAND_URLS_CONFLICTS = [{
21
- commandNames: ['execute', 'executeAsync'],
22
- jsonwpConverter: url => url.replace(/\/execute.*/, url.includes('async') ? '/execute_async' : '/execute'),
23
- w3cConverter: url => url.replace(/\/execute.*/, url.includes('async') ? '/execute/async' : '/execute/sync')
24
- }, {
25
- commandNames: ['getElementScreenshot'],
26
- jsonwpConverter: url => url.replace(/\/element\/([^/]+)\/screenshot$/, '/screenshot/$1'),
27
- w3cConverter: url => url.replace(/\/screenshot\/([^/]+)/, '/element/$1/screenshot')
28
- }, {
29
- commandNames: ['getWindowHandles', 'getWindowHandle'],
30
-
31
- jsonwpConverter(url) {
32
- return /\/window$/.test(url) ? url.replace(/\/window$/, '/window_handle') : url.replace(/\/window\/handle(s?)$/, '/window_handle$1');
33
- },
34
-
35
- w3cConverter(url) {
36
- return /\/window_handle$/.test(url) ? url.replace(/\/window_handle$/, '/window') : url.replace(/\/window_handles$/, '/window/handles');
37
- }
38
-
39
- }, {
40
- commandNames: ['getProperty'],
41
- jsonwpConverter: w3cUrl => {
42
- const w3cPropertyRegex = /\/element\/([^/]+)\/property\/([^/]+)/;
43
- const jsonwpUrl = w3cUrl.replace(w3cPropertyRegex, '/element/$1/attribute/$2');
44
- return jsonwpUrl;
45
- },
46
- w3cConverter: jsonwpUrl => jsonwpUrl
47
- }];
48
- exports.COMMAND_URLS_CONFLICTS = COMMAND_URLS_CONFLICTS;
49
- const {
50
- MJSONWP,
51
- W3C
52
- } = _constants.PROTOCOLS;
53
-
54
- const DEFAULT_LOG = _support.logger.getLogger('Protocol Converter');
55
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.COMMAND_URLS_CONFLICTS = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const support_1 = require("@appium/support");
9
+ const helpers_1 = require("../basedriver/helpers");
10
+ const constants_1 = require("../constants");
11
+ exports.COMMAND_URLS_CONFLICTS = [
12
+ {
13
+ commandNames: ['execute', 'executeAsync'],
14
+ jsonwpConverter: (url) => url.replace(/\/execute.*/, url.includes('async') ? '/execute_async' : '/execute'),
15
+ w3cConverter: (url) => url.replace(/\/execute.*/, url.includes('async') ? '/execute/async' : '/execute/sync'),
16
+ },
17
+ {
18
+ commandNames: ['getElementScreenshot'],
19
+ jsonwpConverter: (url) => url.replace(/\/element\/([^/]+)\/screenshot$/, '/screenshot/$1'),
20
+ w3cConverter: (url) => url.replace(/\/screenshot\/([^/]+)/, '/element/$1/screenshot'),
21
+ },
22
+ {
23
+ commandNames: ['getWindowHandles', 'getWindowHandle'],
24
+ jsonwpConverter(url) {
25
+ return /\/window$/.test(url)
26
+ ? url.replace(/\/window$/, '/window_handle')
27
+ : url.replace(/\/window\/handle(s?)$/, '/window_handle$1');
28
+ },
29
+ w3cConverter(url) {
30
+ return /\/window_handle$/.test(url)
31
+ ? url.replace(/\/window_handle$/, '/window')
32
+ : url.replace(/\/window_handles$/, '/window/handles');
33
+ },
34
+ },
35
+ {
36
+ commandNames: ['getProperty'],
37
+ jsonwpConverter: (w3cUrl) => {
38
+ const w3cPropertyRegex = /\/element\/([^/]+)\/property\/([^/]+)/;
39
+ const jsonwpUrl = w3cUrl.replace(w3cPropertyRegex, '/element/$1/attribute/$2');
40
+ return jsonwpUrl;
41
+ },
42
+ w3cConverter: (jsonwpUrl) => jsonwpUrl, // Don't convert JSONWP URL to W3C. W3C accepts /attribute and /property
43
+ },
44
+ ];
45
+ const { MJSONWP, W3C } = constants_1.PROTOCOLS;
46
+ const DEFAULT_LOG = support_1.logger.getLogger('Protocol Converter');
56
47
  class ProtocolConverter {
57
- constructor(proxyFunc, log = null) {
58
- this.proxyFunc = proxyFunc;
59
- this._downstreamProtocol = null;
60
- this._log = log;
61
- }
62
-
63
- get log() {
64
- return this._log ?? DEFAULT_LOG;
65
- }
66
-
67
- set downstreamProtocol(value) {
68
- this._downstreamProtocol = value;
69
- }
70
-
71
- get downstreamProtocol() {
72
- return this._downstreamProtocol;
73
- }
74
-
75
- getTimeoutRequestObjects(body) {
76
- if (this.downstreamProtocol === W3C && _lodash.default.has(body, 'ms') && _lodash.default.has(body, 'type')) {
77
- const typeToW3C = x => x === 'page load' ? 'pageLoad' : x;
78
-
79
- return [{
80
- [typeToW3C(body.type)]: body.ms
81
- }];
48
+ constructor(proxyFunc, log = null) {
49
+ this.proxyFunc = proxyFunc;
50
+ this._downstreamProtocol = null;
51
+ this._log = log;
82
52
  }
83
-
84
- if (this.downstreamProtocol === MJSONWP && (!_lodash.default.has(body, 'ms') || !_lodash.default.has(body, 'type'))) {
85
- const typeToJSONWP = x => x === 'pageLoad' ? 'page load' : x;
86
-
87
- return _lodash.default.toPairs(body).filter(pair => /^\d+(?:[.,]\d*?)?$/.test(`${pair[1]}`)).map(function (pair) {
88
- return {
89
- type: typeToJSONWP(pair[0]),
90
- ms: pair[1]
91
- };
92
- });
53
+ get log() {
54
+ return this._log ?? DEFAULT_LOG;
93
55
  }
94
-
95
- return [body];
96
- }
97
-
98
- async proxySetTimeouts(url, method, body) {
99
- let response, resBody;
100
- const timeoutRequestObjects = this.getTimeoutRequestObjects(body);
101
- this.log.debug(`Will send the following request bodies to /timeouts: ${JSON.stringify(timeoutRequestObjects)}`);
102
-
103
- for (const timeoutObj of timeoutRequestObjects) {
104
- [response, resBody] = await this.proxyFunc(url, method, timeoutObj);
105
-
106
- if (this.downstreamProtocol !== MJSONWP) {
107
- return [response, resBody];
108
- }
109
-
110
- if (response.statusCode >= 400) {
56
+ set downstreamProtocol(value) {
57
+ this._downstreamProtocol = value;
58
+ }
59
+ get downstreamProtocol() {
60
+ return this._downstreamProtocol;
61
+ }
62
+ /**
63
+ * W3C /timeouts can take as many as 3 timeout types at once, MJSONWP /timeouts only takes one
64
+ * at a time. So if we're using W3C and proxying to MJSONWP and there's more than one timeout type
65
+ * provided in the request, we need to do 3 proxies and combine the result
66
+ *
67
+ * @param {Object} body Request body
68
+ * @return {Array} Array of W3C + MJSONWP compatible timeout objects
69
+ */
70
+ getTimeoutRequestObjects(body) {
71
+ if (this.downstreamProtocol === W3C && lodash_1.default.has(body, 'ms') && lodash_1.default.has(body, 'type')) {
72
+ const typeToW3C = (x) => (x === 'page load' ? 'pageLoad' : x);
73
+ return [
74
+ {
75
+ [typeToW3C(body.type)]: body.ms,
76
+ },
77
+ ];
78
+ }
79
+ if (this.downstreamProtocol === MJSONWP && (!lodash_1.default.has(body, 'ms') || !lodash_1.default.has(body, 'type'))) {
80
+ const typeToJSONWP = (x) => (x === 'pageLoad' ? 'page load' : x);
81
+ return (lodash_1.default.toPairs(body)
82
+ // Only transform the entry if ms value is a valid positive float number
83
+ .filter((pair) => /^\d+(?:[.,]\d*?)?$/.test(`${pair[1]}`))
84
+ .map(function (pair) {
85
+ return {
86
+ type: typeToJSONWP(pair[0]),
87
+ ms: pair[1],
88
+ };
89
+ }));
90
+ }
91
+ return [body];
92
+ }
93
+ /**
94
+ * Proxy an array of timeout objects and merge the result
95
+ * @param {String} url Endpoint url
96
+ * @param {String} method Endpoint method
97
+ * @param {Object} body Request body
98
+ */
99
+ async proxySetTimeouts(url, method, body) {
100
+ let response, resBody;
101
+ const timeoutRequestObjects = this.getTimeoutRequestObjects(body);
102
+ this.log.debug(`Will send the following request bodies to /timeouts: ${JSON.stringify(timeoutRequestObjects)}`);
103
+ for (const timeoutObj of timeoutRequestObjects) {
104
+ [response, resBody] = await this.proxyFunc(url, method, timeoutObj);
105
+ // If we got a non-MJSONWP response, return the result, nothing left to do
106
+ if (this.downstreamProtocol !== MJSONWP) {
107
+ return [response, resBody];
108
+ }
109
+ // If we got an error, return the error right away
110
+ if (response.statusCode >= 400) {
111
+ return [response, resBody];
112
+ }
113
+ // ...Otherwise, continue to the next timeouts call
114
+ }
111
115
  return [response, resBody];
112
- }
113
116
  }
114
-
115
- return [response, resBody];
116
- }
117
-
118
- async proxySetWindow(url, method, body) {
119
- const bodyObj = _support.util.safeJsonParse(body);
120
-
121
- if (_lodash.default.isPlainObject(bodyObj)) {
122
- if (this.downstreamProtocol === W3C && _lodash.default.has(bodyObj, 'name') && !_lodash.default.has(bodyObj, 'handle')) {
123
- this.log.debug(`Copied 'name' value '${bodyObj.name}' to 'handle' as per W3C spec`);
124
- return await this.proxyFunc(url, method, { ...bodyObj,
125
- handle: bodyObj.name
126
- });
127
- }
128
-
129
- if (this.downstreamProtocol === MJSONWP && _lodash.default.has(bodyObj, 'handle') && !_lodash.default.has(bodyObj, 'name')) {
130
- this.log.debug(`Copied 'handle' value '${bodyObj.handle}' to 'name' as per JSONWP spec`);
131
- return await this.proxyFunc(url, method, { ...bodyObj,
132
- name: bodyObj.handle
133
- });
134
- }
117
+ async proxySetWindow(url, method, body) {
118
+ const bodyObj = support_1.util.safeJsonParse(body);
119
+ if (lodash_1.default.isPlainObject(bodyObj)) {
120
+ if (this.downstreamProtocol === W3C && lodash_1.default.has(bodyObj, 'name') && !lodash_1.default.has(bodyObj, 'handle')) {
121
+ this.log.debug(`Copied 'name' value '${bodyObj.name}' to 'handle' as per W3C spec`);
122
+ return await this.proxyFunc(url, method, {
123
+ ...bodyObj,
124
+ handle: bodyObj.name,
125
+ });
126
+ }
127
+ if (this.downstreamProtocol === MJSONWP &&
128
+ lodash_1.default.has(bodyObj, 'handle') &&
129
+ !lodash_1.default.has(bodyObj, 'name')) {
130
+ this.log.debug(`Copied 'handle' value '${bodyObj.handle}' to 'name' as per JSONWP spec`);
131
+ return await this.proxyFunc(url, method, {
132
+ ...bodyObj,
133
+ name: bodyObj.handle,
134
+ });
135
+ }
136
+ }
137
+ return await this.proxyFunc(url, method, body);
138
+ }
139
+ async proxySetValue(url, method, body) {
140
+ const bodyObj = support_1.util.safeJsonParse(body);
141
+ if (lodash_1.default.isPlainObject(bodyObj) && (support_1.util.hasValue(bodyObj.text) || support_1.util.hasValue(bodyObj.value))) {
142
+ let { text, value } = bodyObj;
143
+ if (support_1.util.hasValue(text) && !support_1.util.hasValue(value)) {
144
+ value = lodash_1.default.isString(text) ? [...text] : lodash_1.default.isArray(text) ? text : [];
145
+ this.log.debug(`Added 'value' property ${JSON.stringify(value)} to 'setValue' request body`);
146
+ }
147
+ else if (!support_1.util.hasValue(text) && support_1.util.hasValue(value)) {
148
+ text = lodash_1.default.isArray(value) ? value.join('') : lodash_1.default.isString(value) ? value : '';
149
+ this.log.debug(`Added 'text' property ${JSON.stringify(text)} to 'setValue' request body`);
150
+ }
151
+ return await this.proxyFunc(url, method, Object.assign({}, bodyObj, {
152
+ text,
153
+ value,
154
+ }));
155
+ }
156
+ return await this.proxyFunc(url, method, body);
135
157
  }
136
-
137
- return await this.proxyFunc(url, method, body);
138
- }
139
-
140
- async proxySetValue(url, method, body) {
141
- const bodyObj = _support.util.safeJsonParse(body);
142
-
143
- if (_lodash.default.isPlainObject(bodyObj) && (_support.util.hasValue(bodyObj.text) || _support.util.hasValue(bodyObj.value))) {
144
- let {
145
- text,
146
- value
147
- } = bodyObj;
148
-
149
- if (_support.util.hasValue(text) && !_support.util.hasValue(value)) {
150
- value = _lodash.default.isString(text) ? [...text] : _lodash.default.isArray(text) ? text : [];
151
- this.log.debug(`Added 'value' property ${JSON.stringify(value)} to 'setValue' request body`);
152
- } else if (!_support.util.hasValue(text) && _support.util.hasValue(value)) {
153
- text = _lodash.default.isArray(value) ? value.join('') : _lodash.default.isString(value) ? value : '';
154
- this.log.debug(`Added 'text' property ${JSON.stringify(text)} to 'setValue' request body`);
155
- }
156
-
157
- return await this.proxyFunc(url, method, Object.assign({}, bodyObj, {
158
- text,
159
- value
160
- }));
158
+ async proxySetFrame(url, method, body) {
159
+ const bodyObj = support_1.util.safeJsonParse(body);
160
+ return lodash_1.default.has(bodyObj, 'id') && lodash_1.default.isPlainObject(bodyObj.id)
161
+ ? await this.proxyFunc(url, method, {
162
+ ...bodyObj,
163
+ id: (0, helpers_1.duplicateKeys)(bodyObj.id, constants_1.MJSONWP_ELEMENT_KEY, constants_1.W3C_ELEMENT_KEY),
164
+ })
165
+ : await this.proxyFunc(url, method, body);
161
166
  }
162
-
163
- return await this.proxyFunc(url, method, body);
164
- }
165
-
166
- async proxySetFrame(url, method, body) {
167
- const bodyObj = _support.util.safeJsonParse(body);
168
-
169
- return _lodash.default.has(bodyObj, 'id') && _lodash.default.isPlainObject(bodyObj.id) ? await this.proxyFunc(url, method, { ...bodyObj,
170
- id: (0, _helpers.duplicateKeys)(bodyObj.id, _constants.MJSONWP_ELEMENT_KEY, _constants.W3C_ELEMENT_KEY)
171
- }) : await this.proxyFunc(url, method, body);
172
- }
173
-
174
- async proxyPerformActions(url, method, body) {
175
- const bodyObj = _support.util.safeJsonParse(body);
176
-
177
- return _lodash.default.isPlainObject(bodyObj) ? await this.proxyFunc(url, method, (0, _helpers.duplicateKeys)(bodyObj, _constants.MJSONWP_ELEMENT_KEY, _constants.W3C_ELEMENT_KEY)) : await this.proxyFunc(url, method, body);
178
- }
179
-
180
- async proxyReleaseActions(url, method) {
181
- return await this.proxyFunc(url, method);
182
- }
183
-
184
- async convertAndProxy(commandName, url, method, body) {
185
- if (!this.downstreamProtocol) {
186
- return await this.proxyFunc(url, method, body);
167
+ async proxyPerformActions(url, method, body) {
168
+ const bodyObj = support_1.util.safeJsonParse(body);
169
+ return lodash_1.default.isPlainObject(bodyObj)
170
+ ? await this.proxyFunc(url, method, (0, helpers_1.duplicateKeys)(bodyObj, constants_1.MJSONWP_ELEMENT_KEY, constants_1.W3C_ELEMENT_KEY))
171
+ : await this.proxyFunc(url, method, body);
187
172
  }
188
-
189
- switch (commandName) {
190
- case 'timeouts':
191
- return await this.proxySetTimeouts(url, method, body);
192
-
193
- case 'setWindow':
194
- return await this.proxySetWindow(url, method, body);
195
-
196
- case 'setValue':
197
- return await this.proxySetValue(url, method, body);
198
-
199
- case 'performActions':
200
- return await this.proxyPerformActions(url, method, body);
201
-
202
- case 'releaseActions':
203
- return await this.proxyReleaseActions(url, method);
204
-
205
- case 'setFrame':
206
- return await this.proxySetFrame(url, method, body);
207
-
208
- default:
209
- break;
173
+ async proxyReleaseActions(url, method) {
174
+ return await this.proxyFunc(url, method);
210
175
  }
211
-
212
- for (const {
213
- commandNames,
214
- jsonwpConverter,
215
- w3cConverter
216
- } of COMMAND_URLS_CONFLICTS) {
217
- if (!commandNames.includes(commandName)) {
218
- continue;
219
- }
220
-
221
- const rewrittenUrl = this.downstreamProtocol === MJSONWP ? jsonwpConverter(url) : w3cConverter(url);
222
-
223
- if (rewrittenUrl === url) {
224
- this.log.debug(`Did not know how to rewrite the original URL '${url}' ` + `for ${this.downstreamProtocol} protocol`);
225
- break;
226
- }
227
-
228
- this.log.info(`Rewrote the original URL '${url}' to '${rewrittenUrl}' ` + `for ${this.downstreamProtocol} protocol`);
229
- return await this.proxyFunc(rewrittenUrl, method, body);
176
+ /**
177
+ * Handle "crossing" endpoints for the case
178
+ * when upstream and downstream drivers operate different protocols
179
+ *
180
+ * @param {string} commandName
181
+ * @param {string} url
182
+ * @param {string} method
183
+ * @param {?string|object} body
184
+ * @returns The proxyfying result as [response, responseBody] tuple
185
+ */
186
+ async convertAndProxy(commandName, url, method, body) {
187
+ if (!this.downstreamProtocol) {
188
+ return await this.proxyFunc(url, method, body);
189
+ }
190
+ // Same url, but different arguments
191
+ switch (commandName) {
192
+ case 'timeouts':
193
+ return await this.proxySetTimeouts(url, method, body);
194
+ case 'setWindow':
195
+ return await this.proxySetWindow(url, method, body);
196
+ case 'setValue':
197
+ return await this.proxySetValue(url, method, body);
198
+ case 'performActions':
199
+ return await this.proxyPerformActions(url, method, body);
200
+ case 'releaseActions':
201
+ return await this.proxyReleaseActions(url, method);
202
+ case 'setFrame':
203
+ return await this.proxySetFrame(url, method, body);
204
+ default:
205
+ break;
206
+ }
207
+ // Same arguments, but different URLs
208
+ for (const { commandNames, jsonwpConverter, w3cConverter } of exports.COMMAND_URLS_CONFLICTS) {
209
+ if (!commandNames.includes(commandName)) {
210
+ continue;
211
+ }
212
+ const rewrittenUrl = this.downstreamProtocol === MJSONWP ? jsonwpConverter(url) : w3cConverter(url);
213
+ if (rewrittenUrl === url) {
214
+ this.log.debug(`Did not know how to rewrite the original URL '${url}' ` +
215
+ `for ${this.downstreamProtocol} protocol`);
216
+ break;
217
+ }
218
+ this.log.info(`Rewrote the original URL '${url}' to '${rewrittenUrl}' ` +
219
+ `for ${this.downstreamProtocol} protocol`);
220
+ return await this.proxyFunc(rewrittenUrl, method, body);
221
+ }
222
+ // No matches found. Proceed normally
223
+ return await this.proxyFunc(url, method, body);
230
224
  }
231
-
232
- return await this.proxyFunc(url, method, body);
233
- }
234
-
235
225
  }
236
-
237
- var _default = ProtocolConverter;
238
- exports.default = _default;
239
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT01NQU5EX1VSTFNfQ09ORkxJQ1RTIiwiY29tbWFuZE5hbWVzIiwianNvbndwQ29udmVydGVyIiwidXJsIiwicmVwbGFjZSIsImluY2x1ZGVzIiwidzNjQ29udmVydGVyIiwidGVzdCIsInczY1VybCIsInczY1Byb3BlcnR5UmVnZXgiLCJqc29ud3BVcmwiLCJNSlNPTldQIiwiVzNDIiwiUFJPVE9DT0xTIiwiREVGQVVMVF9MT0ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJQcm90b2NvbENvbnZlcnRlciIsImNvbnN0cnVjdG9yIiwicHJveHlGdW5jIiwibG9nIiwiX2Rvd25zdHJlYW1Qcm90b2NvbCIsIl9sb2ciLCJkb3duc3RyZWFtUHJvdG9jb2wiLCJ2YWx1ZSIsImdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyIsImJvZHkiLCJfIiwiaGFzIiwidHlwZVRvVzNDIiwieCIsInR5cGUiLCJtcyIsInR5cGVUb0pTT05XUCIsInRvUGFpcnMiLCJmaWx0ZXIiLCJwYWlyIiwibWFwIiwicHJveHlTZXRUaW1lb3V0cyIsIm1ldGhvZCIsInJlc3BvbnNlIiwicmVzQm9keSIsInRpbWVvdXRSZXF1ZXN0T2JqZWN0cyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInRpbWVvdXRPYmoiLCJzdGF0dXNDb2RlIiwicHJveHlTZXRXaW5kb3ciLCJib2R5T2JqIiwidXRpbCIsInNhZmVKc29uUGFyc2UiLCJpc1BsYWluT2JqZWN0IiwibmFtZSIsImhhbmRsZSIsInByb3h5U2V0VmFsdWUiLCJoYXNWYWx1ZSIsInRleHQiLCJpc1N0cmluZyIsImlzQXJyYXkiLCJqb2luIiwiT2JqZWN0IiwiYXNzaWduIiwicHJveHlTZXRGcmFtZSIsImlkIiwiZHVwbGljYXRlS2V5cyIsIk1KU09OV1BfRUxFTUVOVF9LRVkiLCJXM0NfRUxFTUVOVF9LRVkiLCJwcm94eVBlcmZvcm1BY3Rpb25zIiwicHJveHlSZWxlYXNlQWN0aW9ucyIsImNvbnZlcnRBbmRQcm94eSIsImNvbW1hbmROYW1lIiwicmV3cml0dGVuVXJsIiwiaW5mbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9qc29ud3AtcHJveHkvcHJvdG9jb2wtY29udmVydGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2xvZ2dlciwgdXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7ZHVwbGljYXRlS2V5c30gZnJvbSAnLi4vYmFzZWRyaXZlci9oZWxwZXJzJztcbmltcG9ydCB7TUpTT05XUF9FTEVNRU5UX0tFWSwgVzNDX0VMRU1FTlRfS0VZLCBQUk9UT0NPTFN9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBDT01NQU5EX1VSTFNfQ09ORkxJQ1RTID0gW1xuICB7XG4gICAgY29tbWFuZE5hbWVzOiBbJ2V4ZWN1dGUnLCAnZXhlY3V0ZUFzeW5jJ10sXG4gICAganNvbndwQ29udmVydGVyOiAodXJsKSA9PlxuICAgICAgdXJsLnJlcGxhY2UoL1xcL2V4ZWN1dGUuKi8sIHVybC5pbmNsdWRlcygnYXN5bmMnKSA/ICcvZXhlY3V0ZV9hc3luYycgOiAnL2V4ZWN1dGUnKSxcbiAgICB3M2NDb252ZXJ0ZXI6ICh1cmwpID0+XG4gICAgICB1cmwucmVwbGFjZSgvXFwvZXhlY3V0ZS4qLywgdXJsLmluY2x1ZGVzKCdhc3luYycpID8gJy9leGVjdXRlL2FzeW5jJyA6ICcvZXhlY3V0ZS9zeW5jJyksXG4gIH0sXG4gIHtcbiAgICBjb21tYW5kTmFtZXM6IFsnZ2V0RWxlbWVudFNjcmVlbnNob3QnXSxcbiAgICBqc29ud3BDb252ZXJ0ZXI6ICh1cmwpID0+IHVybC5yZXBsYWNlKC9cXC9lbGVtZW50XFwvKFteL10rKVxcL3NjcmVlbnNob3QkLywgJy9zY3JlZW5zaG90LyQxJyksXG4gICAgdzNjQ29udmVydGVyOiAodXJsKSA9PiB1cmwucmVwbGFjZSgvXFwvc2NyZWVuc2hvdFxcLyhbXi9dKykvLCAnL2VsZW1lbnQvJDEvc2NyZWVuc2hvdCcpLFxuICB9LFxuICB7XG4gICAgY29tbWFuZE5hbWVzOiBbJ2dldFdpbmRvd0hhbmRsZXMnLCAnZ2V0V2luZG93SGFuZGxlJ10sXG4gICAganNvbndwQ29udmVydGVyKHVybCkge1xuICAgICAgcmV0dXJuIC9cXC93aW5kb3ckLy50ZXN0KHVybClcbiAgICAgICAgPyB1cmwucmVwbGFjZSgvXFwvd2luZG93JC8sICcvd2luZG93X2hhbmRsZScpXG4gICAgICAgIDogdXJsLnJlcGxhY2UoL1xcL3dpbmRvd1xcL2hhbmRsZShzPykkLywgJy93aW5kb3dfaGFuZGxlJDEnKTtcbiAgICB9LFxuICAgIHczY0NvbnZlcnRlcih1cmwpIHtcbiAgICAgIHJldHVybiAvXFwvd2luZG93X2hhbmRsZSQvLnRlc3QodXJsKVxuICAgICAgICA/IHVybC5yZXBsYWNlKC9cXC93aW5kb3dfaGFuZGxlJC8sICcvd2luZG93JylcbiAgICAgICAgOiB1cmwucmVwbGFjZSgvXFwvd2luZG93X2hhbmRsZXMkLywgJy93aW5kb3cvaGFuZGxlcycpO1xuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBjb21tYW5kTmFtZXM6IFsnZ2V0UHJvcGVydHknXSxcbiAgICBqc29ud3BDb252ZXJ0ZXI6ICh3M2NVcmwpID0+IHtcbiAgICAgIGNvbnN0IHczY1Byb3BlcnR5UmVnZXggPSAvXFwvZWxlbWVudFxcLyhbXi9dKylcXC9wcm9wZXJ0eVxcLyhbXi9dKykvO1xuICAgICAgY29uc3QganNvbndwVXJsID0gdzNjVXJsLnJlcGxhY2UodzNjUHJvcGVydHlSZWdleCwgJy9lbGVtZW50LyQxL2F0dHJpYnV0ZS8kMicpO1xuICAgICAgcmV0dXJuIGpzb253cFVybDtcbiAgICB9LFxuICAgIHczY0NvbnZlcnRlcjogKGpzb253cFVybCkgPT4ganNvbndwVXJsLCAvLyBEb24ndCBjb252ZXJ0IEpTT05XUCBVUkwgdG8gVzNDLiBXM0MgYWNjZXB0cyAvYXR0cmlidXRlIGFuZCAvcHJvcGVydHlcbiAgfSxcbl07XG5jb25zdCB7TUpTT05XUCwgVzNDfSA9IFBST1RPQ09MUztcbmNvbnN0IERFRkFVTFRfTE9HID0gbG9nZ2VyLmdldExvZ2dlcignUHJvdG9jb2wgQ29udmVydGVyJyk7XG5cbmNsYXNzIFByb3RvY29sQ29udmVydGVyIHtcbiAgY29uc3RydWN0b3IocHJveHlGdW5jLCBsb2cgPSBudWxsKSB7XG4gICAgdGhpcy5wcm94eUZ1bmMgPSBwcm94eUZ1bmM7XG4gICAgdGhpcy5fZG93bnN0cmVhbVByb3RvY29sID0gbnVsbDtcbiAgICB0aGlzLl9sb2cgPSBsb2c7XG4gIH1cblxuICBnZXQgbG9nKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2cgPz8gREVGQVVMVF9MT0c7XG4gIH1cblxuICBzZXQgZG93bnN0cmVhbVByb3RvY29sKHZhbHVlKSB7XG4gICAgdGhpcy5fZG93bnN0cmVhbVByb3RvY29sID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZG93bnN0cmVhbVByb3RvY29sKCkge1xuICAgIHJldHVybiB0aGlzLl9kb3duc3RyZWFtUHJvdG9jb2w7XG4gIH1cblxuICAvKipcbiAgICogVzNDIC90aW1lb3V0cyBjYW4gdGFrZSBhcyBtYW55IGFzIDMgdGltZW91dCB0eXBlcyBhdCBvbmNlLCBNSlNPTldQIC90aW1lb3V0cyBvbmx5IHRha2VzIG9uZVxuICAgKiBhdCBhIHRpbWUuIFNvIGlmIHdlJ3JlIHVzaW5nIFczQyBhbmQgcHJveHlpbmcgdG8gTUpTT05XUCBhbmQgdGhlcmUncyBtb3JlIHRoYW4gb25lIHRpbWVvdXQgdHlwZVxuICAgKiBwcm92aWRlZCBpbiB0aGUgcmVxdWVzdCwgd2UgbmVlZCB0byBkbyAzIHByb3hpZXMgYW5kIGNvbWJpbmUgdGhlIHJlc3VsdFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gYm9keSBSZXF1ZXN0IGJvZHlcbiAgICogQHJldHVybiB7QXJyYXl9IEFycmF5IG9mIFczQyArIE1KU09OV1AgY29tcGF0aWJsZSB0aW1lb3V0IG9iamVjdHNcbiAgICovXG4gIGdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyhib2R5KSB7XG4gICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sID09PSBXM0MgJiYgXy5oYXMoYm9keSwgJ21zJykgJiYgXy5oYXMoYm9keSwgJ3R5cGUnKSkge1xuICAgICAgY29uc3QgdHlwZVRvVzNDID0gKHgpID0+ICh4ID09PSAncGFnZSBsb2FkJyA/ICdwYWdlTG9hZCcgOiB4KTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBbdHlwZVRvVzNDKGJvZHkudHlwZSldOiBib2R5Lm1zLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kb3duc3RyZWFtUHJvdG9jb2wgPT09IE1KU09OV1AgJiYgKCFfLmhhcyhib2R5LCAnbXMnKSB8fCAhXy5oYXMoYm9keSwgJ3R5cGUnKSkpIHtcbiAgICAgIGNvbnN0IHR5cGVUb0pTT05XUCA9ICh4KSA9PiAoeCA9PT0gJ3BhZ2VMb2FkJyA/ICdwYWdlIGxvYWQnIDogeCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBfLnRvUGFpcnMoYm9keSlcbiAgICAgICAgICAvLyBPbmx5IHRyYW5zZm9ybSB0aGUgZW50cnkgaWYgbXMgdmFsdWUgaXMgYSB2YWxpZCBwb3NpdGl2ZSBmbG9hdCBudW1iZXJcbiAgICAgICAgICAuZmlsdGVyKChwYWlyKSA9PiAvXlxcZCsoPzpbLixdXFxkKj8pPyQvLnRlc3QoYCR7cGFpclsxXX1gKSlcbiAgICAgICAgICAubWFwKGZ1bmN0aW9uIChwYWlyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiB0eXBlVG9KU09OV1AocGFpclswXSksXG4gICAgICAgICAgICAgIG1zOiBwYWlyWzFdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW2JvZHldO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3h5IGFuIGFycmF5IG9mIHRpbWVvdXQgb2JqZWN0cyBhbmQgbWVyZ2UgdGhlIHJlc3VsdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIEVuZHBvaW50IHVybFxuICAgKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kIEVuZHBvaW50IG1ldGhvZFxuICAgKiBAcGFyYW0ge09iamVjdH0gYm9keSBSZXF1ZXN0IGJvZHlcbiAgICovXG4gIGFzeW5jIHByb3h5U2V0VGltZW91dHModXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBsZXQgcmVzcG9uc2UsIHJlc0JvZHk7XG5cbiAgICBjb25zdCB0aW1lb3V0UmVxdWVzdE9iamVjdHMgPSB0aGlzLmdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyhib2R5KTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgIGBXaWxsIHNlbmQgdGhlIGZvbGxvd2luZyByZXF1ZXN0IGJvZGllcyB0byAvdGltZW91dHM6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHRpbWVvdXRSZXF1ZXN0T2JqZWN0c1xuICAgICAgKX1gXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHRpbWVvdXRPYmogb2YgdGltZW91dFJlcXVlc3RPYmplY3RzKSB7XG4gICAgICBbcmVzcG9uc2UsIHJlc0JvZHldID0gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHRpbWVvdXRPYmopO1xuXG4gICAgICAvLyBJZiB3ZSBnb3QgYSBub24tTUpTT05XUCByZXNwb25zZSwgcmV0dXJuIHRoZSByZXN1bHQsIG5vdGhpbmcgbGVmdCB0byBkb1xuICAgICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sICE9PSBNSlNPTldQKSB7XG4gICAgICAgIHJldHVybiBbcmVzcG9uc2UsIHJlc0JvZHldO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBnb3QgYW4gZXJyb3IsIHJldHVybiB0aGUgZXJyb3IgcmlnaHQgYXdheVxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICAgIHJldHVybiBbcmVzcG9uc2UsIHJlc0JvZHldO1xuICAgICAgfVxuXG4gICAgICAvLyAuLi5PdGhlcndpc2UsIGNvbnRpbnVlIHRvIHRoZSBuZXh0IHRpbWVvdXRzIGNhbGxcbiAgICB9XG4gICAgcmV0dXJuIFtyZXNwb25zZSwgcmVzQm9keV07XG4gIH1cblxuICBhc3luYyBwcm94eVNldFdpbmRvdyh1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGNvbnN0IGJvZHlPYmogPSB1dGlsLnNhZmVKc29uUGFyc2UoYm9keSk7XG4gICAgaWYgKF8uaXNQbGFpbk9iamVjdChib2R5T2JqKSkge1xuICAgICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sID09PSBXM0MgJiYgXy5oYXMoYm9keU9iaiwgJ25hbWUnKSAmJiAhXy5oYXMoYm9keU9iaiwgJ2hhbmRsZScpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBDb3BpZWQgJ25hbWUnIHZhbHVlICcke2JvZHlPYmoubmFtZX0nIHRvICdoYW5kbGUnIGFzIHBlciBXM0Mgc3BlY2ApO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHtcbiAgICAgICAgICAuLi5ib2R5T2JqLFxuICAgICAgICAgIGhhbmRsZTogYm9keU9iai5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5kb3duc3RyZWFtUHJvdG9jb2wgPT09IE1KU09OV1AgJiZcbiAgICAgICAgXy5oYXMoYm9keU9iaiwgJ2hhbmRsZScpICYmXG4gICAgICAgICFfLmhhcyhib2R5T2JqLCAnbmFtZScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYENvcGllZCAnaGFuZGxlJyB2YWx1ZSAnJHtib2R5T2JqLmhhbmRsZX0nIHRvICduYW1lJyBhcyBwZXIgSlNPTldQIHNwZWNgKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCB7XG4gICAgICAgICAgLi4uYm9keU9iaixcbiAgICAgICAgICBuYW1lOiBib2R5T2JqLmhhbmRsZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxuXG4gIGFzeW5jIHByb3h5U2V0VmFsdWUodXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIGlmIChfLmlzUGxhaW5PYmplY3QoYm9keU9iaikgJiYgKHV0aWwuaGFzVmFsdWUoYm9keU9iai50ZXh0KSB8fCB1dGlsLmhhc1ZhbHVlKGJvZHlPYmoudmFsdWUpKSkge1xuICAgICAgbGV0IHt0ZXh0LCB2YWx1ZX0gPSBib2R5T2JqO1xuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUodGV4dCkgJiYgIXV0aWwuaGFzVmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlID0gXy5pc1N0cmluZyh0ZXh0KSA/IFsuLi50ZXh0XSA6IF8uaXNBcnJheSh0ZXh0KSA/IHRleHQgOiBbXTtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoXG4gICAgICAgICAgYEFkZGVkICd2YWx1ZScgcHJvcGVydHkgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9IHRvICdzZXRWYWx1ZScgcmVxdWVzdCBib2R5YFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmICghdXRpbC5oYXNWYWx1ZSh0ZXh0KSAmJiB1dGlsLmhhc1ZhbHVlKHZhbHVlKSkge1xuICAgICAgICB0ZXh0ID0gXy5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJycpIDogXy5pc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6ICcnO1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgQWRkZWQgJ3RleHQnIHByb3BlcnR5ICR7SlNPTi5zdHJpbmdpZnkodGV4dCl9IHRvICdzZXRWYWx1ZScgcmVxdWVzdCBib2R5YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUZ1bmMoXG4gICAgICAgIHVybCxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBib2R5T2JqLCB7XG4gICAgICAgICAgdGV4dCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxuXG4gIGFzeW5jIHByb3h5U2V0RnJhbWUodXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIHJldHVybiBfLmhhcyhib2R5T2JqLCAnaWQnKSAmJiBfLmlzUGxhaW5PYmplY3QoYm9keU9iai5pZClcbiAgICAgID8gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHtcbiAgICAgICAgICAuLi5ib2R5T2JqLFxuICAgICAgICAgIGlkOiBkdXBsaWNhdGVLZXlzKGJvZHlPYmouaWQsIE1KU09OV1BfRUxFTUVOVF9LRVksIFczQ19FTEVNRU5UX0tFWSksXG4gICAgICAgIH0pXG4gICAgICA6IGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxuXG4gIGFzeW5jIHByb3h5UGVyZm9ybUFjdGlvbnModXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIHJldHVybiBfLmlzUGxhaW5PYmplY3QoYm9keU9iailcbiAgICAgID8gYXdhaXQgdGhpcy5wcm94eUZ1bmMoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBkdXBsaWNhdGVLZXlzKGJvZHlPYmosIE1KU09OV1BfRUxFTUVOVF9LRVksIFczQ19FTEVNRU5UX0tFWSlcbiAgICAgICAgKVxuICAgICAgOiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cblxuICBhc3luYyBwcm94eVJlbGVhc2VBY3Rpb25zKHVybCwgbWV0aG9kKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgXCJjcm9zc2luZ1wiIGVuZHBvaW50cyBmb3IgdGhlIGNhc2VcbiAgICogd2hlbiB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbSBkcml2ZXJzIG9wZXJhdGUgZGlmZmVyZW50IHByb3RvY29sc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29tbWFuZE5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kXG4gICAqIEBwYXJhbSB7P3N0cmluZ3xvYmplY3R9IGJvZHlcbiAgICogQHJldHVybnMgVGhlIHByb3h5ZnlpbmcgcmVzdWx0IGFzIFtyZXNwb25zZSwgcmVzcG9uc2VCb2R5XSB0dXBsZVxuICAgKi9cbiAgYXN5bmMgY29udmVydEFuZFByb3h5KGNvbW1hbmROYW1lLCB1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGlmICghdGhpcy5kb3duc3RyZWFtUHJvdG9jb2wpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gU2FtZSB1cmwsIGJ1dCBkaWZmZXJlbnQgYXJndW1lbnRzXG4gICAgc3dpdGNoIChjb21tYW5kTmFtZSkge1xuICAgICAgY2FzZSAndGltZW91dHMnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eVNldFRpbWVvdXRzKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldFdpbmRvdyc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5U2V0V2luZG93KHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldFZhbHVlJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlTZXRWYWx1ZSh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgICBjYXNlICdwZXJmb3JtQWN0aW9ucyc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5UGVyZm9ybUFjdGlvbnModXJsLCBtZXRob2QsIGJvZHkpO1xuICAgICAgY2FzZSAncmVsZWFzZUFjdGlvbnMnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eVJlbGVhc2VBY3Rpb25zKHVybCwgbWV0aG9kKTtcbiAgICAgIGNhc2UgJ3NldEZyYW1lJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlTZXRGcmFtZSh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBTYW1lIGFyZ3VtZW50cywgYnV0IGRpZmZlcmVudCBVUkxzXG4gICAgZm9yIChjb25zdCB7Y29tbWFuZE5hbWVzLCBqc29ud3BDb252ZXJ0ZXIsIHczY0NvbnZlcnRlcn0gb2YgQ09NTUFORF9VUkxTX0NPTkZMSUNUUykge1xuICAgICAgaWYgKCFjb21tYW5kTmFtZXMuaW5jbHVkZXMoY29tbWFuZE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXdyaXR0ZW5VcmwgPVxuICAgICAgICB0aGlzLmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gTUpTT05XUCA/IGpzb253cENvbnZlcnRlcih1cmwpIDogdzNjQ29udmVydGVyKHVybCk7XG4gICAgICBpZiAocmV3cml0dGVuVXJsID09PSB1cmwpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoXG4gICAgICAgICAgYERpZCBub3Qga25vdyBob3cgdG8gcmV3cml0ZSB0aGUgb3JpZ2luYWwgVVJMICcke3VybH0nIGAgK1xuICAgICAgICAgICAgYGZvciAke3RoaXMuZG93bnN0cmVhbVByb3RvY29sfSBwcm90b2NvbGBcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZy5pbmZvKFxuICAgICAgICBgUmV3cm90ZSB0aGUgb3JpZ2luYWwgVVJMICcke3VybH0nIHRvICcke3Jld3JpdHRlblVybH0nIGAgK1xuICAgICAgICAgIGBmb3IgJHt0aGlzLmRvd25zdHJlYW1Qcm90b2NvbH0gcHJvdG9jb2xgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHJld3JpdHRlblVybCwgbWV0aG9kLCBib2R5KTtcbiAgICB9XG5cbiAgICAvLyBObyBtYXRjaGVzIGZvdW5kLiBQcm9jZWVkIG5vcm1hbGx5XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm90b2NvbENvbnZlcnRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFTyxNQUFNQSxzQkFBc0IsR0FBRyxDQUNwQztFQUNFQyxZQUFZLEVBQUUsQ0FBQyxTQUFELEVBQVksY0FBWixDQURoQjtFQUVFQyxlQUFlLEVBQUdDLEdBQUQsSUFDZkEsR0FBRyxDQUFDQyxPQUFKLENBQVksYUFBWixFQUEyQkQsR0FBRyxDQUFDRSxRQUFKLENBQWEsT0FBYixJQUF3QixnQkFBeEIsR0FBMkMsVUFBdEUsQ0FISjtFQUlFQyxZQUFZLEVBQUdILEdBQUQsSUFDWkEsR0FBRyxDQUFDQyxPQUFKLENBQVksYUFBWixFQUEyQkQsR0FBRyxDQUFDRSxRQUFKLENBQWEsT0FBYixJQUF3QixnQkFBeEIsR0FBMkMsZUFBdEU7QUFMSixDQURvQyxFQVFwQztFQUNFSixZQUFZLEVBQUUsQ0FBQyxzQkFBRCxDQURoQjtFQUVFQyxlQUFlLEVBQUdDLEdBQUQsSUFBU0EsR0FBRyxDQUFDQyxPQUFKLENBQVksaUNBQVosRUFBK0MsZ0JBQS9DLENBRjVCO0VBR0VFLFlBQVksRUFBR0gsR0FBRCxJQUFTQSxHQUFHLENBQUNDLE9BQUosQ0FBWSx1QkFBWixFQUFxQyx3QkFBckM7QUFIekIsQ0FSb0MsRUFh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
226
+ exports.default = ProtocolConverter;
227
+ //# sourceMappingURL=protocol-converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-converter.js","names":["COMMAND_URLS_CONFLICTS","commandNames","jsonwpConverter","url","replace","includes","w3cConverter","test","w3cUrl","w3cPropertyRegex","jsonwpUrl","MJSONWP","W3C","PROTOCOLS","DEFAULT_LOG","logger","getLogger","ProtocolConverter","constructor","proxyFunc","log","_downstreamProtocol","_log","downstreamProtocol","value","getTimeoutRequestObjects","body","_","has","typeToW3C","x","type","ms","typeToJSONWP","toPairs","filter","pair","map","proxySetTimeouts","method","response","resBody","timeoutRequestObjects","debug","JSON","stringify","timeoutObj","statusCode","proxySetWindow","bodyObj","util","safeJsonParse","isPlainObject","name","handle","proxySetValue","hasValue","text","isString","isArray","join","Object","assign","proxySetFrame","id","duplicateKeys","MJSONWP_ELEMENT_KEY","W3C_ELEMENT_KEY","proxyPerformActions","proxyReleaseActions","convertAndProxy","commandName","rewrittenUrl","info"],"sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"sourcesContent":["import _ from 'lodash';\nimport {logger, util} from '@appium/support';\nimport {duplicateKeys} from '../basedriver/helpers';\nimport {MJSONWP_ELEMENT_KEY, W3C_ELEMENT_KEY, PROTOCOLS} from '../constants';\n\nexport const COMMAND_URLS_CONFLICTS = [\n {\n commandNames: ['execute', 'executeAsync'],\n jsonwpConverter: (url) =>\n url.replace(/\\/execute.*/, url.includes('async') ? '/execute_async' : '/execute'),\n w3cConverter: (url) =>\n url.replace(/\\/execute.*/, url.includes('async') ? '/execute/async' : '/execute/sync'),\n },\n {\n commandNames: ['getElementScreenshot'],\n jsonwpConverter: (url) => url.replace(/\\/element\\/([^/]+)\\/screenshot$/, '/screenshot/$1'),\n w3cConverter: (url) => url.replace(/\\/screenshot\\/([^/]+)/, '/element/$1/screenshot'),\n },\n {\n commandNames: ['getWindowHandles', 'getWindowHandle'],\n jsonwpConverter(url) {\n return /\\/window$/.test(url)\n ? url.replace(/\\/window$/, '/window_handle')\n : url.replace(/\\/window\\/handle(s?)$/, '/window_handle$1');\n },\n w3cConverter(url) {\n return /\\/window_handle$/.test(url)\n ? url.replace(/\\/window_handle$/, '/window')\n : url.replace(/\\/window_handles$/, '/window/handles');\n },\n },\n {\n commandNames: ['getProperty'],\n jsonwpConverter: (w3cUrl) => {\n const w3cPropertyRegex = /\\/element\\/([^/]+)\\/property\\/([^/]+)/;\n const jsonwpUrl = w3cUrl.replace(w3cPropertyRegex, '/element/$1/attribute/$2');\n return jsonwpUrl;\n },\n w3cConverter: (jsonwpUrl) => jsonwpUrl, // Don't convert JSONWP URL to W3C. W3C accepts /attribute and /property\n },\n];\nconst {MJSONWP, W3C} = PROTOCOLS;\nconst DEFAULT_LOG = logger.getLogger('Protocol Converter');\n\nclass ProtocolConverter {\n constructor(proxyFunc, log = null) {\n this.proxyFunc = proxyFunc;\n this._downstreamProtocol = null;\n this._log = log;\n }\n\n get log() {\n return this._log ?? DEFAULT_LOG;\n }\n\n set downstreamProtocol(value) {\n this._downstreamProtocol = value;\n }\n\n get downstreamProtocol() {\n return this._downstreamProtocol;\n }\n\n /**\n * W3C /timeouts can take as many as 3 timeout types at once, MJSONWP /timeouts only takes one\n * at a time. So if we're using W3C and proxying to MJSONWP and there's more than one timeout type\n * provided in the request, we need to do 3 proxies and combine the result\n *\n * @param {Object} body Request body\n * @return {Array} Array of W3C + MJSONWP compatible timeout objects\n */\n getTimeoutRequestObjects(body) {\n if (this.downstreamProtocol === W3C && _.has(body, 'ms') && _.has(body, 'type')) {\n const typeToW3C = (x) => (x === 'page load' ? 'pageLoad' : x);\n return [\n {\n [typeToW3C(body.type)]: body.ms,\n },\n ];\n }\n\n if (this.downstreamProtocol === MJSONWP && (!_.has(body, 'ms') || !_.has(body, 'type'))) {\n const typeToJSONWP = (x) => (x === 'pageLoad' ? 'page load' : x);\n return (\n _.toPairs(body)\n // Only transform the entry if ms value is a valid positive float number\n .filter((pair) => /^\\d+(?:[.,]\\d*?)?$/.test(`${pair[1]}`))\n .map(function (pair) {\n return {\n type: typeToJSONWP(pair[0]),\n ms: pair[1],\n };\n })\n );\n }\n\n return [body];\n }\n\n /**\n * Proxy an array of timeout objects and merge the result\n * @param {String} url Endpoint url\n * @param {String} method Endpoint method\n * @param {Object} body Request body\n */\n async proxySetTimeouts(url, method, body) {\n let response, resBody;\n\n const timeoutRequestObjects = this.getTimeoutRequestObjects(body);\n this.log.debug(\n `Will send the following request bodies to /timeouts: ${JSON.stringify(\n timeoutRequestObjects\n )}`\n );\n for (const timeoutObj of timeoutRequestObjects) {\n [response, resBody] = await this.proxyFunc(url, method, timeoutObj);\n\n // If we got a non-MJSONWP response, return the result, nothing left to do\n if (this.downstreamProtocol !== MJSONWP) {\n return [response, resBody];\n }\n\n // If we got an error, return the error right away\n if (response.statusCode >= 400) {\n return [response, resBody];\n }\n\n // ...Otherwise, continue to the next timeouts call\n }\n return [response, resBody];\n }\n\n async proxySetWindow(url, method, body) {\n const bodyObj = util.safeJsonParse(body);\n if (_.isPlainObject(bodyObj)) {\n if (this.downstreamProtocol === W3C && _.has(bodyObj, 'name') && !_.has(bodyObj, 'handle')) {\n this.log.debug(`Copied 'name' value '${bodyObj.name}' to 'handle' as per W3C spec`);\n return await this.proxyFunc(url, method, {\n ...bodyObj,\n handle: bodyObj.name,\n });\n }\n if (\n this.downstreamProtocol === MJSONWP &&\n _.has(bodyObj, 'handle') &&\n !_.has(bodyObj, 'name')\n ) {\n this.log.debug(`Copied 'handle' value '${bodyObj.handle}' to 'name' as per JSONWP spec`);\n return await this.proxyFunc(url, method, {\n ...bodyObj,\n name: bodyObj.handle,\n });\n }\n }\n\n return await this.proxyFunc(url, method, body);\n }\n\n async proxySetValue(url, method, body) {\n const bodyObj = util.safeJsonParse(body);\n if (_.isPlainObject(bodyObj) && (util.hasValue(bodyObj.text) || util.hasValue(bodyObj.value))) {\n let {text, value} = bodyObj;\n if (util.hasValue(text) && !util.hasValue(value)) {\n value = _.isString(text) ? [...text] : _.isArray(text) ? text : [];\n this.log.debug(\n `Added 'value' property ${JSON.stringify(value)} to 'setValue' request body`\n );\n } else if (!util.hasValue(text) && util.hasValue(value)) {\n text = _.isArray(value) ? value.join('') : _.isString(value) ? value : '';\n this.log.debug(`Added 'text' property ${JSON.stringify(text)} to 'setValue' request body`);\n }\n return await this.proxyFunc(\n url,\n method,\n Object.assign({}, bodyObj, {\n text,\n value,\n })\n );\n }\n\n return await this.proxyFunc(url, method, body);\n }\n\n async proxySetFrame(url, method, body) {\n const bodyObj = util.safeJsonParse(body);\n return _.has(bodyObj, 'id') && _.isPlainObject(bodyObj.id)\n ? await this.proxyFunc(url, method, {\n ...bodyObj,\n id: duplicateKeys(bodyObj.id, MJSONWP_ELEMENT_KEY, W3C_ELEMENT_KEY),\n })\n : await this.proxyFunc(url, method, body);\n }\n\n async proxyPerformActions(url, method, body) {\n const bodyObj = util.safeJsonParse(body);\n return _.isPlainObject(bodyObj)\n ? await this.proxyFunc(\n url,\n method,\n duplicateKeys(bodyObj, MJSONWP_ELEMENT_KEY, W3C_ELEMENT_KEY)\n )\n : await this.proxyFunc(url, method, body);\n }\n\n async proxyReleaseActions(url, method) {\n return await this.proxyFunc(url, method);\n }\n\n /**\n * Handle \"crossing\" endpoints for the case\n * when upstream and downstream drivers operate different protocols\n *\n * @param {string} commandName\n * @param {string} url\n * @param {string} method\n * @param {?string|object} body\n * @returns The proxyfying result as [response, responseBody] tuple\n */\n async convertAndProxy(commandName, url, method, body) {\n if (!this.downstreamProtocol) {\n return await this.proxyFunc(url, method, body);\n }\n\n // Same url, but different arguments\n switch (commandName) {\n case 'timeouts':\n return await this.proxySetTimeouts(url, method, body);\n case 'setWindow':\n return await this.proxySetWindow(url, method, body);\n case 'setValue':\n return await this.proxySetValue(url, method, body);\n case 'performActions':\n return await this.proxyPerformActions(url, method, body);\n case 'releaseActions':\n return await this.proxyReleaseActions(url, method);\n case 'setFrame':\n return await this.proxySetFrame(url, method, body);\n default:\n break;\n }\n\n // Same arguments, but different URLs\n for (const {commandNames, jsonwpConverter, w3cConverter} of COMMAND_URLS_CONFLICTS) {\n if (!commandNames.includes(commandName)) {\n continue;\n }\n\n const rewrittenUrl =\n this.downstreamProtocol === MJSONWP ? jsonwpConverter(url) : w3cConverter(url);\n if (rewrittenUrl === url) {\n this.log.debug(\n `Did not know how to rewrite the original URL '${url}' ` +\n `for ${this.downstreamProtocol} protocol`\n );\n break;\n }\n this.log.info(\n `Rewrote the original URL '${url}' to '${rewrittenUrl}' ` +\n `for ${this.downstreamProtocol} protocol`\n );\n return await this.proxyFunc(rewrittenUrl, method, body);\n }\n\n // No matches found. Proceed normally\n return await this.proxyFunc(url, method, body);\n }\n}\n\nexport default ProtocolConverter;\n"],"mappings":"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"}
1
+ {"version":3,"file":"protocol-converter.js","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":";;;yBAmba,KAAK,GAAG;IAAC,QAAQ,EAAE;QAAC,IAAI,EAAE,OAAO,WAAW,EAAE,UAAU,CAAC;QAAC,QAAQ,OAAO,mBAAmB,EAAE,WAAW,CAAA;KAAC,CAAA;CAAC;AA/YxH;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,QACP;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,kDAEC;IAED,iCAGC;IAED,8BAEC;IAED,iCAwDC;IAED,0DAiGC;IAED,wDAOC;IAED;;;;;OAKG;IACH,0BAJW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,GAChC,MAAM,GAAC,SAAS,CAwB5B;IAED,+DAQC;IAED,0DAkDC;IAED,mCAGC;IAED,+CAuCC;CACF"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":";;;yBAmba,KAAK,GAAG;IAAC,QAAQ,EAAE;QAAC,IAAI,EAAE,OAAO,WAAW,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,OAAO,mBAAmB,EAAE,WAAW,CAAA;KAAC,CAAA;CAAC;AA/YxH;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,QACP;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,kDAEC;IAED,iCAGC;IAED,8BAEC;IAED,iCAwDC;IAED,0DAiGC;IAED,wDAOC;IAED;;;;;OAKG;IACH,0BAJW,MAAM,UACN,OAAO,eAAe,EAAE,UAAU,GAChC,MAAM,GAAC,SAAS,CAwB5B;IAED,+DAQC;IAED,0DAkDC;IAED,mCAGC;IAED,+CAuCC;CACF"}