@appium/base-driver 8.2.3 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/build/lib/basedriver/capabilities.js +2 -4
  2. package/build/lib/basedriver/commands/event.js +2 -4
  3. package/build/lib/basedriver/commands/find.js +5 -14
  4. package/build/lib/basedriver/commands/index.js +2 -4
  5. package/build/lib/basedriver/commands/log.js +4 -9
  6. package/build/lib/basedriver/commands/session.js +19 -30
  7. package/build/lib/basedriver/commands/settings.js +5 -11
  8. package/build/lib/basedriver/commands/timeout.js +11 -18
  9. package/build/lib/basedriver/desired-caps.js +2 -4
  10. package/build/lib/basedriver/device-settings.js +15 -5
  11. package/build/lib/basedriver/driver.js +36 -23
  12. package/build/lib/basedriver/helpers.js +10 -12
  13. package/build/lib/basedriver/logger.js +2 -4
  14. package/build/lib/constants.js +2 -4
  15. package/build/lib/express/crash.js +2 -4
  16. package/build/lib/express/express-logging.js +3 -5
  17. package/build/lib/express/idempotency.js +3 -5
  18. package/build/lib/express/logger.js +2 -4
  19. package/build/lib/express/middleware.js +2 -4
  20. package/build/lib/express/server.js +2 -4
  21. package/build/lib/express/static.js +2 -4
  22. package/build/lib/express/websocket.js +2 -4
  23. package/build/lib/helpers/capabilities.js +37 -0
  24. package/build/lib/index.js +4 -8
  25. package/build/lib/jsonwp-proxy/protocol-converter.js +19 -15
  26. package/build/lib/jsonwp-proxy/proxy.js +20 -15
  27. package/build/lib/jsonwp-status/status.js +2 -4
  28. package/build/lib/protocol/errors.js +2 -4
  29. package/build/lib/protocol/helpers.js +2 -4
  30. package/build/lib/protocol/index.js +2 -4
  31. package/build/lib/protocol/protocol.js +37 -30
  32. package/build/lib/protocol/routes.js +68 -4
  33. package/build/lib/protocol/validators.js +2 -4
  34. package/build/test/basedriver/README.md +5 -0
  35. package/build/test/basedriver/driver-e2e-tests.js +2 -4
  36. package/build/test/basedriver/driver-tests.js +12 -17
  37. package/build/test/basedriver/index.js +2 -4
  38. package/build/test/e2e/basedriver/driver.e2e.spec.js +15 -0
  39. package/build/test/e2e/basedriver/helpers.e2e.spec.js +192 -0
  40. package/build/test/e2e/basedriver/websockets.e2e.spec.js +82 -0
  41. package/build/test/e2e/express/server.e2e.spec.js +159 -0
  42. package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +59 -0
  43. package/build/test/e2e/protocol/fake-driver.js +163 -0
  44. package/build/test/e2e/protocol/helpers.js +25 -0
  45. package/build/test/e2e/protocol/protocol.e2e.spec.js +1186 -0
  46. package/build/test/helpers.js +2 -4
  47. package/build/test/unit/basedriver/capabilities.spec.js +672 -0
  48. package/build/test/unit/basedriver/capability.spec.js +353 -0
  49. package/build/test/unit/basedriver/commands/event.spec.js +110 -0
  50. package/build/test/unit/basedriver/commands/log.spec.js +85 -0
  51. package/build/test/unit/basedriver/driver.spec.js +15 -0
  52. package/build/test/unit/basedriver/helpers.spec.js +151 -0
  53. package/build/test/unit/basedriver/timeout.spec.js +135 -0
  54. package/build/test/unit/express/server.spec.js +155 -0
  55. package/build/test/unit/express/static.spec.js +26 -0
  56. package/build/test/unit/jsonwp-proxy/mock-request.js +91 -0
  57. package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +171 -0
  58. package/build/test/unit/jsonwp-proxy/proxy.spec.js +292 -0
  59. package/build/test/unit/jsonwp-proxy/url.spec.js +165 -0
  60. package/build/test/unit/jsonwp-status/status.spec.js +34 -0
  61. package/build/test/unit/protocol/errors.spec.js +390 -0
  62. package/build/test/unit/protocol/routes.spec.js +80 -0
  63. package/build/test/unit/protocol/validator.spec.js +149 -0
  64. package/lib/basedriver/commands/find.js +3 -6
  65. package/lib/basedriver/commands/log.js +2 -4
  66. package/lib/basedriver/commands/session.js +21 -22
  67. package/lib/basedriver/commands/settings.js +3 -5
  68. package/lib/basedriver/commands/timeout.js +9 -10
  69. package/lib/basedriver/device-settings.js +10 -1
  70. package/lib/basedriver/driver.js +36 -12
  71. package/lib/basedriver/helpers.js +13 -11
  72. package/lib/express/express-logging.js +1 -1
  73. package/lib/express/idempotency.js +1 -1
  74. package/lib/helpers/capabilities.js +25 -0
  75. package/lib/index.js +2 -2
  76. package/lib/jsonwp-proxy/protocol-converter.js +14 -13
  77. package/lib/jsonwp-proxy/proxy.js +16 -12
  78. package/lib/protocol/protocol.js +34 -29
  79. package/lib/protocol/routes.js +60 -1
  80. package/package.json +36 -24
  81. package/test/basedriver/README.md +5 -0
  82. package/test/basedriver/driver-e2e-tests.js +1 -1
  83. package/test/basedriver/driver-tests.js +12 -7
  84. package/build/lib/protocol/sessions-cache.js +0 -88
  85. package/build/test/basedriver/capabilities-specs.js +0 -632
  86. package/build/test/basedriver/capability-specs.js +0 -396
  87. package/build/test/basedriver/commands/event-specs.js +0 -112
  88. package/build/test/basedriver/commands/log-specs.js +0 -80
  89. package/build/test/basedriver/driver-e2e-specs.js +0 -17
  90. package/build/test/basedriver/driver-specs.js +0 -17
  91. package/build/test/basedriver/helpers-e2e-specs.js +0 -194
  92. package/build/test/basedriver/helpers-specs.js +0 -153
  93. package/build/test/basedriver/timeout-specs.js +0 -139
  94. package/build/test/basedriver/websockets-e2e-specs.js +0 -84
  95. package/build/test/express/server-e2e-specs.js +0 -156
  96. package/build/test/express/server-specs.js +0 -151
  97. package/build/test/express/static-specs.js +0 -23
  98. package/build/test/jsonwp-proxy/mock-request.js +0 -93
  99. package/build/test/jsonwp-proxy/protocol-converter-specs.js +0 -173
  100. package/build/test/jsonwp-proxy/proxy-e2e-specs.js +0 -61
  101. package/build/test/jsonwp-proxy/proxy-specs.js +0 -294
  102. package/build/test/jsonwp-proxy/url-specs.js +0 -167
  103. package/build/test/jsonwp-status/status-specs.js +0 -36
  104. package/build/test/protocol/errors-specs.js +0 -388
  105. package/build/test/protocol/fake-driver.js +0 -168
  106. package/build/test/protocol/helpers.js +0 -27
  107. package/build/test/protocol/protocol-e2e-specs.js +0 -1182
  108. package/build/test/protocol/routes-specs.js +0 -82
  109. package/build/test/protocol/validator-specs.js +0 -151
  110. package/lib/protocol/sessions-cache.js +0 -74
  111. package/test/basedriver/capabilities-specs.js +0 -505
  112. package/test/basedriver/capability-specs.js +0 -409
  113. package/test/basedriver/commands/event-specs.js +0 -74
  114. package/test/basedriver/commands/log-specs.js +0 -70
  115. package/test/basedriver/driver-e2e-specs.js +0 -8
  116. package/test/basedriver/driver-specs.js +0 -8
  117. package/test/basedriver/fixtures/BadZippedApp.zip +0 -1
  118. package/test/basedriver/fixtures/FakeAndroidApp.apk +0 -1
  119. package/test/basedriver/fixtures/FakeAndroidApp.asd +0 -0
  120. package/test/basedriver/fixtures/FakeIOSApp.app +0 -1
  121. package/test/basedriver/fixtures/FakeIOSApp.app.zip +0 -0
  122. package/test/basedriver/fixtures/FakeIOSApp.ipa +0 -0
  123. package/test/basedriver/fixtures/custom-element-finder-bad.js +0 -5
  124. package/test/basedriver/fixtures/custom-element-finder.js +0 -29
  125. package/test/basedriver/helpers-e2e-specs.js +0 -187
  126. package/test/basedriver/helpers-specs.js +0 -137
  127. package/test/basedriver/timeout-specs.js +0 -133
  128. package/test/basedriver/websockets-e2e-specs.js +0 -75
@@ -1,93 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- function resFixture(url, method) {
11
- if (/\/status$/.test(url)) {
12
- return [200, {
13
- status: 0,
14
- value: {
15
- foo: 'bar'
16
- }
17
- }];
18
- }
19
-
20
- if (/\/element\/bad\/text$/.test(url)) {
21
- return [500, {
22
- status: 11,
23
- value: {
24
- message: 'Invisible element'
25
- }
26
- }];
27
- }
28
-
29
- if (/\/element\/200\/text$/.test(url)) {
30
- return [200, {
31
- status: 11,
32
- value: {
33
- message: 'Invisible element'
34
- }
35
- }];
36
- }
37
-
38
- if (/\/element\/200\/value$/.test(url)) {
39
- return [200, {
40
- status: 0,
41
- sessionId: 'innersessionid',
42
- value: 'foobar'
43
- }];
44
- }
45
-
46
- if (/\/session$/.test(url) && method === 'POST') {
47
- return [200, {
48
- status: 0,
49
- sessionId: '123',
50
- value: {
51
- browserName: 'boo'
52
- }
53
- }];
54
- }
55
-
56
- if (/\/nochrome$/.test(url)) {
57
- return [100, {
58
- status: 0,
59
- value: {
60
- message: 'chrome not reachable'
61
- }
62
- }];
63
- }
64
-
65
- throw new Error("Can't handle url " + url);
66
- }
67
-
68
- async function request(opts) {
69
- const {
70
- url,
71
- method,
72
- json
73
- } = opts;
74
-
75
- if (/badurl$/.test(url)) {
76
- throw new Error('noworky');
77
- }
78
-
79
- const [status, data] = resFixture(url, method, json);
80
- return {
81
- status,
82
- headers: {
83
- 'content-type': 'application/json; charset=utf-8'
84
- },
85
- data
86
- };
87
- }
88
-
89
- var _default = request;
90
- exports.default = _default;require('source-map-support').install();
91
-
92
-
93
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvanNvbndwLXByb3h5L21vY2stcmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJyZXNGaXh0dXJlIiwidXJsIiwibWV0aG9kIiwidGVzdCIsInN0YXR1cyIsInZhbHVlIiwiZm9vIiwibWVzc2FnZSIsInNlc3Npb25JZCIsImJyb3dzZXJOYW1lIiwiRXJyb3IiLCJyZXF1ZXN0Iiwib3B0cyIsImpzb24iLCJkYXRhIiwiaGVhZGVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsU0FBU0EsVUFBVCxDQUFxQkMsR0FBckIsRUFBMEJDLE1BQTFCLEVBQWtDO0FBQ2hDLE1BQUksWUFBWUMsSUFBWixDQUFpQkYsR0FBakIsQ0FBSixFQUEyQjtBQUN6QixXQUFPLENBQUMsR0FBRCxFQUFNO0FBQUNHLE1BQUFBLE1BQU0sRUFBRSxDQUFUO0FBQVlDLE1BQUFBLEtBQUssRUFBRTtBQUFDQyxRQUFBQSxHQUFHLEVBQUU7QUFBTjtBQUFuQixLQUFOLENBQVA7QUFDRDs7QUFDRCxNQUFJLHdCQUF3QkgsSUFBeEIsQ0FBNkJGLEdBQTdCLENBQUosRUFBdUM7QUFDckMsV0FBTyxDQUFDLEdBQUQsRUFBTTtBQUFDRyxNQUFBQSxNQUFNLEVBQUUsRUFBVDtBQUFhQyxNQUFBQSxLQUFLLEVBQUU7QUFBQ0UsUUFBQUEsT0FBTyxFQUFFO0FBQVY7QUFBcEIsS0FBTixDQUFQO0FBQ0Q7O0FBQ0QsTUFBSSx3QkFBd0JKLElBQXhCLENBQTZCRixHQUE3QixDQUFKLEVBQXVDO0FBQ3JDLFdBQU8sQ0FBQyxHQUFELEVBQU07QUFBQ0csTUFBQUEsTUFBTSxFQUFFLEVBQVQ7QUFBYUMsTUFBQUEsS0FBSyxFQUFFO0FBQUNFLFFBQUFBLE9BQU8sRUFBRTtBQUFWO0FBQXBCLEtBQU4sQ0FBUDtBQUNEOztBQUNELE1BQUkseUJBQXlCSixJQUF6QixDQUE4QkYsR0FBOUIsQ0FBSixFQUF3QztBQUN0QyxXQUFPLENBQUMsR0FBRCxFQUFNO0FBQUNHLE1BQUFBLE1BQU0sRUFBRSxDQUFUO0FBQVlJLE1BQUFBLFNBQVMsRUFBRSxnQkFBdkI7QUFBeUNILE1BQUFBLEtBQUssRUFBRTtBQUFoRCxLQUFOLENBQVA7QUFDRDs7QUFDRCxNQUFJLGFBQWFGLElBQWIsQ0FBa0JGLEdBQWxCLEtBQTBCQyxNQUFNLEtBQUssTUFBekMsRUFBaUQ7QUFDL0MsV0FBTyxDQUFDLEdBQUQsRUFBTTtBQUFDRSxNQUFBQSxNQUFNLEVBQUUsQ0FBVDtBQUFZSSxNQUFBQSxTQUFTLEVBQUUsS0FBdkI7QUFBOEJILE1BQUFBLEtBQUssRUFBRTtBQUFDSSxRQUFBQSxXQUFXLEVBQUU7QUFBZDtBQUFyQyxLQUFOLENBQVA7QUFDRDs7QUFDRCxNQUFJLGNBQWNOLElBQWQsQ0FBbUJGLEdBQW5CLENBQUosRUFBNkI7QUFDM0IsV0FBTyxDQUFDLEdBQUQsRUFBTTtBQUFDRyxNQUFBQSxNQUFNLEVBQUUsQ0FBVDtBQUFZQyxNQUFBQSxLQUFLLEVBQUU7QUFBQ0UsUUFBQUEsT0FBTyxFQUFFO0FBQVY7QUFBbkIsS0FBTixDQUFQO0FBQ0Q7O0FBQ0QsUUFBTSxJQUFJRyxLQUFKLENBQVUsc0JBQXNCVCxHQUFoQyxDQUFOO0FBQ0Q7O0FBRUQsZUFBZVUsT0FBZixDQUF3QkMsSUFBeEIsRUFBOEI7QUFDNUIsUUFBTTtBQUFDWCxJQUFBQSxHQUFEO0FBQU1DLElBQUFBLE1BQU47QUFBY1csSUFBQUE7QUFBZCxNQUFzQkQsSUFBNUI7O0FBQ0EsTUFBSSxVQUFVVCxJQUFWLENBQWVGLEdBQWYsQ0FBSixFQUF5QjtBQUN2QixVQUFNLElBQUlTLEtBQUosQ0FBVSxTQUFWLENBQU47QUFDRDs7QUFFRCxRQUFNLENBQUNOLE1BQUQsRUFBU1UsSUFBVCxJQUFpQmQsVUFBVSxDQUFDQyxHQUFELEVBQU1DLE1BQU4sRUFBY1csSUFBZCxDQUFqQztBQUNBLFNBQU87QUFDTFQsSUFBQUEsTUFESztBQUVMVyxJQUFBQSxPQUFPLEVBQUU7QUFBQyxzQkFBZ0I7QUFBakIsS0FGSjtBQUdMRCxJQUFBQTtBQUhLLEdBQVA7QUFLRDs7ZUFFY0gsTyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHJlc0ZpeHR1cmUgKHVybCwgbWV0aG9kKSB7XG4gIGlmICgvXFwvc3RhdHVzJC8udGVzdCh1cmwpKSB7XG4gICAgcmV0dXJuIFsyMDAsIHtzdGF0dXM6IDAsIHZhbHVlOiB7Zm9vOiAnYmFyJ319XTtcbiAgfVxuICBpZiAoL1xcL2VsZW1lbnRcXC9iYWRcXC90ZXh0JC8udGVzdCh1cmwpKSB7XG4gICAgcmV0dXJuIFs1MDAsIHtzdGF0dXM6IDExLCB2YWx1ZToge21lc3NhZ2U6ICdJbnZpc2libGUgZWxlbWVudCd9fV07XG4gIH1cbiAgaWYgKC9cXC9lbGVtZW50XFwvMjAwXFwvdGV4dCQvLnRlc3QodXJsKSkge1xuICAgIHJldHVybiBbMjAwLCB7c3RhdHVzOiAxMSwgdmFsdWU6IHttZXNzYWdlOiAnSW52aXNpYmxlIGVsZW1lbnQnfX1dO1xuICB9XG4gIGlmICgvXFwvZWxlbWVudFxcLzIwMFxcL3ZhbHVlJC8udGVzdCh1cmwpKSB7XG4gICAgcmV0dXJuIFsyMDAsIHtzdGF0dXM6IDAsIHNlc3Npb25JZDogJ2lubmVyc2Vzc2lvbmlkJywgdmFsdWU6ICdmb29iYXInfV07XG4gIH1cbiAgaWYgKC9cXC9zZXNzaW9uJC8udGVzdCh1cmwpICYmIG1ldGhvZCA9PT0gJ1BPU1QnKSB7XG4gICAgcmV0dXJuIFsyMDAsIHtzdGF0dXM6IDAsIHNlc3Npb25JZDogJzEyMycsIHZhbHVlOiB7YnJvd3Nlck5hbWU6ICdib28nfX1dO1xuICB9XG4gIGlmICgvXFwvbm9jaHJvbWUkLy50ZXN0KHVybCkpIHtcbiAgICByZXR1cm4gWzEwMCwge3N0YXR1czogMCwgdmFsdWU6IHttZXNzYWdlOiAnY2hyb21lIG5vdCByZWFjaGFibGUnfX1dO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGhhbmRsZSB1cmwgXCIgKyB1cmwpO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZXF1ZXN0IChvcHRzKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICBjb25zdCB7dXJsLCBtZXRob2QsIGpzb259ID0gb3B0cztcbiAgaWYgKC9iYWR1cmwkLy50ZXN0KHVybCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vd29ya3knKTtcbiAgfVxuXG4gIGNvbnN0IFtzdGF0dXMsIGRhdGFdID0gcmVzRml4dHVyZSh1cmwsIG1ldGhvZCwganNvbik7XG4gIHJldHVybiB7XG4gICAgc3RhdHVzLFxuICAgIGhlYWRlcnM6IHsnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnfSxcbiAgICBkYXRhLFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCByZXF1ZXN0O1xuIl0sImZpbGUiOiJ0ZXN0L2pzb253cC1wcm94eS9tb2NrLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -1,173 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- require("source-map-support/register");
6
-
7
- var _lodash = _interopRequireDefault(require("lodash"));
8
-
9
- var _constants = require("../../lib/constants");
10
-
11
- var _protocolConverter = _interopRequireWildcard(require("../../lib/jsonwp-proxy/protocol-converter"));
12
-
13
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
-
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
-
17
- const {
18
- MJSONWP,
19
- W3C
20
- } = _constants.PROTOCOLS;
21
- describe('Protocol Converter', function () {
22
- describe('getTimeoutRequestObjects', function () {
23
- let converter;
24
- before(function () {
25
- converter = new _protocolConverter.default(_lodash.default.noop);
26
- });
27
- it('should take W3C inputs and produce MJSONWP compatible objects', function () {
28
- converter.downstreamProtocol = MJSONWP;
29
- let timeoutObjects = converter.getTimeoutRequestObjects({
30
- script: 100
31
- });
32
- timeoutObjects.length.should.equal(1);
33
- timeoutObjects[0].should.eql({
34
- type: 'script',
35
- ms: 100
36
- });
37
- });
38
- it('should ignore invalid entries while converting from W3C', function () {
39
- converter.downstreamProtocol = MJSONWP;
40
- let timeoutObjects = converter.getTimeoutRequestObjects({
41
- script: 100,
42
- sessionId: '5432a4f3-cd89-4781-8905-ea9d3150840c',
43
- bar: -1,
44
- baz: undefined
45
- });
46
- timeoutObjects.length.should.equal(1);
47
- timeoutObjects[0].should.eql({
48
- type: 'script',
49
- ms: 100
50
- });
51
- });
52
- it('should take multiple W3C timeouts and produce multiple MJSONWP compatible objects', function () {
53
- converter.downstreamProtocol = MJSONWP;
54
- let [scriptTimeout, pageLoadTimeout, implicitTimeout] = converter.getTimeoutRequestObjects({
55
- script: 100,
56
- pageLoad: 200,
57
- implicit: 300
58
- });
59
- scriptTimeout.should.eql({
60
- type: 'script',
61
- ms: 100
62
- });
63
- pageLoadTimeout.should.eql({
64
- type: 'page load',
65
- ms: 200
66
- });
67
- implicitTimeout.should.eql({
68
- type: 'implicit',
69
- ms: 300
70
- });
71
- });
72
- it('should take MJSONWP input and produce W3C compatible object', function () {
73
- converter.downstreamProtocol = W3C;
74
- let timeoutObjects = converter.getTimeoutRequestObjects({
75
- type: 'implicit',
76
- ms: 300
77
- });
78
- timeoutObjects.length.should.equal(1);
79
- timeoutObjects[0].should.eql({
80
- implicit: 300
81
- });
82
- });
83
- it('should not change the input if protocol name is unknown', function () {
84
- converter.downstreamProtocol = null;
85
- let timeoutObjects = converter.getTimeoutRequestObjects({
86
- type: 'implicit',
87
- ms: 300
88
- });
89
- timeoutObjects.length.should.equal(1);
90
- timeoutObjects[0].should.eql({
91
- type: 'implicit',
92
- ms: 300
93
- });
94
- });
95
- it('should not change the input if protocol name is unchanged', function () {
96
- converter.downstreamProtocol = MJSONWP;
97
- let timeoutObjects = converter.getTimeoutRequestObjects({
98
- type: 'implicit',
99
- ms: 300
100
- });
101
- timeoutObjects.length.should.equal(1);
102
- timeoutObjects[0].should.eql({
103
- type: 'implicit',
104
- ms: 300
105
- });
106
- });
107
- });
108
- describe('setValue', function () {
109
- let converter;
110
- let responseBody;
111
- before(function () {
112
- responseBody = null;
113
- converter = new _protocolConverter.default((url, method, body) => {
114
- responseBody = body;
115
- });
116
- });
117
- beforeEach(function () {
118
- responseBody = {};
119
- });
120
- it('should calculate value if not present', async function () {
121
- await converter.proxySetValue('', '', {
122
- text: 'bla'
123
- });
124
- responseBody.should.eql({
125
- text: 'bla',
126
- value: ['b', 'l', 'a']
127
- });
128
- });
129
- it('should calculate text if not present', async function () {
130
- await converter.proxySetValue('', '', {
131
- value: ['b', 'l', 'a']
132
- });
133
- responseBody.should.eql({
134
- text: 'bla',
135
- value: ['b', 'l', 'a']
136
- });
137
- });
138
- it('should keep the response body unchanged if both value and text are present', async function () {
139
- await converter.proxySetValue('', '', {
140
- text: 'bla',
141
- value: ['b', 'l', 'a']
142
- });
143
- responseBody.should.eql({
144
- text: 'bla',
145
- value: ['b', 'l', 'a']
146
- });
147
- });
148
- });
149
- describe('getProperty', function () {
150
- let jsonwpConverter, w3cConverter;
151
- before(function () {
152
- for (let command of _protocolConverter.COMMAND_URLS_CONFLICTS) {
153
- if (command.commandNames.includes('getProperty')) {
154
- jsonwpConverter = command.jsonwpConverter;
155
- w3cConverter = command.w3cConverter;
156
- }
157
- }
158
- });
159
- it('should convert "property/value" to "attribute/value"', function () {
160
- jsonwpConverter('/session/123/element/456/property/value').should.equal('/session/123/element/456/attribute/value');
161
- });
162
- it('should convert "property/:somePropName" to "attribute/:somePropName"', function () {
163
- jsonwpConverter('/session/123/element/456/property/somePropName').should.equal('/session/123/element/456/attribute/somePropName');
164
- });
165
- it('should not convert from JSONWP to W3C', function () {
166
- w3cConverter('/session/123/element/456/attribute/someAttr').should.equal('/session/123/element/456/attribute/someAttr');
167
- w3cConverter('/session/123/element/456/property/someProp').should.equal('/session/123/element/456/property/someProp');
168
- });
169
- });
170
- });require('source-map-support').install();
171
-
172
-
173
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvanNvbndwLXByb3h5L3Byb3RvY29sLWNvbnZlcnRlci1zcGVjcy5qcyJdLCJuYW1lcyI6WyJNSlNPTldQIiwiVzNDIiwiUFJPVE9DT0xTIiwiZGVzY3JpYmUiLCJjb252ZXJ0ZXIiLCJiZWZvcmUiLCJQcm90b2NvbENvbnZlcnRlciIsIl8iLCJub29wIiwiaXQiLCJkb3duc3RyZWFtUHJvdG9jb2wiLCJ0aW1lb3V0T2JqZWN0cyIsImdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyIsInNjcmlwdCIsImxlbmd0aCIsInNob3VsZCIsImVxdWFsIiwiZXFsIiwidHlwZSIsIm1zIiwic2Vzc2lvbklkIiwiYmFyIiwiYmF6IiwidW5kZWZpbmVkIiwic2NyaXB0VGltZW91dCIsInBhZ2VMb2FkVGltZW91dCIsImltcGxpY2l0VGltZW91dCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJyZXNwb25zZUJvZHkiLCJ1cmwiLCJtZXRob2QiLCJib2R5IiwiYmVmb3JlRWFjaCIsInByb3h5U2V0VmFsdWUiLCJ0ZXh0IiwidmFsdWUiLCJqc29ud3BDb252ZXJ0ZXIiLCJ3M2NDb252ZXJ0ZXIiLCJjb21tYW5kIiwiQ09NTUFORF9VUkxTX0NPTkZMSUNUUyIsImNvbW1hbmROYW1lcyIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTTtBQUFDQSxFQUFBQSxPQUFEO0FBQVVDLEVBQUFBO0FBQVYsSUFBaUJDLG9CQUF2QjtBQUdBQyxRQUFRLENBQUMsb0JBQUQsRUFBdUIsWUFBWTtBQUN6Q0EsRUFBQUEsUUFBUSxDQUFDLDBCQUFELEVBQTZCLFlBQVk7QUFDL0MsUUFBSUMsU0FBSjtBQUNBQyxJQUFBQSxNQUFNLENBQUMsWUFBWTtBQUNqQkQsTUFBQUEsU0FBUyxHQUFHLElBQUlFLDBCQUFKLENBQXNCQyxnQkFBRUMsSUFBeEIsQ0FBWjtBQUNELEtBRkssQ0FBTjtBQUdBQyxJQUFBQSxFQUFFLENBQUMsK0RBQUQs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aURBQS9FO0FBQ0QsS0FGQyxDQUFGO0FBR0FQLElBQUFBLEVBQUUsQ0FBQyx1Q0FBRCxFQUEwQyxZQUFZO0FBQ3RENkIsTUFBQUEsWUFBWSxDQUFDLDZDQUFELENBQVosQ0FBNER2QixNQUE1RCxDQUFtRUMsS0FBbkUsQ0FBeUUsNkNBQXpFO0FBQ0FzQixNQUFBQSxZQUFZLENBQUMsNENBQUQsQ0FBWixDQUEyRHZCLE1BQTNELENBQWtFQyxLQUFsRSxDQUF3RSw0Q0FBeEU7QUFDRCxLQUhDLENBQUY7QUFJRCxHQXBCTyxDQUFSO0FBcUJELENBMUhPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUFJPVE9DT0xTIH0gZnJvbSAnLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgUHJvdG9jb2xDb252ZXJ0ZXIsIHtDT01NQU5EX1VSTFNfQ09ORkxJQ1RTfSBmcm9tICcuLi8uLi9saWIvanNvbndwLXByb3h5L3Byb3RvY29sLWNvbnZlcnRlcic7XG5cbmNvbnN0IHtNSlNPTldQLCBXM0N9ID0gUFJPVE9DT0xTO1xuXG5cbmRlc2NyaWJlKCdQcm90b2NvbCBDb252ZXJ0ZXInLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdnZXRUaW1lb3V0UmVxdWVzdE9iamVjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbnZlcnRlcjtcbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgY29udmVydGVyID0gbmV3IFByb3RvY29sQ29udmVydGVyKF8ubm9vcCk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCB0YWtlIFczQyBpbnB1dHMgYW5kIHByb2R1Y2UgTUpTT05XUCBjb21wYXRpYmxlIG9iamVjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb252ZXJ0ZXIuZG93bnN0cmVhbVByb3RvY29sID0gTUpTT05XUDtcbiAgICAgIGxldCB0aW1lb3V0T2JqZWN0cyA9IGNvbnZlcnRlci5nZXRUaW1lb3V0UmVxdWVzdE9iamVjdHMoe3NjcmlwdDogMTAwfSk7XG4gICAgICB0aW1lb3V0T2JqZWN0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdGltZW91dE9iamVjdHNbMF0uc2hvdWxkLmVxbCh7dHlwZTogJ3NjcmlwdCcsIG1zOiAxMDB9KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGlnbm9yZSBpbnZhbGlkIGVudHJpZXMgd2hpbGUgY29udmVydGluZyBmcm9tIFczQycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnZlcnRlci5kb3duc3RyZWFtUHJvdG9jb2wgPSBNSlNPTldQO1xuICAgICAgbGV0IHRpbWVvdXRPYmplY3RzID0gY29udmVydGVyLmdldFRpbWVvdXRSZXF1ZXN0T2JqZWN0cyh7XG4gICAgICAgIHNjcmlwdDogMTAwLFxuICAgICAgICBzZXNzaW9uSWQ6ICc1NDMyYTRmMy1jZDg5LTQ3ODEtODkwNS1lYTlkMzE1MDg0MGMnLFxuICAgICAgICBiYXI6IC0xLFxuICAgICAgICBiYXo6IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgICAgdGltZW91dE9iamVjdHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHRpbWVvdXRPYmplY3RzWzBdLnNob3VsZC5lcWwoe3R5cGU6ICdzY3JpcHQnLCBtczogMTAwfSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCB0YWtlIG11bHRpcGxlIFczQyB0aW1lb3V0cyBhbmQgcHJvZHVjZSBtdWx0aXBsZSBNSlNPTldQIGNvbXBhdGlibGUgb2JqZWN0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnZlcnRlci5kb3duc3RyZWFtUHJvdG9jb2wgPSBNSlNPTldQO1xuICAgICAgbGV0IFtzY3JpcHRUaW1lb3V0LCBwYWdlTG9hZFRpbWVvdXQsIGltcGxpY2l0VGltZW91dF0gPSBjb252ZXJ0ZXIuZ2V0VGltZW91dFJlcXVlc3RPYmplY3RzKHtzY3JpcHQ6IDEwMCwgcGFnZUxvYWQ6IDIwMCwgaW1wbGljaXQ6IDMwMH0pO1xuICAgICAgc2NyaXB0VGltZW91dC5zaG91bGQuZXFsKHtcbiAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgIG1zOiAxMDAsXG4gICAgICB9KTtcbiAgICAgIHBhZ2VMb2FkVGltZW91dC5zaG91bGQuZXFsKHtcbiAgICAgICAgdHlwZTogJ3BhZ2UgbG9hZCcsXG4gICAgICAgIG1zOiAyMDAsXG4gICAgICB9KTtcbiAgICAgIGltcGxpY2l0VGltZW91dC5zaG91bGQuZXFsKHtcbiAgICAgICAgdHlwZTogJ2ltcGxpY2l0JyxcbiAgICAgICAgbXM6IDMwMCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgdGFrZSBNSlNPTldQIGlucHV0IGFuZCBwcm9kdWNlIFczQyBjb21wYXRpYmxlIG9iamVjdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnZlcnRlci5kb3duc3RyZWFtUHJvdG9jb2wgPSBXM0M7XG4gICAgICBsZXQgdGltZW91dE9iamVjdHMgPSBjb252ZXJ0ZXIuZ2V0VGltZW91dFJlcXVlc3RPYmplY3RzKHt0eXBlOiAnaW1wbGljaXQnLCBtczogMzAwfSk7XG4gICAgICB0aW1lb3V0T2JqZWN0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdGltZW91dE9iamVjdHNbMF0uc2hvdWxkLmVxbCh7aW1wbGljaXQ6IDMwMH0pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgbm90IGNoYW5nZSB0aGUgaW5wdXQgaWYgcHJvdG9jb2wgbmFtZSBpcyB1bmtub3duJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29udmVydGVyLmRvd25zdHJlYW1Qcm90b2NvbCA9IG51bGw7XG4gICAgICBsZXQgdGltZW91dE9iamVjdHMgPSBjb252ZXJ0ZXIuZ2V0VGltZW91dFJlcXVlc3RPYmplY3RzKHt0eXBlOiAnaW1wbGljaXQnLCBtczogMzAwfSk7XG4gICAgICB0aW1lb3V0T2JqZWN0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdGltZW91dE9iamVjdHNbMF0uc2hvdWxkLmVxbCh7dHlwZTogJ2ltcGxpY2l0JywgbXM6IDMwMH0pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgbm90IGNoYW5nZSB0aGUgaW5wdXQgaWYgcHJvdG9jb2wgbmFtZSBpcyB1bmNoYW5nZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb252ZXJ0ZXIuZG93bnN0cmVhbVByb3RvY29sID0gTUpTT05XUDtcbiAgICAgIGxldCB0aW1lb3V0T2JqZWN0cyA9IGNvbnZlcnRlci5nZXRUaW1lb3V0UmVxdWVzdE9iamVjdHMoe3R5cGU6ICdpbXBsaWNpdCcsIG1zOiAzMDB9KTtcbiAgICAgIHRpbWVvdXRPYmplY3RzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgICB0aW1lb3V0T2JqZWN0c1swXS5zaG91bGQuZXFsKHt0eXBlOiAnaW1wbGljaXQnLCBtczogMzAwfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZXRWYWx1ZScsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgY29udmVydGVyO1xuICAgIGxldCByZXNwb25zZUJvZHk7XG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlc3BvbnNlQm9keSA9IG51bGw7XG4gICAgICBjb252ZXJ0ZXIgPSBuZXcgUHJvdG9jb2xDb252ZXJ0ZXIoKHVybCwgbWV0aG9kLCBib2R5KSA9PiB7XG4gICAgICAgIHJlc3BvbnNlQm9keSA9IGJvZHk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlc3BvbnNlQm9keSA9IHt9O1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjYWxjdWxhdGUgdmFsdWUgaWYgbm90IHByZXNlbnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBjb252ZXJ0ZXIucHJveHlTZXRWYWx1ZSgnJywgJycsIHtcbiAgICAgICAgdGV4dDogJ2JsYScsXG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlQm9keS5zaG91bGQuZXFsKHtcbiAgICAgICAgdGV4dDogJ2JsYScsXG4gICAgICAgIHZhbHVlOiBbJ2InLCAnbCcsICdhJ10sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGNhbGN1bGF0ZSB0ZXh0IGlmIG5vdCBwcmVzZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgY29udmVydGVyLnByb3h5U2V0VmFsdWUoJycsICcnLCB7XG4gICAgICAgIHZhbHVlOiBbJ2InLCAnbCcsICdhJ10sXG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlQm9keS5zaG91bGQuZXFsKHtcbiAgICAgICAgdGV4dDogJ2JsYScsXG4gICAgICAgIHZhbHVlOiBbJ2InLCAnbCcsICdhJ10sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGtlZXAgdGhlIHJlc3BvbnNlIGJvZHkgdW5jaGFuZ2VkIGlmIGJvdGggdmFsdWUgYW5kIHRleHQgYXJlIHByZXNlbnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBjb252ZXJ0ZXIucHJveHlTZXRWYWx1ZSgnJywgJycsIHtcbiAgICAgICAgdGV4dDogJ2JsYScsXG4gICAgICAgIHZhbHVlOiBbJ2InLCAnbCcsICdhJ10sXG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlQm9keS5zaG91bGQuZXFsKHtcbiAgICAgICAgdGV4dDogJ2JsYScsXG4gICAgICAgIHZhbHVlOiBbJ2InLCAnbCcsICdhJ10sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG4gIGRlc2NyaWJlKCdnZXRQcm9wZXJ0eScsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQganNvbndwQ29udmVydGVyLCB3M2NDb252ZXJ0ZXI7XG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAobGV0IGNvbW1hbmQgb2YgQ09NTUFORF9VUkxTX0NPTkZMSUNUUykge1xuICAgICAgICBpZiAoY29tbWFuZC5jb21tYW5kTmFtZXMuaW5jbHVkZXMoJ2dldFByb3BlcnR5JykpIHtcbiAgICAgICAgICBqc29ud3BDb252ZXJ0ZXIgPSBjb21tYW5kLmpzb253cENvbnZlcnRlcjtcbiAgICAgICAgICB3M2NDb252ZXJ0ZXIgPSBjb21tYW5kLnczY0NvbnZlcnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgY29udmVydCBcInByb3BlcnR5L3ZhbHVlXCIgdG8gXCJhdHRyaWJ1dGUvdmFsdWVcIicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGpzb253cENvbnZlcnRlcignL3Nlc3Npb24vMTIzL2VsZW1lbnQvNDU2L3Byb3BlcnR5L3ZhbHVlJykuc2hvdWxkLmVxdWFsKCcvc2Vzc2lvbi8xMjMvZWxlbWVudC80NTYvYXR0cmlidXRlL3ZhbHVlJyk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IFwicHJvcGVydHkvOnNvbWVQcm9wTmFtZVwiIHRvIFwiYXR0cmlidXRlLzpzb21lUHJvcE5hbWVcIicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGpzb253cENvbnZlcnRlcignL3Nlc3Npb24vMTIzL2VsZW1lbnQvNDU2L3Byb3BlcnR5L3NvbWVQcm9wTmFtZScpLnNob3VsZC5lcXVhbCgnL3Nlc3Npb24vMTIzL2VsZW1lbnQvNDU2L2F0dHJpYnV0ZS9zb21lUHJvcE5hbWUnKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIG5vdCBjb252ZXJ0IGZyb20gSlNPTldQIHRvIFczQycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHczY0NvbnZlcnRlcignL3Nlc3Npb24vMTIzL2VsZW1lbnQvNDU2L2F0dHJpYnV0ZS9zb21lQXR0cicpLnNob3VsZC5lcXVhbCgnL3Nlc3Npb24vMTIzL2VsZW1lbnQvNDU2L2F0dHJpYnV0ZS9zb21lQXR0cicpO1xuICAgICAgdzNjQ29udmVydGVyKCcvc2Vzc2lvbi8xMjMvZWxlbWVudC80NTYvcHJvcGVydHkvc29tZVByb3AnKS5zaG91bGQuZXF1YWwoJy9zZXNzaW9uLzEyMy9lbGVtZW50LzQ1Ni9wcm9wZXJ0eS9zb21lUHJvcCcpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sImZpbGUiOiJ0ZXN0L2pzb253cC1wcm94eS9wcm90b2NvbC1jb252ZXJ0ZXItc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- var _lib = require("../../lib");
6
-
7
- var _fakeDriver = require("../protocol/fake-driver");
8
-
9
- describe('proxy', function () {
10
- const jwproxy = new _lib.JWProxy();
11
- let baseServer;
12
- before(async function () {
13
- baseServer = await (0, _lib.server)({
14
- routeConfiguringFunction: (0, _lib.routeConfiguringFunction)(new _fakeDriver.FakeDriver()),
15
- port: 4444
16
- });
17
- });
18
- after(async function () {
19
- await baseServer.close();
20
- });
21
- it('should proxy status straight', async function () {
22
- let [res, resBody] = await jwproxy.proxy('/status', 'GET');
23
- res.statusCode.should.equal(200);
24
- resBody.value.should.equal(`I'm fine`);
25
- });
26
- it('should proxy status as command', async function () {
27
- const res = await jwproxy.command('/status', 'GET');
28
- res.should.eql(`I'm fine`);
29
- });
30
- describe('new session', function () {
31
- afterEach(async function () {
32
- await jwproxy.command('', 'DELETE');
33
- });
34
- it('should start a new session', async function () {
35
- const caps = {
36
- browserName: 'fake'
37
- };
38
- const res = await jwproxy.command('/session', 'POST', {
39
- capabilities: {
40
- alwaysMatch: caps
41
- }
42
- });
43
- res.capabilities.alwaysMatch.should.have.property('browserName');
44
- jwproxy.sessionId.should.have.length(48);
45
- });
46
- });
47
- describe('delete session', function () {
48
- beforeEach(async function () {
49
- await jwproxy.command('/session', 'POST', {
50
- desiredCapabilities: {}
51
- });
52
- });
53
- it('should quit a session', async function () {
54
- const res = await jwproxy.command('', 'DELETE');
55
- should.not.exist(res);
56
- });
57
- });
58
- });require('source-map-support').install();
59
-
60
-
61
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvanNvbndwLXByb3h5L3Byb3h5LWUyZS1zcGVjcy5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImp3cHJveHkiLCJKV1Byb3h5IiwiYmFzZVNlcnZlciIsImJlZm9yZSIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsIkZha2VEcml2ZXIiLCJwb3J0IiwiYWZ0ZXIiLCJjbG9zZSIsIml0IiwicmVzIiwicmVzQm9keSIsInByb3h5Iiwic3RhdHVzQ29kZSIsInNob3VsZCIsImVxdWFsIiwidmFsdWUiLCJjb21tYW5kIiwiZXFsIiwiYWZ0ZXJFYWNoIiwiY2FwcyIsImJyb3dzZXJOYW1lIiwiY2FwYWJpbGl0aWVzIiwiYWx3YXlzTWF0Y2giLCJoYXZlIiwicHJvcGVydHkiLCJzZXNzaW9uSWQiLCJsZW5ndGgiLCJiZWZvcmVFYWNoIiwiZGVzaXJlZENhcGFiaWxpdGllcyIsIm5vdCIsImV4aXN0Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBWTtBQUM1QixRQUFNQyxPQUFPLEdBQUcsSUFBSUMsWUFBSixFQUFoQjtBQUNBLE1BQUlDLFVBQUo7QUFDQUMsRUFBQUEsTUFBTSxDQUFDLGtCQUFrQjtBQUN2QkQsSUFBQUEsVUFBVSxHQUFHLE1BQU0saUJBQU87QUFDeEJFLE1BQUFBLHdCQUF3QixFQUFFLG1DQUF5QixJQUFJQyxzQkFBSixFQUF6QixDQURGO0FBRXhCQyxNQUFBQSxJQUFJLEVBQUU7QUFGa0IsS0FBUCxDQUFuQjtBQUlELEdBTEssQ0FBTjtBQU1BQyxFQUFBQSxLQUFLLENBQUMsa0JBQWtCO0FBQ3RCLFVBQU1MLFVBQVUsQ0FBQ00sS0FBWCxFQUFOO0FBQ0QsR0FGSSxDQUFMO0FBSUFDLEVBQUFBLEVBQUUsQ0FBQyw4QkFBRCxFQUFpQyxrQkFBa0I7QUFDbkQsUUFBSSxDQUFDQyxHQUFELEVBQU1DLE9BQU4sSUFBaUIsTUFBTVgsT0FBTyxDQUFDWSxLQUFSLENBQWMsU0FBZCxFQUF5QixLQUF6QixDQUEzQjtBQUNBRixJQUFBQSxHQUFHLENBQUNHLFVBQUosQ0FBZUMsTUFBZixDQUFzQkMsS0FBdEIsQ0FBNEIsR0FBNUI7QUFDQUosSUFBQUEsT0FBTyxDQUFDSyxLQUFSLENBQWNGLE1BQWQsQ0FBcUJDLEtBQXJCLENBQTRCLFVBQTVCO0FBQ0QsR0FKQyxDQUFGO0FBS0FOLEVBQUFBLEVBQUUsQ0FBQyxnQ0FBRCxFQUFtQyxrQkFBa0I7QUFDckQsVUFBTUMsR0FBRyxHQUFHLE1BQU1WLE9BQU8sQ0FBQ2lCLE9BQVIsQ0FBZ0IsU0FBaEIsRUFBMkIsS0FBM0IsQ0FBbEI7QUFDQVAsSUFBQUEsR0FBRyxDQUFDSSxNQUFKLENBQVdJLEdBQVgsQ0FBZ0IsVUFBaEI7QUFDRCxHQUhDLENBQUY7QUFJQW5CLEVBQUFBLFFBQVEsQ0FBQyxhQUFELEVBQWdCLFlBQVk7QUFDbENvQixJQUFBQSxTQUFTLENBQUMsa0JBQWtCO0FBQzFCLFlBQU1uQixPQUFPLENBQUNpQixPQUFSLENBQWdCLEVBQWhCLEVBQW9CLFFBQXBCLENBQU47QUFDRCxLQUZRLENBQVQ7QUFHQVIsSUFBQUEsRUFBRSxDQUFDLDRCQUFELEVBQStCLGtCQUFrQjtBQUNqRCxZQUFNVyxJQUFJLEdBQUc7QUFBQ0MsUUFBQUEsV0FBVyxFQUFFO0FBQWQsT0FBYjtBQUNBLFlBQU1YLEdBQUcsR0FBRyxNQUFNVixPQUFPLENBQUNpQixPQUFSLENBQWdCLFVBQWhCLEVBQTRCLE1BQTVCLEVBQW9DO0FBQUNLLFFBQUFBLFlBQVksRUFBRTtBQUFDQyxVQUFBQSxXQUFXLEVBQUVIO0FBQWQ7QUFBZixPQUFwQyxDQUFsQjtBQUNBVixNQUFBQSxHQUFHLENBQUNZLFlBQUosQ0FBaUJDLFdBQWpCLENBQTZCVCxNQUE3QixDQUFvQ1UsSUFBcEMsQ0FBeUNDLFFBQXpDLENBQWtELGFBQWxEO0FBQ0F6QixNQUFBQSxPQUFPLENBQUMwQixTQUFSLENBQWtCWixNQUFsQixDQUF5QlUsSUFBekIsQ0FBOEJHLE1BQTlCLENBQXFDLEVBQXJDO0FBQ0QsS0FMQyxDQUFGO0FBTUQsR0FWTyxDQUFSO0FBV0E1QixFQUFBQSxRQUFRLENBQUMsZ0JBQUQsRUFBbUIsWUFBWTtBQUNyQzZCLElBQUFBLFVBQVUsQ0FBQyxrQkFBa0I7QUFDM0IsWUFBTTVCLE9BQU8sQ0FBQ2lCLE9BQVIsQ0FBZ0IsVUFBaEIsRUFBNEIsTUFBNUIsRUFBb0M7QUFBQ1ksUUFBQUEsbUJBQW1CLEVBQUU7QUFBdEIsT0FBcEMsQ0FBTjtBQUNELEtBRlMsQ0FBVjtBQUdBcEIsSUFBQUEsRUFBRSxDQUFDLHVCQUFELEVBQTBCLGtCQUFrQjtBQUM1QyxZQUFNQyxHQUFHLEdBQUcsTUFBTVYsT0FBTyxDQUFDaUIsT0FBUixDQUFnQixFQUFoQixFQUFvQixRQUFwQixDQUFsQjtBQUNBSCxNQUFBQSxNQUFNLENBQUNnQixHQUFQLENBQVdDLEtBQVgsQ0FBaUJyQixHQUFqQjtBQUNELEtBSEMsQ0FBRjtBQUlELEdBUk8sQ0FBUjtBQVNELENBMUNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKV1Byb3h5LCBzZXJ2ZXIsIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiB9IGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgeyBGYWtlRHJpdmVyIH0gZnJvbSAnLi4vcHJvdG9jb2wvZmFrZS1kcml2ZXInO1xuXG5kZXNjcmliZSgncHJveHknLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGp3cHJveHkgPSBuZXcgSldQcm94eSgpO1xuICBsZXQgYmFzZVNlcnZlcjtcbiAgYmVmb3JlKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBiYXNlU2VydmVyID0gYXdhaXQgc2VydmVyKHtcbiAgICAgIHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbjogcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uKG5ldyBGYWtlRHJpdmVyKCkpLFxuICAgICAgcG9ydDogNDQ0NCxcbiAgICB9KTtcbiAgfSk7XG4gIGFmdGVyKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBhd2FpdCBiYXNlU2VydmVyLmNsb3NlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHJveHkgc3RhdHVzIHN0cmFpZ2h0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGxldCBbcmVzLCByZXNCb2R5XSA9IGF3YWl0IGp3cHJveHkucHJveHkoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgcmVzLnN0YXR1c0NvZGUuc2hvdWxkLmVxdWFsKDIwMCk7XG4gICAgcmVzQm9keS52YWx1ZS5zaG91bGQuZXF1YWwoYEknbSBmaW5lYCk7XG4gIH0pO1xuICBpdCgnc2hvdWxkIHByb3h5IHN0YXR1cyBhcyBjb21tYW5kJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGp3cHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICByZXMuc2hvdWxkLmVxbChgSSdtIGZpbmVgKTtcbiAgfSk7XG4gIGRlc2NyaWJlKCduZXcgc2Vzc2lvbicsIGZ1bmN0aW9uICgpIHtcbiAgICBhZnRlckVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgandwcm94eS5jb21tYW5kKCcnLCAnREVMRVRFJyk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBzdGFydCBhIG5ldyBzZXNzaW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY2FwcyA9IHticm93c2VyTmFtZTogJ2Zha2UnfTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGp3cHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtjYXBhYmlsaXRpZXM6IHthbHdheXNNYXRjaDogY2Fwc319KTtcbiAgICAgIHJlcy5jYXBhYmlsaXRpZXMuYWx3YXlzTWF0Y2guc2hvdWxkLmhhdmUucHJvcGVydHkoJ2Jyb3dzZXJOYW1lJyk7XG4gICAgICBqd3Byb3h5LnNlc3Npb25JZC5zaG91bGQuaGF2ZS5sZW5ndGgoNDgpO1xuICAgIH0pO1xuICB9KTtcbiAgZGVzY3JpYmUoJ2RlbGV0ZSBzZXNzaW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgandwcm94eS5jb21tYW5kKCcvc2Vzc2lvbicsICdQT1NUJywge2Rlc2lyZWRDYXBhYmlsaXRpZXM6IHt9fSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBxdWl0IGEgc2Vzc2lvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGp3cHJveHkuY29tbWFuZCgnJywgJ0RFTEVURScpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdChyZXMpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sImZpbGUiOiJ0ZXN0L2pzb253cC1wcm94eS9wcm94eS1lMmUtc3BlY3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==