@appium/base-driver 10.0.0-beta.0 → 10.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +0 -8
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  3. package/build/lib/basedriver/capabilities.js +2 -4
  4. package/build/lib/basedriver/capabilities.js.map +1 -1
  5. package/build/lib/basedriver/commands/execute.js.map +1 -1
  6. package/build/lib/basedriver/commands/timeout.js +12 -31
  7. package/build/lib/basedriver/commands/timeout.js.map +1 -1
  8. package/build/lib/basedriver/core.d.ts +0 -8
  9. package/build/lib/basedriver/core.d.ts.map +1 -1
  10. package/build/lib/basedriver/core.js +8 -18
  11. package/build/lib/basedriver/core.js.map +1 -1
  12. package/build/lib/basedriver/driver.js +2 -2
  13. package/build/lib/basedriver/driver.js.map +1 -1
  14. package/build/lib/basedriver/helpers.d.ts +9 -1
  15. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  16. package/build/lib/basedriver/helpers.js +56 -142
  17. package/build/lib/basedriver/helpers.js.map +1 -1
  18. package/build/lib/basedriver/validation.d.ts +7 -0
  19. package/build/lib/basedriver/validation.d.ts.map +1 -0
  20. package/build/lib/basedriver/validation.js +130 -0
  21. package/build/lib/basedriver/validation.js.map +1 -0
  22. package/build/lib/express/middleware.d.ts +0 -6
  23. package/build/lib/express/middleware.d.ts.map +1 -1
  24. package/build/lib/express/middleware.js +28 -60
  25. package/build/lib/express/middleware.js.map +1 -1
  26. package/build/lib/express/server.d.ts.map +1 -1
  27. package/build/lib/express/server.js +0 -1
  28. package/build/lib/express/server.js.map +1 -1
  29. package/build/lib/helpers/capabilities.d.ts +13 -6
  30. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  31. package/build/lib/helpers/capabilities.js +7 -0
  32. package/build/lib/helpers/capabilities.js.map +1 -1
  33. package/build/lib/index.d.ts +1 -0
  34. package/build/lib/index.d.ts.map +1 -1
  35. package/build/lib/index.js +3 -1
  36. package/build/lib/index.js.map +1 -1
  37. package/build/lib/jsonwp-proxy/proxy.d.ts +0 -8
  38. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  39. package/build/lib/jsonwp-proxy/proxy.js +7 -38
  40. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  41. package/build/lib/protocol/errors.d.ts +171 -277
  42. package/build/lib/protocol/errors.d.ts.map +1 -1
  43. package/build/lib/protocol/errors.js +201 -421
  44. package/build/lib/protocol/errors.js.map +1 -1
  45. package/build/lib/protocol/helpers.d.ts +6 -6
  46. package/build/lib/protocol/helpers.d.ts.map +1 -1
  47. package/build/lib/protocol/helpers.js +11 -7
  48. package/build/lib/protocol/helpers.js.map +1 -1
  49. package/build/lib/protocol/index.d.ts +2 -1
  50. package/build/lib/protocol/index.d.ts.map +1 -1
  51. package/build/lib/protocol/index.js +2 -1
  52. package/build/lib/protocol/index.js.map +1 -1
  53. package/build/lib/protocol/protocol.d.ts +16 -19
  54. package/build/lib/protocol/protocol.d.ts.map +1 -1
  55. package/build/lib/protocol/protocol.js +98 -119
  56. package/build/lib/protocol/protocol.js.map +1 -1
  57. package/build/lib/protocol/routes.d.ts +12 -714
  58. package/build/lib/protocol/routes.d.ts.map +1 -1
  59. package/build/lib/protocol/routes.js +24 -488
  60. package/build/lib/protocol/routes.js.map +1 -1
  61. package/build/lib/protocol/validators.d.ts +4 -7
  62. package/build/lib/protocol/validators.d.ts.map +1 -1
  63. package/build/lib/protocol/validators.js +4 -21
  64. package/build/lib/protocol/validators.js.map +1 -1
  65. package/lib/basedriver/capabilities.ts +2 -4
  66. package/lib/basedriver/commands/execute.ts +1 -1
  67. package/lib/basedriver/commands/timeout.ts +16 -43
  68. package/lib/basedriver/core.ts +10 -19
  69. package/lib/basedriver/driver.ts +3 -3
  70. package/lib/basedriver/helpers.js +61 -167
  71. package/lib/basedriver/validation.ts +145 -0
  72. package/lib/express/middleware.js +32 -70
  73. package/lib/express/server.js +0 -2
  74. package/lib/helpers/capabilities.js +9 -4
  75. package/lib/index.js +2 -0
  76. package/lib/jsonwp-proxy/proxy.js +8 -45
  77. package/lib/protocol/{errors.js → errors.ts} +322 -436
  78. package/lib/protocol/helpers.js +12 -8
  79. package/lib/protocol/index.js +8 -1
  80. package/lib/protocol/{protocol.js → protocol.ts} +147 -146
  81. package/lib/protocol/routes.js +26 -498
  82. package/lib/protocol/validators.ts +19 -0
  83. package/package.json +10 -11
  84. package/build/lib/basedriver/desired-caps.d.ts +0 -5
  85. package/build/lib/basedriver/desired-caps.d.ts.map +0 -1
  86. package/build/lib/basedriver/desired-caps.js +0 -92
  87. package/build/lib/basedriver/desired-caps.js.map +0 -1
  88. package/lib/basedriver/README.md +0 -36
  89. package/lib/basedriver/desired-caps.js +0 -103
  90. package/lib/express/README.md +0 -59
  91. package/lib/jsonwp-proxy/README.md +0 -52
  92. package/lib/jsonwp-status/README.md +0 -20
  93. package/lib/protocol/README.md +0 -100
  94. package/lib/protocol/validators.js +0 -38
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.deprecatedCommandsLogged = exports.LIST_DRIVER_EXTENSIONS_COMMAND = exports.LIST_DRIVER_COMMANDS_COMMAND = exports.GET_STATUS_COMMAND = exports.DELETE_SESSION_COMMAND = exports.CREATE_SESSION_COMMAND = void 0;
7
+ exports.determineProtocol = determineProtocol;
8
+ exports.isSessionCommand = isSessionCommand;
7
9
  exports.checkParams = checkParams;
8
10
  exports.makeArgs = makeArgs;
11
+ exports.validateExecuteMethodParams = validateExecuteMethodParams;
9
12
  exports.routeConfiguringFunction = routeConfiguringFunction;
10
- exports.isSessionCommand = isSessionCommand;
11
13
  exports.driverShouldDoJwpProxy = driverShouldDoJwpProxy;
12
- exports.determineProtocol = determineProtocol;
13
- exports.validateExecuteMethodParams = validateExecuteMethodParams;
14
14
  const lodash_1 = __importDefault(require("lodash"));
15
15
  const support_1 = require("@appium/support");
16
16
  const validators_1 = require("./validators");
@@ -27,21 +27,19 @@ exports.DELETE_SESSION_COMMAND = 'deleteSession';
27
27
  exports.GET_STATUS_COMMAND = 'getStatus';
28
28
  exports.LIST_DRIVER_COMMANDS_COMMAND = 'listCommands';
29
29
  exports.LIST_DRIVER_EXTENSIONS_COMMAND = 'listExtensions';
30
- /** @type {Set<string>} */
31
- const deprecatedCommandsLogged = new Set();
32
- exports.deprecatedCommandsLogged = deprecatedCommandsLogged;
30
+ exports.deprecatedCommandsLogged = new Set();
33
31
  function determineProtocol(createSessionArgs) {
34
32
  return lodash_1.default.some(createSessionArgs, capabilities_1.isW3cCaps) ? constants_1.PROTOCOLS.W3C : constants_1.PROTOCOLS.MJSONWP;
35
33
  }
36
34
  function extractProtocol(driver, sessionId = null) {
37
- const dstDriver = lodash_1.default.isFunction(driver.driverForSession)
35
+ const dstDriver = lodash_1.default.isFunction(driver.driverForSession) && sessionId
38
36
  ? driver.driverForSession(sessionId)
39
37
  : driver;
40
38
  if (dstDriver === driver) {
41
39
  // Shortcircuit if the driver instance is not an umbrella driver
42
40
  // or it is Fake driver instance, where `driver.driverForSession`
43
41
  // always returns self instance
44
- return driver.protocol;
42
+ return driver.protocol ?? constants_1.PROTOCOLS.W3C;
45
43
  }
46
44
  // Extract the protocol for the current session if the given driver is the umbrella one
47
45
  return dstDriver?.protocol ?? constants_1.PROTOCOLS.W3C;
@@ -49,12 +47,6 @@ function extractProtocol(driver, sessionId = null) {
49
47
  function isSessionCommand(command) {
50
48
  return !lodash_1.default.includes(routes_1.NO_SESSION_ID_COMMANDS, command);
51
49
  }
52
- /**
53
- *
54
- * @param {import('@appium/types').ExternalDriver} driver
55
- * @param {string?} [sessionId]
56
- * @returns {import('@appium/types').AppiumLogger}
57
- */
58
50
  function getLogger(driver, sessionId = null) {
59
51
  const dstDriver = sessionId && lodash_1.default.isFunction(driver.driverForSession)
60
52
  ? driver.driverForSession(sessionId) ?? driver
@@ -72,78 +64,86 @@ function wrapParams(paramSets, jsonObj) {
72
64
  * The wrap option in the spec enforce wrapping before validation, so that all params are wrapped at
73
65
  * the time they are validated and later passed to the commands.
74
66
  */
75
- let res = jsonObj;
76
- if (lodash_1.default.isArray(jsonObj) || !lodash_1.default.isObject(jsonObj)) {
77
- res = {};
78
- res[paramSets.wrap] = jsonObj;
79
- }
80
- return res;
67
+ return (lodash_1.default.isArray(jsonObj) || !lodash_1.default.isObject(jsonObj)) && paramSets.wrap
68
+ ? { [paramSets.wrap]: jsonObj }
69
+ : jsonObj;
81
70
  }
82
71
  function unwrapParams(paramSets, jsonObj) {
83
72
  /* There are commands like setNetworkConnection which send parameters wrapped inside a key such as
84
73
  * "parameters". This function unwraps them (eg. {"parameters": {"type": 1}} becomes {"type": 1}).
85
74
  */
86
- let res = jsonObj;
87
- if (lodash_1.default.isObject(jsonObj)) {
88
- // some clients, like ruby, don't wrap
89
- if (jsonObj[paramSets.unwrap]) {
90
- res = jsonObj[paramSets.unwrap];
91
- }
75
+ return lodash_1.default.isObject(jsonObj) && paramSets.unwrap && jsonObj[paramSets.unwrap]
76
+ ? jsonObj[paramSets.unwrap]
77
+ : jsonObj;
78
+ }
79
+ function hasMultipleRequiredParamSets(required) {
80
+ //@ts-expect-error Needed to convince lodash typechecks
81
+ return Boolean(required && lodash_1.default.isArray(lodash_1.default.first(required)));
82
+ }
83
+ function pickKnownParams(args, unknownNames) {
84
+ if (lodash_1.default.isEmpty(unknownNames)) {
85
+ return args;
92
86
  }
93
- return res;
87
+ logger_1.default.info(`The following arguments are not known and will be ignored: ${unknownNames}`);
88
+ return lodash_1.default.pickBy(args, (v, k) => !unknownNames.includes(k));
94
89
  }
95
- function checkParams(paramSets, jsonObj, protocol) {
90
+ function checkParams(paramSpec, args, protocol) {
96
91
  let requiredParams = [];
97
92
  let optionalParams = [];
98
- let receivedParams = lodash_1.default.keys(jsonObj);
99
- if (paramSets) {
100
- if (paramSets.required) {
101
- // we might have an array of parameters,
102
- // or an array of arrays of parameters, so standardize
103
- if (!lodash_1.default.isArray(lodash_1.default.first(paramSets.required))) {
104
- requiredParams = [paramSets.required];
105
- }
106
- else {
107
- requiredParams = paramSets.required;
108
- }
109
- }
110
- // optional parameters are just an array
111
- if (paramSets.optional) {
112
- optionalParams = paramSets.optional;
113
- }
114
- // If a function was provided as the 'validate' key, it will here be called with
115
- // jsonObj as the param. If it returns something falsy, verification will be
116
- // considered to have passed. If it returns something else, that will be the
117
- // argument to an error which is thrown to the user
118
- if (paramSets.validate) {
119
- let message = paramSets.validate(jsonObj, protocol);
120
- if (message) {
121
- throw new errors_1.errors.BadParametersError(message, jsonObj);
122
- }
123
- }
93
+ const actualParamNames = lodash_1.default.keys(args);
94
+ if (paramSpec.required) {
95
+ // we might have an array of parameters,
96
+ // or an array of arrays of parameters, so standardize
97
+ requiredParams = lodash_1.default.cloneDeep((hasMultipleRequiredParamSets(paramSpec.required)
98
+ ? paramSpec.required
99
+ : [paramSpec.required]));
124
100
  }
125
- // if we have no required parameters, all is well
126
- if (requiredParams.length === 0) {
127
- return;
101
+ // optional parameters are just an array
102
+ if (paramSpec.optional) {
103
+ optionalParams = lodash_1.default.cloneDeep(paramSpec.optional);
104
+ }
105
+ // If a function was provided as the 'validate' key, it will here be called with
106
+ // args as the param. If it returns something falsy, verification will be
107
+ // considered to have passed. If it returns something else, that will be the
108
+ // argument to an error which is thrown to the user
109
+ if (paramSpec.validate) {
110
+ const message = paramSpec.validate(args, protocol ?? constants_1.PROTOCOLS.W3C);
111
+ if (message) {
112
+ throw new errors_1.errors.InvalidArgumentError(lodash_1.default.isString(message) ? message : undefined);
113
+ }
128
114
  }
129
115
  // some clients pass in the session id in the params
130
- if (optionalParams.indexOf('sessionId') === -1) {
116
+ if (!lodash_1.default.includes(optionalParams, 'sessionId')) {
131
117
  optionalParams.push('sessionId');
132
118
  }
133
119
  // some clients pass in an element id in the params
134
- if (optionalParams.indexOf('id') === -1) {
120
+ if (!lodash_1.default.includes(optionalParams, 'id')) {
135
121
  optionalParams.push('id');
136
122
  }
123
+ if (lodash_1.default.isEmpty(requiredParams)) {
124
+ // if we don't have any required parameters, then just filter out unknown ones
125
+ return pickKnownParams(args, lodash_1.default.difference(actualParamNames, optionalParams));
126
+ }
137
127
  // go through the required parameters and check against our arguments
138
- for (let params of requiredParams) {
139
- if (lodash_1.default.difference(receivedParams, params, optionalParams).length === 0 &&
140
- lodash_1.default.difference(params, receivedParams).length === 0) {
141
- // we have a set of parameters that is correct
142
- // so short-circuit
143
- return;
128
+ let matchedReqParamSet = [];
129
+ for (const requiredParamsSet of requiredParams) {
130
+ if (!lodash_1.default.isArray(requiredParamsSet)) {
131
+ throw new Error(`The required parameter set item ${JSON.stringify(requiredParamsSet)} ` +
132
+ `in ${JSON.stringify(paramSpec)} is not an array. ` +
133
+ `This is a bug in the method map definition.`);
134
+ }
135
+ if (lodash_1.default.isEmpty(lodash_1.default.difference(requiredParamsSet, actualParamNames))) {
136
+ return pickKnownParams(args, lodash_1.default.difference(actualParamNames, requiredParamsSet, optionalParams));
137
+ }
138
+ if (!lodash_1.default.isEmpty(requiredParamsSet) && lodash_1.default.isEmpty(matchedReqParamSet)) {
139
+ matchedReqParamSet = requiredParamsSet;
144
140
  }
145
141
  }
146
- throw new errors_1.errors.BadParametersError(paramSets, receivedParams);
142
+ throw new errors_1.BadParametersError({
143
+ ...paramSpec,
144
+ required: matchedReqParamSet,
145
+ optional: optionalParams,
146
+ }, actualParamNames);
147
147
  }
148
148
  /*
149
149
  * This method takes 3 pieces of data: request parameters ('requestParams'),
@@ -152,24 +152,24 @@ function checkParams(paramSets, jsonObj, protocol) {
152
152
  * on handling parameters. This method returns an array of arguments which will
153
153
  * be applied to a command.
154
154
  */
155
- function makeArgs(requestParams, jsonObj, payloadParams, protocol) {
155
+ function makeArgs(requestParams, jsonObj, payloadParams) {
156
156
  // We want to pass the "url" parameters to the commands in reverse order
157
157
  // since the command will sometimes want to ignore, say, the sessionId.
158
158
  // This has the effect of putting sessionId last, which means in JS we can
159
159
  // omit it from the function signature if we're not going to use it.
160
- let urlParams = lodash_1.default.keys(requestParams).reverse();
160
+ const urlParams = lodash_1.default.keys(requestParams).reverse();
161
161
  // In the simple case, the required parameters are a basic array in
162
162
  // payloadParams.required, so start there. It's possible that there are
163
163
  // multiple optional sets of required params, though, so handle that case
164
164
  // too.
165
165
  let requiredParams = payloadParams.required;
166
- if (lodash_1.default.isArray(lodash_1.default.first(payloadParams.required))) {
166
+ if (hasMultipleRequiredParamSets(payloadParams.required)) {
167
167
  // If there are optional sets of required params, then we will have an
168
168
  // array of arrays in payloadParams.required, so loop through each set and
169
169
  // pick the one that matches which JSON params were actually sent. We've
170
170
  // already been through validation so we're guaranteed to find a match.
171
- let keys = lodash_1.default.keys(jsonObj);
172
- for (let params of payloadParams.required) {
171
+ const keys = lodash_1.default.keys(jsonObj);
172
+ for (const params of payloadParams.required) {
173
173
  if (lodash_1.default.without(params, ...keys).length === 0) {
174
174
  requiredParams = params;
175
175
  break;
@@ -185,7 +185,7 @@ function makeArgs(requestParams, jsonObj, payloadParams, protocol) {
185
185
  // which will be applied to the handling command. For example if it returns
186
186
  // [1, 2, 3], we will call `command(1, 2, 3, ...)` (url params are separate
187
187
  // from JSON params and get concatenated below).
188
- args = payloadParams.makeArgs(jsonObj, protocol);
188
+ args = payloadParams.makeArgs(jsonObj);
189
189
  }
190
190
  else {
191
191
  // Otherwise, collect all the required and optional params and flatten them
@@ -208,37 +208,24 @@ function validateExecuteMethodParams(params, paramSpec) {
208
208
  throw new errors_1.errors.InvalidArgumentError(`Did not get correct format of arguments for execute method. Expected zero or one ` +
209
209
  `arguments to execute script and instead received: ${JSON.stringify(params)}`);
210
210
  }
211
- let args = params[0] ?? {};
211
+ const args = params[0] ?? {};
212
212
  if (!lodash_1.default.isPlainObject(args)) {
213
213
  throw new errors_1.errors.InvalidArgumentError(`Did not receive an appropriate execute method parameters object. It needs to be ` +
214
214
  `deserializable as a plain JS object`);
215
215
  }
216
- if (!paramSpec) {
217
- paramSpec = { required: [], optional: [] };
218
- }
219
- else {
220
- paramSpec.required ?? (paramSpec.required = []);
221
- paramSpec.optional ?? (paramSpec.optional = []);
222
- const unknownNames = lodash_1.default.difference(lodash_1.default.keys(args), paramSpec.required, paramSpec.optional);
223
- if (!lodash_1.default.isEmpty(unknownNames)) {
224
- logger_1.default.info(`The following script arguments are not known and will be ignored: ${unknownNames}`);
225
- args = lodash_1.default.pickBy(args, (v, k) => !unknownNames.includes(k));
226
- }
227
- checkParams(paramSpec, args, null);
228
- }
229
- const argsToApply = makeArgs({}, args, paramSpec, null);
230
- return argsToApply;
216
+ const specToUse = {
217
+ ...(paramSpec ?? {}),
218
+ required: paramSpec?.required ?? [],
219
+ optional: paramSpec?.optional ?? [],
220
+ };
221
+ const filteredArgs = checkParams(specToUse, args);
222
+ return makeArgs({}, filteredArgs, specToUse);
231
223
  }
232
- /**
233
- *
234
- * @param {import('@appium/types').Core} driver
235
- * @returns {import('../express/server').RouteConfiguringFunction}
236
- */
237
224
  function routeConfiguringFunction(driver) {
238
225
  if (!driver.sessionExists) {
239
226
  throw new Error('Drivers must implement `sessionExists` property');
240
227
  }
241
- if (!( /** @type {any} */(driver).executeCommand || /** @type {any} */ (driver).execute)) {
228
+ if (!(driver.executeCommand || driver.execute)) {
242
229
  throw new Error('Drivers must implement `executeCommand` or `execute` method');
243
230
  }
244
231
  // return a function which will add all the routes to the driver. Here extraMethods might be
@@ -250,14 +237,15 @@ function routeConfiguringFunction(driver) {
250
237
  const allMethods = { ...routes_1.METHOD_MAP, ...extraMethodMap };
251
238
  for (const [path, methods] of lodash_1.default.toPairs(allMethods)) {
252
239
  for (const [method, spec] of lodash_1.default.toPairs(methods)) {
240
+ const isSessCommand = spec.command ? isSessionCommand(spec.command) : false;
253
241
  // set up the express route handler
254
- buildHandler(app, method, `${basePath}${path}`, spec, driver, isSessionCommand(/** @type {import('@appium/types').DriverMethodDef} */ (spec).command));
242
+ buildHandler(app, method, `${basePath}${path}`, spec, driver, isSessCommand);
255
243
  }
256
244
  }
257
245
  };
258
246
  }
259
247
  function buildHandler(app, method, path, spec, driver, isSessCmd) {
260
- let asyncHandler = async (req, res) => {
248
+ const asyncHandler = async (req, res) => {
261
249
  let jsonObj = req.body;
262
250
  let httpResBody = {};
263
251
  let httpStatus = 200;
@@ -265,8 +253,8 @@ function buildHandler(app, method, path, spec, driver, isSessCmd) {
265
253
  let currentProtocol = extractProtocol(driver, req.params.sessionId);
266
254
  try {
267
255
  // if the route accessed is deprecated, log a warning
268
- if (spec.deprecated && !deprecatedCommandsLogged.has(spec.command)) {
269
- deprecatedCommandsLogged.add(spec.command);
256
+ if (spec.deprecated && spec.command && !exports.deprecatedCommandsLogged.has(spec.command)) {
257
+ exports.deprecatedCommandsLogged.add(spec.command);
270
258
  getLogger(driver, req.params.sessionId).warn(`Command '${spec.command}' has been deprecated and will be removed in a future ` +
271
259
  `version of Appium or your driver/plugin. Please use a different method or contact the ` +
272
260
  `driver/plugin author to add explicit support for the command before it is removed`);
@@ -285,8 +273,8 @@ function buildHandler(app, method, path, spec, driver, isSessCmd) {
285
273
  // commands and generally would not want that command to be proxied instead of handled by the
286
274
  // plugin)
287
275
  let didPluginOverrideProxy = false;
288
- if (isSessCmd && !spec.neverProxy && driverShouldDoJwpProxy(driver, req, spec.command)) {
289
- if (!driver.pluginsToHandleCmd ||
276
+ if (isSessCmd && !spec.neverProxy && spec.command && driverShouldDoJwpProxy(driver, req, spec.command)) {
277
+ if (!('pluginsToHandleCmd' in driver) || !lodash_1.default.isFunction(driver.pluginsToHandleCmd) ||
290
278
  driver.pluginsToHandleCmd(spec.command, req.params.sessionId).length === 0) {
291
279
  await doJwpProxy(driver, req, res);
292
280
  return;
@@ -315,10 +303,12 @@ function buildHandler(app, method, path, spec, driver, isSessCmd) {
315
303
  currentProtocol = determineProtocol(makeArgs(req.params, jsonObj, spec.payloadParams || {}));
316
304
  }
317
305
  // ensure that the json payload conforms to the spec
318
- checkParams(spec.payloadParams, jsonObj, currentProtocol);
306
+ if (spec.payloadParams) {
307
+ checkParams(spec.payloadParams, jsonObj, currentProtocol);
308
+ }
319
309
  // turn the command and json payload into an argument list for
320
310
  // the driver methods
321
- let args = makeArgs(req.params, jsonObj, spec.payloadParams || {}, currentProtocol);
311
+ const args = makeArgs(req.params, jsonObj, spec.payloadParams || {});
322
312
  let driverRes;
323
313
  // validate command args according to MJSONWP
324
314
  if (validators_1.validators[spec.command]) {
@@ -415,26 +405,15 @@ function buildHandler(app, method, path, spec, driver, isSessCmd) {
415
405
  }
416
406
  // decode the response, which is either a string or json
417
407
  if (lodash_1.default.isString(httpResBody)) {
418
- res.status(httpStatus).send(httpResBody);
408
+ res.status(httpStatus)
409
+ .setHeader('content-type', 'application/json; charset=utf-8')
410
+ .send(httpResBody);
419
411
  }
420
412
  else {
421
- if (newSessionId) {
422
- if (currentProtocol === constants_1.PROTOCOLS.W3C) {
423
- httpResBody.value.sessionId = newSessionId;
424
- }
425
- else {
426
- httpResBody.sessionId = newSessionId;
427
- }
428
- }
429
- else {
430
- httpResBody.sessionId = req.params.sessionId || null;
431
- }
432
- // Don't include sessionId in W3C responses
433
- if (currentProtocol === constants_1.PROTOCOLS.W3C) {
434
- delete httpResBody.sessionId;
413
+ if (newSessionId && currentProtocol === constants_1.PROTOCOLS.W3C) {
414
+ httpResBody.value.sessionId = newSessionId;
435
415
  }
436
- httpResBody = (0, helpers_1.formatStatus)(httpResBody);
437
- res.status(httpStatus).json(httpResBody);
416
+ res.status(httpStatus).json((0, helpers_1.ensureW3cResponse)(httpResBody));
438
417
  }
439
418
  };
440
419
  // add the method to the app
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../lib/protocol/protocol.js"],"names":[],"mappings":";;;;;;AAkGA,kCA2DC;AASD,4BAgDC;AAyVC,4DAAwB;AACxB,4CAAgB;AAChB,wDAAsB;AACtB,8CAAiB;AAEjB,kEAA2B;AApjB7B,oDAAuB;AACvB,6CAA6C;AAC7C,6CAAwC;AACxC,qCAMkB;AAClB,qCAA4D;AAC5D,wDAAyB;AACzB,uCAA4D;AAC5D,4CAA+E;AAC/E,0DAAkD;AAClD,kEAAuC;AACvC,mDAAgE;AAEnD,QAAA,sBAAsB,GAAG,eAAe,CAAC;AACzC,QAAA,sBAAsB,GAAG,eAAe,CAAC;AACzC,QAAA,kBAAkB,GAAG,WAAW,CAAC;AACjC,QAAA,4BAA4B,GAAG,cAAc,CAAC;AAC9C,QAAA,8BAA8B,GAAG,gBAAgB,CAAC;AAE/D,0BAA0B;AAC1B,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAE,CAAC;AA0hBzC,4DAAwB;AAxhB1B,SAAS,iBAAiB,CAAC,iBAAiB;IAC1C,OAAO,gBAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,wBAAS,CAAC,CAAC,CAAC,CAAC,qBAAS,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAS,CAAC,OAAO,CAAC;AAClF,CAAC;AAED,SAAS,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAC/C,MAAM,SAAS,GAAG,gBAAC,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACrD,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC;IACX,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,gEAAgE;QAChE,iEAAiE;QACjE,+BAA+B;QAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,uFAAuF;IACvF,OAAO,SAAS,EAAE,QAAQ,IAAI,qBAAS,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAO;IAC/B,OAAO,CAAC,gBAAC,CAAC,QAAQ,CAAC,+BAAsB,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IACzC,MAAM,SAAS,GACb,SAAS,IAAI,gBAAC,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAChD,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,MAAM;QAC9C,CAAC,CAAC,MAAM,CAAC;IACb,IAAI,gBAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,GAAG,CAAC;IACvB,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,iCAAuB,EAAC,SAAS,CAAC,CAAC;IACrD,OAAO,gBAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,SAAS,EAAE,OAAO;IACpC;;;;;OAKG;IACH,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,GAAG,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO;IACtC;;OAEG;IACH,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,IAAI,gBAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,sCAAsC;QACtC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ;IACtD,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,cAAc,GAAG,gBAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,wCAAwC;YACxC,sDAAsD;YACtD,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,gBAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBAC5C,cAAc,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC;YACtC,CAAC;QACH,CAAC;QACD,wCAAwC;QACxC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC;QACtC,CAAC;QAED,gFAAgF;QAChF,4EAA4E;QAC5E,4EAA4E;QAC5E,mDAAmD;QACnD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,eAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,oDAAoD;IACpD,IAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/C,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,mDAAmD;IACnD,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,qEAAqE;IACrE,KAAK,IAAI,MAAM,IAAI,cAAc,EAAE,CAAC;QAClC,IACE,gBAAC,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC;YACjE,gBAAC,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EACjD,CAAC;YACD,8CAA8C;YAC9C,mBAAmB;YACnB,OAAO;QACT,CAAC;IACH,CAAC;IACD,MAAM,IAAI,eAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ;IACtE,wEAAwE;IACxE,uEAAuE;IACvE,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,SAAS,GAAG,gBAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;IAEhD,mEAAmE;IACnE,uEAAuE;IACvE,yEAAyE;IACzE,OAAO;IACP,IAAI,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC;IAC5C,IAAI,gBAAC,CAAC,OAAO,CAAC,gBAAC,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC/C,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,IAAI,GAAG,gBAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,KAAK,IAAI,MAAM,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,gBAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5C,cAAc,GAAG,MAAM,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,IAAI,CAAC;IACT,IAAI,gBAAC,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,gDAAgD;QAChD,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,yBAAyB;QACzB,IAAI,GAAG,gBAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,WAAW;IACX,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAM,EAAE,SAAS;IACpD,yFAAyF;IACzF,2FAA2F;IAC3F,8DAA8D;IAC9D,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,mFAAmF;YACjF,qDAAqD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,gBAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAM,CAAC,oBAAoB,CACnC,kFAAkF;YAChF,qCAAqC,CACxC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,EAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,QAAQ,KAAlB,SAAS,CAAC,QAAQ,GAAK,EAAE,EAAC;QAC1B,SAAS,CAAC,QAAQ,KAAlB,SAAS,CAAC,QAAQ,GAAK,EAAE,EAAC;QAC1B,MAAM,YAAY,GAAG,gBAAC,CAAC,UAAU,CAAC,gBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxF,IAAI,CAAC,gBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,gBAAG,CAAC,IAAI,CAAC,qEAAqE,YAAY,EAAE,CAAC,CAAC;YAC9F,IAAI,GAAG,gBAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,MAAM;IACtC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,EAAC,kBAAmB,CAAC,MAAM,CAAC,CAAC,cAAc,IAAI,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,4FAA4F;IAC5F,sFAAsF;IACtF,OAAO,SAAS,SAAS,CAAC,GAAG,EAAE,EAAC,QAAQ,GAAG,6BAAiB,EAAE,cAAc,GAAG,EAAE,EAAC,GAAG,EAAE;QACrF,sEAAsE;QACtE,6CAA6C;QAC7C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE3B,MAAM,UAAU,GAAG,EAAC,GAAG,mBAAU,EAAE,GAAG,cAAc,EAAC,CAAC;QAEtD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,gBAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,mCAAmC;gBACnC,YAAY,CACV,GAAG,EACH,MAAM,EACN,GAAG,QAAQ,GAAG,IAAI,EAAE,EACpB,IAAI,EACJ,MAAM,EACN,gBAAgB,CAAC,sDAAsD,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS;IAC9D,IAAI,YAAY,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACpC,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACvB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,IAAI,YAAY,CAAC;QACjB,IAAI,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,qDAAqD;YACrD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3C,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1C,YAAY,IAAI,CAAC,OAAO,wDAAwD;oBAC9E,wFAAwF;oBACxF,mFAAmF,CACtF,CAAC;YACJ,CAAC;YAED,4DAA4D;YAC5D,+CAA+C;YAC/C,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,eAAM,CAAC,iBAAiB,EAAE,CAAC;YACvC,CAAC;YAED,wFAAwF;YACxF,oFAAoF;YACpF,6FAA6F;YAC7F,kFAAkF;YAClF,4FAA4F;YAC5F,sFAAsF;YACtF,6FAA6F;YAC7F,UAAU;YACV,IAAI,sBAAsB,GAAG,KAAK,CAAC;YACnC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvF,IACE,CAAC,MAAM,CAAC,kBAAkB;oBAC1B,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAC1E,CAAC;oBACD,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;oBACnC,OAAO;gBACT,CAAC;gBACD,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAC3C,qBAAqB;oBACnB,mFAAmF;oBACnF,iEAAiE,CACpE,CAAC;gBACF,sBAAsB,GAAG,IAAI,CAAC;YAChC,CAAC;YAED,yDAAyD;YACzD,qCAAqC;YACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,eAAM,CAAC,mBAAmB,EAAE,CAAC;YACzC,CAAC;YAED,2BAA2B;YAC3B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAClD,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YAED,6BAA6B;YAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACpD,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,KAAK,8BAAsB,EAAE,CAAC;gBAC5C,wEAAwE;gBACxE,yDAAyD;gBACzD,eAAe,GAAG,iBAAiB,CACjC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CACxD,CAAC;YACJ,CAAC;YAED,oDAAoD;YACpD,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;YAE1D,8DAA8D;YAC9D,qBAAqB;YACrB,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;YACpF,IAAI,SAAS,CAAC;YACd,6CAA6C;YAC7C,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,uBAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,gEAAgE;YAChE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAC3C,UAAU;gBACR,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,gBAAgB;gBAC1D,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAC,MAAM,EAAE,+BAAmB,EAAC,CAAC,CAClE,CAAC;YAEF,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,0FAA0F;gBAC1F,0FAA0F;gBAC1F,2EAA2E;gBAC3E,IAAI,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,GAAG,EAAC,CAAC,CAAC;YAChC,CAAC;YAED,SAAS,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAE/D,wCAAwC;YACxC,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC;YAEnF,sEAAsE;YACtE,mEAAmE;YACnE,IAAI,gBAAC,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,gBAAC,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC/D,eAAe,GAAG,SAAS,CAAC,QAAQ,IAAI,eAAe,CAAC;gBACxD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,SAAS,CAAC,KAAK,CAAC;gBACxB,CAAC;gBACD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,CAAC;YAED,gCAAgC;YAChC,IAAI,IAAI,CAAC,OAAO,KAAK,8BAAsB,EAAE,CAAC;gBAC5C,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,KAAK,CACnC,8BAA8B,eAAe,yBAAyB,YAAY,EAAE,CACrF,CAAC;gBACF,IAAI,eAAe,KAAK,qBAAS,CAAC,OAAO,EAAE,CAAC;oBAC1C,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,eAAe,KAAK,qBAAS,CAAC,GAAG,EAAE,CAAC;oBAC7C,SAAS,GAAG;wBACV,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;qBAC3B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,SAAS,GAAG,IAAA,6BAAmB,EAAC,SAAS,CAAC,CAAC;YAE3C,uDAAuD;YACvD,IAAI,IAAI,CAAC,OAAO,KAAK,8BAAsB,EAAE,CAAC;gBAC5C,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAC3C,sBAAsB,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBAC1D,MAAM,EAAE,+BAAmB;iBAC5B,CAAC,EAAE,CACL,CAAC;gBACF,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACxF,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YAED,wEAAwE;YACxE,IAAI,cAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,IACE,cAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;oBAC/B,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;oBACxB,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EACpC,CAAC;oBACD,MAAM,IAAA,mCAA0B,EAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACtE,CAAC;qBAAM,IAAI,gBAAC,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACrE,MAAM,IAAA,6BAAoB,EACxB,SAAS,CAAC,KAAK,CAAC,KAAK,EACrB,SAAS,CAAC,KAAK,CAAC,OAAO,EACvB,SAAS,CAAC,KAAK,CAAC,UAAU,CAC3B,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,WAAW,CAAC,KAAK,GAAG,SAAS,CAAC;YAC9B,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,KAAK,CAC3D,aAAa;gBACX,yBAAyB,IAAI,CAAC,OAAO,cAAc,gBAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACvF,MAAM,EAAE,+BAAmB;iBAC5B,CAAC,EAAE,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iEAAiE;YACjE,iDAAiD;YACjD,IAAI,SAAS,CAAC;YACd,IAAI,GAAG,YAAY,KAAK,IAAI,CAAC,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,gBAAC,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC3E,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,IAAI,CAC1D,wFAAwF;oBACtF,iDAAiD,CACpD,CAAC;gBACF,SAAS,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,eAAe;gBACb,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC;YAEnF,IAAI,MAAM,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC;YACzC,IAAI,CAAC,gBAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,qEAAqE;gBACrE,uCAAuC;gBACvC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1D,CAAC;YACD,IAAI,IAAA,oBAAW,EAAC,GAAG,EAAE,eAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC/C,SAAS,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,CAAC,KAAK,CAC3D,+CAA+C,MAAM,EAAE,CACxD,CAAC;YACJ,CAAC;YAED,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,IAAA,+BAAsB,EAAC,SAAS,CAAC,CAAC;QAChE,CAAC;QAED,wDAAwD;QACxD,IAAI,gBAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,eAAe,KAAK,qBAAS,CAAC,GAAG,EAAE,CAAC;oBACtC,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,SAAS,GAAG,YAAY,CAAC;gBACvC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;YACvD,CAAC;YACD,2CAA2C;YAC3C,IAAI,eAAe,KAAK,qBAAS,CAAC,GAAG,EAAE,CAAC;gBACtC,OAAO,WAAW,CAAC,SAAS,CAAC;YAC/B,CAAC;YAED,WAAW,GAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC;YACxC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IACF,4BAA4B;IAC5B,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3C,kBAAC,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO;IAClD,0DAA0D;IAC1D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,2CAA2C;IAC3C,IAAI,OAAO,KAAK,8BAAsB,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2EAA2E;IAC3E,6BAA6B;IAC7B,IAAI,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG;IACxC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAC1C,wDAAwD,CACzD,CAAC;IAEF,mDAAmD;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,oBAAW,EAAC,GAAG,EAAE,eAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../lib/protocol/protocol.ts"],"names":[],"mappings":"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"}