@appium/base-driver 8.5.2 → 8.5.5

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 (141) hide show
  1. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  2. package/build/lib/basedriver/capabilities.js +1 -1
  3. package/build/lib/basedriver/commands/event.js +1 -1
  4. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  5. package/build/lib/basedriver/commands/find.js +1 -1
  6. package/build/lib/basedriver/commands/index.js +1 -1
  7. package/build/lib/basedriver/commands/log.d.ts.map +1 -1
  8. package/build/lib/basedriver/commands/log.js +1 -1
  9. package/build/lib/basedriver/commands/session.js +1 -1
  10. package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
  11. package/build/lib/basedriver/commands/settings.js +1 -1
  12. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  13. package/build/lib/basedriver/commands/timeout.js +1 -1
  14. package/build/lib/basedriver/core.d.ts +120 -139
  15. package/build/lib/basedriver/core.d.ts.map +1 -1
  16. package/build/lib/basedriver/core.js +1 -49
  17. package/build/lib/basedriver/desired-caps.d.ts +5 -2
  18. package/build/lib/basedriver/desired-caps.d.ts.map +1 -1
  19. package/build/lib/basedriver/desired-caps.js +14 -18
  20. package/build/lib/basedriver/device-settings.d.ts +9 -9
  21. package/build/lib/basedriver/device-settings.d.ts.map +1 -1
  22. package/build/lib/basedriver/device-settings.js +4 -4
  23. package/build/lib/basedriver/driver.d.ts +43 -38
  24. package/build/lib/basedriver/driver.d.ts.map +1 -1
  25. package/build/lib/basedriver/driver.js +58 -11
  26. package/build/lib/basedriver/helpers.d.ts +8 -3
  27. package/build/lib/basedriver/helpers.d.ts.map +1 -1
  28. package/build/lib/basedriver/helpers.js +4 -6
  29. package/build/lib/basedriver/logger.d.ts +1 -1
  30. package/build/lib/basedriver/logger.d.ts.map +1 -1
  31. package/build/lib/basedriver/logger.js +1 -1
  32. package/build/lib/constants.js +1 -1
  33. package/build/lib/express/crash.d.ts.map +1 -1
  34. package/build/lib/express/crash.js +1 -1
  35. package/build/lib/express/express-logging.d.ts.map +1 -1
  36. package/build/lib/express/express-logging.js +1 -1
  37. package/build/lib/express/idempotency.js +1 -1
  38. package/build/lib/express/logger.d.ts +1 -1
  39. package/build/lib/express/logger.d.ts.map +1 -1
  40. package/build/lib/express/logger.js +1 -1
  41. package/build/lib/express/middleware.d.ts.map +1 -1
  42. package/build/lib/express/middleware.js +1 -1
  43. package/build/lib/express/server.d.ts +21 -0
  44. package/build/lib/express/server.d.ts.map +1 -1
  45. package/build/lib/express/server.js +4 -9
  46. package/build/lib/express/static.d.ts.map +1 -1
  47. package/build/lib/express/static.js +2 -2
  48. package/build/lib/express/websocket.d.ts +14 -11
  49. package/build/lib/express/websocket.d.ts.map +1 -1
  50. package/build/lib/express/websocket.js +2 -2
  51. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  52. package/build/lib/helpers/capabilities.js +1 -1
  53. package/build/lib/index.d.ts +2 -1
  54. package/build/lib/index.js +7 -1
  55. package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -1
  56. package/build/lib/jsonwp-proxy/protocol-converter.js +2 -2
  57. package/build/lib/jsonwp-proxy/proxy.d.ts +30 -5
  58. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  59. package/build/lib/jsonwp-proxy/proxy.js +20 -4
  60. package/build/lib/jsonwp-status/status.d.ts.map +1 -1
  61. package/build/lib/jsonwp-status/status.js +2 -2
  62. package/build/lib/protocol/errors.d.ts +17 -8
  63. package/build/lib/protocol/errors.d.ts.map +1 -1
  64. package/build/lib/protocol/errors.js +9 -5
  65. package/build/lib/protocol/helpers.js +1 -1
  66. package/build/lib/protocol/index.js +1 -1
  67. package/build/lib/protocol/protocol.d.ts.map +1 -1
  68. package/build/lib/protocol/protocol.js +1 -1
  69. package/build/lib/protocol/routes.d.ts +17 -3
  70. package/build/lib/protocol/routes.d.ts.map +1 -1
  71. package/build/lib/protocol/routes.js +1 -1
  72. package/build/lib/protocol/validators.js +1 -1
  73. package/build/test/basedriver/driver-e2e-tests.js +1 -1
  74. package/build/test/basedriver/driver-tests.js +1 -1
  75. package/build/test/basedriver/index.js +1 -1
  76. package/build/test/e2e/basedriver/driver.e2e.spec.js +1 -1
  77. package/build/test/e2e/basedriver/helpers.e2e.spec.js +1 -1
  78. package/build/test/e2e/basedriver/websockets.e2e.spec.js +1 -1
  79. package/build/test/e2e/express/server.e2e.spec.js +1 -1
  80. package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +1 -1
  81. package/build/test/e2e/protocol/fake-driver.js +1 -1
  82. package/build/test/e2e/protocol/helpers.js +1 -1
  83. package/build/test/e2e/protocol/protocol.e2e.spec.js +13 -13
  84. package/build/test/helpers.js +1 -1
  85. package/build/test/unit/basedriver/capabilities.spec.js +12 -12
  86. package/build/test/unit/basedriver/capability.spec.js +15 -15
  87. package/build/test/unit/basedriver/commands/event.spec.js +1 -1
  88. package/build/test/unit/basedriver/commands/log.spec.js +1 -1
  89. package/build/test/unit/basedriver/device-settings.spec.js +1 -1
  90. package/build/test/unit/basedriver/driver.spec.js +1 -1
  91. package/build/test/unit/basedriver/helpers.spec.js +33 -33
  92. package/build/test/unit/basedriver/timeout.spec.js +1 -1
  93. package/build/test/unit/express/server.spec.js +1 -1
  94. package/build/test/unit/express/static.spec.js +2 -2
  95. package/build/test/unit/jsonwp-proxy/mock-request.js +1 -1
  96. package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +1 -1
  97. package/build/test/unit/jsonwp-proxy/proxy.spec.js +2 -2
  98. package/build/test/unit/jsonwp-proxy/url.spec.js +1 -1
  99. package/build/test/unit/jsonwp-status/status.spec.js +1 -1
  100. package/build/test/unit/protocol/errors.spec.js +1 -1
  101. package/build/test/unit/protocol/routes.spec.js +1 -1
  102. package/build/test/unit/protocol/validator.spec.js +1 -1
  103. package/build/tsconfig.tsbuildinfo +1 -1
  104. package/lib/basedriver/capabilities.js +95 -47
  105. package/lib/basedriver/commands/event.js +4 -4
  106. package/lib/basedriver/commands/find.js +12 -26
  107. package/lib/basedriver/commands/index.js +7 -7
  108. package/lib/basedriver/commands/log.js +5 -7
  109. package/lib/basedriver/commands/session.js +3 -3
  110. package/lib/basedriver/commands/settings.js +3 -5
  111. package/lib/basedriver/commands/timeout.js +18 -23
  112. package/lib/basedriver/core.js +150 -229
  113. package/lib/basedriver/desired-caps.js +30 -29
  114. package/lib/basedriver/device-settings.js +21 -20
  115. package/lib/basedriver/driver.js +131 -96
  116. package/lib/basedriver/helpers.js +124 -81
  117. package/lib/basedriver/logger.js +1 -1
  118. package/lib/constants.js +2 -6
  119. package/lib/express/crash.js +4 -6
  120. package/lib/express/express-logging.js +26 -24
  121. package/lib/express/idempotency.js +16 -16
  122. package/lib/express/logger.js +1 -1
  123. package/lib/express/middleware.js +49 -33
  124. package/lib/express/server.js +68 -44
  125. package/lib/express/static.js +11 -12
  126. package/lib/express/websocket.js +26 -16
  127. package/lib/helpers/capabilities.js +11 -16
  128. package/lib/index.js +50 -33
  129. package/lib/jsonwp-proxy/protocol-converter.js +85 -69
  130. package/lib/jsonwp-proxy/proxy.js +116 -53
  131. package/lib/jsonwp-status/status.js +36 -29
  132. package/lib/protocol/errors.js +469 -292
  133. package/lib/protocol/helpers.js +5 -8
  134. package/lib/protocol/index.js +22 -15
  135. package/lib/protocol/protocol.js +103 -55
  136. package/lib/protocol/routes.js +430 -273
  137. package/lib/protocol/validators.js +5 -5
  138. package/package.json +9 -11
  139. package/test/basedriver/driver-e2e-tests.js +92 -66
  140. package/test/basedriver/driver-tests.js +90 -33
  141. package/test/basedriver/index.js +1 -1
@@ -206,16 +206,11 @@ async function startServer({
206
206
  hostname,
207
207
  keepAliveTimeout
208
208
  }) {
209
- const serverArgs = [port];
210
-
211
- if (hostname) {
212
- serverArgs.push(hostname);
213
- }
214
-
215
- const startPromise = _bluebird.default.promisify(httpServer.listen, {
209
+ const start = _bluebird.default.promisify(httpServer.listen, {
216
210
  context: httpServer
217
- })(...serverArgs);
211
+ });
218
212
 
213
+ const startPromise = start(port, hostname);
219
214
  httpServer.keepAliveTimeout = keepAliveTimeout;
220
215
  httpServer.headersTimeout = keepAliveTimeout + 5 * 1000;
221
216
  await startPromise;
@@ -234,4 +229,4 @@ function normalizeBasePath(basePath) {
234
229
 
235
230
  return basePath;
236
231
  }
237
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3NlcnZlci5qcyJdLCJuYW1lcyI6WyJLRUVQX0FMSVZFX1RJTUVPVVRfTVMiLCJzZXJ2ZXIiLCJvcHRzIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwicG9ydCIsImhvc3RuYW1lIiwiYWxsb3dDb3JzIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImV4dHJhTWV0aG9kTWFwIiwic2VydmVyVXBkYXRlcnMiLCJrZWVwQWxpdmVUaW1lb3V0IiwiYXBwIiwiaHR0cFNlcnZlciIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsImNvbmZpZ3VyZUh0dHAiLCJjb25maWd1cmVTZXJ2ZXIiLCJhZGRSb3V0ZXMiLCJ1cGRhdGVyIiwiYWxsIiwiY2F0Y2g0MDRIYW5kbGVyIiwic3RhcnRTZXJ2ZXIiLCJlcnIiLCJub3JtYWxpemVCYXNlUGF0aCIsInVzZSIsImVuZExvZ0Zvcm1hdHRlciIsInBhdGgiLCJTVEFUSUNfRElSIiwiZXhwcmVzcyIsInN0YXRpYyIsInByb2R1Y2VFcnJvciIsInByb2R1Y2VDcmFzaCIsImFsbG93Q3Jvc3NEb21haW4iLCJoYW5kbGVJZGVtcG90ZW5jeSIsImRlZmF1bHRUb0pTT05Db250ZW50VHlwZSIsImJvZHlQYXJzZXIiLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJjYXRjaEFsbEhhbmRsZXIiLCJqc29uIiwibGltaXQiLCJzdGFydExvZ0Zvcm1hdHRlciIsIndlbGNvbWUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwic2VydmVyU3RhdGUiLCJub3RpZmllciIsIkV2ZW50RW1pdHRlciIsImNsb3NlZCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJyZW1vdmVXZWJTb2NrZXRIYW5kbGVyIiwicmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMiLCJnZXRXZWJTb2NrZXRIYW5kbGVycyIsImNsb3NlIiwiYmluZCIsImVtaXQiLCJsb2ciLCJpbmZvIiwib24iLCJjb2RlIiwiZXJyb3IiLCJzb2NrZXQiLCJzZXRUaW1lb3V0IiwiZGVzdHJveSIsIl9vcGVuUmVxQ291bnQiLCJvbmNlIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXEiLCJyZXMiLCJjb25uZWN0aW9uIiwic2VydmVyQXJncyIsInB1c2giLCJzdGFydFByb21pc2UiLCJwcm9taXNpZnkiLCJsaXN0ZW4iLCJjb250ZXh0IiwiaGVhZGVyc1RpbWVvdXQiLCJfIiwiaXNTdHJpbmciLCJFcnJvciIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxxQkFBcUIsR0FBRyxLQUFLLEVBQUwsR0FBVSxJQUF4Qzs7QUFHQSxlQUFlQyxNQUFmLENBQXVCQyxJQUFJLEdBQUcsRUFBOUIsRUFBa0M7QUFDaEMsUUFBTTtBQUNKQyxJQUFBQSx3QkFESTtBQUVKQyxJQUFBQSxJQUZJO0FBR0pDLElBQUFBLFFBQVEsR0FBRyxJQUhQO0FBSUpDLElBQUFBLFNBQVMsR0FBRyxJQUpSO0FBS0pDLElBQUFBLFFBQVEsR0FBR0MsNEJBTFA7QUFNSkMsSUFBQUEsY0FBYyxHQUFHLEVBTmI7QUFPSkMsSUFBQUEsY0FBYyxHQUFHLEVBUGI7QUFRSkMsSUFBQUEsZ0JBQWdCLEdBQUdYO0FBUmYsTUFTRkUsSUFUSjtBQVlBLFFBQU1VLEdBQUcsR0FBRyx1QkFBWjs7QUFDQSxRQUFNQyxVQUFVLEdBQUdDLGNBQUtDLFlBQUwsQ0FBa0JILEdBQWxCLENBQW5COztBQUNBLFNBQU8sTUFBTSxJQUFJSSxpQkFBSixDQUFNLE9BQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEtBQTJCO0FBTTVDLFFBQUk7QUFDRkMsTUFBQUEsYUFBYSxDQUFDO0FBQUNOLFFBQUFBLFVBQUQ7QUFBYUssUUFB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QVcsdUJBQXNCN0UsUUFBUyxFQUExQyxDQUFOO0FBQ0Q7O0FBSURBLEVBQUFBLFFBQVEsR0FBR0EsUUFBUSxDQUFDOEUsT0FBVCxDQUFpQixLQUFqQixFQUF3QixFQUF4QixDQUFYOztBQUlBLE1BQUk5RSxRQUFRLEtBQUssRUFBYixJQUFtQkEsUUFBUSxDQUFDLENBQUQsQ0FBUixLQUFnQixHQUF2QyxFQUE0QztBQUMxQ0EsSUFBQUEsUUFBUSxHQUFJLElBQUdBLFFBQVMsRUFBeEI7QUFDRDs7QUFFRCxTQUFPQSxRQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGZhdmljb24gZnJvbSAnc2VydmUtZmF2aWNvbic7XG5pbXBvcnQgYm9keVBhcnNlciBmcm9tICdib2R5LXBhcnNlcic7XG5pbXBvcnQgbWV0aG9kT3ZlcnJpZGUgZnJvbSAnbWV0aG9kLW92ZXJyaWRlJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgc3RhcnRMb2dGb3JtYXR0ZXIsIGVuZExvZ0Zvcm1hdHRlciB9IGZyb20gJy4vZXhwcmVzcy1sb2dnaW5nJztcbmltcG9ydCB7XG4gIGFsbG93Q3Jvc3NEb21haW4sIGZpeFB5dGhvbkNvbnRlbnRUeXBlLCBkZWZhdWx0VG9KU09OQ29udGVudFR5cGUsXG4gIGNhdGNoQWxsSGFuZGxlciwgYWxsb3dDcm9zc0RvbWFpbkFzeW5jRXhlY3V0ZSwgaGFuZGxlSWRlbXBvdGVuY3ksXG4gIGNhdGNoNDA0SGFuZGxlcixcbn0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB7IGd1aW5lYVBpZywgZ3VpbmVhUGlnU2Nyb2xsYWJsZSwgZ3VpbmVhUGlnQXBwQmFubmVyLCB3ZWxjb21lLCBTVEFUSUNfRElSIH0gZnJvbSAnLi9zdGF0aWMnO1xuaW1wb3J0IHsgcHJvZHVjZUVycm9yLCBwcm9kdWNlQ3Jhc2ggfSBmcm9tICcuL2NyYXNoJztcbmltcG9ydCB7XG4gIGFkZFdlYlNvY2tldEhhbmRsZXIsIHJlbW92ZVdlYlNvY2tldEhhbmRsZXIsIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzLFxuICBnZXRXZWJTb2NrZXRIYW5kbGVyc1xufSBmcm9tICcuL3dlYnNvY2tldCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyBERUZBVUxUX0JBU0VfUEFUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuXG5cbmNvbnN0IEtFRVBfQUxJVkVfVElNRU9VVF9NUyA9IDEwICogNjAgKiAxMDAwOyAvLyAxMCBtaW51dGVzXG5cblxuYXN5bmMgZnVuY3Rpb24gc2VydmVyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbixcbiAgICBwb3J0LFxuICAgIGhvc3RuYW1lID0gbnVsbCxcbiAgICBhbGxvd0NvcnMgPSB0cnVlLFxuICAgIGJhc2VQYXRoID0gREVGQVVMVF9CQVNFX1BBVEgsXG4gICAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbiAgICBzZXJ2ZXJVcGRhdGVycyA9IFtdLFxuICAgIGtlZXBBbGl2ZVRpbWVvdXQgPSBLRUVQX0FMSVZFX1RJTUVPVVRfTVMsXG4gIH0gPSBvcHRzO1xuXG4gIC8vIGNyZWF0ZSB0aGUgYWN0dWFsIGh0dHAgc2VydmVyXG4gIGNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcbiAgY29uc3QgaHR0cFNlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKGFwcCk7XG4gIHJldHVybiBhd2FpdCBuZXcgQihhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gd2UgcHV0IGFuIGFzeW5jIGZ1bmN0aW9uIGFzIHRoZSBwcm9taXNlIGNvbnN0cnVjdG9yIGJlY2F1c2Ugd2Ugd2FudCBzb21lIHRoaW5ncyB0byBoYXBwZW4gaW5cbiAgICAvLyBzZXJpYWwgKGFwcGxpY2F0aW9uIG9mIHBsdWdpbiB1cGRhdGVzLCBmb3IgZXhhbXBsZSkuIEJ1dCB3ZSBzdGlsbCBuZWVkIHRvIHVzZSBhIHByb21pc2UgaGVyZVxuICAgIC8vIGJlY2F1c2Ugc29tZSBlbGVtZW50cyBvZiBzZXJ2ZXIgc3RhcnQgZmFpbHVyZSBvbmx5IGhhcHBlbiBpbiBodHRwU2VydmVyIGxpc3RlbmVycy4gU28gdGhlXG4gICAgLy8gd2F5IHdlIHJlc29sdmUgaXQgaXMgdG8gdXNlIGFuIGFzeW5jIGZ1bmN0aW9uIGhlcmUgYnV0IHRvIHdyYXAgYWxsIHRoZSBpbm5lciBsb2dpYyBpblxuICAgIC8vIHRyeS9jYXRjaCBzbyBhbnkgZXJyb3JzIGNhbiBiZSBwYXNzZWQgdG8gcmVqZWN0LlxuICAgIHRyeSB7XG4gICAgICBjb25maWd1cmVIdHRwKHtodHRwU2VydmVyLCByZWplY3QsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIGNvbmZpZ3VyZVNlcnZlcih7YXBwLCBhZGRSb3V0ZXM6IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiwgYWxsb3dDb3JzLCBiYXNlUGF0aCwgZXh0cmFNZXRob2RNYXB9KTtcbiAgICAgIC8vIGFsbG93IGV4dGVuc2lvbnMgdG8gdXBkYXRlIHRoZSBhcHAgYW5kIGh0dHAgc2VydmVyIG9iamVjdHNcbiAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiBzZXJ2ZXJVcGRhdGVycykge1xuICAgICAgICBhd2FpdCB1cGRhdGVyKGFwcCwgaHR0cFNlcnZlcik7XG4gICAgICB9XG5cbiAgICAgIC8vIG9uY2UgYWxsIGNvbmZpZ3VyYXRpb25zIGFuZCB1cGRhdGVycyBoYXZlIGJlZW4gYXBwbGllZCwgbWFrZSBzdXJlIHRvIHNldCB1cCBhIGNhdGNoYWxsXG4gICAgICAvLyBoYW5kbGVyIHNvIHRoYXQgYW55dGhpbmcgdW5rbm93biA0MDRzLiBCdXQgZG8gdGhpcyBhZnRlciBldmVyeXRoaW5nIGVsc2Ugc2luY2Ugd2UgZG9uJ3RcbiAgICAgIC8vIHdhbnQgdG8gYmxvY2sgZXh0ZW5zaW9ucycgYWJpbGl0eSB0byBhZGQgcm91dGVzIGlmIHRoZXkgd2FudC5cbiAgICAgIGFwcC5hbGwoJyonLCBjYXRjaDQwNEhhbmRsZXIpO1xuXG4gICAgICBhd2FpdCBzdGFydFNlcnZlcih7aHR0cFNlcnZlciwgaG9zdG5hbWUsIHBvcnQsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIHJlc29sdmUoaHR0cFNlcnZlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG59XG5cbmZ1bmN0aW9uIGNvbmZpZ3VyZVNlcnZlciAoe1xuICBhcHAsXG4gIGFkZFJvdXRlcyxcbiAgYWxsb3dDb3JzID0gdHJ1ZSxcbiAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCxcbiAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbn0pIHtcbiAgYmFzZVBhdGggPSBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aCk7XG5cbiAgYXBwLnVzZShlbmRMb2dGb3JtYXR0ZXIpO1xuXG4gIC8vIHNldCB1cCBzdGF0aWMgYXNzZXRzXG4gIGFwcC51c2UoZmF2aWNvbihwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ2Zhdmljb24uaWNvJykpKTtcbiAgYXBwLnVzZShleHByZXNzLnN0YXRpYyhTVEFUSUNfRElSKSk7XG5cbiAgLy8gY3Jhc2ggcm91dGVzLCBmb3IgdGVzdGluZ1xuICBhcHAudXNlKGAke2Jhc2VQYXRofS9wcm9kdWNlX2Vycm9yYCwgcHJvZHVjZUVycm9yKTtcbiAgYXBwLnVzZShgJHtiYXNlUGF0aH0vY3Jhc2hgLCBwcm9kdWNlQ3Jhc2gpO1xuXG4gIC8vIGFkZCBtaWRkbGV3YXJlc1xuICBpZiAoYWxsb3dDb3JzKSB7XG4gICAgYXBwLnVzZShhbGxvd0Nyb3NzRG9tYWluKTtcbiAgfSBlbHNlIHtcbiAgICBhcHAudXNlKGFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUoYmFzZVBhdGgpKTtcbiAgfVxuICBhcHAudXNlKGhhbmRsZUlkZW1wb3RlbmN5KTtcbiAgYXBwLnVzZShmaXhQeXRob25Db250ZW50VHlwZShiYXNlUGF0aCkpO1xuICBhcHAudXNlKGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSk7XG4gIGFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHtleHRlbmRlZDogdHJ1ZX0pKTtcbiAgYXBwLnVzZShtZXRob2RPdmVycmlkZSgpKTtcbiAgYXBwLnVzZShjYXRjaEFsbEhhbmRsZXIpO1xuXG4gIC8vIG1ha2Ugc3VyZSBhcHBpdW0gbmV2ZXIgZmFpbHMgYmVjYXVzZSBvZiBhIGZpbGUgc2l6ZSB1cGxvYWQgbGltaXRcbiAgYXBwLnVzZShib2R5UGFyc2VyLmpzb24oe2xpbWl0OiAnMWdiJ30pKTtcblxuICAvLyBzZXQgdXAgc3RhcnQgbG9nZ2luZyAod2hpY2ggZGVwZW5kcyBvbiBib2R5UGFyc2VyIGRvaW5nIGl0cyB0aGluZylcbiAgYXBwLnVzZShzdGFydExvZ0Zvcm1hdHRlcik7XG5cbiAgYWRkUm91dGVzKGFwcCwge2Jhc2VQYXRoLCBleHRyYU1ldGhvZE1hcH0pO1xuXG4gIC8vIGR5bmFtaWMgcm91dGVzIGZvciB0ZXN0aW5nLCBldGMuXG4gIGFwcC5hbGwoJy93ZWxjb21lJywgd2VsY29tZSk7XG4gIGFwcC5hbGwoJy90ZXN0L2d1aW5lYS1waWcnLCBndWluZWFQaWcpO1xuICBhcHAuYWxsKCcvdGVzdC9ndWluZWEtcGlnLXNjcm9sbGFibGUnLCBndWluZWFQaWdTY3JvbGxhYmxlKTtcbiAgYXBwLmFsbCgnL3Rlc3QvZ3VpbmVhLXBpZy1hcHAtYmFubmVyJywgZ3VpbmVhUGlnQXBwQmFubmVyKTtcbn1cblxuZnVuY3Rpb24gY29uZmlndXJlSHR0cCAoe2h0dHBTZXJ2ZXIsIHJlamVjdCwga2VlcEFsaXZlVGltZW91dH0pIHtcbiAgY29uc3Qgc2VydmVyU3RhdGUgPSB7XG4gICAgbm90aWZpZXI6IG5ldyBFdmVudEVtaXR0ZXIoKSxcbiAgICBjbG9zZWQ6IGZhbHNlLFxuICB9O1xuICBodHRwU2VydmVyLmFkZFdlYlNvY2tldEhhbmRsZXIgPSBhZGRXZWJTb2NrZXRIYW5kbGVyO1xuICBodHRwU2VydmVyLnJlbW92ZVdlYlNvY2tldEhhbmRsZXIgPSByZW1vdmVXZWJTb2NrZXRIYW5kbGVyO1xuICBodHRwU2VydmVyLnJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzID0gcmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnM7XG4gIGh0dHBTZXJ2ZXIuZ2V0V2ViU29ja2V0SGFuZGxlcnMgPSBnZXRXZWJTb2NrZXRIYW5kbGVycztcblxuICAvLyBodHRwLlNlcnZlci5jbG9zZSgpIG9ubHkgc3RvcHMgbmV3IGNvbm5lY3Rpb25zLCBidXQgd2UgbmVlZCB0byB3YWl0IHVudGlsXG4gIC8vIGFsbCBjb25uZWN0aW9ucyBhcmUgY2xvc2VkIGFuZCB0aGUgYGNsb3NlYCBldmVudCBpcyBlbWl0dGVkXG4gIGNvbnN0IGNsb3NlID0gaHR0cFNlcnZlci5jbG9zZS5iaW5kKGh0dHBTZXJ2ZXIpO1xuICBodHRwU2VydmVyLmNsb3NlID0gYXN5bmMgKCkgPT4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS12MC54LWFyY2hpdmUvaXNzdWVzLzkwNjYjaXNzdWVjb21tZW50LTEyNDIxMDU3NlxuICAgIHNlcnZlclN0YXRlLmNsb3NlZCA9IHRydWU7XG4gICAgc2VydmVyU3RhdGUubm90aWZpZXIuZW1pdCgnc2h1dGRvd24nKTtcbiAgICBsb2cuaW5mbygnV2FpdGluZyB1bnRpbCB0aGUgc2VydmVyIGlzIGNsb3NlZCcpO1xuICAgIGh0dHBTZXJ2ZXIub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgbG9nLmluZm8oJ1JlY2VpdmVkIHNlcnZlciBjbG9zZSBldmVudCcpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIGNsb3NlKChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG4gICAgfSk7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgIGlmIChlcnIuY29kZSA9PT0gJ0VBRERSTk9UQVZBSUwnKSB7XG4gICAgICBsb2cuZXJyb3IoJ0NvdWxkIG5vdCBzdGFydCBSRVNUIGh0dHAgaW50ZXJmYWNlIGxpc3RlbmVyLiAnICtcbiAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGFkZHJlc3MgaXMgbm90IGF2YWlsYWJsZS4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmVycm9yKCdDb3VsZCBub3Qgc3RhcnQgUkVTVCBodHRwIGludGVyZmFjZSBsaXN0ZW5lci4gVGhlIHJlcXVlc3RlZCAnICtcbiAgICAgICAgICAgICAgICAncG9ydCBtYXkgYWxyZWFkeSBiZSBpbiB1c2UuIFBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gJyArXG4gICAgICAgICAgICAgICAgJ290aGVyIGluc3RhbmNlIG9mIHRoaXMgc2VydmVyIHJ1bm5pbmcgYWxyZWFkeS4nKTtcbiAgICB9XG4gICAgcmVqZWN0KGVycik7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ2Nvbm5lY3Rpb24nLCAoc29ja2V0KSA9PiB7XG4gICAgc29ja2V0LnNldFRpbWVvdXQoa2VlcEFsaXZlVGltZW91dCk7XG4gICAgc29ja2V0Lm9uKCdlcnJvcicsIHJlamVjdCk7XG5cbiAgICBmdW5jdGlvbiBkZXN0cm95ICgpIHtcbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfVxuICAgIHNvY2tldC5fb3BlblJlcUNvdW50ID0gMDtcbiAgICBzb2NrZXQub25jZSgnY2xvc2UnLCAoKSA9PiBzZXJ2ZXJTdGF0ZS5ub3RpZmllci5yZW1vdmVMaXN0ZW5lcignc2h1dGRvd24nLCBkZXN0cm95KSk7XG4gICAgc2VydmVyU3RhdGUubm90aWZpZXIub25jZSgnc2h1dGRvd24nLCBkZXN0cm95KTtcbiAgfSk7XG5cbiAgaHR0cFNlcnZlci5vbigncmVxdWVzdCcsIGZ1bmN0aW9uIChyZXEsIHJlcykge1xuICAgIGNvbnN0IHNvY2tldCA9IHJlcS5jb25uZWN0aW9uIHx8IHJlcS5zb2NrZXQ7XG4gICAgc29ja2V0Ll9vcGVuUmVxQ291bnQrKztcbiAgICByZXMub24oJ2ZpbmlzaCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHNvY2tldC5fb3BlblJlcUNvdW50LS07XG4gICAgICBpZiAoc2VydmVyU3RhdGUuY2xvc2VkICYmIHNvY2tldC5fb3BlblJlcUNvdW50ID09PSAwKSB7XG4gICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFNlcnZlciAoe2h0dHBTZXJ2ZXIsIHBvcnQsIGhvc3RuYW1lLCBrZWVwQWxpdmVUaW1lb3V0fSkge1xuICBjb25zdCBzZXJ2ZXJBcmdzID0gW3BvcnRdO1xuICBpZiAoaG9zdG5hbWUpIHtcbiAgICAvLyBJZiB0aGUgaG9zdG5hbWUgaXMgb21pdHRlZCwgdGhlIHNlcnZlciB3aWxsIGFjY2VwdFxuICAgIC8vIGNvbm5lY3Rpb25zIG9uIGFueSBJUCBhZGRyZXNzXG4gICAgc2VydmVyQXJncy5wdXNoKGhvc3RuYW1lKTtcbiAgfVxuICBjb25zdCBzdGFydFByb21pc2UgPSBCLnByb21pc2lmeShodHRwU2VydmVyLmxpc3Rlbiwge2NvbnRleHQ6IGh0dHBTZXJ2ZXJ9KSguLi5zZXJ2ZXJBcmdzKTtcbiAgaHR0cFNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ID0ga2VlcEFsaXZlVGltZW91dDtcbiAgLy8gaGVhZGVycyB0aW1lb3V0IG11c3QgYmUgZ3JlYXRlciB0aGFuIGtlZXBBbGl2ZVRpbWVvdXRcbiAgaHR0cFNlcnZlci5oZWFkZXJzVGltZW91dCA9IGtlZXBBbGl2ZVRpbWVvdXQgKyA1ICogMTAwMDtcbiAgYXdhaXQgc3RhcnRQcm9taXNlO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVCYXNlUGF0aCAoYmFzZVBhdGgpIHtcbiAgaWYgKCFfLmlzU3RyaW5nKGJhc2VQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwYXRoIHByZWZpeCAke2Jhc2VQYXRofWApO1xuICB9XG5cbiAgLy8gZW5zdXJlIHRoZSBwYXRoIHByZWZpeCBkb2VzIG5vdCBlbmQgaW4gJy8nLCBzaW5jZSBvdXIgbWV0aG9kIG1hcFxuICAvLyBzdGFydHMgYWxsIHBhdGhzIHdpdGggJy8nXG4gIGJhc2VQYXRoID0gYmFzZVBhdGgucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBsaWtld2lzZSwgZW5zdXJlIHRoZSBwYXRoIHByZWZpeCBkb2VzIGFsd2F5cyBTVEFSVCB3aXRoIC8sIHVubGVzcyB0aGUgcGF0aFxuICAvLyBpcyBlbXB0eSBtZWFuaW5nIG5vIGJhc2UgcGF0aCBhdCBhbGxcbiAgaWYgKGJhc2VQYXRoICE9PSAnJyAmJiBiYXNlUGF0aFswXSAhPT0gJy8nKSB7XG4gICAgYmFzZVBhdGggPSBgLyR7YmFzZVBhdGh9YDtcbiAgfVxuXG4gIHJldHVybiBiYXNlUGF0aDtcbn1cblxuZXhwb3J0IHsgc2VydmVyLCBjb25maWd1cmVTZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRoIH07XG4iXX0=
232
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLRUVQX0FMSVZFX1RJTUVPVVRfTVMiLCJzZXJ2ZXIiLCJvcHRzIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwicG9ydCIsImhvc3RuYW1lIiwiYWxsb3dDb3JzIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsImV4dHJhTWV0aG9kTWFwIiwic2VydmVyVXBkYXRlcnMiLCJrZWVwQWxpdmVUaW1lb3V0IiwiYXBwIiwiZXhwcmVzcyIsImh0dHBTZXJ2ZXIiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJjb25maWd1cmVIdHRwIiwiY29uZmlndXJlU2VydmVyIiwiYWRkUm91dGVzIiwidXBkYXRlciIsImFsbCIsImNhdGNoNDA0SGFuZGxlciIsInN0YXJ0U2VydmVyIiwiZXJyIiwibm9ybWFsaXplQmFzZVBhdGgiLCJ1c2UiLCJlbmRMb2dGb3JtYXR0ZXIiLCJmYXZpY29uIiwicGF0aCIsIlNUQVRJQ19ESVIiLCJzdGF0aWMiLCJwcm9kdWNlRXJyb3IiLCJwcm9kdWNlQ3Jhc2giLCJhbGxvd0Nyb3NzRG9tYWluIiwiYWxsb3dDcm9zc0RvbWFpbkFzeW5jRXhlY3V0ZSIsImhhbmRsZUlkZW1wb3RlbmN5IiwiZml4UHl0aG9uQ29udGVudFR5cGUiLCJkZWZhdWx0VG9KU09OQ29udGVudFR5cGUiLCJib2R5UGFyc2VyIiwidXJsZW5jb2RlZCIsImV4dGVuZGVkIiwibWV0aG9kT3ZlcnJpZGUiLCJjYXRjaEFsbEhhbmRsZXIiLCJqc29uIiwibGltaXQiLCJzdGFydExvZ0Zvcm1hdHRlciIsIndlbGNvbWUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwic2VydmVyU3RhdGUiLCJub3RpZmllciIsIkV2ZW50RW1pdHRlciIsImNsb3NlZCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJyZW1vdmVXZWJTb2NrZXRIYW5kbGVyIiwicmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMiLCJnZXRXZWJTb2NrZXRIYW5kbGVycyIsImNsb3NlIiwiYmluZCIsImVtaXQiLCJsb2ciLCJpbmZvIiwib24iLCJjb2RlIiwiZXJyb3IiLCJzb2NrZXQiLCJzZXRUaW1lb3V0IiwiZGVzdHJveSIsIl9vcGVuUmVxQ291bnQiLCJvbmNlIiwicmVtb3ZlTGlzdGVuZXIiLCJyZXEiLCJyZXMiLCJjb25uZWN0aW9uIiwic3RhcnQiLCJwcm9taXNpZnkiLCJsaXN0ZW4iLCJjb250ZXh0Iiwic3RhcnRQcm9taXNlIiwiaGVhZGVyc1RpbWVvdXQiLCJfIiwiaXNTdHJpbmciLCJFcnJvciIsInJlcGxhY2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXhwcmVzcy9zZXJ2ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGV4cHJlc3MgZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBmYXZpY29uIGZyb20gJ3NlcnZlLWZhdmljb24nO1xuaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAnYm9keS1wYXJzZXInO1xuaW1wb3J0IG1ldGhvZE92ZXJyaWRlIGZyb20gJ21ldGhvZC1vdmVycmlkZSc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7c3RhcnRMb2dGb3JtYXR0ZXIsIGVuZExvZ0Zvcm1hdHRlcn0gZnJvbSAnLi9leHByZXNzLWxvZ2dpbmcnO1xuaW1wb3J0IHtcbiAgYWxsb3dDcm9zc0RvbWFpbixcbiAgZml4UHl0aG9uQ29udGVudFR5cGUsXG4gIGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSxcbiAgY2F0Y2hBbGxIYW5kbGVyLFxuICBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlLFxuICBoYW5kbGVJZGVtcG90ZW5jeSxcbiAgY2F0Y2g0MDRIYW5kbGVyLFxufSBmcm9tICcuL21pZGRsZXdhcmUnO1xuaW1wb3J0IHtndWluZWFQaWcsIGd1aW5lYVBpZ1Njcm9sbGFibGUsIGd1aW5lYVBpZ0FwcEJhbm5lciwgd2VsY29tZSwgU1RBVElDX0RJUn0gZnJvbSAnLi9zdGF0aWMnO1xuaW1wb3J0IHtwcm9kdWNlRXJyb3IsIHByb2R1Y2VDcmFzaH0gZnJvbSAnLi9jcmFzaCc7XG5pbXBvcnQge1xuICBhZGRXZWJTb2NrZXRIYW5kbGVyLFxuICByZW1vdmVXZWJTb2NrZXRIYW5kbGVyLFxuICByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyxcbiAgZ2V0V2ViU29ja2V0SGFuZGxlcnMsXG59IGZyb20gJy4vd2Vic29ja2V0JztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7REVGQVVMVF9CQVNFX1BBVEh9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnZXZlbnRzJztcblxuY29uc3QgS0VFUF9BTElWRV9USU1FT1VUX01TID0gMTAgKiA2MCAqIDEwMDA7IC8vIDEwIG1pbnV0ZXNcblxuYXN5bmMgZnVuY3Rpb24gc2VydmVyKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLFxuICAgIHBvcnQsXG4gICAgaG9zdG5hbWUgPSBudWxsLFxuICAgIGFsbG93Q29ycyA9IHRydWUsXG4gICAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCxcbiAgICBleHRyYU1ldGhvZE1hcCA9IHt9LFxuICAgIHNlcnZlclVwZGF0ZXJzID0gW10sXG4gICAga2VlcEFsaXZlVGltZW91dCA9IEtFRVBfQUxJVkVfVElNRU9VVF9NUyxcbiAgfSA9IG9wdHM7XG5cbiAgLy8gY3JlYXRlIHRoZSBhY3R1YWwgaHR0cCBzZXJ2ZXJcbiAgY29uc3QgYXBwID0gZXhwcmVzcygpO1xuICBjb25zdCBodHRwU2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIoYXBwKTtcbiAgcmV0dXJuIGF3YWl0IG5ldyBCKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyB3ZSBwdXQgYW4gYXN5bmMgZnVuY3Rpb24gYXMgdGhlIHByb21pc2UgY29uc3RydWN0b3IgYmVjYXVzZSB3ZSB3YW50IHNvbWUgdGhpbmdzIHRvIGhhcHBlbiBpblxuICAgIC8vIHNlcmlhbCAoYXBwbGljYXRpb24gb2YgcGx1Z2luIHVwZGF0ZXMsIGZvciBleGFtcGxlKS4gQnV0IHdlIHN0aWxsIG5lZWQgdG8gdXNlIGEgcHJvbWlzZSBoZXJlXG4gICAgLy8gYmVjYXVzZSBzb21lIGVsZW1lbnRzIG9mIHNlcnZlciBzdGFydCBmYWlsdXJlIG9ubHkgaGFwcGVuIGluIGh0dHBTZXJ2ZXIgbGlzdGVuZXJzLiBTbyB0aGVcbiAgICAvLyB3YXkgd2UgcmVzb2x2ZSBpdCBpcyB0byB1c2UgYW4gYXN5bmMgZnVuY3Rpb24gaGVyZSBidXQgdG8gd3JhcCBhbGwgdGhlIGlubmVyIGxvZ2ljIGluXG4gICAgLy8gdHJ5L2NhdGNoIHNvIGFueSBlcnJvcnMgY2FuIGJlIHBhc3NlZCB0byByZWplY3QuXG4gICAgdHJ5IHtcbiAgICAgIGNvbmZpZ3VyZUh0dHAoe2h0dHBTZXJ2ZXIsIHJlamVjdCwga2VlcEFsaXZlVGltZW91dH0pO1xuICAgICAgY29uZmlndXJlU2VydmVyKHtcbiAgICAgICAgYXBwLFxuICAgICAgICBhZGRSb3V0ZXM6IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbixcbiAgICAgICAgYWxsb3dDb3JzLFxuICAgICAgICBiYXNlUGF0aCxcbiAgICAgICAgZXh0cmFNZXRob2RNYXAsXG4gICAgICB9KTtcbiAgICAgIC8vIGFsbG93IGV4dGVuc2lvbnMgdG8gdXBkYXRlIHRoZSBhcHAgYW5kIGh0dHAgc2VydmVyIG9iamVjdHNcbiAgICAgIGZvciAoY29uc3QgdXBkYXRlciBvZiBzZXJ2ZXJVcGRhdGVycykge1xuICAgICAgICBhd2FpdCB1cGRhdGVyKGFwcCwgaHR0cFNlcnZlcik7XG4gICAgICB9XG5cbiAgICAgIC8vIG9uY2UgYWxsIGNvbmZpZ3VyYXRpb25zIGFuZCB1cGRhdGVycyBoYXZlIGJlZW4gYXBwbGllZCwgbWFrZSBzdXJlIHRvIHNldCB1cCBhIGNhdGNoYWxsXG4gICAgICAvLyBoYW5kbGVyIHNvIHRoYXQgYW55dGhpbmcgdW5rbm93biA0MDRzLiBCdXQgZG8gdGhpcyBhZnRlciBldmVyeXRoaW5nIGVsc2Ugc2luY2Ugd2UgZG9uJ3RcbiAgICAgIC8vIHdhbnQgdG8gYmxvY2sgZXh0ZW5zaW9ucycgYWJpbGl0eSB0byBhZGQgcm91dGVzIGlmIHRoZXkgd2FudC5cbiAgICAgIGFwcC5hbGwoJyonLCBjYXRjaDQwNEhhbmRsZXIpO1xuXG4gICAgICBhd2FpdCBzdGFydFNlcnZlcih7aHR0cFNlcnZlciwgaG9zdG5hbWUsIHBvcnQsIGtlZXBBbGl2ZVRpbWVvdXR9KTtcbiAgICAgIHJlc29sdmUoaHR0cFNlcnZlcik7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb25maWd1cmVTZXJ2ZXIoe1xuICBhcHAsXG4gIGFkZFJvdXRlcyxcbiAgYWxsb3dDb3JzID0gdHJ1ZSxcbiAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSCxcbiAgZXh0cmFNZXRob2RNYXAgPSB7fSxcbn0pIHtcbiAgYmFzZVBhdGggPSBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aCk7XG5cbiAgYXBwLnVzZShlbmRMb2dGb3JtYXR0ZXIpO1xuXG4gIC8vIHNldCB1cCBzdGF0aWMgYXNzZXRzXG4gIGFwcC51c2UoZmF2aWNvbihwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ2Zhdmljb24uaWNvJykpKTtcbiAgYXBwLnVzZShleHByZXNzLnN0YXRpYyhTVEFUSUNfRElSKSk7XG5cbiAgLy8gY3Jhc2ggcm91dGVzLCBmb3IgdGVzdGluZ1xuICBhcHAudXNlKGAke2Jhc2VQYXRofS9wcm9kdWNlX2Vycm9yYCwgcHJvZHVjZUVycm9yKTtcbiAgYXBwLnVzZShgJHtiYXNlUGF0aH0vY3Jhc2hgLCBwcm9kdWNlQ3Jhc2gpO1xuXG4gIC8vIGFkZCBtaWRkbGV3YXJlc1xuICBpZiAoYWxsb3dDb3JzKSB7XG4gICAgYXBwLnVzZShhbGxvd0Nyb3NzRG9tYWluKTtcbiAgfSBlbHNlIHtcbiAgICBhcHAudXNlKGFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUoYmFzZVBhdGgpKTtcbiAgfVxuICBhcHAudXNlKGhhbmRsZUlkZW1wb3RlbmN5KTtcbiAgYXBwLnVzZShmaXhQeXRob25Db250ZW50VHlwZShiYXNlUGF0aCkpO1xuICBhcHAudXNlKGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSk7XG4gIGFwcC51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHtleHRlbmRlZDogdHJ1ZX0pKTtcbiAgYXBwLnVzZShtZXRob2RPdmVycmlkZSgpKTtcbiAgYXBwLnVzZShjYXRjaEFsbEhhbmRsZXIpO1xuXG4gIC8vIG1ha2Ugc3VyZSBhcHBpdW0gbmV2ZXIgZmFpbHMgYmVjYXVzZSBvZiBhIGZpbGUgc2l6ZSB1cGxvYWQgbGltaXRcbiAgYXBwLnVzZShib2R5UGFyc2VyLmpzb24oe2xpbWl0OiAnMWdiJ30pKTtcblxuICAvLyBzZXQgdXAgc3RhcnQgbG9nZ2luZyAod2hpY2ggZGVwZW5kcyBvbiBib2R5UGFyc2VyIGRvaW5nIGl0cyB0aGluZylcbiAgYXBwLnVzZShzdGFydExvZ0Zvcm1hdHRlcik7XG5cbiAgYWRkUm91dGVzKGFwcCwge2Jhc2VQYXRoLCBleHRyYU1ldGhvZE1hcH0pO1xuXG4gIC8vIGR5bmFtaWMgcm91dGVzIGZvciB0ZXN0aW5nLCBldGMuXG4gIGFwcC5hbGwoJy93ZWxjb21lJywgd2VsY29tZSk7XG4gIGFwcC5hbGwoJy90ZXN0L2d1aW5lYS1waWcnLCBndWluZWFQaWcpO1xuICBhcHAuYWxsKCcvdGVzdC9ndWluZWEtcGlnLXNjcm9sbGFibGUnLCBndWluZWFQaWdTY3JvbGxhYmxlKTtcbiAgYXBwLmFsbCgnL3Rlc3QvZ3VpbmVhLXBpZy1hcHAtYmFubmVyJywgZ3VpbmVhUGlnQXBwQmFubmVyKTtcbn1cblxuZnVuY3Rpb24gY29uZmlndXJlSHR0cCh7aHR0cFNlcnZlciwgcmVqZWN0LCBrZWVwQWxpdmVUaW1lb3V0fSkge1xuICBjb25zdCBzZXJ2ZXJTdGF0ZSA9IHtcbiAgICBub3RpZmllcjogbmV3IEV2ZW50RW1pdHRlcigpLFxuICAgIGNsb3NlZDogZmFsc2UsXG4gIH07XG4gIGh0dHBTZXJ2ZXIuYWRkV2ViU29ja2V0SGFuZGxlciA9IGFkZFdlYlNvY2tldEhhbmRsZXI7XG4gIGh0dHBTZXJ2ZXIucmVtb3ZlV2ViU29ja2V0SGFuZGxlciA9IHJlbW92ZVdlYlNvY2tldEhhbmRsZXI7XG4gIGh0dHBTZXJ2ZXIucmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMgPSByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycztcbiAgaHR0cFNlcnZlci5nZXRXZWJTb2NrZXRIYW5kbGVycyA9IGdldFdlYlNvY2tldEhhbmRsZXJzO1xuXG4gIC8vIGh0dHAuU2VydmVyLmNsb3NlKCkgb25seSBzdG9wcyBuZXcgY29ubmVjdGlvbnMsIGJ1dCB3ZSBuZWVkIHRvIHdhaXQgdW50aWxcbiAgLy8gYWxsIGNvbm5lY3Rpb25zIGFyZSBjbG9zZWQgYW5kIHRoZSBgY2xvc2VgIGV2ZW50IGlzIGVtaXR0ZWRcbiAgY29uc3QgY2xvc2UgPSBodHRwU2VydmVyLmNsb3NlLmJpbmQoaHR0cFNlcnZlcik7XG4gIGh0dHBTZXJ2ZXIuY2xvc2UgPSBhc3luYyAoKSA9PlxuICAgIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS12MC54LWFyY2hpdmUvaXNzdWVzLzkwNjYjaXNzdWVjb21tZW50LTEyNDIxMDU3NlxuICAgICAgc2VydmVyU3RhdGUuY2xvc2VkID0gdHJ1ZTtcbiAgICAgIHNlcnZlclN0YXRlLm5vdGlmaWVyLmVtaXQoJ3NodXRkb3duJyk7XG4gICAgICBsb2cuaW5mbygnV2FpdGluZyB1bnRpbCB0aGUgc2VydmVyIGlzIGNsb3NlZCcpO1xuICAgICAgaHR0cFNlcnZlci5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgIGxvZy5pbmZvKCdSZWNlaXZlZCBzZXJ2ZXIgY2xvc2UgZXZlbnQnKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgICBjbG9zZSgoZXJyKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHJlamVjdChlcnIpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGN1cmx5XG4gICAgICB9KTtcbiAgICB9KTtcblxuICBodHRwU2VydmVyLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICBpZiAoZXJyLmNvZGUgPT09ICdFQUREUk5PVEFWQUlMJykge1xuICAgICAgbG9nLmVycm9yKFxuICAgICAgICAnQ291bGQgbm90IHN0YXJ0IFJFU1QgaHR0cCBpbnRlcmZhY2UgbGlzdGVuZXIuICcgKyAnUmVxdWVzdGVkIGFkZHJlc3MgaXMgbm90IGF2YWlsYWJsZS4nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgICdDb3VsZCBub3Qgc3RhcnQgUkVTVCBodHRwIGludGVyZmFjZSBsaXN0ZW5lci4gVGhlIHJlcXVlc3RlZCAnICtcbiAgICAgICAgICAncG9ydCBtYXkgYWxyZWFkeSBiZSBpbiB1c2UuIFBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gJyArXG4gICAgICAgICAgJ290aGVyIGluc3RhbmNlIG9mIHRoaXMgc2VydmVyIHJ1bm5pbmcgYWxyZWFkeS4nXG4gICAgICApO1xuICAgIH1cbiAgICByZWplY3QoZXJyKTtcbiAgfSk7XG5cbiAgaHR0cFNlcnZlci5vbignY29ubmVjdGlvbicsIChzb2NrZXQpID0+IHtcbiAgICBzb2NrZXQuc2V0VGltZW91dChrZWVwQWxpdmVUaW1lb3V0KTtcbiAgICBzb2NrZXQub24oJ2Vycm9yJywgcmVqZWN0KTtcblxuICAgIGZ1bmN0aW9uIGRlc3Ryb3koKSB7XG4gICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgIH1cbiAgICBzb2NrZXQuX29wZW5SZXFDb3VudCA9IDA7XG4gICAgc29ja2V0Lm9uY2UoJ2Nsb3NlJywgKCkgPT4gc2VydmVyU3RhdGUubm90aWZpZXIucmVtb3ZlTGlzdGVuZXIoJ3NodXRkb3duJywgZGVzdHJveSkpO1xuICAgIHNlcnZlclN0YXRlLm5vdGlmaWVyLm9uY2UoJ3NodXRkb3duJywgZGVzdHJveSk7XG4gIH0pO1xuXG4gIGh0dHBTZXJ2ZXIub24oJ3JlcXVlc3QnLCBmdW5jdGlvbiAocmVxLCByZXMpIHtcbiAgICBjb25zdCBzb2NrZXQgPSByZXEuY29ubmVjdGlvbiB8fCByZXEuc29ja2V0O1xuICAgIHNvY2tldC5fb3BlblJlcUNvdW50Kys7XG4gICAgcmVzLm9uKCdmaW5pc2gnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBzb2NrZXQuX29wZW5SZXFDb3VudC0tO1xuICAgICAgaWYgKHNlcnZlclN0YXRlLmNsb3NlZCAmJiBzb2NrZXQuX29wZW5SZXFDb3VudCA9PT0gMCkge1xuICAgICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtTdGFydFNlcnZlck9wdHN9IG9wdHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2ZXIoe2h0dHBTZXJ2ZXIsIHBvcnQsIGhvc3RuYW1lLCBrZWVwQWxpdmVUaW1lb3V0fSkge1xuICAvLyBJZiB0aGUgaG9zdG5hbWUgaXMgb21pdHRlZCwgdGhlIHNlcnZlciB3aWxsIGFjY2VwdFxuICAvLyBjb25uZWN0aW9ucyBvbiBhbnkgSVAgYWRkcmVzc1xuICAvKiogQHR5cGUgeyhwb3J0OiBudW1iZXIsIGhvc3RuYW1lPzogc3RyaW5nKSA9PiBCPGh0dHAuU2VydmVyPn0gKi9cbiAgY29uc3Qgc3RhcnQgPSBCLnByb21pc2lmeShodHRwU2VydmVyLmxpc3Rlbiwge2NvbnRleHQ6IGh0dHBTZXJ2ZXJ9KTtcbiAgY29uc3Qgc3RhcnRQcm9taXNlID0gc3RhcnQocG9ydCwgaG9zdG5hbWUpO1xuICBodHRwU2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgPSBrZWVwQWxpdmVUaW1lb3V0O1xuICAvLyBoZWFkZXJzIHRpbWVvdXQgbXVzdCBiZSBncmVhdGVyIHRoYW4ga2VlcEFsaXZlVGltZW91dFxuICBodHRwU2VydmVyLmhlYWRlcnNUaW1lb3V0ID0ga2VlcEFsaXZlVGltZW91dCArIDUgKiAxMDAwO1xuICBhd2FpdCBzdGFydFByb21pc2U7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUJhc2VQYXRoKGJhc2VQYXRoKSB7XG4gIGlmICghXy5pc1N0cmluZyhiYXNlUGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGF0aCBwcmVmaXggJHtiYXNlUGF0aH1gKTtcbiAgfVxuXG4gIC8vIGVuc3VyZSB0aGUgcGF0aCBwcmVmaXggZG9lcyBub3QgZW5kIGluICcvJywgc2luY2Ugb3VyIG1ldGhvZCBtYXBcbiAgLy8gc3RhcnRzIGFsbCBwYXRocyB3aXRoICcvJ1xuICBiYXNlUGF0aCA9IGJhc2VQYXRoLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cbiAgLy8gbGlrZXdpc2UsIGVuc3VyZSB0aGUgcGF0aCBwcmVmaXggZG9lcyBhbHdheXMgU1RBUlQgd2l0aCAvLCB1bmxlc3MgdGhlIHBhdGhcbiAgLy8gaXMgZW1wdHkgbWVhbmluZyBubyBiYXNlIHBhdGggYXQgYWxsXG4gIGlmIChiYXNlUGF0aCAhPT0gJycgJiYgYmFzZVBhdGhbMF0gIT09ICcvJykge1xuICAgIGJhc2VQYXRoID0gYC8ke2Jhc2VQYXRofWA7XG4gIH1cblxuICByZXR1cm4gYmFzZVBhdGg7XG59XG5cbmV4cG9ydCB7c2VydmVyLCBjb25maWd1cmVTZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRofTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmtjb2RlIHN0YXJ0U2VydmVyfS5cbiAqIEB0eXBlZGVmIFN0YXJ0U2VydmVyT3B0c1xuICogQHByb3BlcnR5IHtpbXBvcnQoJ2h0dHAnKS5TZXJ2ZXJ9IGh0dHBTZXJ2ZXIgLSBIVFRQIHNlcnZlciBpbnN0YW5jZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IHBvcnQgLSBQb3J0IHRvIHJ1biBvblxuICogQHByb3BlcnR5IHtudW1iZXJ9IGtlZXBBbGl2ZVRpbWVvdXQgLSBLZWVwLWFsaXZlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2hvc3RuYW1lXSAtIE9wdGlvbmFsIGhvc3RuYW1lXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQVNBOztBQUNBOztBQUNBOztBQU1BOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLHFCQUFxQixHQUFHLEtBQUssRUFBTCxHQUFVLElBQXhDOztBQUVBLGVBQWVDLE1BQWYsQ0FBc0JDLElBQUksR0FBRyxFQUE3QixFQUFpQztFQUMvQixNQUFNO0lBQ0pDLHdCQURJO0lBRUpDLElBRkk7SUFHSkMsUUFBUSxHQUFHLElBSFA7SUFJSkMsU0FBUyxHQUFHLElBSlI7SUFLSkMsUUFBUSxHQUFHQyw0QkFMUDtJQU1KQyxjQUFjLEdBQUcsRUFOYjtJQU9KQyxjQUFjLEdBQUcsRUFQYjtJQVFKQyxnQkFBZ0IsR0FBR1g7RUFSZixJQVNGRSxJQVRKO0VBWUEsTUFBTVUsR0FBRyxHQUFHLElBQUFDLGdCQUFBLEdBQVo7O0VBQ0EsTUFBTUMsVUFBVSxHQUFHQyxhQUFBLENBQUtDLFlBQUwsQ0FBa0JKLEdBQWxCLENBQW5COztFQUNBLE9BQU8sTUFBTSxJQUFJSyxpQkFBSixDQUFNLE9BQU9DLE9BQVAsRUFBZ0JDLE1BQWhCLEtBQTJCO0lBTTVDLElBQUk7TUFDRkMsYUFBYSxDQUFDO1FBQUNOLFVBQUQ7UUFBYUssTUFBYjtRQUFxQlI7TUFBckIsQ0FBRCxDQUFiO01BQ0FVLGVBQWUsQ0FBQztRQUNkVCxHQURjO1FBRWRVLFNBQVMsRUFBRW5CLHdCQUZHO1FBR2RHLFNBSGM7UUFJZEMsUUFKYztRQUtkRTtNQUxj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
@@ -1 +1 @@
1
- {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../lib/express/static.js"],"names":[],"mappings":"AA4CA,6DAEC;AAKD,uEAEC;AAKD,sEAEC;AAKD,2DAIC;AA9DD,8BAAqE"}
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../lib/express/static.js"],"names":[],"mappings":"AA2CA,6DAEC;AAKD,uEAEC;AAKD,sEAEC;AAKD,2DAIC;AA9DD,8BAAqE"}
@@ -81,7 +81,7 @@ async function guineaPigAppBanner(req, res) {
81
81
 
82
82
  async function welcome(req, res) {
83
83
  let params = {
84
- message: 'Let\'s browse!'
84
+ message: "Let's browse!"
85
85
  };
86
86
 
87
87
  _logger.default.debug(`Sending welcome response with params: ${JSON.stringify(params)}`);
@@ -93,4 +93,4 @@ async function getTemplate(templateName) {
93
93
  let content = await _support.fs.readFile(_path.default.resolve(STATIC_DIR, 'test', templateName));
94
94
  return _lodash.default.template(content.toString());
95
95
  }
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3N0YXRpYy5qcyJdLCJuYW1lcyI6WyJTVEFUSUNfRElSIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJfIiwiaXNOdWxsIiwibWF0Y2giLCJndWluZWFQaWdUZW1wbGF0ZSIsInJlcSIsInJlcyIsInBhZ2UiLCJkZWxheSIsInBhcnNlSW50IiwicGFyYW1zIiwicXVlcnkiLCJ0aHJvd0Vycm9yIiwic2VydmVyVGltZSIsIkRhdGUiLCJ1c2VyQWdlbnQiLCJoZWFkZXJzIiwiY29tbWVudCIsIm1ldGhvZCIsImJvZHkiLCJjb21tZW50cyIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsIkIiLCJzZXQiLCJjb29raWUiLCJkb21haW4iLCJzZW5kIiwiZ2V0VGVtcGxhdGUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwid2VsY29tZSIsIm1lc3NhZ2UiLCJ0ZW1wbGF0ZU5hbWUiLCJjb250ZW50IiwiZnMiLCJyZWFkRmlsZSIsInRlbXBsYXRlIiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLElBQUlBLFVBQVUsR0FBR0MsY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLElBQXBDLEVBQTBDLFFBQTFDLENBQWpCOzs7O0FBQ0EsSUFBSUMsZ0JBQUVDLE1BQUYsQ0FBU0osY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCRyxLQUF4QixDQUE4Qiw0QkFBOUIsQ0FBVCxDQUFKLEVBQTJFO0FBR3pFLHVCQUFBTixVQUFVLEdBQUdDLGNBQUtDLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixJQUF4QixFQUE4QixJQUE5QixFQUFvQyxRQUFwQyxDQUFiO0FBQ0Q7O0FBRUQsZUFBZUksaUJBQWYsQ0FBa0NDLEdBQWxDLEVBQXVDQyxH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QUNEOztBQUVELGVBQWVvQixXQUFmLENBQTRCTSxZQUE1QixFQUEwQztBQUN4QyxNQUFJQyxPQUFPLEdBQUcsTUFBTUMsWUFBR0MsUUFBSCxDQUFZekMsY0FBS0MsT0FBTCxDQUFhRixVQUFiLEVBQXlCLE1BQXpCLEVBQWlDdUMsWUFBakMsQ0FBWixDQUFwQjtBQUNBLFNBQU9uQyxnQkFBRXVDLFFBQUYsQ0FBV0gsT0FBTyxDQUFDSSxRQUFSLEVBQVgsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cblxubGV0IFNUQVRJQ19ESVIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAnc3RhdGljJyk7XG5pZiAoXy5pc051bGwocGF0aC5yZXNvbHZlKF9fZGlybmFtZSkubWF0Y2goL2J1aWxkWy9cXFxcXWxpYlsvXFxcXF1leHByZXNzJC8pKSkge1xuICAvLyBpbiBzb21lIGNvbnRleHRzIHdlIGFyZSBub3QgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeSxcbiAgLy8gc28gd2UgZG9uJ3Qgd2FudCB0byBnbyBiYWNrIHRoZSBleHRyYSBsZXZlbFxuICBTVEFUSUNfRElSID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3N0YXRpYycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBndWluZWFQaWdUZW1wbGF0ZSAocmVxLCByZXMsIHBhZ2UpIHtcbiAgY29uc3QgZGVsYXkgPSBwYXJzZUludChyZXEucGFyYW1zLmRlbGF5IHx8IHJlcS5xdWVyeS5kZWxheSB8fCAwLCAxMCk7XG4gIGNvbnN0IHRocm93RXJyb3IgPSByZXEucGFyYW1zLnRocm93RXJyb3IgfHwgcmVxLnF1ZXJ5LnRocm93RXJyb3IgfHwgJyc7XG4gIGxldCBwYXJhbXMgPSB7XG4gICAgdGhyb3dFcnJvcixcbiAgICBzZXJ2ZXJUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHVzZXJBZ2VudDogcmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSxcbiAgICBjb21tZW50OiAnTm9uZSdcbiAgfTtcbiAgaWYgKHJlcS5tZXRob2QgPT09ICdQT1NUJykge1xuICAgIHBhcmFtcy5jb21tZW50ID0gcmVxLmJvZHkuY29tbWVudHMgfHwgcGFyYW1zLmNvbW1lbnQ7XG4gIH1cbiAgbG9nLmRlYnVnKGBTZW5kaW5nIGd1aW5lYSBwaWcgcmVzcG9uc2Ugd2l0aCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX1gKTtcbiAgaWYgKGRlbGF5KSB7XG4gICAgbG9nLmRlYnVnKGBXYWl0aW5nICR7ZGVsYXl9bXMgYmVmb3JlIHJlc3BvbmRpbmdgKTtcbiAgICBhd2FpdCBCLmRlbGF5KGRlbGF5KTtcbiAgfVxuICByZXMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gIHJlcy5jb29raWUoJ2d1aW5lYWNvb2tpZTEnLCAnaSBhbSBhIGNvb2tpZSB2YWx1ZScsIHtwYXRoOiAnLyd9KTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMicsICdjb29racOpMicsIHtwYXRoOiAnLyd9KTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMycsICdjYW50IGFjY2VzcyB0aGlzJywge1xuICAgIGRvbWFpbjogJy5ibGFyZ2ltYXJnLmNvbScsXG4gICAgcGF0aDogJy8nXG4gIH0pO1xuICByZXMuc2VuZCgoYXdhaXQgZ2V0VGVtcGxhdGUocGFnZSkpKHBhcmFtcykpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZyAocmVxLCByZXMpIHtcbiAgcmV0dXJuIGF3YWl0IGd1aW5lYVBpZ1RlbXBsYXRlKHJlcSwgcmVzLCAnZ3VpbmVhLXBpZy5odG1sJyk7XG59XG5cbi8qXG4gKiBEeW5hbWljIHBhZ2UgbWFwcGVkIHRvIC90ZXN0L2d1aW5lYS1waWctc2Nyb2xsYWJsZVxuICovXG5hc3luYyBmdW5jdGlvbiBndWluZWFQaWdTY3JvbGxhYmxlIChyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLXNjcm9sbGFibGUuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnLWFwcC1iYW5uZXJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ3VpbmVhUGlnQXBwQmFubmVyIChyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLWFwcC1iYW5uZXIuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvd2VsY29tZVxuICovXG5hc3luYyBmdW5jdGlvbiB3ZWxjb21lIChyZXEsIHJlcykge1xuICBsZXQgcGFyYW1zID0ge21lc3NhZ2U6ICdMZXRcXCdzIGJyb3dzZSEnfTtcbiAgbG9nLmRlYnVnKGBTZW5kaW5nIHdlbGNvbWUgcmVzcG9uc2Ugd2l0aCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX1gKTtcbiAgcmVzLnNlbmQoKGF3YWl0IGdldFRlbXBsYXRlKCd3ZWxjb21lLmh0bWwnKSkocGFyYW1zKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRlbXBsYXRlICh0ZW1wbGF0ZU5hbWUpIHtcbiAgbGV0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLnJlc29sdmUoU1RBVElDX0RJUiwgJ3Rlc3QnLCB0ZW1wbGF0ZU5hbWUpKTtcbiAgcmV0dXJuIF8udGVtcGxhdGUoY29udGVudC50b1N0cmluZygpKTtcbn1cblxuZXhwb3J0IHsgZ3VpbmVhUGlnLCBndWluZWFQaWdTY3JvbGxhYmxlLCBndWluZWFQaWdBcHBCYW5uZXIsIHdlbGNvbWUsIFNUQVRJQ19ESVIgfTtcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVEFUSUNfRElSIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJfIiwiaXNOdWxsIiwibWF0Y2giLCJndWluZWFQaWdUZW1wbGF0ZSIsInJlcSIsInJlcyIsInBhZ2UiLCJkZWxheSIsInBhcnNlSW50IiwicGFyYW1zIiwicXVlcnkiLCJ0aHJvd0Vycm9yIiwic2VydmVyVGltZSIsIkRhdGUiLCJ1c2VyQWdlbnQiLCJoZWFkZXJzIiwiY29tbWVudCIsIm1ldGhvZCIsImJvZHkiLCJjb21tZW50cyIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsIkIiLCJzZXQiLCJjb29raWUiLCJkb21haW4iLCJzZW5kIiwiZ2V0VGVtcGxhdGUiLCJndWluZWFQaWciLCJndWluZWFQaWdTY3JvbGxhYmxlIiwiZ3VpbmVhUGlnQXBwQmFubmVyIiwid2VsY29tZSIsIm1lc3NhZ2UiLCJ0ZW1wbGF0ZU5hbWUiLCJjb250ZW50IiwiZnMiLCJyZWFkRmlsZSIsInRlbXBsYXRlIiwidG9TdHJpbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXhwcmVzcy9zdGF0aWMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2ZzfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG5sZXQgU1RBVElDX0RJUiA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICcuLicsICdzdGF0aWMnKTtcbmlmIChfLmlzTnVsbChwYXRoLnJlc29sdmUoX19kaXJuYW1lKS5tYXRjaCgvYnVpbGRbL1xcXFxdbGliWy9cXFxcXWV4cHJlc3MkLykpKSB7XG4gIC8vIGluIHNvbWUgY29udGV4dHMgd2UgYXJlIG5vdCBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5LFxuICAvLyBzbyB3ZSBkb24ndCB3YW50IHRvIGdvIGJhY2sgdGhlIGV4dHJhIGxldmVsXG4gIFNUQVRJQ19ESVIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnc3RhdGljJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZ1RlbXBsYXRlKHJlcSwgcmVzLCBwYWdlKSB7XG4gIGNvbnN0IGRlbGF5ID0gcGFyc2VJbnQocmVxLnBhcmFtcy5kZWxheSB8fCByZXEucXVlcnkuZGVsYXkgfHwgMCwgMTApO1xuICBjb25zdCB0aHJvd0Vycm9yID0gcmVxLnBhcmFtcy50aHJvd0Vycm9yIHx8IHJlcS5xdWVyeS50aHJvd0Vycm9yIHx8ICcnO1xuICBsZXQgcGFyYW1zID0ge1xuICAgIHRocm93RXJyb3IsXG4gICAgc2VydmVyVGltZTogbmV3IERhdGUoKSxcbiAgICB1c2VyQWdlbnQ6IHJlcS5oZWFkZXJzWyd1c2VyLWFnZW50J10sXG4gICAgY29tbWVudDogJ05vbmUnLFxuICB9O1xuICBpZiAocmVxLm1ldGhvZCA9PT0gJ1BPU1QnKSB7XG4gICAgcGFyYW1zLmNvbW1lbnQgPSByZXEuYm9keS5jb21tZW50cyB8fCBwYXJhbXMuY29tbWVudDtcbiAgfVxuICBsb2cuZGVidWcoYFNlbmRpbmcgZ3VpbmVhIHBpZyByZXNwb25zZSB3aXRoIHBhcmFtczogJHtKU09OLnN0cmluZ2lmeShwYXJhbXMpfWApO1xuICBpZiAoZGVsYXkpIHtcbiAgICBsb2cuZGVidWcoYFdhaXRpbmcgJHtkZWxheX1tcyBiZWZvcmUgcmVzcG9uZGluZ2ApO1xuICAgIGF3YWl0IEIuZGVsYXkoZGVsYXkpO1xuICB9XG4gIHJlcy5zZXQoJ2NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgcmVzLmNvb2tpZSgnZ3VpbmVhY29va2llMScsICdpIGFtIGEgY29va2llIHZhbHVlJywge3BhdGg6ICcvJ30pO1xuICByZXMuY29va2llKCdndWluZWFjb29raWUyJywgJ2Nvb2tpw6kyJywge3BhdGg6ICcvJ30pO1xuICByZXMuY29va2llKCdndWluZWFjb29raWUzJywgJ2NhbnQgYWNjZXNzIHRoaXMnLCB7XG4gICAgZG9tYWluOiAnLmJsYXJnaW1hcmcuY29tJyxcbiAgICBwYXRoOiAnLycsXG4gIH0pO1xuICByZXMuc2VuZCgoYXdhaXQgZ2V0VGVtcGxhdGUocGFnZSkpKHBhcmFtcykpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvdGVzdC9ndWluZWEtcGlnXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZyhyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLmh0bWwnKTtcbn1cblxuLypcbiAqIER5bmFtaWMgcGFnZSBtYXBwZWQgdG8gL3Rlc3QvZ3VpbmVhLXBpZy1zY3JvbGxhYmxlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZ1Njcm9sbGFibGUocmVxLCByZXMpIHtcbiAgcmV0dXJuIGF3YWl0IGd1aW5lYVBpZ1RlbXBsYXRlKHJlcSwgcmVzLCAnZ3VpbmVhLXBpZy1zY3JvbGxhYmxlLmh0bWwnKTtcbn1cblxuLypcbiAqIER5bmFtaWMgcGFnZSBtYXBwZWQgdG8gL3Rlc3QvZ3VpbmVhLXBpZy1hcHAtYmFubmVyXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGd1aW5lYVBpZ0FwcEJhbm5lcihyZXEsIHJlcykge1xuICByZXR1cm4gYXdhaXQgZ3VpbmVhUGlnVGVtcGxhdGUocmVxLCByZXMsICdndWluZWEtcGlnLWFwcC1iYW5uZXIuaHRtbCcpO1xufVxuXG4vKlxuICogRHluYW1pYyBwYWdlIG1hcHBlZCB0byAvd2VsY29tZVxuICovXG5hc3luYyBmdW5jdGlvbiB3ZWxjb21lKHJlcSwgcmVzKSB7XG4gIGxldCBwYXJhbXMgPSB7bWVzc2FnZTogXCJMZXQncyBicm93c2UhXCJ9O1xuICBsb2cuZGVidWcoYFNlbmRpbmcgd2VsY29tZSByZXNwb25zZSB3aXRoIHBhcmFtczogJHtKU09OLnN0cmluZ2lmeShwYXJhbXMpfWApO1xuICByZXMuc2VuZCgoYXdhaXQgZ2V0VGVtcGxhdGUoJ3dlbGNvbWUuaHRtbCcpKShwYXJhbXMpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0VGVtcGxhdGUodGVtcGxhdGVOYW1lKSB7XG4gIGxldCBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKFNUQVRJQ19ESVIsICd0ZXN0JywgdGVtcGxhdGVOYW1lKSk7XG4gIHJldHVybiBfLnRlbXBsYXRlKGNvbnRlbnQudG9TdHJpbmcoKSk7XG59XG5cbmV4cG9ydCB7Z3VpbmVhUGlnLCBndWluZWFQaWdTY3JvbGxhYmxlLCBndWluZWFQaWdBcHBCYW5uZXIsIHdlbGNvbWUsIFNUQVRJQ19ESVJ9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFJQSxVQUFVLEdBQUdDLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLElBQXBDLEVBQTBDLFFBQTFDLENBQWpCOzs7O0FBQ0EsSUFBSUMsZUFBQSxDQUFFQyxNQUFGLENBQVNKLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCRyxLQUF4QixDQUE4Qiw0QkFBOUIsQ0FBVCxDQUFKLEVBQTJFO0VBR3pFLHFCQUFBTixVQUFVLEdBQUdDLGFBQUEsQ0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLFFBQXBDLENBQWI7QUFDRDs7QUFFRCxlQUFlSSxpQkFBZixDQUFpQ0MsR0FBakMsRUFBc0NDLEdBQXRDLEVBQTJDQyxJQUEzQyxFQUFpRDtFQUMvQyxNQUFNQyxLQUFLLEdBQUdDLFFBQVEsQ0FBQ0osR0FBRyxDQUFDSyxNQUFKLENBQVdGLEtBQVgsSUFBb0JILEdBQUcsQ0FBQ00sS0FBSixDQUFVSCxLQUE5QixJQUF1QyxDQUF4QyxFQUEyQyxFQUEzQyxDQUF0QjtFQUNBLE1BQU1JLFVBQVUs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
@@ -1,9 +1,12 @@
1
+ export type WebSocketServer = import('http').Server & {
2
+ webSocketsMapping: Record<string, import('ws').Server>;
3
+ };
1
4
  /**
2
5
  * Adds websocket handler to express server instance.
3
6
  * It is expected this function is called in Express
4
7
  * server instance context.
5
8
  *
6
- * @param {Object} server - An instance of express HTTP server.
9
+ * @this {WebSocketServer} - An instance of express HTTP server.
7
10
  * @param {string} handlerPathname - Web socket endpoint path starting with
8
11
  * a single slash character. It is recommended to always add
9
12
  * DEFAULT_WS_PATHNAME_PREFIX to all web socket pathnames.
@@ -11,14 +14,14 @@
11
14
  * https://github.com/websockets/ws/pull/885 for more details
12
15
  * on how to configure the handler properly.
13
16
  */
14
- export function addWebSocketHandler(handlerPathname: string, handlerServer: any): Promise<void>;
17
+ export function addWebSocketHandler(this: WebSocketServer, handlerPathname: string, handlerServer: any): Promise<void>;
15
18
  export class addWebSocketHandler {
16
19
  /**
17
20
  * Adds websocket handler to express server instance.
18
21
  * It is expected this function is called in Express
19
22
  * server instance context.
20
23
  *
21
- * @param {Object} server - An instance of express HTTP server.
24
+ * @this {WebSocketServer} - An instance of express HTTP server.
22
25
  * @param {string} handlerPathname - Web socket endpoint path starting with
23
26
  * a single slash character. It is recommended to always add
24
27
  * DEFAULT_WS_PATHNAME_PREFIX to all web socket pathnames.
@@ -26,7 +29,7 @@ export class addWebSocketHandler {
26
29
  * https://github.com/websockets/ws/pull/885 for more details
27
30
  * on how to configure the handler properly.
28
31
  */
29
- constructor(handlerPathname: string, handlerServer: any);
32
+ constructor(this: WebSocketServer, handlerPathname: string, handlerServer: any);
30
33
  webSocketsMapping: {};
31
34
  }
32
35
  /**
@@ -37,28 +40,28 @@ export class addWebSocketHandler {
37
40
  * server instance context.
38
41
  *
39
42
  * @param {string} handlerPathname - Websocket endpoint path.
40
- * @returns {boolean} true if the handlerPathname was found and deleted
43
+ * @returns {Promise<boolean>} true if the handlerPathname was found and deleted
41
44
  */
42
- export function removeWebSocketHandler(handlerPathname: string): boolean;
45
+ export function removeWebSocketHandler(handlerPathname: string): Promise<boolean>;
43
46
  /**
44
47
  * Removes all existing websocket handler from express server instance.
45
48
  * It is expected this function is called in Express
46
49
  * server instance context.
47
50
  *
48
- * @returns {boolean} true if at least one handler has been deleted
51
+ * @returns {Promise<boolean>} true if at least one handler has been deleted
49
52
  */
50
- export function removeAllWebSocketHandlers(): boolean;
53
+ export function removeAllWebSocketHandlers(): Promise<boolean>;
51
54
  /**
52
55
  * Returns web socket handlers registered for the given server
53
56
  * instance.
54
57
  * It is expected this function is called in Express
55
58
  * server instance context.
56
59
  *
57
- * @param {?string} keysFilter [null]- Only include pathnames with given
60
+ * @param {string?} [keysFilter] - Only include pathnames with given
58
61
  * `keysFilter` value if set. All pairs will be included by default.
59
- * @returns {Object} pathnames to websocket server isntances mapping
62
+ * @returns {Promise<Object>} pathnames to websocket server isntances mapping
60
63
  * matching the search criteria or an empty object otherwise.
61
64
  */
62
- export function getWebSocketHandlers(keysFilter?: string | null): any;
65
+ export function getWebSocketHandlers(keysFilter?: string | null | undefined): Promise<any>;
63
66
  export const DEFAULT_WS_PATHNAME_PREFIX: "/ws";
64
67
  //# sourceMappingURL=websocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;GAYG;AACH,qDAPW,MAAM,qCA8BhB;;IApCD;;;;;;;;;;;;OAYG;IACH,6BAPW,MAAM,sBA8BhB;IArBG,sBAA2B;;AA+C/B;;;;;;;;;GASG;AACH,wDAHW,MAAM,GACJ,OAAO,CAoBnB;AAED;;;;;;GAMG;AACH,8CAFa,OAAO,CAYnB;AAvED;;;;;;;;;;GAUG;AACH,kDALY,MAAM,cAgBjB;AA/DD,+CAAyC"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../lib/express/websocket.js"],"names":[],"mappings":"8BAkIa,OAAO,MAAM,EAAE,MAAM,GAAG;IAAC,iBAAiB,EAAE,OAAO,MAAM,EAAC,OAAO,IAAI,EAAE,MAAM,CAAC,CAAA;CAAC;AA5H5F;;;;;;;;;;;;GAYG;AAEH,4EARW,MAAM,qCAgChB;;IAtCD;;;;;;;;;;;;OAYG;IAEH,oDARW,MAAM,sBAgChB;IAtBG,sBAA2B;;AAiD/B;;;;;;;;;GASG;AAEH,wDAJW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAqB5B;AAED;;;;;;GAMG;AACH,8CAFa,QAAQ,OAAO,CAAC,CAY5B;AAzED;;;;;;;;;;GAUG;AAEH,8EAJa,YAAe,CAe3B;AAjED,+CAAyC"}
@@ -30,7 +30,7 @@ async function addWebSocketHandler(handlerPathname, handlerServer) {
30
30
 
31
31
  try {
32
32
  currentPathname = new _url.URL(request.url).pathname;
33
- } catch (ign) {
33
+ } catch {
34
34
  currentPathname = request.url;
35
35
  }
36
36
 
@@ -95,4 +95,4 @@ async function removeAllWebSocketHandlers() {
95
95
 
96
96
  return _lodash.default.some(await _bluebird.default.all(_lodash.default.keys(this.webSocketsMapping).map(pathname => this.removeWebSocketHandler(pathname))));
97
97
  }
98
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHByZXNzL3dlYnNvY2tldC5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwiXyIsImlzVW5kZWZpbmVkIiwid2ViU29ja2V0c01hcHBpbmciLCJvbiIsInJlcXVlc3QiLCJzb2NrZXQiLCJoZWFkIiwiY3VycmVudFBhdGhuYW1lIiwiVVJMIiwidXJsIiwicGF0aG5hbWUiLCJpZ24iLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZWR1Y2UiLCJhY2MiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiY2xpZW50IiwiY2xpZW50cyIsInRlcm1pbmF0ZSIsInJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzIiwic29tZSIsIkIiLCJhbGwiLCJrZXlzIiwibWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxLQUFuQzs7O0FBZ0JBLGVBQWVDLG1CQUFmLENBQW9DQyxlQUFwQyxFQUFxREMsYUFBckQsRUFBb0U7QUFDbEUsTUFBSUMsZ0JBQUVDLFdBQUYsQ0FBYyxLQUFLQyxpQkFBbkIsQ0FBSixFQUEyQztBQUN6QyxTQUFLQSxpQkFBTCxHQUF5QixFQUF6QjtBQUVBLFNBQUtDLEVBQUwsQ0FBUSxTQUFSLEVBQW1CLENBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFrQkMsSUFBbEIsS0FBMkI7QUFDNUMsVUFBSUMsZUFBSjs7QUFDQSxVQUFJO0FBQ0ZBLFFBQUFBLGVBQWUsR0FBSSxJQUFJQyxRQUFKLENBQVFKLE9BQU8sQ0FBQ0ssR0FBaEIsQ0FBRCxDQUF1QkMsUUFBekM7QUFDRCxPQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZO0FBQ1pKLFFBQUFBLGVBQWUsR0FBR0gsT0FBTyxDQUFDSyxHQUExQjtBQUNEOztBQUNELFdBQUssTUFBTSxDQUFDQyxRQUFELEVBQVdFLFFBQVgsQ0FBWCxJQUFtQ1osZ0JBQUVhLE9BQUYsQ0FBVSxLQUFLWCxpQkFBZixDQUFuQyxFQUFzRTtBQUNwRSxZQUFJSyxlQUFlLEtBQUtHLFFBQXhCLEVBQWtDO0FBQ2hDRSxVQUFBQSxRQUFRLENBQUNFLGFBQVQsQ0FBdUJWLE9BQXZCLEVBQWdDQyxNQUFoQyxFQUF3Q0MsSUFBeEMsRUFBK0NTLEVBQUQsSUFBUTtBQUNwREgsWUFBQUEsUUFBUSxDQUFDSSxJQUFULENBQWMsWUFBZCxFQUE0QkQsRUFBNUIsRUFBZ0NYLE9BQWhDO0FBQ0QsV0FGRDtBQUdBO0FBQ0Q7QUFDRjs7QUFDREMsTUFBQUEsTUFBTSxDQUFDWSxPQUFQO0FBQ0QsS0FoQkQ7QUFpQkQ7O0FBQ0QsT0FBS2YsaUJBQUwsQ0FBdUJKLGVBQXZCLElBQTBDQyxhQUExQztBQUNEOztBQWFELGVBQWVtQixvQkFBZixDQUFxQ0MsVUFBVSxHQUFHLElBQWxELEVBQXdEO0FBQ3RELE1BQUluQixnQkFBRW9CLE9BQUYsQ0FBVSxLQUFLbEIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEVBQVA7QUFDRDs7QUFFRCxTQUFPRixnQkFBRWEsT0FBRixDQUFVLEtBQUtYLGlCQUFmLEVBQWtDbUIsTUFBbEMsQ0FBeUMsQ0FBQ0MsR0FBRCxFQUFNLENBQUNaLFFBQUQsRUFBV0UsUUFBWCxDQUFOLEtBQStCO0FBQzdFLFFBQUksQ0FBQ1osZ0JBQUV1QixRQUFGLENBQVdKLFVBQVgsQ0FBRCxJQUEyQlQsUUFBUSxDQUFDYyxRQUFULENBQWtCTCxVQUFsQixDQUEvQixFQUE4RDtBQUM1REcsTUFBQUEsR0FBRyxDQUFDWixRQUFELENBQUgsR0FBZ0JFLFFBQWhCO0FBQ0Q7O0FBQ0QsV0FBT1UsR0FBUDtBQUNELEdBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFZRCxlQUFlRyxzQkFBZixDQUF1QzNCLGVBQXZDLEVBQXdEO0FBQUE7O0FBQ3RELFFBQU1jLFFBQVEsNEJBQUcsS0FBS1YsaUJBQVIsMERBQUcsc0JBQXlCSixlQUF6QixDQUFqQjs7QUFDQSxNQUFJLENBQUNjLFFBQUwsRUFBZTtBQUNiLFdBQU8sS0FBUDtBQUNEOztBQUVELE1BQUk7QUFDRkEsSUFBQUEsUUFBUSxDQUFDYyxLQUFUOztBQUNBLFNBQUssTUFBTUMsTUFBWCxJQUFzQmYsUUFBUSxDQUFDZ0IsT0FBVCxJQUFvQixFQUExQyxFQUErQztBQUM3Q0QsTUFBQUEsTUFBTSxDQUFDRSxTQUFQO0FBQ0Q7O0FBQ0QsV0FBTyxJQUFQO0FBQ0QsR0FORCxDQU1FLE9BQU9sQixHQUFQLEVBQVksQ0FFYixDQVJELFNBUVU7QUFDUixXQUFPLEtBQUtULGlCQUFMLENBQXVCSixlQUF2QixDQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZWdDLDBCQUFmLEdBQTZDO0FBQzNDLE1BQUk5QixnQkFBRW9CLE9BQUYsQ0FBVSxLQUFLbEIsaUJBQWYsQ0FBSixFQUF1QztBQUNyQyxXQUFPLEtBQVA7QUFDRDs7QUFFRCxTQUFPRixnQkFBRStCLElBQUYsQ0FDTCxNQUFNQyxrQkFBRUMsR0FBRixDQUNKakMsZ0JBQUVrQyxJQUFGLENBQU8sS0FBS2hDLGlCQUFaLEVBQStCaUMsR0FBL0IsQ0FBb0N6QixRQUFELElBQWMsS0FBS2Usc0JBQUwsQ0FBNEJmLFFBQTVCLENBQWpELENBREksQ0FERCxDQUFQO0FBS0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVVJMIH0gZnJvbSAndXJsJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuY29uc3QgREVGQVVMVF9XU19QQVRITkFNRV9QUkVGSVggPSAnL3dzJztcblxuXG4vKipcbiAqIEFkZHMgd2Vic29ja2V0IGhhbmRsZXIgdG8gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gc2VydmVyIC0gQW4gaW5zdGFuY2Ugb2YgZXhwcmVzcyBIVFRQIHNlcnZlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBoYW5kbGVyUGF0aG5hbWUgLSBXZWIgc29ja2V0IGVuZHBvaW50IHBhdGggc3RhcnRpbmcgd2l0aFxuICogYSBzaW5nbGUgc2xhc2ggY2hhcmFjdGVyLiBJdCBpcyByZWNvbW1lbmRlZCB0byBhbHdheXMgYWRkXG4gKiBERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCB0byBhbGwgd2ViIHNvY2tldCBwYXRobmFtZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gaGFuZGxlclNlcnZlciAtIFdlYlNvY2tldCBzZXJ2ZXIgaW5zdGFuY2UuIFNlZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODUgZm9yIG1vcmUgZGV0YWlsc1xuICogb24gaG93IHRvIGNvbmZpZ3VyZSB0aGUgaGFuZGxlciBwcm9wZXJseS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYWRkV2ViU29ja2V0SGFuZGxlciAoaGFuZGxlclBhdGhuYW1lLCBoYW5kbGVyU2VydmVyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHRoaXMud2ViU29ja2V0c01hcHBpbmcgPSB7fTtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2Vic29ja2V0cy93cy9wdWxsLzg4NVxuICAgIHRoaXMub24oJ3VwZ3JhZGUnLCAocmVxdWVzdCwgc29ja2V0LCBoZWFkKSA9PiB7XG4gICAgICBsZXQgY3VycmVudFBhdGhuYW1lO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gKG5ldyBVUkwocmVxdWVzdC51cmwpKS5wYXRobmFtZTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge1xuICAgICAgICBjdXJyZW50UGF0aG5hbWUgPSByZXF1ZXN0LnVybDtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgW3BhdGhuYW1lLCB3c1NlcnZlcl0gb2YgXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgICAgIGlmIChjdXJyZW50UGF0aG5hbWUgPT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgd3NTZXJ2ZXIuaGFuZGxlVXBncmFkZShyZXF1ZXN0LCBzb2NrZXQsIGhlYWQsICh3cykgPT4ge1xuICAgICAgICAgICAgd3NTZXJ2ZXIuZW1pdCgnY29ubmVjdGlvbicsIHdzLCByZXF1ZXN0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cbiAgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdID0gaGFuZGxlclNlcnZlcjtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdlYiBzb2NrZXQgaGFuZGxlcnMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIHNlcnZlclxuICogaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGtleXNGaWx0ZXIgW251bGxdLSBPbmx5IGluY2x1ZGUgcGF0aG5hbWVzIHdpdGggZ2l2ZW5cbiAqIGBrZXlzRmlsdGVyYCB2YWx1ZSBpZiBzZXQuIEFsbCBwYWlycyB3aWxsIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBwYXRobmFtZXMgdG8gd2Vic29ja2V0IHNlcnZlciBpc250YW5jZXMgbWFwcGluZ1xuICogbWF0Y2hpbmcgdGhlIHNlYXJjaCBjcml0ZXJpYSBvciBhbiBlbXB0eSBvYmplY3Qgb3RoZXJ3aXNlLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRXZWJTb2NrZXRIYW5kbGVycyAoa2V5c0ZpbHRlciA9IG51bGwpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gXy50b1BhaXJzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLnJlZHVjZSgoYWNjLCBbcGF0aG5hbWUsIHdzU2VydmVyXSkgPT4ge1xuICAgIGlmICghXy5pc1N0cmluZyhrZXlzRmlsdGVyKSB8fCBwYXRobmFtZS5pbmNsdWRlcyhrZXlzRmlsdGVyKSkge1xuICAgICAgYWNjW3BhdGhuYW1lXSA9IHdzU2VydmVyO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogVGhlIGNhbGwgaXMgaWdub3JlZCBpZiB0aGUgZ2l2ZW4gYGhhbmRsZXJQYXRobmFtZWAgaGFuZGxlclxuICogaXMgbm90IHByZXNlbnQgaW4gdGhlIGhhbmRsZXJzIGxpc3QuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGFuZGxlclBhdGhuYW1lIC0gV2Vic29ja2V0IGVuZHBvaW50IHBhdGguXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gdHJ1ZSBpZiB0aGUgaGFuZGxlclBhdGhuYW1lIHdhcyBmb3VuZCBhbmQgZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVXZWJTb2NrZXRIYW5kbGVyIChoYW5kbGVyUGF0aG5hbWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIGNvbnN0IHdzU2VydmVyID0gdGhpcy53ZWJTb2NrZXRzTWFwcGluZz8uW2hhbmRsZXJQYXRobmFtZV07XG4gIGlmICghd3NTZXJ2ZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIHdzU2VydmVyLmNsb3NlKCk7XG4gICAgZm9yIChjb25zdCBjbGllbnQgb2YgKHdzU2VydmVyLmNsaWVudHMgfHwgW10pKSB7XG4gICAgICBjbGllbnQudGVybWluYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICAvLyBpZ25vcmVcbiAgfSBmaW5hbGx5IHtcbiAgICBkZWxldGUgdGhpcy53ZWJTb2NrZXRzTWFwcGluZ1toYW5kbGVyUGF0aG5hbWVdO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBleGlzdGluZyB3ZWJzb2NrZXQgaGFuZGxlciBmcm9tIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgYXQgbGVhc3Qgb25lIGhhbmRsZXIgaGFzIGJlZW4gZGVsZXRlZFxuICovXG5hc3luYyBmdW5jdGlvbiByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyAoKSB7XG4gIGlmIChfLmlzRW1wdHkodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gXy5zb21lKFxuICAgIGF3YWl0IEIuYWxsKFxuICAgICAgXy5rZXlzKHRoaXMud2ViU29ja2V0c01hcHBpbmcpLm1hcCgocGF0aG5hbWUpID0+IHRoaXMucmVtb3ZlV2ViU29ja2V0SGFuZGxlcihwYXRobmFtZSkpXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQge1xuICBhZGRXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVXZWJTb2NrZXRIYW5kbGVyLCByZW1vdmVBbGxXZWJTb2NrZXRIYW5kbGVycyxcbiAgZ2V0V2ViU29ja2V0SGFuZGxlcnMsIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYLFxufTtcbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsImFkZFdlYlNvY2tldEhhbmRsZXIiLCJoYW5kbGVyUGF0aG5hbWUiLCJoYW5kbGVyU2VydmVyIiwiXyIsImlzVW5kZWZpbmVkIiwid2ViU29ja2V0c01hcHBpbmciLCJvbiIsInJlcXVlc3QiLCJzb2NrZXQiLCJoZWFkIiwiY3VycmVudFBhdGhuYW1lIiwiVVJMIiwidXJsIiwicGF0aG5hbWUiLCJ3c1NlcnZlciIsInRvUGFpcnMiLCJoYW5kbGVVcGdyYWRlIiwid3MiLCJlbWl0IiwiZGVzdHJveSIsImdldFdlYlNvY2tldEhhbmRsZXJzIiwia2V5c0ZpbHRlciIsImlzRW1wdHkiLCJyZWR1Y2UiLCJhY2MiLCJpc1N0cmluZyIsImluY2x1ZGVzIiwicmVtb3ZlV2ViU29ja2V0SGFuZGxlciIsImNsb3NlIiwiY2xpZW50IiwiY2xpZW50cyIsInRlcm1pbmF0ZSIsImlnbiIsInJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzIiwic29tZSIsIkIiLCJhbGwiLCJrZXlzIiwibWFwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2V4cHJlc3Mvd2Vic29ja2V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1VSTH0gZnJvbSAndXJsJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuY29uc3QgREVGQVVMVF9XU19QQVRITkFNRV9QUkVGSVggPSAnL3dzJztcblxuLyoqXG4gKiBBZGRzIHdlYnNvY2tldCBoYW5kbGVyIHRvIGV4cHJlc3Mgc2VydmVyIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHRoaXMge1dlYlNvY2tldFNlcnZlcn0gLSBBbiBpbnN0YW5jZSBvZiBleHByZXNzIEhUVFAgc2VydmVyLlxuICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJQYXRobmFtZSAtIFdlYiBzb2NrZXQgZW5kcG9pbnQgcGF0aCBzdGFydGluZyB3aXRoXG4gKiBhIHNpbmdsZSBzbGFzaCBjaGFyYWN0ZXIuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGFsd2F5cyBhZGRcbiAqIERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIHRvIGFsbCB3ZWIgc29ja2V0IHBhdGhuYW1lcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBoYW5kbGVyU2VydmVyIC0gV2ViU29ja2V0IHNlcnZlciBpbnN0YW5jZS4gU2VlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vd2Vic29ja2V0cy93cy9wdWxsLzg4NSBmb3IgbW9yZSBkZXRhaWxzXG4gKiBvbiBob3cgdG8gY29uZmlndXJlIHRoZSBoYW5kbGVyIHByb3Blcmx5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuYXN5bmMgZnVuY3Rpb24gYWRkV2ViU29ja2V0SGFuZGxlcihoYW5kbGVyUGF0aG5hbWUsIGhhbmRsZXJTZXJ2ZXIpIHtcbiAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy53ZWJTb2NrZXRzTWFwcGluZykpIHtcbiAgICB0aGlzLndlYlNvY2tldHNNYXBwaW5nID0ge307XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnNvY2tldHMvd3MvcHVsbC84ODVcbiAgICB0aGlzLm9uKCd1cGdyYWRlJywgKHJlcXVlc3QsIHNvY2tldCwgaGVhZCkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnRQYXRobmFtZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gbmV3IFVSTChyZXF1ZXN0LnVybCkucGF0aG5hbWU7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgY3VycmVudFBhdGhuYW1lID0gcmVxdWVzdC51cmw7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtwYXRobmFtZSwgd3NTZXJ2ZXJdIG9mIF8udG9QYWlycyh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgICAgICBpZiAoY3VycmVudFBhdGhuYW1lID09PSBwYXRobmFtZSkge1xuICAgICAgICAgIHdzU2VydmVyLmhhbmRsZVVwZ3JhZGUocmVxdWVzdCwgc29ja2V0LCBoZWFkLCAod3MpID0+IHtcbiAgICAgICAgICAgIHdzU2VydmVyLmVtaXQoJ2Nvbm5lY3Rpb24nLCB3cywgcmVxdWVzdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG4gIHRoaXMud2ViU29ja2V0c01hcHBpbmdbaGFuZGxlclBhdGhuYW1lXSA9IGhhbmRsZXJTZXJ2ZXI7XG59XG5cbi8qKlxuICogUmV0dXJucyB3ZWIgc29ja2V0IGhhbmRsZXJzIHJlZ2lzdGVyZWQgZm9yIHRoZSBnaXZlbiBzZXJ2ZXJcbiAqIGluc3RhbmNlLlxuICogSXQgaXMgZXhwZWN0ZWQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gRXhwcmVzc1xuICogc2VydmVyIGluc3RhbmNlIGNvbnRleHQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmc/fSBba2V5c0ZpbHRlcl0gLSBPbmx5IGluY2x1ZGUgcGF0aG5hbWVzIHdpdGggZ2l2ZW5cbiAqIGBrZXlzRmlsdGVyYCB2YWx1ZSBpZiBzZXQuIEFsbCBwYWlycyB3aWxsIGJlIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBwYXRobmFtZXMgdG8gd2Vic29ja2V0IHNlcnZlciBpc250YW5jZXMgbWFwcGluZ1xuICogbWF0Y2hpbmcgdGhlIHNlYXJjaCBjcml0ZXJpYSBvciBhbiBlbXB0eSBvYmplY3Qgb3RoZXJ3aXNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuYXN5bmMgZnVuY3Rpb24gZ2V0V2ViU29ja2V0SGFuZGxlcnMoa2V5c0ZpbHRlciA9IG51bGwpIHtcbiAgaWYgKF8uaXNFbXB0eSh0aGlzLndlYlNvY2tldHNNYXBwaW5nKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiBfLnRvUGFpcnModGhpcy53ZWJTb2NrZXRzTWFwcGluZykucmVkdWNlKChhY2MsIFtwYXRobmFtZSwgd3NTZXJ2ZXJdKSA9PiB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKGtleXNGaWx0ZXIpIHx8IHBhdGhuYW1lLmluY2x1ZGVzKGtleXNGaWx0ZXIpKSB7XG4gICAgICBhY2NbcGF0aG5hbWVdID0gd3NTZXJ2ZXI7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGV4aXN0aW5nIHdlYnNvY2tldCBoYW5kbGVyIGZyb20gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBUaGUgY2FsbCBpcyBpZ25vcmVkIGlmIHRoZSBnaXZlbiBgaGFuZGxlclBhdGhuYW1lYCBoYW5kbGVyXG4gKiBpcyBub3QgcHJlc2VudCBpbiB0aGUgaGFuZGxlcnMgbGlzdC5cbiAqIEl0IGlzIGV4cGVjdGVkIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIEV4cHJlc3NcbiAqIHNlcnZlciBpbnN0YW5jZSBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBoYW5kbGVyUGF0aG5hbWUgLSBXZWJzb2NrZXQgZW5kcG9pbnQgcGF0aC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSB0cnVlIGlmIHRoZSBoYW5kbGVyUGF0aG5hbWUgd2FzIGZvdW5kIGFuZCBkZWxldGVkXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5hc3luYyBmdW5jdGlvbiByZW1vdmVXZWJTb2NrZXRIYW5kbGVyKGhhbmRsZXJQYXRobmFtZSkge1xuICBjb25zdCB3c1NlcnZlciA9IHRoaXMud2ViU29ja2V0c01hcHBpbmc/LltoYW5kbGVyUGF0aG5hbWVdO1xuICBpZiAoIXdzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICB3c1NlcnZlci5jbG9zZSgpO1xuICAgIGZvciAoY29uc3QgY2xpZW50IG9mIHdzU2VydmVyLmNsaWVudHMgfHwgW10pIHtcbiAgICAgIGNsaWVudC50ZXJtaW5hdGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGlnbikge1xuICAgIC8vIGlnbm9yZVxuICB9IGZpbmFsbHkge1xuICAgIGRlbGV0ZSB0aGlzLndlYlNvY2tldHNNYXBwaW5nW2hhbmRsZXJQYXRobmFtZV07XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYWxsIGV4aXN0aW5nIHdlYnNvY2tldCBoYW5kbGVyIGZyb20gZXhwcmVzcyBzZXJ2ZXIgaW5zdGFuY2UuXG4gKiBJdCBpcyBleHBlY3RlZCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBFeHByZXNzXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgY29udGV4dC5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaGFuZGxlciBoYXMgYmVlbiBkZWxldGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlbW92ZUFsbFdlYlNvY2tldEhhbmRsZXJzKCkge1xuICBpZiAoXy5pc0VtcHR5KHRoaXMud2ViU29ja2V0c01hcHBpbmcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIF8uc29tZShcbiAgICBhd2FpdCBCLmFsbChcbiAgICAgIF8ua2V5cyh0aGlzLndlYlNvY2tldHNNYXBwaW5nKS5tYXAoKHBhdGhuYW1lKSA9PiB0aGlzLnJlbW92ZVdlYlNvY2tldEhhbmRsZXIocGF0aG5hbWUpKVxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IHtcbiAgYWRkV2ViU29ja2V0SGFuZGxlcixcbiAgcmVtb3ZlV2ViU29ja2V0SGFuZGxlcixcbiAgcmVtb3ZlQWxsV2ViU29ja2V0SGFuZGxlcnMsXG4gIGdldFdlYlNvY2tldEhhbmRsZXJzLFxuICBERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCxcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnaHR0cCcpLlNlcnZlciAmIHt3ZWJTb2NrZXRzTWFwcGluZzogUmVjb3JkPHN0cmluZyxpbXBvcnQoJ3dzJykuU2VydmVyPn19IFdlYlNvY2tldFNlcnZlclxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLDBCQUEwQixHQUFHLEtBQW5DOzs7QUFnQkEsZUFBZUMsbUJBQWYsQ0FBbUNDLGVBQW5DLEVBQW9EQyxhQUFwRCxFQUFtRTtFQUNqRSxJQUFJQyxlQUFBLENBQUVDLFdBQUYsQ0FBYyxLQUFLQyxpQkFBbkIsQ0FBSixFQUEyQztJQUN6QyxLQUFLQSxpQkFBTCxHQUF5QixFQUF6QjtJQUVBLEtBQUtDLEVBQUwsQ0FBUSxTQUFSLEVBQW1CLENBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFrQkMsSUFBbEIsS0FBMkI7TUFDNUMsSUFBSUMsZUFBSjs7TUFDQSxJQUFJO1FBRUZBLGVBQWUsR0FBRyxJQUFJQyxRQUFKLENBQVFKLE9BQU8sQ0FBQ0ssR0FBaEIsRUFBcUJDLFFBQXZDO01BQ0QsQ0FIRCxDQUdFLE1BQU07UUFDTkgsZUFBZSxHQUFHSCxPQUFPLENBQUNLLEdBQTFCO01BQ0Q7O01BQ0QsS0FBSyxNQUFNLENBQUNDLFFBQUQsRUFBV0MsUUFBWCxDQUFYLElBQW1DWCxlQUFBLENBQUVZLE9BQUYsQ0FBVSxLQUFLVixpQkFBZixDQUFuQyxFQUFzRTtRQUNwRSxJQUFJSyxlQUFlLEtBQUtHLFFBQXhCLEVBQWtDO1VBQ2hDQyxRQUFRLENBQUNFLGFBQVQsQ0FBdUJULE9BQXZCLEVBQWdDQyxNQUFoQyxFQUF3Q0MsSUFBeEMsRUFBK0NRLEVBQUQsSUFBUTtZQUNwREgsUUFBUSxDQUFDSSxJQUFULENBQWMsWUFBZCxFQUE0QkQsRUFBNUIsRUFBZ0NWLE9BQWhDO1VBQ0QsQ0FGRDtVQUdBO1FBQ0Q7TUFDRjs7TUFDREMsTUFBTSxDQUFDVyxPQUFQO0lBQ0QsQ0FqQkQ7RUFrQkQ7O0VBQ0QsS0FBS2QsaUJBQUwsQ0FBdUJKLGVBQXZCLElBQTBDQyxhQUExQztBQUNEOztBQWNELGVBQWVrQixvQkFBZixDQUFvQ0MsVUFBVSxHQUFHLElBQWpELEVBQXVEO0VBQ3JELElBQUlsQixlQUFBLENBQUVtQixPQUFGLENBQVUsS0FBS2pCLGlCQUFmLENBQUosRUFBdUM7SUFDckMsT0FBTyxFQUFQO0VBQ0Q7O0VBRUQsT0FBT0YsZUFBQSxDQUFFWSxPQUFGLENBQVUsS0FBS1YsaUJBQWYsRUFBa0NrQixNQUFsQyxDQUF5QyxDQUFDQyxHQUFELEVBQU0sQ0FBQ1gsUUFBRCxFQUFXQyxRQUFYLENBQU4sS0FBK0I7SUFDN0UsSUFBSSxDQUFDWCxlQUFBLENBQUVzQixRQUFGLENBQVdKLFVBQVgsQ0FBRCxJQUEyQlIsUUFBUSxDQUFDYSxRQUFULENBQWtCTCxVQUFsQixDQUEvQixFQUE4RDtNQUM1REcsR0FBRyxDQUFDWCxRQUFELENBQUgsR0FBZ0JDLFFBQWhCO0lBQ0Q7O0lBQ0QsT0FBT1UsR0FBUDtFQUNELENBTE0sRUFLSixFQUxJLENBQVA7QUFNRDs7QUFhRCxlQUFlRyxzQkFBZixDQUFzQzFCLGVBQXRDLEVBQXVEO0VBQUE7O0VBQ3JELE1BQU1hLFFBQVEsNEJBQUcsS0FBS1QsaUJBQVIsMERBQUcsc0JBQXlCSixlQUF6QixDQUFqQjs7RUFDQSxJQUFJLENBQUNhLFFBQUwsRUFBZTtJQUNiLE9BQU8sS0FBUDtFQUNEOztFQUVELElBQUk7SUFDRkEsUUFBUSxDQUFDYyxLQUFUOztJQUNBLEtBQUssTUFBTUMsTUFBWCxJQUFxQmYsUUFBUSxDQUFDZ0IsT0FBVCxJQUFvQixFQUF6QyxFQUE2QztNQUMzQ0QsTUFBTSxDQUFDRSxTQUFQO0lBQ0Q7O0lBQ0QsT0FBTyxJQUFQO0VBQ0QsQ0FORCxDQU1FLE9BQU9DLEdBQVAsRUFBWSxDQUViLENBUkQsU0FRVTtJQUNSLE9BQU8sS0FBSzNCLGlCQUFMLENBQXVCSixlQUF2QixDQUFQO0VBQ0Q7O0VBQ0QsT0FBTyxLQUFQO0FBQ0Q7O0FBU0QsZUFBZWdDLDBCQUFmLEdBQTRDO0VBQzFDLElBQUk5QixlQUFBLENBQUVtQixPQUFGLENBQVUsS0FBS2pCLGlCQUFmLENBQUosRUFBdUM7SUFDckMsT0FBTyxLQUFQO0VBQ0Q7O0VBRUQsT0FBT0YsZUFBQSxDQUFFK0IsSUFBRixDQUNMLE1BQU1DLGlCQUFBLENBQUVDLEdBQUYsQ0FDSmpDLGVBQUEsQ0FBRWtDLElBQUYsQ0FBTyxLQUFLaEMsaUJBQVosRUFBK0JpQyxHQUEvQixDQUFvQ3pCLFFBQUQsSUFBYyxLQUFLYyxzQkFBTCxDQUE0QmQsUUFBNUIsQ0FBakQsQ0FESSxDQURELENBQVA7QUFLRCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/helpers/capabilities.js"],"names":[],"mappings":"2BAgFa,OAAO,eAAe,EAAE,YAAY;0BACpC,OAAO,eAAe,EAAE,WAAW;2BACnC,OAAO,eAAe,EAAE,YAAY;AA9EjD,8CAkBC;AAED;;;;;;GAMG;AACH,sCALW,YAAY,yBACZ,WAAW,OACX,YAAY,GACV,YAAY,CA2CxB"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../lib/helpers/capabilities.js"],"names":[],"mappings":"2BA2Ea,OAAO,eAAe,EAAE,YAAY;0BACpC,OAAO,eAAe,EAAE,WAAW;2BACnC,OAAO,eAAe,EAAE,YAAY;AAzEjD,8CAoBC;AAED;;;;;;GAMG;AACH,sCALW,YAAY,yBACZ,WAAW,OACX,YAAY,GACV,YAAY,CAuCxB"}
@@ -74,4 +74,4 @@ function fixCaps(originalCaps, desiredCapConstraints, log) {
74
74
 
75
75
  return caps;
76
76
  }
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oZWxwZXJzL2NhcGFiaWxpdGllcy5qcyJdLCJuYW1lcyI6WyJpc1czY0NhcHMiLCJjYXBzIiwiXyIsImlzUGxhaW5PYmplY3QiLCJpc0ZpcnN0TWF0Y2hWYWxpZCIsImlzQXJyYXkiLCJmaXJzdE1hdGNoIiwiaXNFbXB0eSIsImV2ZXJ5IiwiaXNBbHdheXNNYXRjaFZhbGlkIiwiYWx3YXlzTWF0Y2giLCJoYXMiLCJmaXhDYXBzIiwib3JpZ2luYWxDYXBzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9nIiwiY2xvbmUiLCJib29sZWFuQ2FwcyIsImtleXMiLCJwaWNrQnkiLCJrIiwiaXNCb29sZWFuIiwiY2FwIiwidmFsdWUiLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwid2FybiIsImludENhcHMiLCJpc051bWJlciIsInRyaW0iLCJuZXdWYWx1ZSIsInBhcnNlSW50IiwicGFyc2VGbG9hdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRUE7O0FBRUEsU0FBU0EsU0FBVCxDQUFvQkMsSUFBcEIsRUFBMEI7QUFDeEIsTUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxRQUFNRyxpQkFBaUIsR0FBRyxNQUFNRixnQkFBRUcsT0FBRixDQUFVSixJQUFJLENBQUNLLFVBQWYsS0FDM0IsQ0FBQ0osZ0JBQUVLLE9BQUYsQ0FBVU4sSUFBSSxDQUFDSyxVQUFmLENBRDBCLElBQ0lKLGdCQUFFTSxLQUFGLENBQVFQLElBQUksQ0FBQ0ssVUFBYixFQUF5QkosZ0JBQUVDLGFBQTNCLENBRHBDOztBQUVBLFFBQU1NLGtCQUFrQixHQUFHLE1BQU1QLGdCQUFFQyxhQUFGLENBQWdCRixJQUFJLENBQUNTLFdBQXJCLENBQWpDOztBQUNBLE1BQUlSLGdCQUFFUyxHQUFGLENBQU1WLElBQU4sRUFBWSxZQUFaLEtBQTZCQyxnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFqQyxFQUE2RDtBQUMzRCxXQUFPRyxpQkFBaUIsTUFBTUssa0JBQWtCLEVBQWhEO0FBQ0Q7O0FBQ0QsTUFBSVAsZ0JBQUVTLEdBQUYsQ0FBTVYsSUFBTixFQUFZLFlBQVosQ0FBSixFQUErQjtBQUM3QixXQUFPRyxpQkFBaUIsRUFBeEI7QUFDRDs7QUFDRCxNQUFJRixnQkFBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFKLEVBQWdDO0FBQzlCLFdBQU9RLGtCQUFrQixFQUF6QjtBQUNEOztBQUNELFNBQU8sS0FBUDtBQUNEOztBQVNELFNBQVNHLE9BQVQsQ0FBa0JDLFlBQWxCLEVBQWdDQyxxQkFBaEMsRUFBdURDLEdBQXZELEVBQTREO0FBQzFELE1BQUlkLElBQUksR0FBR0MsZ0JBQUVjLEtBQUYsQ0FBUUgsWUFBUixDQUFYOztBQUlBLE1BQUlJLFdBQVcsR0FBR2YsZ0JBQUVnQixJQUFGLENBQ2hCaEIsZ0JBQUVpQixNQUFGLENBQVNMLHFCQUFULEVBQWlDTSxDQUFELElBQU9BLENBQUMsQ0FBQ0MsU0FBRixLQUFnQixJQUF2RCxDQURnQixDQUFsQjs7QUFHQSxPQUFLLElBQUlDLEdBQVQsSUFBZ0JMLFdBQWhCLEVBQTZCO0FBQzNCLFFBQUlNLEtBQUssR0FBR1YsWUFBWSxDQUFDUyxHQUFELENBQXhCOztBQUNBLFFBQUlwQixnQkFBRXNCLFFBQUYsQ0FBV0QsS0FBWCxDQUFKLEVBQXVCO0FBQ3JCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0UsV0FBTixFQUFSOztBQUNBLFVBQUlGLEtBQUssS0FBSyxNQUFWLElBQW9CQSxLQUFLLEtBQUssT0FBbEMsRUFBMkM7QUFDekNSLFFBQUFBLEdBQUcsQ0FBQ1csSUFBSixDQUNHLGVBQWNKLEdBQUksc0VBRHJCO0FBR0FyQixRQUFBQSxJQUFJLENBQUNxQixHQUFELENBQUosR0FBWUMsS0FBSyxLQUFLLE1BQXRCO0FBQ0Q7QUFDRjtBQUNGOztBQUdELE1BQUlJLE9BQU8sR0FBR3pCLGdCQUFFZ0IsSUFBRixDQUNaaEIsZ0JBQUVpQixNQUFGLENBQVNMLHFCQUFULEVBQWlDTSxDQUFELElBQU9BLENBQUMsQ0FBQ1EsUUFBRixLQUFlLElBQXRELENBRFksQ0FBZDs7QUFHQSxPQUFLLElBQUlOLEdBQVQsSUFBZ0JLLE9BQWhCLEVBQXlCO0FBQ3ZCLFFBQUlKLEtBQUssR0FBR1YsWUFBWSxDQUFDUyxHQUFELENBQXhCOztBQUNBLFFBQUlwQixnQkFBRXNCLFFBQUYsQ0FBV0QsS0FBWCxDQUFKLEVBQXVCO0FBQ3JCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ00sSUFBTixFQUFSO0FBQ0EsVUFBSUMsUUFBUSxHQUFHQyxRQUFRLENBQUNSLEtBQUQsRUFBUSxFQUFSLENBQXZCOztBQUNBLFVBQUlBLEtBQUssS0FBTSxHQUFFTyxRQUFTLEVBQTFCLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLEdBQUdFLFVBQVUsQ0FBQ1QsS0FBRCxDQUFyQjtBQUNEOztBQUNEUixNQUFBQSxHQUFHLENBQUNXLElBQUosQ0FDRyxlQUFjSixHQUFJLDJCQUEwQkMsS0FBTSxrQkFBaUJPLFFBQVMsdUNBRC9FO0FBR0E3QixNQUFBQSxJQUFJLENBQUNxQixHQUFELENBQUosR0FBWVEsUUFBWjtBQUNEO0FBQ0Y7O0FBRUQsU0FBTzdCLElBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5mdW5jdGlvbiBpc1czY0NhcHMgKGNhcHMpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoY2FwcykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpc0ZpcnN0TWF0Y2hWYWxpZCA9ICgpID0+IF8uaXNBcnJheShjYXBzLmZpcnN0TWF0Y2gpXG4gICAgJiYgIV8uaXNFbXB0eShjYXBzLmZpcnN0TWF0Y2gpICYmIF8uZXZlcnkoY2Fwcy5maXJzdE1hdGNoLCBfLmlzUGxhaW5PYmplY3QpO1xuICBjb25zdCBpc0Fsd2F5c01hdGNoVmFsaWQgPSAoKSA9PiBfLmlzUGxhaW5PYmplY3QoY2Fwcy5hbHdheXNNYXRjaCk7XG4gIGlmIChfLmhhcyhjYXBzLCAnZmlyc3RNYXRjaCcpICYmIF8uaGFzKGNhcHMsICdhbHdheXNNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzRmlyc3RNYXRjaFZhbGlkKCkgJiYgaXNBbHdheXNNYXRjaFZhbGlkKCk7XG4gIH1cbiAgaWYgKF8uaGFzKGNhcHMsICdmaXJzdE1hdGNoJykpIHtcbiAgICByZXR1cm4gaXNGaXJzdE1hdGNoVmFsaWQoKTtcbiAgfVxuICBpZiAoXy5oYXMoY2FwcywgJ2Fsd2F5c01hdGNoJykpIHtcbiAgICByZXR1cm4gaXNBbHdheXNNYXRjaFZhbGlkKCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge0NhcGFiaWxpdGllc30gb3JpZ2luYWxDYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBkZXNpcmVkQ2FwQ29uc3RyYWludHNcbiAqIEBwYXJhbSB7QXBwaXVtTG9nZ2VyfSBsb2dcbiAqIEByZXR1cm5zIHtDYXBhYmlsaXRpZXN9XG4gKi9cbmZ1bmN0aW9uIGZpeENhcHMgKG9yaWdpbmFsQ2FwcywgZGVzaXJlZENhcENvbnN0cmFpbnRzLCBsb2cpIHtcbiAgbGV0IGNhcHMgPSBfLmNsb25lKG9yaWdpbmFsQ2Fwcyk7XG5cbiAgLy8gYm9vbGVhbiBjYXBhYmlsaXRpZXMgY2FuIGJlIHBhc3NlZCBpbiBhcyBzdHJpbmdzICdmYWxzZScgYW5kICd0cnVlJ1xuICAvLyB3aGljaCB3ZSB3YW50IHRvIHRyYW5zbGF0ZSBpbnRvIGJvb2xlYW4gdmFsdWVzXG4gIGxldCBib29sZWFuQ2FwcyA9IF8ua2V5cyhcbiAgICBfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzQm9vbGVhbiA9PT0gdHJ1ZSksXG4gICk7XG4gIGZvciAobGV0IGNhcCBvZiBib29sZWFuQ2Fwcykge1xuICAgIGxldCB2YWx1ZSA9IG9yaWdpbmFsQ2Fwc1tjYXBdO1xuICAgIGlmIChfLmlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHZhbHVlID09PSAndHJ1ZScgfHwgdmFsdWUgPT09ICdmYWxzZScpIHtcbiAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgYENhcGFiaWxpdHkgJyR7Y2FwfScgY2hhbmdlZCBmcm9tIHN0cmluZyB0byBib29sZWFuLiBUaGlzIG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yYCxcbiAgICAgICAgKTtcbiAgICAgICAgY2Fwc1tjYXBdID0gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbnQgY2FwYWJpbGl0aWVzIGFyZSBvZnRlbiBzZW50IGluIGFzIHN0cmluZ3MgYnkgZnJhbWV3b3Jrc1xuICBsZXQgaW50Q2FwcyA9IF8ua2V5cyhcbiAgICBfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzTnVtYmVyID09PSB0cnVlKSxcbiAgKTtcbiAgZm9yIChsZXQgY2FwIG9mIGludENhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpO1xuICAgICAgbGV0IG5ld1ZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gYCR7bmV3VmFsdWV9YCkge1xuICAgICAgICBuZXdWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgfVxuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBDYXBhYmlsaXR5ICcke2NhcH0nIGNoYW5nZWQgZnJvbSBzdHJpbmcgKCcke3ZhbHVlfScpIHRvIGludGVnZXIgKCR7bmV3VmFsdWV9KS4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmAsXG4gICAgICApO1xuICAgICAgY2Fwc1tjYXBdID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhcHM7XG59XG5cbmV4cG9ydCB7XG4gIGlzVzNjQ2FwcyxcbiAgZml4Q2Fwc1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ2FwYWJpbGl0aWVzfSBDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXX0=
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1czY0NhcHMiLCJjYXBzIiwiXyIsImlzUGxhaW5PYmplY3QiLCJpc0ZpcnN0TWF0Y2hWYWxpZCIsImlzQXJyYXkiLCJmaXJzdE1hdGNoIiwiaXNFbXB0eSIsImV2ZXJ5IiwiaXNBbHdheXNNYXRjaFZhbGlkIiwiYWx3YXlzTWF0Y2giLCJoYXMiLCJmaXhDYXBzIiwib3JpZ2luYWxDYXBzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwibG9nIiwiY2xvbmUiLCJib29sZWFuQ2FwcyIsImtleXMiLCJwaWNrQnkiLCJrIiwiaXNCb29sZWFuIiwiY2FwIiwidmFsdWUiLCJpc1N0cmluZyIsInRvTG93ZXJDYXNlIiwid2FybiIsImludENhcHMiLCJpc051bWJlciIsInRyaW0iLCJuZXdWYWx1ZSIsInBhcnNlSW50IiwicGFyc2VGbG9hdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oZWxwZXJzL2NhcGFiaWxpdGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuZnVuY3Rpb24gaXNXM2NDYXBzKGNhcHMpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoY2FwcykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpc0ZpcnN0TWF0Y2hWYWxpZCA9ICgpID0+XG4gICAgXy5pc0FycmF5KGNhcHMuZmlyc3RNYXRjaCkgJiZcbiAgICAhXy5pc0VtcHR5KGNhcHMuZmlyc3RNYXRjaCkgJiZcbiAgICBfLmV2ZXJ5KGNhcHMuZmlyc3RNYXRjaCwgXy5pc1BsYWluT2JqZWN0KTtcbiAgY29uc3QgaXNBbHdheXNNYXRjaFZhbGlkID0gKCkgPT4gXy5pc1BsYWluT2JqZWN0KGNhcHMuYWx3YXlzTWF0Y2gpO1xuICBpZiAoXy5oYXMoY2FwcywgJ2ZpcnN0TWF0Y2gnKSAmJiBfLmhhcyhjYXBzLCAnYWx3YXlzTWF0Y2gnKSkge1xuICAgIHJldHVybiBpc0ZpcnN0TWF0Y2hWYWxpZCgpICYmIGlzQWx3YXlzTWF0Y2hWYWxpZCgpO1xuICB9XG4gIGlmIChfLmhhcyhjYXBzLCAnZmlyc3RNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzRmlyc3RNYXRjaFZhbGlkKCk7XG4gIH1cbiAgaWYgKF8uaGFzKGNhcHMsICdhbHdheXNNYXRjaCcpKSB7XG4gICAgcmV0dXJuIGlzQWx3YXlzTWF0Y2hWYWxpZCgpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtDYXBhYmlsaXRpZXN9IG9yaWdpbmFsQ2Fwc1xuICogQHBhcmFtIHtDb25zdHJhaW50c30gZGVzaXJlZENhcENvbnN0cmFpbnRzXG4gKiBAcGFyYW0ge0FwcGl1bUxvZ2dlcn0gbG9nXG4gKiBAcmV0dXJucyB7Q2FwYWJpbGl0aWVzfVxuICovXG5mdW5jdGlvbiBmaXhDYXBzKG9yaWdpbmFsQ2FwcywgZGVzaXJlZENhcENvbnN0cmFpbnRzLCBsb2cpIHtcbiAgbGV0IGNhcHMgPSBfLmNsb25lKG9yaWdpbmFsQ2Fwcyk7XG5cbiAgLy8gYm9vbGVhbiBjYXBhYmlsaXRpZXMgY2FuIGJlIHBhc3NlZCBpbiBhcyBzdHJpbmdzICdmYWxzZScgYW5kICd0cnVlJ1xuICAvLyB3aGljaCB3ZSB3YW50IHRvIHRyYW5zbGF0ZSBpbnRvIGJvb2xlYW4gdmFsdWVzXG4gIGxldCBib29sZWFuQ2FwcyA9IF8ua2V5cyhfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzQm9vbGVhbiA9PT0gdHJ1ZSkpO1xuICBmb3IgKGxldCBjYXAgb2YgYm9vbGVhbkNhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3RydWUnIHx8IHZhbHVlID09PSAnZmFsc2UnKSB7XG4gICAgICAgIGxvZy53YXJuKFxuICAgICAgICAgIGBDYXBhYmlsaXR5ICcke2NhcH0nIGNoYW5nZWQgZnJvbSBzdHJpbmcgdG8gYm9vbGVhbi4gVGhpcyBtYXkgY2F1c2UgdW5leHBlY3RlZCBiZWhhdmlvcmBcbiAgICAgICAgKTtcbiAgICAgICAgY2Fwc1tjYXBdID0gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpbnQgY2FwYWJpbGl0aWVzIGFyZSBvZnRlbiBzZW50IGluIGFzIHN0cmluZ3MgYnkgZnJhbWV3b3Jrc1xuICBsZXQgaW50Q2FwcyA9IF8ua2V5cyhfLnBpY2tCeShkZXNpcmVkQ2FwQ29uc3RyYWludHMsIChrKSA9PiBrLmlzTnVtYmVyID09PSB0cnVlKSk7XG4gIGZvciAobGV0IGNhcCBvZiBpbnRDYXBzKSB7XG4gICAgbGV0IHZhbHVlID0gb3JpZ2luYWxDYXBzW2NhcF07XG4gICAgaWYgKF8uaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICAgIGxldCBuZXdWYWx1ZSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICBpZiAodmFsdWUgIT09IGAke25ld1ZhbHVlfWApIHtcbiAgICAgICAgbmV3VmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGxvZy53YXJuKFxuICAgICAgICBgQ2FwYWJpbGl0eSAnJHtjYXB9JyBjaGFuZ2VkIGZyb20gc3RyaW5nICgnJHt2YWx1ZX0nKSB0byBpbnRlZ2VyICgke25ld1ZhbHVlfSkuIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3JgXG4gICAgICApO1xuICAgICAgY2Fwc1tjYXBdID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNhcHM7XG59XG5cbmV4cG9ydCB7aXNXM2NDYXBzLCBmaXhDYXBzfTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQ2FwYWJpbGl0aWVzfSBDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUVBOztBQUVBLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCO0VBQ3ZCLElBQUksQ0FBQ0MsZUFBQSxDQUFFQyxhQUFGLENBQWdCRixJQUFoQixDQUFMLEVBQTRCO0lBQzFCLE9BQU8sS0FBUDtFQUNEOztFQUVELE1BQU1HLGlCQUFpQixHQUFHLE1BQ3hCRixlQUFBLENBQUVHLE9BQUYsQ0FBVUosSUFBSSxDQUFDSyxVQUFmLEtBQ0EsQ0FBQ0osZUFBQSxDQUFFSyxPQUFGLENBQVVOLElBQUksQ0FBQ0ssVUFBZixDQURELElBRUFKLGVBQUEsQ0FBRU0sS0FBRixDQUFRUCxJQUFJLENBQUNLLFVBQWIsRUFBeUJKLGVBQUEsQ0FBRUMsYUFBM0IsQ0FIRjs7RUFJQSxNQUFNTSxrQkFBa0IsR0FBRyxNQUFNUCxlQUFBLENBQUVDLGFBQUYsQ0FBZ0JGLElBQUksQ0FBQ1MsV0FBckIsQ0FBakM7O0VBQ0EsSUFBSVIsZUFBQSxDQUFFUyxHQUFGLENBQU1WLElBQU4sRUFBWSxZQUFaLEtBQTZCQyxlQUFBLENBQUVTLEdBQUYsQ0FBTVYsSUFBTixFQUFZLGFBQVosQ0FBakMsRUFBNkQ7SUFDM0QsT0FBT0csaUJBQWlCLE1BQU1LLGtCQUFrQixFQUFoRDtFQUNEOztFQUNELElBQUlQLGVBQUEsQ0FBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksWUFBWixDQUFKLEVBQStCO0lBQzdCLE9BQU9HLGlCQUFpQixFQUF4QjtFQUNEOztFQUNELElBQUlGLGVBQUEsQ0FBRVMsR0FBRixDQUFNVixJQUFOLEVBQVksYUFBWixDQUFKLEVBQWdDO0lBQzlCLE9BQU9RLGtCQUFrQixFQUF6QjtFQUNEOztFQUNELE9BQU8sS0FBUDtBQUNEOztBQVNELFNBQVNHLE9BQVQsQ0FBaUJDLFlBQWpCLEVBQStCQyxxQkFBL0IsRUFBc0RDLEdBQXRELEVBQTJEO0VBQ3pELElBQUlkLElBQUksR0FBR0MsZUFBQSxDQUFFYyxLQUFGLENBQVFILFlBQVIsQ0FBWDs7RUFJQSxJQUFJSSxXQUFXLEdBQUdmLGVBQUEsQ0FBRWdCLElBQUYsQ0FBT2hCLGVBQUEsQ0FBRWlCLE1BQUYsQ0FBU0wscUJBQVQsRUFBaUNNLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxTQUFGLEtBQWdCLElBQXZELENBQVAsQ0FBbEI7O0VBQ0EsS0FBSyxJQUFJQyxHQUFULElBQWdCTCxXQUFoQixFQUE2QjtJQUMzQixJQUFJTSxLQUFLLEdBQUdWLFlBQVksQ0FBQ1MsR0FBRCxDQUF4Qjs7SUFDQSxJQUFJcEIsZUFBQSxDQUFFc0IsUUFBRixDQUFXRCxLQUFYLENBQUosRUFBdUI7TUFDckJBLEtBQUssR0FBR0EsS0FBSyxDQUFDRSxXQUFOLEVBQVI7O01BQ0EsSUFBSUYsS0FBSyxLQUFLLE1BQVYsSUFBb0JBLEtBQUssS0FBSyxPQUFsQyxFQUEyQztRQUN6Q1IsR0FBRyxDQUFDVyxJQUFKLENBQ0csZUFBY0osR0FBSSxzRUFEckI7UUFHQXJCLElBQUksQ0FBQ3FCLEdBQUQsQ0FBSixHQUFZQyxLQUFLLEtBQUssTUFBdEI7TUFDRDtJQUNGO0VBQ0Y7O0VBR0QsSUFBSUksT0FBTyxHQUFHekIsZUFBQSxDQUFFZ0IsSUFBRixDQUFPaEIsZUFBQSxDQUFFaUIsTUFBRixDQUFTTCxxQkFBVCxFQUFpQ00sQ0FBRCxJQUFPQSxDQUFDLENBQUNRLFFBQUYsS0FBZSxJQUF0RCxDQUFQLENBQWQ7O0VBQ0EsS0FBSyxJQUFJTixHQUFULElBQWdCSyxPQUFoQixFQUF5QjtJQUN2QixJQUFJSixLQUFLLEdBQUdWLFlBQVksQ0FBQ1MsR0FBRCxDQUF4Qjs7SUFDQSxJQUFJcEIsZUFBQSxDQUFFc0IsUUFBRixDQUFXRCxLQUFYLENBQUosRUFBdUI7TUFDckJBLEtBQUssR0FBR0EsS0FBSyxDQUFDTSxJQUFOLEVBQVI7TUFDQSxJQUFJQyxRQUFRLEdBQUdDLFFBQVEsQ0FBQ1IsS0FBRCxFQUFRLEVBQVIsQ0FBdkI7O01BQ0EsSUFBSUEsS0FBSyxLQUFNLEdBQUVPLFFBQVMsRUFBMUIsRUFBNkI7UUFDM0JBLFFBQVEsR0FBR0UsVUFBVSxDQUFDVCxLQUFELENBQXJCO01BQ0Q7O01BQ0RSLEdBQUcsQ0FBQ1csSUFBSixDQUNHLGVBQWNKLEdBQUksMkJBQTBCQyxLQUFNLGtCQUFpQk8sUUFBUyx1Q0FEL0U7TUFHQTdCLElBQUksQ0FBQ3FCLEdBQUQsQ0FBSixHQUFZUSxRQUFaO0lBQ0Q7RUFDRjs7RUFFRCxPQUFPN0IsSUFBUDtBQUNEIn0=
@@ -1,5 +1,6 @@
1
1
  export { DriverCore } from "./basedriver/core";
2
2
  export default BaseDriver;
3
+ export { PREFIXED_APPIUM_OPTS_CAP } from "./basedriver/capabilities";
3
4
  import { BaseDriver } from "./basedriver/driver";
4
5
  import { DeviceSettings } from "./basedriver/device-settings";
5
6
  export const routeConfiguringFunction: typeof protocol.routeConfiguringFunction;
@@ -51,7 +52,7 @@ export const errorFromMJSONWPStatusCode: typeof protocol.errorFromMJSONWPStatusC
51
52
  export const errorFromW3CJsonCode: typeof protocol.errorFromW3CJsonCode;
52
53
  export const determineProtocol: typeof protocol.determineProtocol;
53
54
  export const ALL_COMMANDS: any[];
54
- export const METHOD_MAP: import("@appium/types").MethodMap<import("@appium/types").ExternalDriver>;
55
+ export const METHOD_MAP: import("./protocol/routes").MethodMap;
55
56
  export const routeToCommandName: typeof protocol.routeToCommandName;
56
57
  export const NO_SESSION_ID_COMMANDS: string[];
57
58
  export const isSessionCommand: typeof protocol.isSessionCommand;
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "DriverCore", {
33
33
  }
34
34
  });
35
35
  exports.NO_SESSION_ID_COMMANDS = exports.METHOD_MAP = exports.JWProxy = exports.GET_STATUS_COMMAND = void 0;
36
+ Object.defineProperty(exports, "PREFIXED_APPIUM_OPTS_CAP", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return caps.PREFIXED_APPIUM_OPTS_CAP;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "PROTOCOLS", {
37
43
  enumerable: true,
38
44
  get: function () {
@@ -139,4 +145,4 @@ const {
139
145
  DEFAULT_WS_PATHNAME_PREFIX
140
146
  } = ws;
141
147
  exports.DEFAULT_WS_PATHNAME_PREFIX = DEFAULT_WS_PATHNAME_PREFIX;
142
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9pbmRleC5qcyJdLCJuYW1lcyI6WyJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiQmFzZURyaXZlciIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsImVycm9ycyIsImlzRXJyb3JUeXBlIiwiZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUiLCJlcnJvckZyb21XM0NKc29uQ29kZSIsIkFMTF9DT01NQU5EUyIsIk1FVEhPRF9NQVAiLCJyb3V0ZVRvQ29tbWFuZE5hbWUiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIiwiaXNTZXNzaW9uQ29tbWFuZCIsImRldGVybWluZVByb3RvY29sIiwiQ1JFQVRFX1NFU1NJT05fQ09NTUFORCIsIkRFTEVURV9TRVNTSU9OX0NPTU1BTkQiLCJHRVRfU1RBVFVTX0NPTU1BTkQiLCJwcm90b2NvbCIsIlNUQVRJQ19ESVIiLCJzdGF0aWNJbmRleCIsInNlcnZlciIsIm5vcm1hbGl6ZUJhc2VQYXRoIiwic2VydmVySW5kZXgiLCJKV1Byb3h5IiwicHJveHlJbmRleCIsImNvZGVzIiwic3RhdHVzQ29kZXMiLCJnZXRTdW1tYXJ5QnlDb2RlIiwic3RhdHVzSW5kZXgiLCJwcm9jZXNzQ2FwYWJpbGl0aWVzIiwiaXNTdGFuZGFyZENhcCIsInZhbGlkYXRlQ2FwcyIsImNhcHMiLCJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsIndzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFPQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFzQkE7O0FBSUE7O0FBS0E7O0FBS0E7O0FBS0E7O0FBS0E7Ozs7OztBQTdEQUEsa0JBQUVDLE1BQUYsQ0FBUztBQUNQQyxFQUFBQSxZQUFZLEVBQUU7QUFEUCxDQUFUOztlQVVlQyxrQjs7QUFTZixNQUFNO0FBQ0pDLEVBQUFBLHdCQURJO0FBQ3NCQyxFQUFBQSxNQUR0QjtBQUM4QkMsRUFBQUEsV0FEOUI7QUFFSkMsRUFBQUEsMEJBRkk7QUFFd0JDLEVBQUFBLG9CQUZ4QjtBQUU4Q0MsRUFBQUEsWUFGOUM7QUFFNERDLEVBQUFBLFVBRjVEO0FBR0pDLEVBQUFBLGtCQUhJO0FBR2dCQyxFQUFBQSxzQkFIaEI7QUFHd0NDLEVBQUFBLGdCQUh4QztBQUlKQyxFQUFBQSxpQkFKSTtBQUllQyxFQUFBQSxzQkFKZjtBQUtKQyxFQUFBQSxzQkFMSTtBQUtvQkMsRUFBQUE7QUFMcEIsSUFNRkMsUUFOSjs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFpQkMsV0FBdkI7O0FBSUEsTUFBTTtBQUFFQyxFQUFBQSxNQUFGO0FBQVVDLEVBQUFBO0FBQVYsSUFBZ0NDLFdBQXRDOzs7QUFLQSxNQUFNO0FBQUVDLEVBQUFBO0FBQUYsSUFBY0MsVUFBcEI7O0FBS0EsTUFBTTtBQUFFQyxFQUFBQSxLQUFLLEVBQUVDLFdBQVQ7QUFBc0JDLEVBQUFBO0FBQXRCLElBQTJDQyxXQUFqRDs7O0FBS0EsTUFBTTtBQUFFQyxFQUFBQSxtQkFBRjtBQUF1QkMsRUFBQUEsYUFBdkI7QUFBc0NDLEVBQUFBO0FBQXRDLElBQXVEQyxJQUE3RDs7OztBQUtBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFpQ0MsRUFBdkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG5CLmNvbmZpZyh7XG4gIGNhbmNlbGxhdGlvbjogdHJ1ZSxcbn0pO1xuXG4vLyBCYXNlRHJpdmVyIGV4cG9ydHNcbmltcG9ydCB7IEJhc2VEcml2ZXIgfSBmcm9tICcuL2Jhc2Vkcml2ZXIvZHJpdmVyJztcbmV4cG9ydCB7IERyaXZlckNvcmUgfSBmcm9tICcuL2Jhc2Vkcml2ZXIvY29yZSc7XG5pbXBvcnQgeyBEZXZpY2VTZXR0aW5ncyB9IGZyb20gJy4vYmFzZWRyaXZlci9kZXZpY2Utc2V0dGluZ3MnO1xuXG5leHBvcnQgeyBCYXNlRHJpdmVyLCBEZXZpY2VTZXR0aW5ncyB9O1xuZXhwb3J0IGRlZmF1bHQgQmFzZURyaXZlcjtcblxuXG4vLyBNSlNPTldQIGV4cG9ydHNcbmltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2wnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9CQVNFX1BBVEgsIFBST1RPQ09MU1xufSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcbiAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCBlcnJvcnMsIGlzRXJyb3JUeXBlLFxuICBlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSwgZXJyb3JGcm9tVzNDSnNvbkNvZGUsIEFMTF9DT01NQU5EUywgTUVUSE9EX01BUCxcbiAgcm91dGVUb0NvbW1hbmROYW1lLCBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLCBpc1Nlc3Npb25Db21tYW5kLFxuICBkZXRlcm1pbmVQcm90b2NvbCwgQ1JFQVRFX1NFU1NJT05fQ09NTUFORCxcbiAgREVMRVRFX1NFU1NJT05fQ09NTUFORCwgR0VUX1NUQVRVU19DT01NQU5ELFxufSA9IHByb3RvY29sO1xuXG5leHBvcnQge1xuICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sIGVycm9ycywgaXNFcnJvclR5cGUsIFBST1RPQ09MUyxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlLCBkZXRlcm1pbmVQcm90b2NvbCxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUgYXMgZXJyb3JGcm9tQ29kZSwgQUxMX0NPTU1BTkRTLCBNRVRIT0RfTUFQLFxuICByb3V0ZVRvQ29tbWFuZE5hbWUsIE5PX1NFU1NJT05fSURfQ09NTUFORFMsIGlzU2Vzc2lvbkNvbW1hbmQsXG4gIERFRkFVTFRfQkFTRV9QQVRILCBDUkVBVEVfU0VTU0lPTl9DT01NQU5ELFxuICBERUxFVEVfU0VTU0lPTl9DT01NQU5ELCBHRVRfU1RBVFVTX0NPTU1BTkQsXG59O1xuXG4vLyBFeHByZXNzIGV4cG9ydHNcbmltcG9ydCAqIGFzIHN0YXRpY0luZGV4IGZyb20gJy4vZXhwcmVzcy9zdGF0aWMnO1xuY29uc3QgeyBTVEFUSUNfRElSIH0gPSBzdGF0aWNJbmRleDtcbmV4cG9ydCB7IFNUQVRJQ19ESVIgfTtcblxuaW1wb3J0ICogYXMgc2VydmVySW5kZXggZnJvbSAnLi9leHByZXNzL3NlcnZlcic7XG5jb25zdCB7IHNlcnZlciwgbm9ybWFsaXplQmFzZVBhdGggfSA9IHNlcnZlckluZGV4O1xuZXhwb3J0IHsgc2VydmVyLCBub3JtYWxpemVCYXNlUGF0aCB9O1xuXG4vLyBqc29ud3AtcHJveHkgZXhwb3J0c1xuaW1wb3J0ICogYXMgcHJveHlJbmRleCBmcm9tICcuL2pzb253cC1wcm94eS9wcm94eSc7XG5jb25zdCB7IEpXUHJveHkgfSA9IHByb3h5SW5kZXg7XG5leHBvcnQgeyBKV1Byb3h5IH07XG5cbi8vIGpzb253cC1zdGF0dXMgZXhwb3J0c1xuaW1wb3J0ICogYXMgc3RhdHVzSW5kZXggZnJvbSAnLi9qc29ud3Atc3RhdHVzL3N0YXR1cyc7XG5jb25zdCB7IGNvZGVzOiBzdGF0dXNDb2RlcywgZ2V0U3VtbWFyeUJ5Q29kZSB9ID0gc3RhdHVzSW5kZXg7XG5leHBvcnQgeyBzdGF0dXNDb2RlcywgZ2V0U3VtbWFyeUJ5Q29kZSB9O1xuXG4vLyBXM0MgY2FwYWJpbGl0aWVzIHBhcnNlclxuaW1wb3J0ICogYXMgY2FwcyBmcm9tICcuL2Jhc2Vkcml2ZXIvY2FwYWJpbGl0aWVzJztcbmNvbnN0IHsgcHJvY2Vzc0NhcGFiaWxpdGllcywgaXNTdGFuZGFyZENhcCwgdmFsaWRhdGVDYXBzIH0gPSBjYXBzO1xuZXhwb3J0IHsgcHJvY2Vzc0NhcGFiaWxpdGllcywgaXNTdGFuZGFyZENhcCwgdmFsaWRhdGVDYXBzIH07XG5cbi8vIFdlYiBzb2NrZXQgaGVscGVyc1xuaW1wb3J0ICogYXMgd3MgZnJvbSAnLi9leHByZXNzL3dlYnNvY2tldCc7XG5jb25zdCB7IERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIH0gPSB3cztcbmV4cG9ydCB7IERFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYIH07XG4iXX0=
148
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCIiwiY29uZmlnIiwiY2FuY2VsbGF0aW9uIiwiQmFzZURyaXZlciIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsImVycm9ycyIsImlzRXJyb3JUeXBlIiwiZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUiLCJlcnJvckZyb21XM0NKc29uQ29kZSIsIkFMTF9DT01NQU5EUyIsIk1FVEhPRF9NQVAiLCJyb3V0ZVRvQ29tbWFuZE5hbWUiLCJOT19TRVNTSU9OX0lEX0NPTU1BTkRTIiwiaXNTZXNzaW9uQ29tbWFuZCIsImRldGVybWluZVByb3RvY29sIiwiQ1JFQVRFX1NFU1NJT05fQ09NTUFORCIsIkRFTEVURV9TRVNTSU9OX0NPTU1BTkQiLCJHRVRfU1RBVFVTX0NPTU1BTkQiLCJwcm90b2NvbCIsIlNUQVRJQ19ESVIiLCJzdGF0aWNJbmRleCIsInNlcnZlciIsIm5vcm1hbGl6ZUJhc2VQYXRoIiwic2VydmVySW5kZXgiLCJKV1Byb3h5IiwicHJveHlJbmRleCIsImNvZGVzIiwic3RhdHVzQ29kZXMiLCJnZXRTdW1tYXJ5QnlDb2RlIiwic3RhdHVzSW5kZXgiLCJwcm9jZXNzQ2FwYWJpbGl0aWVzIiwiaXNTdGFuZGFyZENhcCIsInZhbGlkYXRlQ2FwcyIsImNhcHMiLCJERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWCIsIndzIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuQi5jb25maWcoe1xuICBjYW5jZWxsYXRpb246IHRydWUsXG59KTtcblxuLy8gQmFzZURyaXZlciBleHBvcnRzXG5pbXBvcnQge0Jhc2VEcml2ZXJ9IGZyb20gJy4vYmFzZWRyaXZlci9kcml2ZXInO1xuZXhwb3J0IHtEcml2ZXJDb3JlfSBmcm9tICcuL2Jhc2Vkcml2ZXIvY29yZSc7XG5pbXBvcnQge0RldmljZVNldHRpbmdzfSBmcm9tICcuL2Jhc2Vkcml2ZXIvZGV2aWNlLXNldHRpbmdzJztcblxuZXhwb3J0IHtCYXNlRHJpdmVyLCBEZXZpY2VTZXR0aW5nc307XG5leHBvcnQgZGVmYXVsdCBCYXNlRHJpdmVyO1xuXG4vLyBNSlNPTldQIGV4cG9ydHNcbmltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2wnO1xuaW1wb3J0IHtERUZBVUxUX0JBU0VfUEFUSCwgUFJPVE9DT0xTfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcbiAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLFxuICBlcnJvcnMsXG4gIGlzRXJyb3JUeXBlLFxuICBlcnJvckZyb21NSlNPTldQU3RhdHVzQ29kZSxcbiAgZXJyb3JGcm9tVzNDSnNvbkNvZGUsXG4gIEFMTF9DT01NQU5EUyxcbiAgTUVUSE9EX01BUCxcbiAgcm91dGVUb0NvbW1hbmROYW1lLFxuICBOT19TRVNTSU9OX0lEX0NPTU1BTkRTLFxuICBpc1Nlc3Npb25Db21tYW5kLFxuICBkZXRlcm1pbmVQcm90b2NvbCxcbiAgQ1JFQVRFX1NFU1NJT05fQ09NTUFORCxcbiAgREVMRVRFX1NFU1NJT05fQ09NTUFORCxcbiAgR0VUX1NUQVRVU19DT01NQU5ELFxufSA9IHByb3RvY29sO1xuXG5leHBvcnQge1xuICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sXG4gIGVycm9ycyxcbiAgaXNFcnJvclR5cGUsXG4gIFBST1RPQ09MUyxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUsXG4gIGVycm9yRnJvbVczQ0pzb25Db2RlLFxuICBkZXRlcm1pbmVQcm90b2NvbCxcbiAgZXJyb3JGcm9tTUpTT05XUFN0YXR1c0NvZGUgYXMgZXJyb3JGcm9tQ29kZSxcbiAgQUxMX0NPTU1BTkRTLFxuICBNRVRIT0RfTUFQLFxuICByb3V0ZVRvQ29tbWFuZE5hbWUsXG4gIE5PX1NFU1NJT05fSURfQ09NTUFORFMsXG4gIGlzU2Vzc2lvbkNvbW1hbmQsXG4gIERFRkFVTFRfQkFTRV9QQVRILFxuICBDUkVBVEVfU0VTU0lPTl9DT01NQU5ELFxuICBERUxFVEVfU0VTU0lPTl9DT01NQU5ELFxuICBHRVRfU1RBVFVTX0NPTU1BTkQsXG59O1xuXG4vLyBFeHByZXNzIGV4cG9ydHNcbmltcG9ydCAqIGFzIHN0YXRpY0luZGV4IGZyb20gJy4vZXhwcmVzcy9zdGF0aWMnO1xuY29uc3Qge1NUQVRJQ19ESVJ9ID0gc3RhdGljSW5kZXg7XG5leHBvcnQge1NUQVRJQ19ESVJ9O1xuXG5pbXBvcnQgKiBhcyBzZXJ2ZXJJbmRleCBmcm9tICcuL2V4cHJlc3Mvc2VydmVyJztcbmNvbnN0IHtzZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRofSA9IHNlcnZlckluZGV4O1xuZXhwb3J0IHtzZXJ2ZXIsIG5vcm1hbGl6ZUJhc2VQYXRofTtcblxuLy8ganNvbndwLXByb3h5IGV4cG9ydHNcbmltcG9ydCAqIGFzIHByb3h5SW5kZXggZnJvbSAnLi9qc29ud3AtcHJveHkvcHJveHknO1xuY29uc3Qge0pXUHJveHl9ID0gcHJveHlJbmRleDtcbmV4cG9ydCB7SldQcm94eX07XG5cbi8vIGpzb253cC1zdGF0dXMgZXhwb3J0c1xuaW1wb3J0ICogYXMgc3RhdHVzSW5kZXggZnJvbSAnLi9qc29ud3Atc3RhdHVzL3N0YXR1cyc7XG5jb25zdCB7Y29kZXM6IHN0YXR1c0NvZGVzLCBnZXRTdW1tYXJ5QnlDb2RlfSA9IHN0YXR1c0luZGV4O1xuZXhwb3J0IHtzdGF0dXNDb2RlcywgZ2V0U3VtbWFyeUJ5Q29kZX07XG5cbi8vIFczQyBjYXBhYmlsaXRpZXMgcGFyc2VyXG5pbXBvcnQgKiBhcyBjYXBzIGZyb20gJy4vYmFzZWRyaXZlci9jYXBhYmlsaXRpZXMnO1xuY29uc3Qge3Byb2Nlc3NDYXBhYmlsaXRpZXMsIGlzU3RhbmRhcmRDYXAsIHZhbGlkYXRlQ2Fwc30gPSBjYXBzO1xuZXhwb3J0IHtwcm9jZXNzQ2FwYWJpbGl0aWVzLCBpc1N0YW5kYXJkQ2FwLCB2YWxpZGF0ZUNhcHN9O1xuXG4vLyBXZWIgc29ja2V0IGhlbHBlcnNcbmltcG9ydCAqIGFzIHdzIGZyb20gJy4vZXhwcmVzcy93ZWJzb2NrZXQnO1xuY29uc3Qge0RFRkFVTFRfV1NfUEFUSE5BTUVfUFJFRklYfSA9IHdzO1xuZXhwb3J0IHtERUZBVUxUX1dTX1BBVEhOQU1FX1BSRUZJWH07XG5cbmV4cG9ydCB7UFJFRklYRURfQVBQSVVNX09QVFNfQ0FQfSBmcm9tICcuL2Jhc2Vkcml2ZXIvY2FwYWJpbGl0aWVzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBT0E7O0FBQ0E7O0FBQ0E7O0FBTUE7O0FBQ0E7O0FBd0NBOztBQUlBOztBQUtBOztBQUtBOztBQUtBOztBQUtBOzs7Ozs7QUE5RUFBLGlCQUFBLENBQUVDLE1BQUYsQ0FBUztFQUNQQyxZQUFZLEVBQUU7QUFEUCxDQUFUOztlQVVlQyxrQjs7QUFNZixNQUFNO0VBQ0pDLHdCQURJO0VBRUpDLE1BRkk7RUFHSkMsV0FISTtFQUlKQywwQkFKSTtFQUtKQyxvQkFMSTtFQU1KQyxZQU5JO0VBT0pDLFVBUEk7RUFRSkMsa0JBUkk7RUFTSkMsc0JBVEk7RUFVSkMsZ0JBVkk7RUFXSkMsaUJBWEk7RUFZSkMsc0JBWkk7RUFhSkMsc0JBYkk7RUFjSkM7QUFkSSxJQWVGQyxRQWZKOzs7Ozs7Ozs7Ozs7Ozs7QUF1Q0EsTUFBTTtFQUFDQztBQUFELElBQWVDLFdBQXJCOztBQUlBLE1BQU07RUFBQ0MsTUFBRDtFQUFTQztBQUFULElBQThCQyxXQUFwQzs7O0FBS0EsTUFBTTtFQUFDQztBQUFELElBQVlDLFVBQWxCOztBQUtBLE1BQU07RUFBQ0MsS0FBSyxFQUFFQyxXQUFSO0VBQXFCQztBQUFyQixJQUF5Q0MsV0FBL0M7OztBQUtBLE1BQU07RUFBQ0MsbUJBQUQ7RUFBc0JDLGFBQXRCO0VBQXFDQztBQUFyQyxJQUFxREMsSUFBM0Q7Ozs7QUFLQSxNQUFNO0VBQUNDO0FBQUQsSUFBK0JDLEVBQXJDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-converter.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"AAOA;;;;IAqCE;;AAKF;IACE,wCAIC;IAHC,eAA0B;IAC1B,yBAA+B;IAC/B,UAAe;IAGjB,eAEC;IAED,iCAEC;IAED,8BAEC;IAED;;;;;;;OAOG;IACH,2CAsBC;IAED;;;;;OAKG;IACH,yEAqBC;IAED,+DAoBC;IAED,8DAsBC;IAED,8DAQC;IAED,oEAKC;IAED,yDAEC;IAED;;;;;;;;;OASG;IACH,6BANW,MAAM,OACN,MAAM,UACN,MAAM,SACL,MAAM,GAAC,MAAM,wBA+CxB;CACF"}
1
+ {"version":3,"file":"protocol-converter.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/protocol-converter.js"],"names":[],"mappings":"AAKA;;;;IAmCE;;AAIF;IACE,wCAIC;IAHC,eAA0B;IAC1B,yBAA+B;IAC/B,UAAe;IAGjB,eAEC;IAED,iCAEC;IAED,8BAEC;IAED;;;;;;;OAOG;IACH,2CA0BC;IAED;;;;;OAKG;IACH,yEAyBC;IAED,+DAwBC;IAED,8DAwBC;IAED,8DAQC;IAED,oEASC;IAED,yDAEC;IAED;;;;;;;;;OASG;IACH,6BANW,MAAM,OACN,MAAM,UACN,MAAM,SACL,MAAM,GAAC,MAAM,wBAkDxB;CACF"}
@@ -202,7 +202,7 @@ class ProtocolConverter {
202
202
  return await this.proxyPerformActions(url, method, body);
203
203
 
204
204
  case 'releaseActions':
205
- return await this.proxyReleaseActions(url, method, body);
205
+ return await this.proxyReleaseActions(url, method);
206
206
 
207
207
  case 'setFrame':
208
208
  return await this.proxySetFrame(url, method, body);
@@ -238,4 +238,4 @@ class ProtocolConverter {
238
238
 
239
239
  var _default = ProtocolConverter;
240
240
  exports.default = _default;
241
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9qc29ud3AtcHJveHkvcHJvdG9jb2wtY29udmVydGVyLmpzIl0sIm5hbWVzIjpbIkNPTU1BTkRfVVJMU19DT05GTElDVFMiLCJjb21tYW5kTmFtZXMiLCJqc29ud3BDb252ZXJ0ZXIiLCJ1cmwiLCJyZXBsYWNlIiwiaW5jbHVkZXMiLCJ3M2NDb252ZXJ0ZXIiLCJ0ZXN0IiwidzNjVXJsIiwidzNjUHJvcGVydHlSZWdleCIsImpzb253cFVybCIsIk1KU09OV1AiLCJXM0MiLCJQUk9UT0NPTFMiLCJERUZBVUxUX0xPRyIsImxvZ2dlciIsImdldExvZ2dlciIsIlByb3RvY29sQ29udmVydGVyIiwiY29uc3RydWN0b3IiLCJwcm94eUZ1bmMiLCJsb2ciLCJfZG93bnN0cmVhbVByb3RvY29sIiwiX2xvZyIsImRvd25zdHJlYW1Qcm90b2NvbCIsInZhbHVlIiwiZ2V0VGltZW91dFJlcXVlc3RPYmplY3RzIiwiYm9keSIsIl8iLCJoYXMiLCJ0eXBlVG9XM0MiLCJ4IiwidHlwZSIsIm1zIiwidHlwZVRvSlNPTldQIiwidG9QYWlycyIsImZpbHRlciIsInBhaXIiLCJtYXAiLCJwcm94eVNldFRpbWVvdXRzIiwibWV0aG9kIiwicmVzcG9uc2UiLCJyZXNCb2R5IiwidGltZW91dFJlcXVlc3RPYmplY3RzIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwidGltZW91dE9iaiIsInN0YXR1c0NvZGUiLCJwcm94eVNldFdpbmRvdyIsImJvZHlPYmoiLCJ1dGlsIiwic2FmZUpzb25QYXJzZSIsImlzUGxhaW5PYmplY3QiLCJuYW1lIiwiaGFuZGxlIiwicHJveHlTZXRWYWx1ZSIsImhhc1ZhbHVlIiwidGV4dCIsImlzU3RyaW5nIiwiaXNBcnJheSIsImpvaW4iLCJPYmplY3QiLCJhc3NpZ24iLCJwcm94eVNldEZyYW1lIiwiaWQiLCJNSlNPTldQX0VMRU1FTlRfS0VZIiwiVzNDX0VMRU1FTlRfS0VZIiwicHJveHlQZXJmb3JtQWN0aW9ucyIsInByb3h5UmVsZWFzZUFjdGlvbnMiLCJjb252ZXJ0QW5kUHJveHkiLCJjb21tYW5kTmFtZSIsInJld3JpdHRlblVybCIsImluZm8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSU8sTUFBTUEsc0JBQXNCLEdBQUcsQ0FDcEM7QUFDRUMsRUFBQUEsWUFBWSxFQUFFLENBQUMsU0FBRCxFQUFZLGNBQVosQ0FEaEI7QUFFRUMsRUFBQUEsZUFBZSxFQUFHQyxHQUFELElBQVNBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLGFBQVosRUFDeEJELEdBQUcsQ0FBQ0UsUUFBSixDQUFhLE9BQWIsSUFBd0IsZ0JBQXhCLEdBQTJDLFVBRG5CLENBRjVCO0FBSUVDLEVBQUFBLFlBQVksRUFBR0gsR0FBRCxJQUFTQSxHQUFHLENBQUNDLE9BQUosQ0FBWSxhQUFaLEVBQ3JCRCxHQUFHLENBQUNFLFFBQUosQ0FBYSxPQUFiLElBQXdCLGdCQUF4QixHQUEyQyxlQUR0QjtBQUp6QixDQURvQyxFQVFwQztBQUNFSixFQUFBQSxZQUFZLEVBQUUsQ0FBQyxzQkFBRCxDQURoQjtBQUVFQyxFQUFBQSxlQUFlLEVBQUdDLEdBQUQsSUFBU0EsR0FBRyxDQUFDQyxPQUFKLENBQVksaUNBQVosRUFDeEIsZ0JBRHdCLENBRjVCO0FBSUVFLEVBQUFBLFlBQVksRUFBR0gsR0FBRCxJQUFTQSxHQUFHLENBQUNDLE9BQUosQ0FBWSx1QkFBWixFQUNyQix3QkFEcUI7QUFKekIsQ0FSb0MsRUFlcEM7QUFDRUgsRUFBQUEsWUFBWSxFQUFFLENBQUMsa0JBQUQsRUFBcUIsaUJBQXJCLENBRGhCOztBQUVFQyxFQUFBQSxlQUFlLENBQUVDLEdBQUYsRUFBTztBQUNwQixXQUFPLFlBQVlJLElBQVosQ0FBaUJKLEdBQWpCLElBQ0hBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLFdBQVosRUFBeUIsZ0JBQXpCLENBREcsR0FFSEQsR0FBRyxDQUFDQyxPQUFKLENBQVksdUJBQVosRUFBcUMsa0JBQXJDLENBRko7QUFHRCxHQU5IOztB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YixDQUFzQmlFLFdBQXRCLENBQUwsRUFBeUM7QUFDdkM7QUFDRDs7QUFFRCxZQUFNQyxZQUFZLEdBQUcsS0FBS2hELGtCQUFMLEtBQTRCWixPQUE1QixHQUNqQlQsZUFBZSxDQUFDQyxHQUFELENBREUsR0FFakJHLFlBQVksQ0FBQ0gsR0FBRCxDQUZoQjs7QUFHQSxVQUFJb0UsWUFBWSxLQUFLcEUsR0FBckIsRUFBMEI7QUFDeEIsYUFBS2lCLEdBQUwsQ0FBU3VCLEtBQVQsQ0FBZ0IsaURBQWdEeEMsR0FBSSxJQUFyRCxHQUNaLE9BQU0sS0FBS29CLGtCQUFtQixXQURqQztBQUVBO0FBQ0Q7O0FBQ0QsV0FBS0gsR0FBTCxDQUFTb0QsSUFBVCxDQUFlLDZCQUE0QnJFLEdBQUksU0FBUW9FLFlBQWEsSUFBdEQsR0FDWCxPQUFNLEtBQUtoRCxrQkFBbUIsV0FEakM7QUFFQSxhQUFPLE1BQU0sS0FBS0osU0FBTCxDQUFlb0QsWUFBZixFQUE2QmhDLE1BQTdCLEVBQXFDYixJQUFyQyxDQUFiO0FBQ0Q7O0FBR0QsV0FBTyxNQUFNLEtBQUtQLFNBQUwsQ0FBZWhCLEdBQWYsRUFBb0JvQyxNQUFwQixFQUE0QmIsSUFBNUIsQ0FBYjtBQUNEOztBQXpNcUI7O2VBNE1UVCxpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBsb2dnZXIsIHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZHVwbGljYXRlS2V5cyB9IGZyb20gJy4uL2Jhc2Vkcml2ZXIvaGVscGVycyc7XG5pbXBvcnQge1xuICBNSlNPTldQX0VMRU1FTlRfS0VZLCBXM0NfRUxFTUVOVF9LRVksIFBST1RPQ09MU1xufSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgQ09NTUFORF9VUkxTX0NPTkZMSUNUUyA9IFtcbiAge1xuICAgIGNvbW1hbmROYW1lczogWydleGVjdXRlJywgJ2V4ZWN1dGVBc3luYyddLFxuICAgIGpzb253cENvbnZlcnRlcjogKHVybCkgPT4gdXJsLnJlcGxhY2UoL1xcL2V4ZWN1dGUuKi8sXG4gICAgICB1cmwuaW5jbHVkZXMoJ2FzeW5jJykgPyAnL2V4ZWN1dGVfYXN5bmMnIDogJy9leGVjdXRlJyksXG4gICAgdzNjQ29udmVydGVyOiAodXJsKSA9PiB1cmwucmVwbGFjZSgvXFwvZXhlY3V0ZS4qLyxcbiAgICAgIHVybC5pbmNsdWRlcygnYXN5bmMnKSA/ICcvZXhlY3V0ZS9hc3luYycgOiAnL2V4ZWN1dGUvc3luYycpLFxuICB9LFxuICB7XG4gICAgY29tbWFuZE5hbWVzOiBbJ2dldEVsZW1lbnRTY3JlZW5zaG90J10sXG4gICAganNvbndwQ29udmVydGVyOiAodXJsKSA9PiB1cmwucmVwbGFjZSgvXFwvZWxlbWVudFxcLyhbXi9dKylcXC9zY3JlZW5zaG90JC8sXG4gICAgICAnL3NjcmVlbnNob3QvJDEnKSxcbiAgICB3M2NDb252ZXJ0ZXI6ICh1cmwpID0+IHVybC5yZXBsYWNlKC9cXC9zY3JlZW5zaG90XFwvKFteL10rKS8sXG4gICAgICAnL2VsZW1lbnQvJDEvc2NyZWVuc2hvdCcpLFxuICB9LFxuICB7XG4gICAgY29tbWFuZE5hbWVzOiBbJ2dldFdpbmRvd0hhbmRsZXMnLCAnZ2V0V2luZG93SGFuZGxlJ10sXG4gICAganNvbndwQ29udmVydGVyICh1cmwpIHtcbiAgICAgIHJldHVybiAvXFwvd2luZG93JC8udGVzdCh1cmwpXG4gICAgICAgID8gdXJsLnJlcGxhY2UoL1xcL3dpbmRvdyQvLCAnL3dpbmRvd19oYW5kbGUnKVxuICAgICAgICA6IHVybC5yZXBsYWNlKC9cXC93aW5kb3dcXC9oYW5kbGUocz8pJC8sICcvd2luZG93X2hhbmRsZSQxJyk7XG4gICAgfSxcbiAgICB3M2NDb252ZXJ0ZXIgKHVybCkge1xuICAgICAgcmV0dXJuIC9cXC93aW5kb3dfaGFuZGxlJC8udGVzdCh1cmwpXG4gICAgICAgID8gdXJsLnJlcGxhY2UoL1xcL3dpbmRvd19oYW5kbGUkLywgJy93aW5kb3cnKVxuICAgICAgICA6IHVybC5yZXBsYWNlKC9cXC93aW5kb3dfaGFuZGxlcyQvLCAnL3dpbmRvdy9oYW5kbGVzJyk7XG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGNvbW1hbmROYW1lczogWydnZXRQcm9wZXJ0eSddLFxuICAgIGpzb253cENvbnZlcnRlcjogKHczY1VybCkgPT4ge1xuICAgICAgY29uc3QgdzNjUHJvcGVydHlSZWdleCA9IC9cXC9lbGVtZW50XFwvKFteL10rKVxcL3Byb3BlcnR5XFwvKFteL10rKS87XG4gICAgICBjb25zdCBqc29ud3BVcmwgPSB3M2NVcmwucmVwbGFjZSh3M2NQcm9wZXJ0eVJlZ2V4LCAnL2VsZW1lbnQvJDEvYXR0cmlidXRlLyQyJyk7XG4gICAgICByZXR1cm4ganNvbndwVXJsO1xuICAgIH0sXG4gICAgdzNjQ29udmVydGVyOiAoanNvbndwVXJsKSA9PiBqc29ud3BVcmwgLy8gRG9uJ3QgY29udmVydCBKU09OV1AgVVJMIHRvIFczQy4gVzNDIGFjY2VwdHMgL2F0dHJpYnV0ZSBhbmQgL3Byb3BlcnR5XG4gIH1cbl07XG5jb25zdCB7TUpTT05XUCwgVzNDfSA9IFBST1RPQ09MUztcbmNvbnN0IERFRkFVTFRfTE9HID0gbG9nZ2VyLmdldExvZ2dlcignUHJvdG9jb2wgQ29udmVydGVyJyk7XG5cblxuY2xhc3MgUHJvdG9jb2xDb252ZXJ0ZXIge1xuICBjb25zdHJ1Y3RvciAocHJveHlGdW5jLCBsb2cgPSBudWxsKSB7XG4gICAgdGhpcy5wcm94eUZ1bmMgPSBwcm94eUZ1bmM7XG4gICAgdGhpcy5fZG93bnN0cmVhbVByb3RvY29sID0gbnVsbDtcbiAgICB0aGlzLl9sb2cgPSBsb2c7XG4gIH1cblxuICBnZXQgbG9nICgpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9nID8/IERFRkFVTFRfTE9HO1xuICB9XG5cbiAgc2V0IGRvd25zdHJlYW1Qcm90b2NvbCAodmFsdWUpIHtcbiAgICB0aGlzLl9kb3duc3RyZWFtUHJvdG9jb2wgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBkb3duc3RyZWFtUHJvdG9jb2wgKCkge1xuICAgIHJldHVybiB0aGlzLl9kb3duc3RyZWFtUHJvdG9jb2w7XG4gIH1cblxuICAvKipcbiAgICogVzNDIC90aW1lb3V0cyBjYW4gdGFrZSBhcyBtYW55IGFzIDMgdGltZW91dCB0eXBlcyBhdCBvbmNlLCBNSlNPTldQIC90aW1lb3V0cyBvbmx5IHRha2VzIG9uZVxuICAgKiBhdCBhIHRpbWUuIFNvIGlmIHdlJ3JlIHVzaW5nIFczQyBhbmQgcHJveHlpbmcgdG8gTUpTT05XUCBhbmQgdGhlcmUncyBtb3JlIHRoYW4gb25lIHRpbWVvdXQgdHlwZVxuICAgKiBwcm92aWRlZCBpbiB0aGUgcmVxdWVzdCwgd2UgbmVlZCB0byBkbyAzIHByb3hpZXMgYW5kIGNvbWJpbmUgdGhlIHJlc3VsdFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gYm9keSBSZXF1ZXN0IGJvZHlcbiAgICogQHJldHVybiB7QXJyYXl9IEFycmF5IG9mIFczQyArIE1KU09OV1AgY29tcGF0aWJsZSB0aW1lb3V0IG9iamVjdHNcbiAgICovXG4gIGdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyAoYm9keSkge1xuICAgIGlmICh0aGlzLmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gVzNDICYmIF8uaGFzKGJvZHksICdtcycpICYmIF8uaGFzKGJvZHksICd0eXBlJykpIHtcbiAgICAgIGNvbnN0IHR5cGVUb1czQyA9ICh4KSA9PiB4ID09PSAncGFnZSBsb2FkJyA/ICdwYWdlTG9hZCcgOiB4O1xuICAgICAgcmV0dXJuIFt7XG4gICAgICAgIFt0eXBlVG9XM0MoYm9keS50eXBlKV06IGJvZHkubXMsXG4gICAgICB9XTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kb3duc3RyZWFtUHJvdG9jb2wgPT09IE1KU09OV1AgJiYgKCFfLmhhcyhib2R5LCAnbXMnKSB8fCAhXy5oYXMoYm9keSwgJ3R5cGUnKSkpIHtcbiAgICAgIGNvbnN0IHR5cGVUb0pTT05XUCA9ICh4KSA9PiB4ID09PSAncGFnZUxvYWQnID8gJ3BhZ2UgbG9hZCcgOiB4O1xuICAgICAgcmV0dXJuIF8udG9QYWlycyhib2R5KVxuICAgICAgICAvLyBPbmx5IHRyYW5zZm9ybSB0aGUgZW50cnkgaWYgbXMgdmFsdWUgaXMgYSB2YWxpZCBwb3NpdGl2ZSBmbG9hdCBudW1iZXJcbiAgICAgICAgLmZpbHRlcigocGFpcikgPT4gL15cXGQrKD86Wy4sXVxcZCo/KT8kLy50ZXN0KGAke3BhaXJbMV19YCkpXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKHBhaXIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogdHlwZVRvSlNPTldQKHBhaXJbMF0pLFxuICAgICAgICAgICAgbXM6IHBhaXJbMV0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtib2R5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm94eSBhbiBhcnJheSBvZiB0aW1lb3V0IG9iamVjdHMgYW5kIG1lcmdlIHRoZSByZXN1bHRcbiAgICogQHBhcmFtIHtTdHJpbmd9IHVybCBFbmRwb2ludCB1cmxcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZCBFbmRwb2ludCBtZXRob2RcbiAgICogQHBhcmFtIHtPYmplY3R9IGJvZHkgUmVxdWVzdCBib2R5XG4gICAqL1xuICBhc3luYyBwcm94eVNldFRpbWVvdXRzICh1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGxldCByZXNwb25zZSwgcmVzQm9keTtcblxuICAgIGNvbnN0IHRpbWVvdXRSZXF1ZXN0T2JqZWN0cyA9IHRoaXMuZ2V0VGltZW91dFJlcXVlc3RPYmplY3RzKGJvZHkpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBXaWxsIHNlbmQgdGhlIGZvbGxvd2luZyByZXF1ZXN0IGJvZGllcyB0byAvdGltZW91dHM6ICR7SlNPTi5zdHJpbmdpZnkodGltZW91dFJlcXVlc3RPYmplY3RzKX1gKTtcbiAgICBmb3IgKGNvbnN0IHRpbWVvdXRPYmogb2YgdGltZW91dFJlcXVlc3RPYmplY3RzKSB7XG4gICAgICBbcmVzcG9uc2UsIHJlc0JvZHldID0gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHRpbWVvdXRPYmopO1xuXG4gICAgICAvLyBJZiB3ZSBnb3QgYSBub24tTUpTT05XUCByZXNwb25zZSwgcmV0dXJuIHRoZSByZXN1bHQsIG5vdGhpbmcgbGVmdCB0byBkb1xuICAgICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sICE9PSBNSlNPTldQKSB7XG4gICAgICAgIHJldHVybiBbcmVzcG9uc2UsIHJlc0JvZHldO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBnb3QgYW4gZXJyb3IsIHJldHVybiB0aGUgZXJyb3IgcmlnaHQgYXdheVxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICAgIHJldHVybiBbcmVzcG9uc2UsIHJlc0JvZHldO1xuICAgICAgfVxuXG4gICAgICAvLyAuLi5PdGhlcndpc2UsIGNvbnRpbnVlIHRvIHRoZSBuZXh0IHRpbWVvdXRzIGNhbGxcbiAgICB9XG4gICAgcmV0dXJuIFtyZXNwb25zZSwgcmVzQm9keV07XG4gIH1cblxuICBhc3luYyBwcm94eVNldFdpbmRvdyAodXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIGlmIChfLmlzUGxhaW5PYmplY3QoYm9keU9iaikpIHtcbiAgICAgIGlmICh0aGlzLmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gVzNDICYmIF8uaGFzKGJvZHlPYmosICduYW1lJykgJiYgIV8uaGFzKGJvZHlPYmosICdoYW5kbGUnKSkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgQ29waWVkICduYW1lJyB2YWx1ZSAnJHtib2R5T2JqLm5hbWV9JyB0byAnaGFuZGxlJyBhcyBwZXIgVzNDIHNwZWNgKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCB7XG4gICAgICAgICAgLi4uYm9keU9iaixcbiAgICAgICAgICBoYW5kbGU6IGJvZHlPYmoubmFtZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kb3duc3RyZWFtUHJvdG9jb2wgPT09IE1KU09OV1AgJiYgXy5oYXMoYm9keU9iaiwgJ2hhbmRsZScpICYmICFfLmhhcyhib2R5T2JqLCAnbmFtZScpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBDb3BpZWQgJ2hhbmRsZScgdmFsdWUgJyR7Ym9keU9iai5oYW5kbGV9JyB0byAnbmFtZScgYXMgcGVyIEpTT05XUCBzcGVjYCk7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwge1xuICAgICAgICAgIC4uLmJvZHlPYmosXG4gICAgICAgICAgbmFtZTogYm9keU9iai5oYW5kbGUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cblxuICBhc3luYyBwcm94eVNldFZhbHVlICh1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGNvbnN0IGJvZHlPYmogPSB1dGlsLnNhZmVKc29uUGFyc2UoYm9keSk7XG4gICAgaWYgKF8uaXNQbGFpbk9iamVjdChib2R5T2JqKSAmJiAodXRpbC5oYXNWYWx1ZShib2R5T2JqLnRleHQpIHx8IHV0aWwuaGFzVmFsdWUoYm9keU9iai52YWx1ZSkpKSB7XG4gICAgICBsZXQge3RleHQsIHZhbHVlfSA9IGJvZHlPYmo7XG4gICAgICBpZiAodXRpbC5oYXNWYWx1ZSh0ZXh0KSAmJiAhdXRpbC5oYXNWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUgPSBfLmlzU3RyaW5nKHRleHQpXG4gICAgICAgICAgPyBbLi4udGV4dF1cbiAgICAgICAgICA6IChfLmlzQXJyYXkodGV4dCkgPyB0ZXh0IDogW10pO1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgQWRkZWQgJ3ZhbHVlJyBwcm9wZXJ0eSAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX0gdG8gJ3NldFZhbHVlJyByZXF1ZXN0IGJvZHlgKTtcbiAgICAgIH0gZWxzZSBpZiAoIXV0aWwuaGFzVmFsdWUodGV4dCkgJiYgdXRpbC5oYXNWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgdGV4dCA9IF8uaXNBcnJheSh2YWx1ZSlcbiAgICAgICAgICA/IHZhbHVlLmpvaW4oJycpXG4gICAgICAgICAgOiAoXy5pc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6ICcnKTtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYEFkZGVkICd0ZXh0JyBwcm9wZXJ0eSAke0pTT04uc3RyaW5naWZ5KHRleHQpfSB0byAnc2V0VmFsdWUnIHJlcXVlc3QgYm9keWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBPYmplY3QuYXNzaWduKHt9LCBib2R5T2JqLCB7XG4gICAgICAgIHRleHQsXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cblxuICBhc3luYyBwcm94eVNldEZyYW1lICh1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGNvbnN0IGJvZHlPYmogPSB1dGlsLnNhZmVKc29uUGFyc2UoYm9keSk7XG4gICAgcmV0dXJuIF8uaGFzKGJvZHlPYmosICdpZCcpICYmIF8uaXNQbGFpbk9iamVjdChib2R5T2JqLmlkKVxuICAgICAgPyBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwge1xuICAgICAgICAuLi5ib2R5T2JqLFxuICAgICAgICBpZDogZHVwbGljYXRlS2V5cyhib2R5T2JqLmlkLCBNSlNPTldQX0VMRU1FTlRfS0VZLCBXM0NfRUxFTUVOVF9LRVkpLFxuICAgICAgfSlcbiAgICAgIDogYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIGJvZHkpO1xuICB9XG5cbiAgYXN5bmMgcHJveHlQZXJmb3JtQWN0aW9ucyAodXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIHJldHVybiBfLmlzUGxhaW5PYmplY3QoYm9keU9iailcbiAgICAgID8gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIGR1cGxpY2F0ZUtleXMoYm9keU9iaiwgTUpTT05XUF9FTEVNRU5UX0tFWSwgVzNDX0VMRU1FTlRfS0VZKSlcbiAgICAgIDogYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIGJvZHkpO1xuICB9XG5cbiAgYXN5bmMgcHJveHlSZWxlYXNlQWN0aW9ucyAodXJsLCBtZXRob2QpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBcImNyb3NzaW5nXCIgZW5kcG9pbnRzIGZvciB0aGUgY2FzZVxuICAgKiB3aGVuIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtIGRyaXZlcnMgb3BlcmF0ZSBkaWZmZXJlbnQgcHJvdG9jb2xzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb21tYW5kTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2RcbiAgICogQHBhcmFtIHs/c3RyaW5nfG9iamVjdH0gYm9keVxuICAgKiBAcmV0dXJucyBUaGUgcHJveHlmeWluZyByZXN1bHQgYXMgW3Jlc3BvbnNlLCByZXNwb25zZUJvZHldIHR1cGxlXG4gICAqL1xuICBhc3luYyBjb252ZXJ0QW5kUHJveHkgKGNvbW1hbmROYW1lLCB1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGlmICghdGhpcy5kb3duc3RyZWFtUHJvdG9jb2wpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gU2FtZSB1cmwsIGJ1dCBkaWZmZXJlbnQgYXJndW1lbnRzXG4gICAgc3dpdGNoIChjb21tYW5kTmFtZSkge1xuICAgICAgY2FzZSAndGltZW91dHMnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eVNldFRpbWVvdXRzKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldFdpbmRvdyc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5U2V0V2luZG93KHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldFZhbHVlJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlTZXRWYWx1ZSh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgICBjYXNlICdwZXJmb3JtQWN0aW9ucyc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5UGVyZm9ybUFjdGlvbnModXJsLCBtZXRob2QsIGJvZHkpO1xuICAgICAgY2FzZSAncmVsZWFzZUFjdGlvbnMnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eVJlbGVhc2VBY3Rpb25zKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldEZyYW1lJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlTZXRGcmFtZSh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBTYW1lIGFyZ3VtZW50cywgYnV0IGRpZmZlcmVudCBVUkxzXG4gICAgZm9yIChjb25zdCB7Y29tbWFuZE5hbWVzLCBqc29ud3BDb252ZXJ0ZXIsIHczY0NvbnZlcnRlcn0gb2YgQ09NTUFORF9VUkxTX0NPTkZMSUNUUykge1xuICAgICAgaWYgKCFjb21tYW5kTmFtZXMuaW5jbHVkZXMoY29tbWFuZE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXdyaXR0ZW5VcmwgPSB0aGlzLmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gTUpTT05XUFxuICAgICAgICA/IGpzb253cENvbnZlcnRlcih1cmwpXG4gICAgICAgIDogdzNjQ29udmVydGVyKHVybCk7XG4gICAgICBpZiAocmV3cml0dGVuVXJsID09PSB1cmwpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYERpZCBub3Qga25vdyBob3cgdG8gcmV3cml0ZSB0aGUgb3JpZ2luYWwgVVJMICcke3VybH0nIGAgK1xuICAgICAgICAgIGBmb3IgJHt0aGlzLmRvd25zdHJlYW1Qcm90b2NvbH0gcHJvdG9jb2xgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZy5pbmZvKGBSZXdyb3RlIHRoZSBvcmlnaW5hbCBVUkwgJyR7dXJsfScgdG8gJyR7cmV3cml0dGVuVXJsfScgYCArXG4gICAgICAgIGBmb3IgJHt0aGlzLmRvd25zdHJlYW1Qcm90b2NvbH0gcHJvdG9jb2xgKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyhyZXdyaXR0ZW5VcmwsIG1ldGhvZCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gTm8gbWF0Y2hlcyBmb3VuZC4gUHJvY2VlZCBub3JtYWxseVxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUHJvdG9jb2xDb252ZXJ0ZXI7XG4iXX0=
241
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT01NQU5EX1VSTFNfQ09ORkxJQ1RTIiwiY29tbWFuZE5hbWVzIiwianNvbndwQ29udmVydGVyIiwidXJsIiwicmVwbGFjZSIsImluY2x1ZGVzIiwidzNjQ29udmVydGVyIiwidGVzdCIsInczY1VybCIsInczY1Byb3BlcnR5UmVnZXgiLCJqc29ud3BVcmwiLCJNSlNPTldQIiwiVzNDIiwiUFJPVE9DT0xTIiwiREVGQVVMVF9MT0ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJQcm90b2NvbENvbnZlcnRlciIsImNvbnN0cnVjdG9yIiwicHJveHlGdW5jIiwibG9nIiwiX2Rvd25zdHJlYW1Qcm90b2NvbCIsIl9sb2ciLCJkb3duc3RyZWFtUHJvdG9jb2wiLCJ2YWx1ZSIsImdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyIsImJvZHkiLCJfIiwiaGFzIiwidHlwZVRvVzNDIiwieCIsInR5cGUiLCJtcyIsInR5cGVUb0pTT05XUCIsInRvUGFpcnMiLCJmaWx0ZXIiLCJwYWlyIiwibWFwIiwicHJveHlTZXRUaW1lb3V0cyIsIm1ldGhvZCIsInJlc3BvbnNlIiwicmVzQm9keSIsInRpbWVvdXRSZXF1ZXN0T2JqZWN0cyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInRpbWVvdXRPYmoiLCJzdGF0dXNDb2RlIiwicHJveHlTZXRXaW5kb3ciLCJib2R5T2JqIiwidXRpbCIsInNhZmVKc29uUGFyc2UiLCJpc1BsYWluT2JqZWN0IiwibmFtZSIsImhhbmRsZSIsInByb3h5U2V0VmFsdWUiLCJoYXNWYWx1ZSIsInRleHQiLCJpc1N0cmluZyIsImlzQXJyYXkiLCJqb2luIiwiT2JqZWN0IiwiYXNzaWduIiwicHJveHlTZXRGcmFtZSIsImlkIiwiZHVwbGljYXRlS2V5cyIsIk1KU09OV1BfRUxFTUVOVF9LRVkiLCJXM0NfRUxFTUVOVF9LRVkiLCJwcm94eVBlcmZvcm1BY3Rpb25zIiwicHJveHlSZWxlYXNlQWN0aW9ucyIsImNvbnZlcnRBbmRQcm94eSIsImNvbW1hbmROYW1lIiwicmV3cml0dGVuVXJsIiwiaW5mbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9qc29ud3AtcHJveHkvcHJvdG9jb2wtY29udmVydGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2xvZ2dlciwgdXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7ZHVwbGljYXRlS2V5c30gZnJvbSAnLi4vYmFzZWRyaXZlci9oZWxwZXJzJztcbmltcG9ydCB7TUpTT05XUF9FTEVNRU5UX0tFWSwgVzNDX0VMRU1FTlRfS0VZLCBQUk9UT0NPTFN9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBDT01NQU5EX1VSTFNfQ09ORkxJQ1RTID0gW1xuICB7XG4gICAgY29tbWFuZE5hbWVzOiBbJ2V4ZWN1dGUnLCAnZXhlY3V0ZUFzeW5jJ10sXG4gICAganNvbndwQ29udmVydGVyOiAodXJsKSA9PlxuICAgICAgdXJsLnJlcGxhY2UoL1xcL2V4ZWN1dGUuKi8sIHVybC5pbmNsdWRlcygnYXN5bmMnKSA/ICcvZXhlY3V0ZV9hc3luYycgOiAnL2V4ZWN1dGUnKSxcbiAgICB3M2NDb252ZXJ0ZXI6ICh1cmwpID0+XG4gICAgICB1cmwucmVwbGFjZSgvXFwvZXhlY3V0ZS4qLywgdXJsLmluY2x1ZGVzKCdhc3luYycpID8gJy9leGVjdXRlL2FzeW5jJyA6ICcvZXhlY3V0ZS9zeW5jJyksXG4gIH0sXG4gIHtcbiAgICBjb21tYW5kTmFtZXM6IFsnZ2V0RWxlbWVudFNjcmVlbnNob3QnXSxcbiAgICBqc29ud3BDb252ZXJ0ZXI6ICh1cmwpID0+IHVybC5yZXBsYWNlKC9cXC9lbGVtZW50XFwvKFteL10rKVxcL3NjcmVlbnNob3QkLywgJy9zY3JlZW5zaG90LyQxJyksXG4gICAgdzNjQ29udmVydGVyOiAodXJsKSA9PiB1cmwucmVwbGFjZSgvXFwvc2NyZWVuc2hvdFxcLyhbXi9dKykvLCAnL2VsZW1lbnQvJDEvc2NyZWVuc2hvdCcpLFxuICB9LFxuICB7XG4gICAgY29tbWFuZE5hbWVzOiBbJ2dldFdpbmRvd0hhbmRsZXMnLCAnZ2V0V2luZG93SGFuZGxlJ10sXG4gICAganNvbndwQ29udmVydGVyKHVybCkge1xuICAgICAgcmV0dXJuIC9cXC93aW5kb3ckLy50ZXN0KHVybClcbiAgICAgICAgPyB1cmwucmVwbGFjZSgvXFwvd2luZG93JC8sICcvd2luZG93X2hhbmRsZScpXG4gICAgICAgIDogdXJsLnJlcGxhY2UoL1xcL3dpbmRvd1xcL2hhbmRsZShzPykkLywgJy93aW5kb3dfaGFuZGxlJDEnKTtcbiAgICB9LFxuICAgIHczY0NvbnZlcnRlcih1cmwpIHtcbiAgICAgIHJldHVybiAvXFwvd2luZG93X2hhbmRsZSQvLnRlc3QodXJsKVxuICAgICAgICA/IHVybC5yZXBsYWNlKC9cXC93aW5kb3dfaGFuZGxlJC8sICcvd2luZG93JylcbiAgICAgICAgOiB1cmwucmVwbGFjZSgvXFwvd2luZG93X2hhbmRsZXMkLywgJy93aW5kb3cvaGFuZGxlcycpO1xuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBjb21tYW5kTmFtZXM6IFsnZ2V0UHJvcGVydHknXSxcbiAgICBqc29ud3BDb252ZXJ0ZXI6ICh3M2NVcmwpID0+IHtcbiAgICAgIGNvbnN0IHczY1Byb3BlcnR5UmVnZXggPSAvXFwvZWxlbWVudFxcLyhbXi9dKylcXC9wcm9wZXJ0eVxcLyhbXi9dKykvO1xuICAgICAgY29uc3QganNvbndwVXJsID0gdzNjVXJsLnJlcGxhY2UodzNjUHJvcGVydHlSZWdleCwgJy9lbGVtZW50LyQxL2F0dHJpYnV0ZS8kMicpO1xuICAgICAgcmV0dXJuIGpzb253cFVybDtcbiAgICB9LFxuICAgIHczY0NvbnZlcnRlcjogKGpzb253cFVybCkgPT4ganNvbndwVXJsLCAvLyBEb24ndCBjb252ZXJ0IEpTT05XUCBVUkwgdG8gVzNDLiBXM0MgYWNjZXB0cyAvYXR0cmlidXRlIGFuZCAvcHJvcGVydHlcbiAgfSxcbl07XG5jb25zdCB7TUpTT05XUCwgVzNDfSA9IFBST1RPQ09MUztcbmNvbnN0IERFRkFVTFRfTE9HID0gbG9nZ2VyLmdldExvZ2dlcignUHJvdG9jb2wgQ29udmVydGVyJyk7XG5cbmNsYXNzIFByb3RvY29sQ29udmVydGVyIHtcbiAgY29uc3RydWN0b3IocHJveHlGdW5jLCBsb2cgPSBudWxsKSB7XG4gICAgdGhpcy5wcm94eUZ1bmMgPSBwcm94eUZ1bmM7XG4gICAgdGhpcy5fZG93bnN0cmVhbVByb3RvY29sID0gbnVsbDtcbiAgICB0aGlzLl9sb2cgPSBsb2c7XG4gIH1cblxuICBnZXQgbG9nKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2cgPz8gREVGQVVMVF9MT0c7XG4gIH1cblxuICBzZXQgZG93bnN0cmVhbVByb3RvY29sKHZhbHVlKSB7XG4gICAgdGhpcy5fZG93bnN0cmVhbVByb3RvY29sID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZG93bnN0cmVhbVByb3RvY29sKCkge1xuICAgIHJldHVybiB0aGlzLl9kb3duc3RyZWFtUHJvdG9jb2w7XG4gIH1cblxuICAvKipcbiAgICogVzNDIC90aW1lb3V0cyBjYW4gdGFrZSBhcyBtYW55IGFzIDMgdGltZW91dCB0eXBlcyBhdCBvbmNlLCBNSlNPTldQIC90aW1lb3V0cyBvbmx5IHRha2VzIG9uZVxuICAgKiBhdCBhIHRpbWUuIFNvIGlmIHdlJ3JlIHVzaW5nIFczQyBhbmQgcHJveHlpbmcgdG8gTUpTT05XUCBhbmQgdGhlcmUncyBtb3JlIHRoYW4gb25lIHRpbWVvdXQgdHlwZVxuICAgKiBwcm92aWRlZCBpbiB0aGUgcmVxdWVzdCwgd2UgbmVlZCB0byBkbyAzIHByb3hpZXMgYW5kIGNvbWJpbmUgdGhlIHJlc3VsdFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gYm9keSBSZXF1ZXN0IGJvZHlcbiAgICogQHJldHVybiB7QXJyYXl9IEFycmF5IG9mIFczQyArIE1KU09OV1AgY29tcGF0aWJsZSB0aW1lb3V0IG9iamVjdHNcbiAgICovXG4gIGdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyhib2R5KSB7XG4gICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sID09PSBXM0MgJiYgXy5oYXMoYm9keSwgJ21zJykgJiYgXy5oYXMoYm9keSwgJ3R5cGUnKSkge1xuICAgICAgY29uc3QgdHlwZVRvVzNDID0gKHgpID0+ICh4ID09PSAncGFnZSBsb2FkJyA/ICdwYWdlTG9hZCcgOiB4KTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBbdHlwZVRvVzNDKGJvZHkudHlwZSldOiBib2R5Lm1zLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kb3duc3RyZWFtUHJvdG9jb2wgPT09IE1KU09OV1AgJiYgKCFfLmhhcyhib2R5LCAnbXMnKSB8fCAhXy5oYXMoYm9keSwgJ3R5cGUnKSkpIHtcbiAgICAgIGNvbnN0IHR5cGVUb0pTT05XUCA9ICh4KSA9PiAoeCA9PT0gJ3BhZ2VMb2FkJyA/ICdwYWdlIGxvYWQnIDogeCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBfLnRvUGFpcnMoYm9keSlcbiAgICAgICAgICAvLyBPbmx5IHRyYW5zZm9ybSB0aGUgZW50cnkgaWYgbXMgdmFsdWUgaXMgYSB2YWxpZCBwb3NpdGl2ZSBmbG9hdCBudW1iZXJcbiAgICAgICAgICAuZmlsdGVyKChwYWlyKSA9PiAvXlxcZCsoPzpbLixdXFxkKj8pPyQvLnRlc3QoYCR7cGFpclsxXX1gKSlcbiAgICAgICAgICAubWFwKGZ1bmN0aW9uIChwYWlyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICB0eXBlOiB0eXBlVG9KU09OV1AocGFpclswXSksXG4gICAgICAgICAgICAgIG1zOiBwYWlyWzFdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW2JvZHldO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3h5IGFuIGFycmF5IG9mIHRpbWVvdXQgb2JqZWN0cyBhbmQgbWVyZ2UgdGhlIHJlc3VsdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIEVuZHBvaW50IHVybFxuICAgKiBAcGFyYW0ge1N0cmluZ30gbWV0aG9kIEVuZHBvaW50IG1ldGhvZFxuICAgKiBAcGFyYW0ge09iamVjdH0gYm9keSBSZXF1ZXN0IGJvZHlcbiAgICovXG4gIGFzeW5jIHByb3h5U2V0VGltZW91dHModXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBsZXQgcmVzcG9uc2UsIHJlc0JvZHk7XG5cbiAgICBjb25zdCB0aW1lb3V0UmVxdWVzdE9iamVjdHMgPSB0aGlzLmdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyhib2R5KTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgIGBXaWxsIHNlbmQgdGhlIGZvbGxvd2luZyByZXF1ZXN0IGJvZGllcyB0byAvdGltZW91dHM6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHRpbWVvdXRSZXF1ZXN0T2JqZWN0c1xuICAgICAgKX1gXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHRpbWVvdXRPYmogb2YgdGltZW91dFJlcXVlc3RPYmplY3RzKSB7XG4gICAgICBbcmVzcG9uc2UsIHJlc0JvZHldID0gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHRpbWVvdXRPYmopO1xuXG4gICAgICAvLyBJZiB3ZSBnb3QgYSBub24tTUpTT05XUCByZXNwb25zZSwgcmV0dXJuIHRoZSByZXN1bHQsIG5vdGhpbmcgbGVmdCB0byBkb1xuICAgICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sICE9PSBNSlNPTldQKSB7XG4gICAgICAgIHJldHVybiBbcmVzcG9uc2UsIHJlc0JvZHldO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB3ZSBnb3QgYW4gZXJyb3IsIHJldHVybiB0aGUgZXJyb3IgcmlnaHQgYXdheVxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gNDAwKSB7XG4gICAgICAgIHJldHVybiBbcmVzcG9uc2UsIHJlc0JvZHldO1xuICAgICAgfVxuXG4gICAgICAvLyAuLi5PdGhlcndpc2UsIGNvbnRpbnVlIHRvIHRoZSBuZXh0IHRpbWVvdXRzIGNhbGxcbiAgICB9XG4gICAgcmV0dXJuIFtyZXNwb25zZSwgcmVzQm9keV07XG4gIH1cblxuICBhc3luYyBwcm94eVNldFdpbmRvdyh1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGNvbnN0IGJvZHlPYmogPSB1dGlsLnNhZmVKc29uUGFyc2UoYm9keSk7XG4gICAgaWYgKF8uaXNQbGFpbk9iamVjdChib2R5T2JqKSkge1xuICAgICAgaWYgKHRoaXMuZG93bnN0cmVhbVByb3RvY29sID09PSBXM0MgJiYgXy5oYXMoYm9keU9iaiwgJ25hbWUnKSAmJiAhXy5oYXMoYm9keU9iaiwgJ2hhbmRsZScpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBDb3BpZWQgJ25hbWUnIHZhbHVlICcke2JvZHlPYmoubmFtZX0nIHRvICdoYW5kbGUnIGFzIHBlciBXM0Mgc3BlY2ApO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHtcbiAgICAgICAgICAuLi5ib2R5T2JqLFxuICAgICAgICAgIGhhbmRsZTogYm9keU9iai5uYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5kb3duc3RyZWFtUHJvdG9jb2wgPT09IE1KU09OV1AgJiZcbiAgICAgICAgXy5oYXMoYm9keU9iaiwgJ2hhbmRsZScpICYmXG4gICAgICAgICFfLmhhcyhib2R5T2JqLCAnbmFtZScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYENvcGllZCAnaGFuZGxlJyB2YWx1ZSAnJHtib2R5T2JqLmhhbmRsZX0nIHRvICduYW1lJyBhcyBwZXIgSlNPTldQIHNwZWNgKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCB7XG4gICAgICAgICAgLi4uYm9keU9iaixcbiAgICAgICAgICBuYW1lOiBib2R5T2JqLmhhbmRsZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxuXG4gIGFzeW5jIHByb3h5U2V0VmFsdWUodXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIGlmIChfLmlzUGxhaW5PYmplY3QoYm9keU9iaikgJiYgKHV0aWwuaGFzVmFsdWUoYm9keU9iai50ZXh0KSB8fCB1dGlsLmhhc1ZhbHVlKGJvZHlPYmoudmFsdWUpKSkge1xuICAgICAgbGV0IHt0ZXh0LCB2YWx1ZX0gPSBib2R5T2JqO1xuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUodGV4dCkgJiYgIXV0aWwuaGFzVmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlID0gXy5pc1N0cmluZyh0ZXh0KSA/IFsuLi50ZXh0XSA6IF8uaXNBcnJheSh0ZXh0KSA/IHRleHQgOiBbXTtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoXG4gICAgICAgICAgYEFkZGVkICd2YWx1ZScgcHJvcGVydHkgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9IHRvICdzZXRWYWx1ZScgcmVxdWVzdCBib2R5YFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmICghdXRpbC5oYXNWYWx1ZSh0ZXh0KSAmJiB1dGlsLmhhc1ZhbHVlKHZhbHVlKSkge1xuICAgICAgICB0ZXh0ID0gXy5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJycpIDogXy5pc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6ICcnO1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgQWRkZWQgJ3RleHQnIHByb3BlcnR5ICR7SlNPTi5zdHJpbmdpZnkodGV4dCl9IHRvICdzZXRWYWx1ZScgcmVxdWVzdCBib2R5YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUZ1bmMoXG4gICAgICAgIHVybCxcbiAgICAgICAgbWV0aG9kLFxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBib2R5T2JqLCB7XG4gICAgICAgICAgdGV4dCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxuXG4gIGFzeW5jIHByb3h5U2V0RnJhbWUodXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIHJldHVybiBfLmhhcyhib2R5T2JqLCAnaWQnKSAmJiBfLmlzUGxhaW5PYmplY3QoYm9keU9iai5pZClcbiAgICAgID8gYXdhaXQgdGhpcy5wcm94eUZ1bmModXJsLCBtZXRob2QsIHtcbiAgICAgICAgICAuLi5ib2R5T2JqLFxuICAgICAgICAgIGlkOiBkdXBsaWNhdGVLZXlzKGJvZHlPYmouaWQsIE1KU09OV1BfRUxFTUVOVF9LRVksIFczQ19FTEVNRU5UX0tFWSksXG4gICAgICAgIH0pXG4gICAgICA6IGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxuXG4gIGFzeW5jIHByb3h5UGVyZm9ybUFjdGlvbnModXJsLCBtZXRob2QsIGJvZHkpIHtcbiAgICBjb25zdCBib2R5T2JqID0gdXRpbC5zYWZlSnNvblBhcnNlKGJvZHkpO1xuICAgIHJldHVybiBfLmlzUGxhaW5PYmplY3QoYm9keU9iailcbiAgICAgID8gYXdhaXQgdGhpcy5wcm94eUZ1bmMoXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICBkdXBsaWNhdGVLZXlzKGJvZHlPYmosIE1KU09OV1BfRUxFTUVOVF9LRVksIFczQ19FTEVNRU5UX0tFWSlcbiAgICAgICAgKVxuICAgICAgOiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gIH1cblxuICBhc3luYyBwcm94eVJlbGVhc2VBY3Rpb25zKHVybCwgbWV0aG9kKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgXCJjcm9zc2luZ1wiIGVuZHBvaW50cyBmb3IgdGhlIGNhc2VcbiAgICogd2hlbiB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbSBkcml2ZXJzIG9wZXJhdGUgZGlmZmVyZW50IHByb3RvY29sc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29tbWFuZE5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kXG4gICAqIEBwYXJhbSB7P3N0cmluZ3xvYmplY3R9IGJvZHlcbiAgICogQHJldHVybnMgVGhlIHByb3h5ZnlpbmcgcmVzdWx0IGFzIFtyZXNwb25zZSwgcmVzcG9uc2VCb2R5XSB0dXBsZVxuICAgKi9cbiAgYXN5bmMgY29udmVydEFuZFByb3h5KGNvbW1hbmROYW1lLCB1cmwsIG1ldGhvZCwgYm9keSkge1xuICAgIGlmICghdGhpcy5kb3duc3RyZWFtUHJvdG9jb2wpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5RnVuYyh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gU2FtZSB1cmwsIGJ1dCBkaWZmZXJlbnQgYXJndW1lbnRzXG4gICAgc3dpdGNoIChjb21tYW5kTmFtZSkge1xuICAgICAgY2FzZSAndGltZW91dHMnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eVNldFRpbWVvdXRzKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldFdpbmRvdyc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5U2V0V2luZG93KHVybCwgbWV0aG9kLCBib2R5KTtcbiAgICAgIGNhc2UgJ3NldFZhbHVlJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlTZXRWYWx1ZSh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgICBjYXNlICdwZXJmb3JtQWN0aW9ucyc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5UGVyZm9ybUFjdGlvbnModXJsLCBtZXRob2QsIGJvZHkpO1xuICAgICAgY2FzZSAncmVsZWFzZUFjdGlvbnMnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eVJlbGVhc2VBY3Rpb25zKHVybCwgbWV0aG9kKTtcbiAgICAgIGNhc2UgJ3NldEZyYW1lJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlTZXRGcmFtZSh1cmwsIG1ldGhvZCwgYm9keSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBTYW1lIGFyZ3VtZW50cywgYnV0IGRpZmZlcmVudCBVUkxzXG4gICAgZm9yIChjb25zdCB7Y29tbWFuZE5hbWVzLCBqc29ud3BDb252ZXJ0ZXIsIHczY0NvbnZlcnRlcn0gb2YgQ09NTUFORF9VUkxTX0NPTkZMSUNUUykge1xuICAgICAgaWYgKCFjb21tYW5kTmFtZXMuaW5jbHVkZXMoY29tbWFuZE5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXdyaXR0ZW5VcmwgPVxuICAgICAgICB0aGlzLmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gTUpTT05XUCA/IGpzb253cENvbnZlcnRlcih1cmwpIDogdzNjQ29udmVydGVyKHVybCk7XG4gICAgICBpZiAocmV3cml0dGVuVXJsID09PSB1cmwpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoXG4gICAgICAgICAgYERpZCBub3Qga25vdyBob3cgdG8gcmV3cml0ZSB0aGUgb3JpZ2luYWwgVVJMICcke3VybH0nIGAgK1xuICAgICAgICAgICAgYGZvciAke3RoaXMuZG93bnN0cmVhbVByb3RvY29sfSBwcm90b2NvbGBcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZy5pbmZvKFxuICAgICAgICBgUmV3cm90ZSB0aGUgb3JpZ2luYWwgVVJMICcke3VybH0nIHRvICcke3Jld3JpdHRlblVybH0nIGAgK1xuICAgICAgICAgIGBmb3IgJHt0aGlzLmRvd25zdHJlYW1Qcm90b2NvbH0gcHJvdG9jb2xgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHJld3JpdHRlblVybCwgbWV0aG9kLCBib2R5KTtcbiAgICB9XG5cbiAgICAvLyBObyBtYXRjaGVzIGZvdW5kLiBQcm9jZWVkIG5vcm1hbGx5XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlGdW5jKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBQcm90b2NvbENvbnZlcnRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFTyxNQUFNQSxzQkFBc0IsR0FBRyxDQUNwQztFQUNFQyxZQUFZLEVBQUUsQ0FBQyxTQUFELEVBQVksY0FBWixDQURoQjtFQUVFQyxlQUFlLEVBQUdDLEdBQUQsSUFDZkEsR0FBRyxDQUFDQyxPQUFKLENBQVksYUFBWixFQUEyQkQsR0FBRyxDQUFDRSxRQUFKLENBQWEsT0FBYixJQUF3QixnQkFBeEIsR0FBMkMsVUFBdEUsQ0FISjtFQUlFQyxZQUFZLEVBQUdILEdBQUQsSUFDWkEsR0FBRyxDQUFDQyxPQUFKLENBQVksYUFBWixFQUEyQkQsR0FBRyxDQUFDRSxRQUFKLENBQWEsT0FBYixJQUF3QixnQkFBeEIsR0FBMkMsZUFBdEU7QUFMSixDQURvQyxFQVFwQztFQUNFSixZQUFZLEVBQUUsQ0FBQyxzQkFBRCxDQURoQjtFQUVFQyxlQUFlLEVBQUdDLEdBQUQsSUFBU0EsR0FBRyxDQUFDQyxPQUFKLENBQVksaUNBQVosRUFBK0MsZ0JBQS9DLENBRjVCO0VBR0VFLFlBQVksRUFBR0gsR0FBRCxJQUFTQSxHQUFHLENBQUNDLE9BQUosQ0FBWSx1QkFBWixFQUFxQyx3QkFBckM7QUFIekIsQ0FSb0MsRUFh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
@@ -1,8 +1,28 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  export default JWProxy;
4
+ export type ProxyError = Error & {
5
+ response: {
6
+ data: import('type-fest').JsonObject;
7
+ status: import('http-status-codes').StatusCodes;
8
+ };
9
+ };
3
10
  export class JWProxy {
4
11
  constructor(opts?: {});
5
- scheme: any;
12
+ /** @type {string} */
13
+ scheme: string;
14
+ /** @type {string} */
15
+ server: string;
16
+ /** @type {number} */
17
+ port: number;
18
+ /** @type {string} */
19
+ base: string;
20
+ /** @type {string} */
21
+ reqBasePath: string;
22
+ /** @type {string?} */
23
+ sessionId: string | null;
24
+ /** @type {number} */
25
+ timeout: number;
6
26
  _activeRequests: any[];
7
27
  _downstreamProtocol: any;
8
28
  httpAgent: http.Agent;
@@ -16,8 +36,8 @@ export class JWProxy {
16
36
  * @private - Do not call this method directly,
17
37
  * it uses client-specific arguments and responses!
18
38
  *
19
- * @param {AxiosRequestConfig} requestConfig
20
- * @returns {AxiosResponse}
39
+ * @param {import('axios').AxiosRequestConfig} requestConfig
40
+ * @returns {Promise<import('axios').AxiosResponse>}
21
41
  */
22
42
  private request;
23
43
  getActiveRequestsCount(): number;
@@ -27,9 +47,14 @@ export class JWProxy {
27
47
  get downstreamProtocol(): any;
28
48
  getUrlForProxy(url: any): string;
29
49
  proxy(url: any, method: any, body?: null): Promise<any[]>;
30
- sessionId: any;
31
50
  getProtocolFromResBody(resObj: any): string | undefined;
32
- requestToCommandName(url: any, method: any): keyof import("@appium/types").ExternalDriver | undefined;
51
+ /**
52
+ *
53
+ * @param {string} url
54
+ * @param {import('@appium/types').HTTPMethod} method
55
+ * @returns {string|undefined}
56
+ */
57
+ requestToCommandName(url: string, method: import('@appium/types').HTTPMethod): string | undefined;
33
58
  proxyCommand(url: any, method: any, body?: null): Promise<any>;
34
59
  command(url: any, method: any, body?: null): Promise<any>;
35
60
  getSessionIdFromUrl(url: any): any;
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":";;AAwBA;IACE,uBAsBC;IAZC,YAAuC;IACvC,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,iCA8CC;IAED,0DA2FC;IAjCO,eAA+D;IAmCvE,wDAOC;IAED,sGAaC;IAED,+DAQC;IAED,0DAuCC;IAED,mCAGC;IAED,+CAuCC;CACF"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../lib/jsonwp-proxy/proxy.js"],"names":[],"mappings":";;;yBAmaa,KAAK,GAAG;IAAC,QAAQ,EAAE;QAAC,IAAI,EAAE,OAAO,WAAW,EAAE,UAAU,CAAC;QAAC,QAAQ,OAAO,mBAAmB,EAAE,WAAW,CAAA;KAAC,CAAA;CAAC;AA3YxH;IAgBE,uBAwBC;IAvCD,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;IAeN,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"}