appium 2.0.0-beta.25 → 2.0.0-beta.26

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 (124) hide show
  1. package/build/lib/appium-config.schema.json +278 -0
  2. package/build/lib/appium.js +45 -66
  3. package/build/lib/cli/args.js +19 -39
  4. package/build/lib/cli/driver-command.js +5 -9
  5. package/build/lib/cli/extension-command.js +73 -64
  6. package/build/lib/cli/extension.js +10 -23
  7. package/build/lib/cli/parser.js +9 -19
  8. package/build/lib/cli/plugin-command.js +5 -9
  9. package/build/lib/cli/utils.js +2 -4
  10. package/build/lib/config-file.js +2 -4
  11. package/build/lib/config.js +7 -6
  12. package/build/lib/constants.js +60 -0
  13. package/build/lib/extension/driver-config.js +190 -0
  14. package/build/lib/extension/extension-config.js +297 -0
  15. package/build/lib/extension/index.js +77 -0
  16. package/build/lib/extension/manifest.js +246 -0
  17. package/build/lib/extension/package-changed.js +68 -0
  18. package/build/lib/extension/plugin-config.js +87 -0
  19. package/build/lib/grid-register.js +2 -4
  20. package/build/lib/logger.js +2 -4
  21. package/build/lib/logsink.js +2 -4
  22. package/build/lib/main.js +40 -68
  23. package/build/lib/schema/appium-config-schema.js +2 -4
  24. package/build/lib/schema/arg-spec.js +11 -14
  25. package/build/lib/schema/cli-args.js +2 -4
  26. package/build/lib/schema/cli-transformers.js +2 -4
  27. package/build/lib/schema/index.js +2 -4
  28. package/build/lib/schema/keywords.js +2 -4
  29. package/build/lib/schema/schema.js +55 -37
  30. package/build/lib/utils.js +1 -32
  31. package/lib/appium.js +50 -68
  32. package/lib/cli/args.js +19 -23
  33. package/lib/cli/driver-command.js +10 -2
  34. package/lib/cli/extension-command.js +216 -135
  35. package/lib/cli/extension.js +7 -15
  36. package/lib/cli/parser.js +6 -14
  37. package/lib/cli/plugin-command.js +1 -2
  38. package/lib/config-file.js +3 -3
  39. package/lib/config.js +5 -4
  40. package/lib/constants.js +79 -0
  41. package/lib/extension/driver-config.js +230 -0
  42. package/lib/extension/extension-config.js +459 -0
  43. package/lib/extension/index.js +103 -0
  44. package/lib/extension/manifest.js +590 -0
  45. package/lib/extension/package-changed.js +64 -0
  46. package/lib/extension/plugin-config.js +111 -0
  47. package/lib/grid-register.js +4 -4
  48. package/lib/main.js +51 -88
  49. package/lib/schema/arg-spec.js +2 -2
  50. package/lib/schema/cli-args.js +1 -0
  51. package/lib/schema/keywords.js +1 -1
  52. package/lib/schema/schema.js +60 -28
  53. package/lib/utils.js +2 -32
  54. package/package.json +29 -21
  55. package/{postinstall.js → scripts/postinstall.js} +1 -1
  56. package/types/types.d.ts +70 -31
  57. package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
  58. package/build/check-npm-pack-files.js +0 -23
  59. package/build/commands-yml/parse.js +0 -319
  60. package/build/commands-yml/validator.js +0 -130
  61. package/build/index.js +0 -19
  62. package/build/lib/cli/npm.js +0 -220
  63. package/build/lib/driver-config.js +0 -100
  64. package/build/lib/drivers.js +0 -100
  65. package/build/lib/ext-config-io.js +0 -165
  66. package/build/lib/extension-config.js +0 -320
  67. package/build/lib/plugin-config.js +0 -69
  68. package/build/lib/plugins.js +0 -18
  69. package/build/postinstall.js +0 -90
  70. package/build/test/cli/cli-e2e-specs.js +0 -221
  71. package/build/test/cli/cli-helpers.js +0 -86
  72. package/build/test/cli/cli-specs.js +0 -71
  73. package/build/test/cli/fixtures/test-driver/package.json +0 -27
  74. package/build/test/cli/schema-args-specs.js +0 -48
  75. package/build/test/cli/schema-e2e-specs.js +0 -47
  76. package/build/test/config-e2e-specs.js +0 -112
  77. package/build/test/config-file-e2e-specs.js +0 -191
  78. package/build/test/config-file-specs.js +0 -281
  79. package/build/test/config-specs.js +0 -258
  80. package/build/test/driver-e2e-specs.js +0 -435
  81. package/build/test/driver-specs.js +0 -386
  82. package/build/test/ext-config-io-specs.js +0 -181
  83. package/build/test/extension-config-specs.js +0 -365
  84. package/build/test/fixtures/allow-feat.txt +0 -5
  85. package/build/test/fixtures/caps.json +0 -3
  86. package/build/test/fixtures/config/allow-insecure.txt +0 -3
  87. package/build/test/fixtures/config/appium.config.bad-nodeconfig.json +0 -5
  88. package/build/test/fixtures/config/appium.config.bad.json +0 -32
  89. package/build/test/fixtures/config/appium.config.ext-good.json +0 -9
  90. package/build/test/fixtures/config/appium.config.ext-unknown-props.json +0 -10
  91. package/build/test/fixtures/config/appium.config.good.js +0 -40
  92. package/build/test/fixtures/config/appium.config.good.json +0 -33
  93. package/build/test/fixtures/config/appium.config.good.yaml +0 -30
  94. package/build/test/fixtures/config/appium.config.invalid.json +0 -31
  95. package/build/test/fixtures/config/appium.config.security-array.json +0 -5
  96. package/build/test/fixtures/config/appium.config.security-delimited.json +0 -5
  97. package/build/test/fixtures/config/appium.config.security-path.json +0 -5
  98. package/build/test/fixtures/config/driver-fake.config.json +0 -8
  99. package/build/test/fixtures/config/nodeconfig.json +0 -3
  100. package/build/test/fixtures/config/plugin-fake.config.json +0 -0
  101. package/build/test/fixtures/default-args.js +0 -35
  102. package/build/test/fixtures/deny-feat.txt +0 -5
  103. package/build/test/fixtures/driver.schema.js +0 -20
  104. package/build/test/fixtures/extensions.yaml +0 -27
  105. package/build/test/fixtures/flattened-schema.js +0 -532
  106. package/build/test/fixtures/plugin.schema.js +0 -20
  107. package/build/test/fixtures/schema-with-extensions.js +0 -28
  108. package/build/test/grid-register-specs.js +0 -74
  109. package/build/test/helpers.js +0 -75
  110. package/build/test/logger-specs.js +0 -76
  111. package/build/test/npm-specs.js +0 -20
  112. package/build/test/parser-specs.js +0 -319
  113. package/build/test/plugin-e2e-specs.js +0 -316
  114. package/build/test/schema/arg-spec-specs.js +0 -70
  115. package/build/test/schema/cli-args-specs.js +0 -408
  116. package/build/test/schema/schema-specs.js +0 -407
  117. package/build/test/utils-specs.js +0 -288
  118. package/lib/cli/npm.js +0 -251
  119. package/lib/driver-config.js +0 -101
  120. package/lib/drivers.js +0 -84
  121. package/lib/ext-config-io.js +0 -287
  122. package/lib/extension-config.js +0 -366
  123. package/lib/plugin-config.js +0 -63
  124. package/lib/plugins.js +0 -13
@@ -5,41 +5,23 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "APPIUM_HOME", {
9
- enumerable: true,
10
- get: function () {
11
- return _extensionConfig.APPIUM_HOME;
12
- }
13
- });
14
- exports.getExtensionArgs = exports.driverConfig = exports.USE_ALL_PLUGINS = void 0;
8
+ exports.getExtensionArgs = void 0;
15
9
  exports.getServerArgs = getServerArgs;
16
- exports.pluginConfig = void 0;
17
10
 
18
11
  require("source-map-support/register");
19
12
 
20
13
  var _lodash = _interopRequireDefault(require("lodash"));
21
14
 
22
- var _driverConfig = _interopRequireDefault(require("../driver-config"));
23
-
24
- var _extensionConfig = require("../extension-config");
15
+ var _constants = require("../constants");
25
16
 
26
- var _pluginConfig = _interopRequireDefault(require("../plugin-config"));
17
+ var _extensionConfig = require("../extension/extension-config");
27
18
 
28
19
  var _cliArgs = require("../schema/cli-args");
29
20
 
30
21
  const DRIVER_EXAMPLE = 'xcuitest';
31
22
  const PLUGIN_EXAMPLE = 'find_by_image';
32
- const USE_ALL_PLUGINS = 'all';
33
- exports.USE_ALL_PLUGINS = USE_ALL_PLUGINS;
34
- const EXTENSION_TYPES = new Set([_extensionConfig.DRIVER_TYPE, _extensionConfig.PLUGIN_TYPE]);
35
-
36
- const driverConfig = _driverConfig.default.getInstance(_extensionConfig.APPIUM_HOME);
37
-
38
- exports.driverConfig = driverConfig;
39
-
40
- const pluginConfig = _pluginConfig.default.getInstance(_extensionConfig.APPIUM_HOME);
41
-
42
- exports.pluginConfig = pluginConfig;
23
+ const INSTALL_TYPES_ARRAY = [..._extensionConfig.INSTALL_TYPES];
24
+ const EXTENSION_TYPES = new Set([_constants.DRIVER_TYPE, _constants.PLUGIN_TYPE]);
43
25
  const globalExtensionArgs = new Map([[['--json'], {
44
26
  required: false,
45
27
  default: false,
@@ -48,16 +30,16 @@ const globalExtensionArgs = new Map([[['--json'], {
48
30
  dest: 'json'
49
31
  }]]);
50
32
 
51
- const getExtensionArgs = _lodash.default.once(function getExtensionArgs() {
33
+ const getExtensionArgs = _lodash.default.memoize(function getExtensionArgs() {
52
34
  const extensionArgs = {};
53
35
 
54
36
  for (const type of EXTENSION_TYPES) {
55
37
  extensionArgs[type] = {
56
- list: makeListArgs(type),
57
- install: makeInstallArgs(type),
58
- uninstall: makeUninstallArgs(type),
59
- update: makeUpdateArgs(type),
60
- run: makeRunArgs(type)
38
+ [_constants.EXT_SUBCOMMAND_LIST]: makeListArgs(type),
39
+ [_constants.EXT_SUBCOMMAND_INSTALL]: makeInstallArgs(type),
40
+ [_constants.EXT_SUBCOMMAND_UNINSTALL]: makeUninstallArgs(type),
41
+ [_constants.EXT_SUBCOMMAND_UPDATE]: makeUpdateArgs(type),
42
+ [_constants.EXT_SUBCOMMAND_RUN]: makeRunArgs(type)
61
43
  };
62
44
  }
63
45
 
@@ -85,12 +67,12 @@ function makeListArgs(type) {
85
67
  function makeInstallArgs(type) {
86
68
  return new Map([...globalExtensionArgs, [[type], {
87
69
  type: 'str',
88
- help: `Name of the ${type} to install, for example: ` + type === _extensionConfig.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
70
+ help: `Name of the ${type} to install, for example: ` + type === _constants.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
89
71
  }], [['--source'], {
90
72
  required: false,
91
73
  default: null,
92
- choices: _extensionConfig.INSTALL_TYPES,
93
- help: `Where to look for the ${type} if it is not one of Appium's verified ` + `${type}s. Possible values: ${_extensionConfig.INSTALL_TYPES.join(', ')}`,
74
+ choices: INSTALL_TYPES_ARRAY,
75
+ help: `Where to look for the ${type} if it is not one of Appium's verified ` + `${type}s. Possible values: ${INSTALL_TYPES_ARRAY.join(', ')}`,
94
76
  dest: 'installType'
95
77
  }], [['--package'], {
96
78
  required: false,
@@ -104,14 +86,14 @@ function makeInstallArgs(type) {
104
86
  function makeUninstallArgs(type) {
105
87
  return new Map([...globalExtensionArgs, [[type], {
106
88
  type: 'str',
107
- help: 'Name of the driver to uninstall, for example: ' + type === _extensionConfig.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
89
+ help: 'Name of the driver to uninstall, for example: ' + type === _constants.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
108
90
  }]]);
109
91
  }
110
92
 
111
93
  function makeUpdateArgs(type) {
112
94
  return new Map([...globalExtensionArgs, [[type], {
113
95
  type: 'str',
114
- help: `Name of the ${type} to update, or the word "installed" to update all installed ` + `${type}s. To see available updates, run "appium ${type} list --installed --updates". ` + 'For example: ' + type === _extensionConfig.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
96
+ help: `Name of the ${type} to update, or the word "installed" to update all installed ` + `${type}s. To see available updates, run "appium ${type} list --installed --updates". ` + 'For example: ' + type === _constants.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
115
97
  }], [['--unsafe'], {
116
98
  required: false,
117
99
  default: false,
@@ -123,7 +105,7 @@ function makeUpdateArgs(type) {
123
105
  function makeRunArgs(type) {
124
106
  return new Map([...globalExtensionArgs, [[type], {
125
107
  type: 'str',
126
- help: `Name of the ${type} to run a script from, for example: ` + type === _extensionConfig.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
108
+ help: `Name of the ${type} to run a script from, for example: ` + type === _constants.DRIVER_TYPE ? DRIVER_EXAMPLE : PLUGIN_EXAMPLE
127
109
  }], [['scriptName'], {
128
110
  default: null,
129
111
  type: 'str',
@@ -158,7 +140,5 @@ const serverArgsDisallowedInConfig = new Map([[['--shell'], {
158
140
  type: 'string',
159
141
  required: false,
160
142
  help: 'Explicit path to Appium configuration file'
161
- }]]);require('source-map-support').install();
162
-
163
-
164
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvYXJncy5qcyJdLCJuYW1lcyI6WyJEUklWRVJfRVhBTVBMRSIsIlBMVUdJTl9FWEFNUExFIiwiVVNFX0FMTF9QTFVHSU5TIiwiRVhURU5TSU9OX1RZUEVTIiwiU2V0IiwiRFJJVkVSX1RZUEUiLCJQTFVHSU5fVFlQRSIsImRyaXZlckNvbmZpZyIsIkRyaXZlckNvbmZpZyIsImdldEluc3RhbmNlIiwiQVBQSVVNX0hPTUUiLCJwbHVnaW5Db25maWciLCJQbHVnaW5Db25maWciLCJnbG9iYWxFeHRlbnNpb25BcmdzIiwiTWFwIiwicmVxdWlyZWQiLCJkZWZhdWx0IiwiYWN0aW9uIiwiaGVscCIsImRlc3QiLCJnZXRFeHRlbnNpb25BcmdzIiwiXyIsIm9uY2UiLCJleHRlbnNpb25BcmdzIiwidHlwZSIsImxpc3QiLCJtYWtlTGlzdEFyZ3MiLCJpbnN0YWxsIiwibWFrZUluc3RhbGxBcmdzIiwidW5pbnN0YWxsIiwibWFrZVVuaW5zdGFsbEFyZ3MiLCJ1cGRhdGUiLCJtYWtlVXBkYXRlQXJncyIsInJ1biIsIm1ha2VSdW5BcmdzIiwiY2hvaWNlcyIsIklOU1RBTExfVFlQRVMiLCJqb2luIiwiZ2V0U2VydmVyQXJncyIsInNlcnZlckFyZ3NEaXNhbGxvd2VkSW5Db25maWciLCJjb25zdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGNBQWMsR0FBRyxVQUF2QjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxlQUF2QjtBQUNBLE1BQU1DLGVBQWUsR0FBRyxLQUF4Qjs7QUFHQSxNQUFNQyxlQUFlLEdBQUcsSUFBSUMsR0FBSixDQUFRLENBQUNDLDRCQUFELEVBQWNDLDRCQUFkLENBQVIsQ0FBeEI7O0FBRUEsTUFBTUMsWUFBWSxHQUFHQyxzQkFBYUMsV0FBYixDQUF5QkMsNEJBQXpCLENBQXJCOzs7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHQyxzQkFBYUgsV0FBYixDQUF5QkMs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VDtBQUlFekIsRUFBQUEsUUFBUSxFQUFFLEtBSlo7QUFLRUcsRUFBQUEsSUFBSSxFQUFFO0FBTFIsQ0FGRixDQXJCMkMsRUErQjNDLENBQ0UsQ0FBQyxVQUFELENBREYsRUFFRTtBQUNFQyxFQUFBQSxJQUFJLEVBQUUsWUFEUjtBQUVFSyxFQUFBQSxJQUFJLEVBQUUsUUFGUjtBQUdFVCxFQUFBQSxRQUFRLEVBQUUsS0FIWjtBQUlFRyxFQUFBQSxJQUFJLEVBQUU7QUFKUixDQUZGLENBL0IyQyxDQUFSLENBQXJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgRHJpdmVyQ29uZmlnIGZyb20gJy4uL2RyaXZlci1jb25maWcnO1xuaW1wb3J0IHsgQVBQSVVNX0hPTUUsIERSSVZFUl9UWVBFLCBJTlNUQUxMX1RZUEVTLCBQTFVHSU5fVFlQRSB9IGZyb20gJy4uL2V4dGVuc2lvbi1jb25maWcnO1xuaW1wb3J0IFBsdWdpbkNvbmZpZyBmcm9tICcuLi9wbHVnaW4tY29uZmlnJztcbmltcG9ydCB7IHRvUGFyc2VyQXJncyB9IGZyb20gJy4uL3NjaGVtYS9jbGktYXJncyc7XG5cbmNvbnN0IERSSVZFUl9FWEFNUExFID0gJ3hjdWl0ZXN0JztcbmNvbnN0IFBMVUdJTl9FWEFNUExFID0gJ2ZpbmRfYnlfaW1hZ2UnO1xuY29uc3QgVVNFX0FMTF9QTFVHSU5TID0gJ2FsbCc7XG5cbi8qKiBAdHlwZSB7U2V0PEV4dGVuc2lvblR5cGU+fSAqL1xuY29uc3QgRVhURU5TSU9OX1RZUEVTID0gbmV3IFNldChbRFJJVkVSX1RZUEUsIFBMVUdJTl9UWVBFXSk7XG5cbmNvbnN0IGRyaXZlckNvbmZpZyA9IERyaXZlckNvbmZpZy5nZXRJbnN0YW5jZShBUFBJVU1fSE9NRSk7XG5jb25zdCBwbHVnaW5Db25maWcgPSBQbHVnaW5Db25maWcuZ2V0SW5zdGFuY2UoQVBQSVVNX0hPTUUpO1xuXG4vLyB0aGlzIHNldCBvZiBhcmdzIHdvcmtzIGZvciBib3RoIGRyaXZlcnMgYW5kIHBsdWdpbnMgKCdleHRlbnNpb25zJylcbi8qKiBAdHlwZSB7QXJndW1lbnREZWZpbml0aW9uc30gKi9cbmNvbnN0IGdsb2JhbEV4dGVuc2lvbkFyZ3MgPSBuZXcgTWFwKFtcbiAgW1snLS1qc29uJ10sIHtcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgYWN0aW9uOiAnc3RvcmVfdHJ1ZScsXG4gICAgaGVscDogJ1VzZSBKU09OIGZvciBvdXRwdXQgZm9ybWF0JyxcbiAgICBkZXN0OiAnanNvbidcbiAgfV1cbl0pO1xuXG4vKipcbiAqIEJ1aWxkcyBhIFJlY29yZCBvZiBleHRlbnNpb24gdHlwZXMgdG8gYSBSZWNvcmQgb2Ygc3ViY29tbWFuZHMgdG8gdGhlaXIgYXJndW1lbnQgZGVmaW5pdGlvbnNcbiAqL1xuY29uc3QgZ2V0RXh0ZW5zaW9uQXJncyA9IF8ub25jZShmdW5jdGlvbiBnZXRFeHRlbnNpb25BcmdzICgpIHtcbiAgY29uc3QgZXh0ZW5zaW9uQXJncyA9IHt9O1xuICBmb3IgKGNvbnN0IHR5cGUgb2YgRVhURU5TSU9OX1RZUEVTKSB7XG4gICAgZXh0ZW5zaW9uQXJnc1t0eXBlXSA9IHtcbiAgICAgIGxpc3Q6IG1ha2VMaXN0QXJncyh0eXBlKSxcbiAgICAgIGluc3RhbGw6IG1ha2VJbnN0YWxsQXJncyh0eXBlKSxcbiAgICAgIHVuaW5zdGFsbDogbWFrZVVuaW5zdGFsbEFyZ3ModHlwZSksXG4gICAgICB1cGRhdGU6IG1ha2VVcGRhdGVBcmdzKHR5cGUpLFxuICAgICAgcnVuOiBtYWtlUnVuQXJncyh0eXBlKSxcbiAgICB9O1xuICB9XG4gIHJldHVybiAvKiogQHR5cGUge1JlY29yZDxFeHRlbnNpb25UeXBlLCBSZWNvcmQ8c3RyaW5nLEFyZ3VtZW50RGVmaW5pdGlvbnNbXT4+fSAqLyAoZXh0ZW5zaW9uQXJncyk7XG59KTtcblxuLyoqXG4gKiBNYWtlcyB0aGUgb3B0cyBmb3IgdGhlIGBsaXN0YCBzdWJjb21tYW5kIGZvciBlYWNoIGV4dGVuc2lvbiB0eXBlLlxuICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSB0eXBlXG4gKiBAcmV0dXJucyB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuZnVuY3Rpb24gbWFrZUxpc3RBcmdzICh0eXBlKSB7XG4gIHJldHVybiBuZXcgTWFwKFtcbiAgICAuLi5nbG9iYWxFeHRlbnNpb25BcmdzLFxuICAgIFtbJy0taW5zdGFsbGVkJ10sIHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgYWN0aW9uOiAnc3RvcmVfdHJ1ZScsXG4gICAgICBoZWxwOiBgTGlzdCBvbmx5IGluc3RhbGxlZCAke3R5cGV9c2AsXG4gICAgICBkZXN0OiAnc2hvd0luc3RhbGxlZCdcbiAgICB9XSxcbiAgICBbWyctLXVwZGF0ZXMnXSwge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBhY3Rpb246ICdzdG9yZV90cnVlJyxcbiAgICAgIGhlbHA6ICdTaG93IGluZm9ybWF0aW9uIGFib3V0IG5ld2VyIHZlcnNpb25zJyxcbiAgICAgIGRlc3Q6ICdzaG93VXBkYXRlcydcbiAgICB9XVxuICBdKTtcbn1cblxuLyoqXG4gKiBNYWtlcyB0aGUgb3B0cyBmb3IgdGhlIGBpbnN0YWxsYCBzdWJjb21tYW5kIGZvciBlYWNoIGV4dGVuc2lvbiB0eXBlXG4gKiBAcGFyYW0ge0V4dGVuc2lvblR5cGV9IHR5cGVcbiAqIEByZXR1cm5zIHtBcmd1bWVudERlZmluaXRpb25zfVxuICovXG5mdW5jdGlvbiBtYWtlSW5zdGFsbEFyZ3MgKHR5cGUpIHtcbiAgcmV0dXJuIG5ldyBNYXAoW1xuICAgIC4uLmdsb2JhbEV4dGVuc2lvbkFyZ3MsXG4gICAgW1t0eXBlXSwge1xuICAgICAgdHlwZTogJ3N0cicsXG4gICAgICBoZWxwOiBgTmFtZSBvZiB0aGUgJHt0eXBlfSB0byBpbnN0YWxsLCBmb3IgZXhhbXBsZTogYCArXG4gICAgICAgICAgICB0eXBlID09PSBEUklWRVJfVFlQRSA/IERSSVZFUl9FWEFNUExFIDogUExVR0lOX0VYQU1QTEUsXG4gICAgfV0sXG4gICAgW1snLS1zb3VyY2UnXSwge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgIGNob2ljZXM6IElOU1RBTExfVFlQRVMsXG4gICAgICBoZWxwOiBgV2hlcmUgdG8gbG9vayBmb3IgdGhlICR7dHlwZX0gaWYgaXQgaXMgbm90IG9uZSBvZiBBcHBpdW0ncyB2ZXJpZmllZCBgICtcbiAgICAgICAgICAgIGAke3R5cGV9cy4gUG9zc2libGUgdmFsdWVzOiAke0lOU1RBTExfVFlQRVMuam9pbignLCAnKX1gLFxuICAgICAgZGVzdDogJ2luc3RhbGxUeXBlJ1xuICAgIH1dLFxuICAgIFtbJy0tcGFja2FnZSddLCB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgdHlwZTogJ3N0cicsXG4gICAgICBoZWxwOiBgSWYgaW5zdGFsbGluZyBmcm9tIEdpdCBvciBHaXRIdWIsIHRoZSBwYWNrYWdlIG5hbWUsIGFzIGRlZmluZWQgaW4gdGhlIHBsdWdpbidzIGAgK1xuICAgICAgICAgICAgYHBhY2thZ2UuanNvbiBmaWxlIGluIHRoZSBcIm5hbWVcIiBmaWVsZCwgY2Fubm90IGJlIGRldGVybWluZWQgYXV0b21hdGljYWxseSwgYW5kIGAgK1xuICAgICAgICAgICAgYHNob3VsZCBiZSByZXBvcnRlZCBoZXJlLCBvdGhlcndpc2UgdGhlIGluc3RhbGwgd2lsbCBwcm9iYWJseSBmYWlsLmAsXG4gICAgICBkZXN0OiAncGFja2FnZU5hbWUnLFxuICAgIH1dLFxuICBdKTtcbn1cblxuXG4vKipcbiAqIE1ha2VzIHRoZSBvcHRzIGZvciB0aGUgYHVuaW5zdGFsbGAgc3ViY29tbWFuZCBmb3IgZWFjaCBleHRlbnNpb24gdHlwZVxuICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSB0eXBlXG4gKiBAcmV0dXJucyB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuZnVuY3Rpb24gbWFrZVVuaW5zdGFsbEFyZ3MgKHR5cGUpIHtcbiAgcmV0dXJuIG5ldyBNYXAoW1xuICAgIC4uLmdsb2JhbEV4dGVuc2lvbkFyZ3MsXG4gICAgW1t0eXBlXSwge1xuICAgICAgdHlwZTogJ3N0cicsXG4gICAgICBoZWxwOiAnTmFtZSBvZiB0aGUgZHJpdmVyIHRvIHVuaW5zdGFsbCwgZm9yIGV4YW1wbGU6ICcgK1xuICAgICAgICAgICAgdHlwZSA9PT0gRFJJVkVSX1RZUEUgPyBEUklWRVJfRVhBTVBMRSA6IFBMVUdJTl9FWEFNUExFXG4gICAgfV0sXG4gIF0pO1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSBvcHRzIGZvciB0aGUgYHVwZGF0ZWAgc3ViY29tbWFuZCBmb3IgZWFjaCBleHRlbnNpb24gdHlwZVxuICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSB0eXBlXG4gKiBAcmV0dXJucyB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuZnVuY3Rpb24gbWFrZVVwZGF0ZUFyZ3MgKHR5cGUpIHtcbiAgcmV0dXJuIG5ldyBNYXAoW1xuICAgIC4uLmdsb2JhbEV4dGVuc2lvbkFyZ3MsXG4gICAgW1t0eXBlXSwge1xuICAgICAgdHlwZTogJ3N0cicsXG4gICAgICBoZWxwOiBgTmFtZSBvZiB0aGUgJHt0eXBlfSB0byB1cGRhdGUsIG9yIHRoZSB3b3JkIFwiaW5zdGFsbGVkXCIgdG8gdXBkYXRlIGFsbCBpbnN0YWxsZWQgYCArXG4gICAgICAgICAgICBgJHt0eXBlfXMuIFRvIHNlZSBhdmFpbGFibGUgdXBkYXRlcywgcnVuIFwiYXBwaXVtICR7dHlwZX0gbGlzdCAtLWluc3RhbGxlZCAtLXVwZGF0ZXNcIi4gYCArXG4gICAgICAgICAgICAnRm9yIGV4YW1wbGU6ICcgKyB0eXBlID09PSBEUklWRVJfVFlQRSA/IERSSVZFUl9FWEFNUExFIDogUExVR0lOX0VYQU1QTEUsXG4gICAgfV0sXG4gICAgW1snLS11bnNhZmUnXSwge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBhY3Rpb246ICdzdG9yZV90cnVlJyxcbiAgICAgIGhlbHA6IGBJbmNsdWRlIHVwZGF0ZXMgdGhhdCBtaWdodCBoYXZlIGEgbmV3IG1ham9yIHJldmlzaW9uLCBhbmQgcG90ZW50aWFsbHkgaW5jbHVkZSBgICtcbiAgICAgICAgICAgIGBicmVha2luZyBjaGFuZ2VzYCxcbiAgICB9XSxcbiAgXSk7XG59XG5cbi8qKlxuICogTWFrZXMgdGhlIG9wdHMgZm9yIHRoZSBgcnVuYCBzdWJjb21tYW5kIGZvciBlYWNoIGV4dGVuc2lvbiB0eXBlXG4gKiBAcGFyYW0ge0V4dGVuc2lvblR5cGV9IHR5cGVcbiAqIEByZXR1cm5zIHtBcmd1bWVudERlZmluaXRpb25zfVxuICovXG5mdW5jdGlvbiBtYWtlUnVuQXJncyAodHlwZSkge1xuICByZXR1cm4gbmV3IE1hcChbXG4gICAgLi4uZ2xvYmFsRXh0ZW5zaW9uQXJncyxcbiAgICBbW3R5cGVdLCB7XG4gICAgICB0eXBlOiAnc3RyJyxcbiAgICAgIGhlbHA6IGBOYW1lIG9mIHRoZSAke3R5cGV9IHRvIHJ1biBhIHNjcmlwdCBmcm9tLCBmb3IgZXhhbXBsZTogYCArXG4gICAgICAgICAgICB0eXBlID09PSBEUklWRVJfVFlQRSA/IERSSVZFUl9FWEFNUExFIDogUExVR0lOX0VYQU1QTEUsXG4gICAgfV0sXG4gICAgW1snc2NyaXB0TmFtZSddLCB7XG4gICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgdHlwZTogJ3N0cicsXG4gICAgICBoZWxwOiBgTmFtZSBvZiB0aGUgc2NyaXB0IHRvIHJ1biBmcm9tIHRoZSAke3R5cGV9LiBUaGUgc2NyaXB0IG5hbWUgbXVzdCBiZSBjYWNoZWQgYCArXG4gICAgICAgICAgICBgaW5zaWRlIHRoZSBcInNjcmlwdHNcIiBmaWVsZCB1bmRlciBcImFwcGl1bVwiIGluc2lkZSB0aGUgJHt0eXBlfSdzIFwicGFja2FnZS5qc29uXCIgZmlsZWBcbiAgICB9XSxcbiAgXSk7XG59XG5cbi8qKlxuICogRGVyaXZlcyB0aGUgb3B0aW9ucyBmb3IgdGhlIGBzZXJ2ZXJgIGNvbW1hbmQgZnJvbSB0aGUgc2NoZW1hLCBhbmQgYWRkcyB0aGUgYXJndW1lbnRzXG4gKiB3aGljaCBhcmUgZGlzYWxsb3dlZCBpbiB0aGUgY29uZmlnIGZpbGUuXG4gKiBAcmV0dXJucyB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuZnVuY3Rpb24gZ2V0U2VydmVyQXJncyAoKSB7XG4gIHJldHVybiBuZXcgTWFwKFtcbiAgICAuLi50b1BhcnNlckFyZ3MoKSxcbiAgICAuLi5zZXJ2ZXJBcmdzRGlzYWxsb3dlZEluQ29uZmlnLFxuICBdKTtcbn1cblxuLyoqXG4gKiBUaGVzZSBkb24ndCBtYWtlIHNlbnNlIGluIHRoZSBjb250ZXh0IG9mIGEgY29uZmlnIGZpbGUgZm9yIG9idmlvdXMgcmVhc29ucy5cbiAqIEB0eXBlIHtBcmd1bWVudERlZmluaXRpb25zfVxuICovXG5jb25zdCBzZXJ2ZXJBcmdzRGlzYWxsb3dlZEluQ29uZmlnID0gbmV3IE1hcChbXG4gIFtcbiAgICBbJy0tc2hlbGwnXSxcbiAgICB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBoZWxwOiAnRW50ZXIgUkVQTCBtb2RlJyxcbiAgICAgIGFjdGlvbjogJ3N0b3JlX2NvbnN0JyxcbiAgICAgIGNvbnN0OiB0cnVlLFxuICAgICAgZGVzdDogJ3NoZWxsJyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgWyctLXNob3ctYnVpbGQtaW5mbyddLFxuICAgIHtcbiAgICAgIGRlc3Q6ICdzaG93QnVpbGRJbmZvJyxcbiAgICAgIGFjdGlvbjogJ3N0b3JlX2NvbnN0JyxcbiAgICAgIGNvbnN0OiB0cnVlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgaGVscDogJ1Nob3cgaW5mbyBhYm91dCB0aGUgQXBwaXVtIGJ1aWxkIGFuZCBleGl0JyxcbiAgICB9LFxuICBdLFxuICBbXG4gICAgWyctLXNob3ctY29uZmlnJ10sXG4gICAge1xuICAgICAgZGVzdDogJ3Nob3dDb25maWcnLFxuICAgICAgYWN0aW9uOiAnc3RvcmVfY29uc3QnLFxuICAgICAgY29uc3Q6IHRydWUsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBoZWxwOiAnU2hvdyB0aGUgY3VycmVudCBBcHBpdW0gY29uZmlndXJhdGlvbiBhbmQgZXhpdCcsXG4gICAgfVxuICBdLFxuICBbXG4gICAgWyctLWNvbmZpZyddLFxuICAgIHtcbiAgICAgIGRlc3Q6ICdjb25maWdGaWxlJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgaGVscDogJ0V4cGxpY2l0IHBhdGggdG8gQXBwaXVtIGNvbmZpZ3VyYXRpb24gZmlsZScsXG4gICAgfSxcbiAgXSxcbl0pO1xuXG5leHBvcnQge1xuICBnZXRTZXJ2ZXJBcmdzLFxuICBnZXRFeHRlbnNpb25BcmdzLFxuICBVU0VfQUxMX1BMVUdJTlMsXG4gIGRyaXZlckNvbmZpZyxcbiAgcGx1Z2luQ29uZmlnLFxuICBBUFBJVU1fSE9NRVxufTtcblxuLyoqXG4gKiBBbGlhc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZXh0LWNvbmZpZy1pbycpLkV4dGVuc2lvblR5cGV9IEV4dGVuc2lvblR5cGVcbiAqL1xuXG4vKipcbiAqIEEgdHVwbGUgb2YgYXJndW1lbnQgYWxpYXNlcyBhbmQgYXJndW1lbnQgb3B0aW9uc1xuICogQHR5cGVkZWYge01hcDxzdHJpbmdbXSxpbXBvcnQoJ2FyZ3BhcnNlJykuQXJndW1lbnRPcHRpb25zPn0gQXJndW1lbnREZWZpbml0aW9uc1xuICovXG4iXSwiZmlsZSI6ImxpYi9jbGkvYXJncy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
143
+ }]]);
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jbGkvYXJncy5qcyJdLCJuYW1lcyI6WyJEUklWRVJfRVhBTVBMRSIsIlBMVUdJTl9FWEFNUExFIiwiSU5TVEFMTF9UWVBFU19BUlJBWSIsIklOU1RBTExfVFlQRVMiLCJFWFRFTlNJT05fVFlQRVMiLCJTZXQiLCJEUklWRVJfVFlQRSIsIlBMVUdJTl9UWVBFIiwiZ2xvYmFsRXh0ZW5zaW9uQXJncyIsIk1hcCIsInJlcXVpcmVkIiwiZGVmYXVsdCIsImFjdGlvbiIsImhlbHAiLCJkZXN0IiwiZ2V0RXh0ZW5zaW9uQXJncyIsIl8iLCJtZW1vaXplIiwiZXh0ZW5zaW9uQXJncyIsInR5cGUiLCJFWFRfU1VCQ09NTUFORF9MSVNUIiwibWFrZUxpc3RBcmdzIiwiRVhUX1NVQkNPTU1BTkRfSU5TVEFMTCIsIm1ha2VJbnN0YWxsQXJncyIsIkVYVF9TVUJDT01NQU5EX1VOSU5TVEFMTCIsIm1ha2VVbmluc3RhbGxBcmdzIiwiRVhUX1NVQkNPTU1BTkRfVVBEQVRFIiwibWFrZVVwZGF0ZUFyZ3MiLCJFWFRfU1VCQ09NTUFORF9SVU4iLCJtYWtlUnVuQXJncyIsImNob2ljZXMiLCJqb2luIiwiZ2V0U2VydmVyQXJncyIsInNlcnZlckFyZ3NEaXNhbGxvd2VkSW5Db25maWciLCJjb25zdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0EsTUFBTUEsY0FBYyxHQUFHLFVBQXZCO0FBQ0EsTUFBTUMsY0FBYyxHQUFHLGVBQXZCO0FBTUEsTUFBTUMsbUJBQW1CLEdBQUcsQ0FBQyxHQUFHQyw4QkFBSixDQUE1QjtBQUdBLE1BQU1DLGVBQWUsR0FBRyxJQUFJQyxHQUFKLENBQVEsQ0FBQ0Msc0JBQUQsRUFBY0Msc0JBQWQsQ0FBUixDQUF4QjtBQUlBLE1BQU1DLG1CQUFtQixHQUFHLElBQUlDLEdBQUosQ0FBUSxDQUNsQyxDQUFDLENBQUMsUUFBRCxDQUFELEVBQWE7QUFDWEMsRUFBQUEsUUFBUSxFQUFF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LEVBRUU7QUFDRUMsRUFBQUEsSUFBSSxFQUFFLFlBRFI7QUFFRUssRUFBQUEsSUFBSSxFQUFFLFFBRlI7QUFHRVQsRUFBQUEsUUFBUSxFQUFFLEtBSFo7QUFJRUcsRUFBQUEsSUFBSSxFQUFFO0FBSlIsQ0FGRixDQS9CMkMsQ0FBUixDQUFyQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRFJJVkVSX1RZUEUsIFBMVUdJTl9UWVBFLCBFWFRfU1VCQ09NTUFORF9JTlNUQUxMLCBFWFRfU1VCQ09NTUFORF9MSVNULCBFWFRfU1VCQ09NTUFORF9SVU4sIEVYVF9TVUJDT01NQU5EX1VOSU5TVEFMTCwgRVhUX1NVQkNPTU1BTkRfVVBEQVRFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IElOU1RBTExfVFlQRVMgfSBmcm9tICcuLi9leHRlbnNpb24vZXh0ZW5zaW9uLWNvbmZpZyc7XG5pbXBvcnQgeyB0b1BhcnNlckFyZ3MgfSBmcm9tICcuLi9zY2hlbWEvY2xpLWFyZ3MnO1xuY29uc3QgRFJJVkVSX0VYQU1QTEUgPSAneGN1aXRlc3QnO1xuY29uc3QgUExVR0lOX0VYQU1QTEUgPSAnZmluZF9ieV9pbWFnZSc7XG5cbi8qKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB3ZSBwYXNzIHRoZSBhcnJheSBpbnRvIGBhcmdwYXJzZWAuIGBhcmdwYXJzZWAgaXMgYmFkIGFuZCBtdXRhdGVzIHRoaW5ncy4gV2UgZG9uJ3Qgd2FudCB0aGF0LlxuICogQmFkIGBhcmdwYXJzZWAhIEJhZCFcbiAqL1xuY29uc3QgSU5TVEFMTF9UWVBFU19BUlJBWSA9IFsuLi5JTlNUQUxMX1RZUEVTXTtcblxuLyoqIEB0eXBlIHtTZXQ8RXh0ZW5zaW9uVHlwZT59ICovXG5jb25zdCBFWFRFTlNJT05fVFlQRVMgPSBuZXcgU2V0KFtEUklWRVJfVFlQRSwgUExVR0lOX1RZUEVdKTtcblxuLy8gdGhpcyBzZXQgb2YgYXJncyB3b3JrcyBmb3IgYm90aCBkcml2ZXJzIGFuZCBwbHVnaW5zICgnZXh0ZW5zaW9ucycpXG4vKiogQHR5cGUge0FyZ3VtZW50RGVmaW5pdGlvbnN9ICovXG5jb25zdCBnbG9iYWxFeHRlbnNpb25BcmdzID0gbmV3IE1hcChbXG4gIFtbJy0tanNvbiddLCB7XG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIGFjdGlvbjogJ3N0b3JlX3RydWUnLFxuICAgIGhlbHA6ICdVc2UgSlNPTiBmb3Igb3V0cHV0IGZvcm1hdCcsXG4gICAgZGVzdDogJ2pzb24nXG4gIH1dXG5dKTtcblxuLyoqXG4gKiBCdWlsZHMgYSBSZWNvcmQgb2YgZXh0ZW5zaW9uIHR5cGVzIHRvIGEgUmVjb3JkIG9mIHN1YmNvbW1hbmRzIHRvIHRoZWlyIGFyZ3VtZW50IGRlZmluaXRpb25zXG4gKi9cbmNvbnN0IGdldEV4dGVuc2lvbkFyZ3MgPSBfLm1lbW9pemUoZnVuY3Rpb24gZ2V0RXh0ZW5zaW9uQXJncyAoKSB7XG4gIGNvbnN0IGV4dGVuc2lvbkFyZ3MgPSB7fTtcbiAgZm9yIChjb25zdCB0eXBlIG9mIEVYVEVOU0lPTl9UWVBFUykge1xuICAgIGV4dGVuc2lvbkFyZ3NbdHlwZV0gPSB7XG4gICAgICBbRVhUX1NVQkNPTU1BTkRfTElTVF06IG1ha2VMaXN0QXJncyh0eXBlKSxcbiAgICAgIFtFWFRfU1VCQ09NTUFORF9JTlNUQUxMXTogbWFrZUluc3RhbGxBcmdzKHR5cGUpLFxuICAgICAgW0VYVF9TVUJDT01NQU5EX1VOSU5TVEFMTF06IG1ha2VVbmluc3RhbGxBcmdzKHR5cGUpLFxuICAgICAgW0VYVF9TVUJDT01NQU5EX1VQREFURV06IG1ha2VVcGRhdGVBcmdzKHR5cGUpLFxuICAgICAgW0VYVF9TVUJDT01NQU5EX1JVTl06IG1ha2VSdW5BcmdzKHR5cGUpLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIC8qKiBAdHlwZSB7UmVjb3JkPEV4dGVuc2lvblR5cGUsIFJlY29yZDxpbXBvcnQoJy4uLy4uL3R5cGVzL3R5cGVzJykuQ2xpRXh0ZW5zaW9uU3ViY29tbWFuZCxBcmd1bWVudERlZmluaXRpb25zPj59ICovKGV4dGVuc2lvbkFyZ3MpO1xufSk7XG5cbi8qKlxuICogTWFrZXMgdGhlIG9wdHMgZm9yIHRoZSBgbGlzdGAgc3ViY29tbWFuZCBmb3IgZWFjaCBleHRlbnNpb24gdHlwZS5cbiAqIEBwYXJhbSB7RXh0ZW5zaW9uVHlwZX0gdHlwZVxuICogQHJldHVybnMge0FyZ3VtZW50RGVmaW5pdGlvbnN9XG4gKi9cbmZ1bmN0aW9uIG1ha2VMaXN0QXJncyAodHlwZSkge1xuICByZXR1cm4gbmV3IE1hcChbXG4gICAgLi4uZ2xvYmFsRXh0ZW5zaW9uQXJncyxcbiAgICBbWyctLWluc3RhbGxlZCddLCB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIGFjdGlvbjogJ3N0b3JlX3RydWUnLFxuICAgICAgaGVscDogYExpc3Qgb25seSBpbnN0YWxsZWQgJHt0eXBlfXNgLFxuICAgICAgZGVzdDogJ3Nob3dJbnN0YWxsZWQnXG4gICAgfV0sXG4gICAgW1snLS11cGRhdGVzJ10sIHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgYWN0aW9uOiAnc3RvcmVfdHJ1ZScsXG4gICAgICBoZWxwOiAnU2hvdyBpbmZvcm1hdGlvbiBhYm91dCBuZXdlciB2ZXJzaW9ucycsXG4gICAgICBkZXN0OiAnc2hvd1VwZGF0ZXMnXG4gICAgfV1cbiAgXSk7XG59XG5cbi8qKlxuICogTWFrZXMgdGhlIG9wdHMgZm9yIHRoZSBgaW5zdGFsbGAgc3ViY29tbWFuZCBmb3IgZWFjaCBleHRlbnNpb24gdHlwZVxuICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSB0eXBlXG4gKiBAcmV0dXJucyB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuZnVuY3Rpb24gbWFrZUluc3RhbGxBcmdzICh0eXBlKSB7XG4gIHJldHVybiBuZXcgTWFwKFtcbiAgICAuLi5nbG9iYWxFeHRlbnNpb25BcmdzLFxuICAgIFtbdHlwZV0sIHtcbiAgICAgIHR5cGU6ICdzdHInLFxuICAgICAgaGVscDogYE5hbWUgb2YgdGhlICR7dHlwZX0gdG8gaW5zdGFsbCwgZm9yIGV4YW1wbGU6IGAgK1xuICAgICAgICAgICAgdHlwZSA9PT0gRFJJVkVSX1RZUEUgPyBEUklWRVJfRVhBTVBMRSA6IFBMVUdJTl9FWEFNUExFLFxuICAgIH1dLFxuICAgIFtbJy0tc291cmNlJ10sIHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICBjaG9pY2VzOiBJTlNUQUxMX1RZUEVTX0FSUkFZLFxuICAgICAgaGVscDogYFdoZXJlIHRvIGxvb2sgZm9yIHRoZSAke3R5cGV9IGlmIGl0IGlzIG5vdCBvbmUgb2YgQXBwaXVtJ3MgdmVyaWZpZWQgYCArXG4gICAgICAgICAgICBgJHt0eXBlfXMuIFBvc3NpYmxlIHZhbHVlczogJHtJTlNUQUxMX1RZUEVTX0FSUkFZLmpvaW4oJywgJyl9YCxcbiAgICAgIGRlc3Q6ICdpbnN0YWxsVHlwZSdcbiAgICB9XSxcbiAgICBbWyctLXBhY2thZ2UnXSwge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgIHR5cGU6ICdzdHInLFxuICAgICAgaGVscDogYElmIGluc3RhbGxpbmcgZnJvbSBHaXQgb3IgR2l0SHViLCB0aGUgcGFja2FnZSBuYW1lLCBhcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4ncyBgICtcbiAgICAgICAgICAgIGBwYWNrYWdlLmpzb24gZmlsZSBpbiB0aGUgXCJuYW1lXCIgZmllbGQsIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGFuZCBgICtcbiAgICAgICAgICAgIGBzaG91bGQgYmUgcmVwb3J0ZWQgaGVyZSwgb3RoZXJ3aXNlIHRoZSBpbnN0YWxsIHdpbGwgcHJvYmFibHkgZmFpbC5gLFxuICAgICAgZGVzdDogJ3BhY2thZ2VOYW1lJyxcbiAgICB9XSxcbiAgXSk7XG59XG5cblxuLyoqXG4gKiBNYWtlcyB0aGUgb3B0cyBmb3IgdGhlIGB1bmluc3RhbGxgIHN1YmNvbW1hbmQgZm9yIGVhY2ggZXh0ZW5zaW9uIHR5cGVcbiAqIEBwYXJhbSB7RXh0ZW5zaW9uVHlwZX0gdHlwZVxuICogQHJldHVybnMge0FyZ3VtZW50RGVmaW5pdGlvbnN9XG4gKi9cbmZ1bmN0aW9uIG1ha2VVbmluc3RhbGxBcmdzICh0eXBlKSB7XG4gIHJldHVybiBuZXcgTWFwKFtcbiAgICAuLi5nbG9iYWxFeHRlbnNpb25BcmdzLFxuICAgIFtbdHlwZV0sIHtcbiAgICAgIHR5cGU6ICdzdHInLFxuICAgICAgaGVscDogJ05hbWUgb2YgdGhlIGRyaXZlciB0byB1bmluc3RhbGwsIGZvciBleGFtcGxlOiAnICtcbiAgICAgICAgICAgIHR5cGUgPT09IERSSVZFUl9UWVBFID8gRFJJVkVSX0VYQU1QTEUgOiBQTFVHSU5fRVhBTVBMRVxuICAgIH1dLFxuICBdKTtcbn1cblxuLyoqXG4gKiBNYWtlcyB0aGUgb3B0cyBmb3IgdGhlIGB1cGRhdGVgIHN1YmNvbW1hbmQgZm9yIGVhY2ggZXh0ZW5zaW9uIHR5cGVcbiAqIEBwYXJhbSB7RXh0ZW5zaW9uVHlwZX0gdHlwZVxuICogQHJldHVybnMge0FyZ3VtZW50RGVmaW5pdGlvbnN9XG4gKi9cbmZ1bmN0aW9uIG1ha2VVcGRhdGVBcmdzICh0eXBlKSB7XG4gIHJldHVybiBuZXcgTWFwKFtcbiAgICAuLi5nbG9iYWxFeHRlbnNpb25BcmdzLFxuICAgIFtbdHlwZV0sIHtcbiAgICAgIHR5cGU6ICdzdHInLFxuICAgICAgaGVscDogYE5hbWUgb2YgdGhlICR7dHlwZX0gdG8gdXBkYXRlLCBvciB0aGUgd29yZCBcImluc3RhbGxlZFwiIHRvIHVwZGF0ZSBhbGwgaW5zdGFsbGVkIGAgK1xuICAgICAgICAgICAgYCR7dHlwZX1zLiBUbyBzZWUgYXZhaWxhYmxlIHVwZGF0ZXMsIHJ1biBcImFwcGl1bSAke3R5cGV9IGxpc3QgLS1pbnN0YWxsZWQgLS11cGRhdGVzXCIuIGAgK1xuICAgICAgICAgICAgJ0ZvciBleGFtcGxlOiAnICsgdHlwZSA9PT0gRFJJVkVSX1RZUEUgPyBEUklWRVJfRVhBTVBMRSA6IFBMVUdJTl9FWEFNUExFLFxuICAgIH1dLFxuICAgIFtbJy0tdW5zYWZlJ10sIHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgYWN0aW9uOiAnc3RvcmVfdHJ1ZScsXG4gICAgICBoZWxwOiBgSW5jbHVkZSB1cGRhdGVzIHRoYXQgbWlnaHQgaGF2ZSBhIG5ldyBtYWpvciByZXZpc2lvbiwgYW5kIHBvdGVudGlhbGx5IGluY2x1ZGUgYCArXG4gICAgICAgICAgICBgYnJlYWtpbmcgY2hhbmdlc2AsXG4gICAgfV0sXG4gIF0pO1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSBvcHRzIGZvciB0aGUgYHJ1bmAgc3ViY29tbWFuZCBmb3IgZWFjaCBleHRlbnNpb24gdHlwZVxuICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSB0eXBlXG4gKiBAcmV0dXJucyB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuZnVuY3Rpb24gbWFrZVJ1bkFyZ3MgKHR5cGUpIHtcbiAgcmV0dXJuIG5ldyBNYXAoW1xuICAgIC4uLmdsb2JhbEV4dGVuc2lvbkFyZ3MsXG4gICAgW1t0eXBlXSwge1xuICAgICAgdHlwZTogJ3N0cicsXG4gICAgICBoZWxwOiBgTmFtZSBvZiB0aGUgJHt0eXBlfSB0byBydW4gYSBzY3JpcHQgZnJvbSwgZm9yIGV4YW1wbGU6IGAgK1xuICAgICAgICAgICAgdHlwZSA9PT0gRFJJVkVSX1RZUEUgPyBEUklWRVJfRVhBTVBMRSA6IFBMVUdJTl9FWEFNUExFLFxuICAgIH1dLFxuICAgIFtbJ3NjcmlwdE5hbWUnXSwge1xuICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgIHR5cGU6ICdzdHInLFxuICAgICAgaGVscDogYE5hbWUgb2YgdGhlIHNjcmlwdCB0byBydW4gZnJvbSB0aGUgJHt0eXBlfS4gVGhlIHNjcmlwdCBuYW1lIG11c3QgYmUgY2FjaGVkIGAgK1xuICAgICAgICAgICAgYGluc2lkZSB0aGUgXCJzY3JpcHRzXCIgZmllbGQgdW5kZXIgXCJhcHBpdW1cIiBpbnNpZGUgdGhlICR7dHlwZX0ncyBcInBhY2thZ2UuanNvblwiIGZpbGVgXG4gICAgfV0sXG4gIF0pO1xufVxuXG4vKipcbiAqIERlcml2ZXMgdGhlIG9wdGlvbnMgZm9yIHRoZSBgc2VydmVyYCBjb21tYW5kIGZyb20gdGhlIHNjaGVtYSwgYW5kIGFkZHMgdGhlIGFyZ3VtZW50c1xuICogd2hpY2ggYXJlIGRpc2FsbG93ZWQgaW4gdGhlIGNvbmZpZyBmaWxlLlxuICogQHJldHVybnMge0FyZ3VtZW50RGVmaW5pdGlvbnN9XG4gKi9cbmZ1bmN0aW9uIGdldFNlcnZlckFyZ3MgKCkge1xuICByZXR1cm4gbmV3IE1hcChbXG4gICAgLi4udG9QYXJzZXJBcmdzKCksXG4gICAgLi4uc2VydmVyQXJnc0Rpc2FsbG93ZWRJbkNvbmZpZyxcbiAgXSk7XG59XG5cbi8qKlxuICogVGhlc2UgZG9uJ3QgbWFrZSBzZW5zZSBpbiB0aGUgY29udGV4dCBvZiBhIGNvbmZpZyBmaWxlIGZvciBvYnZpb3VzIHJlYXNvbnMuXG4gKiBAdHlwZSB7QXJndW1lbnREZWZpbml0aW9uc31cbiAqL1xuY29uc3Qgc2VydmVyQXJnc0Rpc2FsbG93ZWRJbkNvbmZpZyA9IG5ldyBNYXAoW1xuICBbXG4gICAgWyctLXNoZWxsJ10sXG4gICAge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgaGVscDogJ0VudGVyIFJFUEwgbW9kZScsXG4gICAgICBhY3Rpb246ICdzdG9yZV9jb25zdCcsXG4gICAgICBjb25zdDogdHJ1ZSxcbiAgICAgIGRlc3Q6ICdzaGVsbCcsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgIFsnLS1zaG93LWJ1aWxkLWluZm8nXSxcbiAgICB7XG4gICAgICBkZXN0OiAnc2hvd0J1aWxkSW5mbycsXG4gICAgICBhY3Rpb246ICdzdG9yZV9jb25zdCcsXG4gICAgICBjb25zdDogdHJ1ZSxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGhlbHA6ICdTaG93IGluZm8gYWJvdXQgdGhlIEFwcGl1bSBidWlsZCBhbmQgZXhpdCcsXG4gICAgfSxcbiAgXSxcbiAgW1xuICAgIFsnLS1zaG93LWNvbmZpZyddLFxuICAgIHtcbiAgICAgIGRlc3Q6ICdzaG93Q29uZmlnJyxcbiAgICAgIGFjdGlvbjogJ3N0b3JlX2NvbnN0JyxcbiAgICAgIGNvbnN0OiB0cnVlLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgaGVscDogJ1Nob3cgdGhlIGN1cnJlbnQgQXBwaXVtIGNvbmZpZ3VyYXRpb24gYW5kIGV4aXQnLFxuICAgIH1cbiAgXSxcbiAgW1xuICAgIFsnLS1jb25maWcnXSxcbiAgICB7XG4gICAgICBkZXN0OiAnY29uZmlnRmlsZScsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGhlbHA6ICdFeHBsaWNpdCBwYXRoIHRvIEFwcGl1bSBjb25maWd1cmF0aW9uIGZpbGUnLFxuICAgIH0sXG4gIF0sXG5dKTtcblxuZXhwb3J0IHtcbiAgZ2V0U2VydmVyQXJncyxcbiAgZ2V0RXh0ZW5zaW9uQXJnc1xufTtcblxuLyoqXG4gKiBBbGlhc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZXh0ZW5zaW9uL21hbmlmZXN0JykuRXh0ZW5zaW9uVHlwZX0gRXh0ZW5zaW9uVHlwZVxuICovXG5cbi8qKlxuICogQSB0dXBsZSBvZiBhcmd1bWVudCBhbGlhc2VzIGFuZCBhcmd1bWVudCBvcHRpb25zXG4gKiBAdHlwZWRlZiB7TWFwPHN0cmluZ1tdLGltcG9ydCgnYXJncGFyc2UnKS5Bcmd1bWVudE9wdGlvbnM+fSBBcmd1bWVudERlZmluaXRpb25zXG4gKi9cbiJdfQ==
@@ -13,9 +13,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
14
  var _extensionCommand = _interopRequireDefault(require("./extension-command"));
15
15
 
16
- var _extensionConfig = require("../extension-config");
17
-
18
- var _drivers = require("../drivers");
16
+ var _constants = require("../constants");
19
17
 
20
18
  const REQ_DRIVER_FIELDS = ['driverName', 'automationName', 'platformNames', 'mainClass'];
21
19
 
@@ -27,9 +25,9 @@ class DriverCommand extends _extensionCommand.default {
27
25
  super({
28
26
  config,
29
27
  json,
30
- type: _extensionConfig.DRIVER_TYPE
28
+ type: _constants.DRIVER_TYPE
31
29
  });
32
- this.knownExtensions = _drivers.KNOWN_DRIVERS;
30
+ this.knownExtensions = _constants.KNOWN_DRIVERS;
33
31
  }
34
32
 
35
33
  async install({
@@ -89,7 +87,5 @@ class DriverCommand extends _extensionCommand.default {
89
87
 
90
88
  }
91
89
 
92
- exports.default = DriverCommand;require('source-map-support').install();
93
-
94
-
95
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jbGkvZHJpdmVyLWNvbW1hbmQuanMiXSwibmFtZXMiOlsiUkVRX0RSSVZFUl9GSUVMRFMiLCJEcml2ZXJDb21tYW5kIiwiRXh0ZW5zaW9uQ29tbWFuZCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwianNvbiIsInR5cGUiLCJEUklWRVJfVFlQRSIsImtub3duRXh0ZW5zaW9ucyIsIktOT1dOX0RSSVZFUlMiLCJpbnN0YWxsIiwiZHJpdmVyIiwiaW5zdGFsbFR5cGUiLCJwYWNrYWdlTmFtZSIsImV4dCIsInVuaW5zdGFsbCIsInVwZGF0ZSIsInVuc2FmZSIsInJ1biIsInNjcmlwdE5hbWUiLCJnZXRQb3N0SW5zdGFsbFRleHQiLCJleHROYW1lIiwiZXh0RGF0YSIsInZlcnNpb24iLCJncmVlbiIsImF1dG9tYXRpb25OYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsInBsYXRmb3JtTmFtZXMiLCJ2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyIsImFwcGl1bVBrZ0RhdGEiLCJtaXNzaW5nRmllbGRzIiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJfIiwiaXNFbXB0eSIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLENBQUMsWUFBRCxFQUFlLGdCQUFmLEVBQWlDLGVBQWpDLEVBQWtELFdBQWxELENBQTFCOztBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLHlCQUE1QixDQUE2QztBQUUxREMsRUFBQUEsV0FBVyxDQUFFO0FBQUNDLElBQUFBLE1BQUQ7QUFBU0MsSUFBQUE7QUFBVCxHQUFGLEVBQWtCO0FBQzNCLFVBQU07QUFBQ0QsTUFBQUEsTUFBRDtBQUFTQyxNQUFBQSxJQUFUO0FBQWVDLE1BQUFBLElBQUksRUFBRUM7QUFBckIsS0FBTjtBQUNBLFNBQUtDLGVBQUwsR0FBdUJDLHNCQUF2QjtBQUNEOztBQUVZLFFBQVBDLE9BQU8sQ0FBRTtBQUFDQyxJQUFBQSxNQUFEO0FBQVNDLElBQUFBLFdBQVQ7QUFBc0JDLElBQUFBO0FBQXRCLEdBQUYsRUFBc0M7QUFDakQsV0FBTyxNQUFNLE1BQU1ILE9BQU4sQ0FBYztBQUFDSSxNQUFBQSxHQUFHLEVBQUVILE1BQU47QUFBY0MsTUFBQUEsV0FBZDtBQUEyQkMsTUFBQUE7QUFBM0IsS0FBZCxDQUFiO0FBQ0Q7O0FBRWMsUUFBVEUsU0FBUyxDQUFFO0FBQUNKLElBQUFBO0FBQUQsR0FBRixFQUFZO0FBQ3pCLFdBQU8sTUFBTSxNQUFNSSxTQUFOLENBQWdCO0FBQUNELE1BQUFBLEdBQUcsRUFBRUg7QUFBTixLQUFoQixDQUFiO0FBQ0Q7O0FBRVcsUUFBTkssTUFBTSxDQUFFO0FBQUNMLElBQUFBLE1BQUQ7QUFBU00sSUFBQUE7QUFBVCxHQUFGLEVBQW9CO0FBQzlCLFdBQU8sTUFBTSxNQUFNRCxNQUFOLENBQWE7QUFBQ0YsTUFBQUEsR0FBRyxFQUFFSCxNQUFOO0FBQWNNLE1BQUFBO0FBQWQsS0FBYixDQUFiO0FBQ0Q7O0FBRVEsUUFBSEMsR0FBRyxDQUFFO0FBQUNQLElBQUFBLE1BQUQ7QUFBU1EsSUFBQUE7QUFBVCxHQUFGLEVBQXdCO0FBQy9CLFdBQU8sTUFBTSxNQUFNRCxHQUFOLENBQVU7QUFBQ0osTUFBQUEsR0FBRyxFQUFFSCxNQUFOO0FBQWNRLE1BQUFBO0FBQWQsS0FBVixDQUFiO0FBQ0Q7O0FBRURDLEVBQUFBLGtCQUFrQixDQUFFO0FBQUNDLElBQUFBLE9BQUQ7QUFBVUMsSUFBQUE7QUFBVixHQUFGLEVBQXNCO0FBQ3RDLFdBQVEsVUFBU0QsT0FBUSxJQUFHQyxPQUFPLENBQUNDLE9BQVEsMkJBQXJDLENBQWdFQyxLQUFoRSxHQUNDLHFCQUFvQkYsT0FBTyxDQUFDRyxjQUFSLENBQXVCRCxLQUFNLElBRGxELEdBRUMsb0JBQW1CRSxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsT0FBTyxDQUFDTSxhQUF2QixFQUFzQ0osS0FBTSxFQUZ2RTtBQUdEOztBQUVESyxFQUFBQSx1QkFBdUIsQ0FBRUMsYUFBRixFQUFpQjtBQUN0QyxVQUFNQyxhQUFhLEdBQUcvQixpQkFBaUIsQ0FBQ2dDLE1BQWxCLENBQXlCLENBQUNDLEdBQUQsRUFBTUMsS0FBTixLQUM3Q0osYUFBYSxDQUFDSSxLQUFELENBQWIsR0FBdUJELEdBQXZCLEdBQTZCLENBQUMsR0FBR0EsR0FBSixFQUFTQyxLQUFULENBRFQsRUFFbkIsRUFGbUIsQ0FBdEI7O0FBSUEsUUFBSSxDQUFDQyxnQkFBRUMsT0FBRixDQUFVTCxhQUFWLENBQUwsRUFBK0I7QUFDN0IsWUFBTSxJQUFJTSxLQUFKLENBQVcsaUVBQUQsR0FDQyxnQ0FBK0JYLElBQUksQ0FBQ0MsU0FBTCxDQUFlSSxhQUFmLENBQThCLEVBRHhFLENBQU47QUFFRDtBQUVGOztBQXZDeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEV4dGVuc2lvbkNvbW1hbmQgZnJvbSAnLi9leHRlbnNpb24tY29tbWFuZCc7XG5pbXBvcnQgeyBEUklWRVJfVFlQRSB9IGZyb20gJy4uL2V4dGVuc2lvbi1jb25maWcnO1xuaW1wb3J0IHsgS05PV05fRFJJVkVSUyB9IGZyb20gJy4uL2RyaXZlcnMnO1xuXG5jb25zdCBSRVFfRFJJVkVSX0ZJRUxEUyA9IFsnZHJpdmVyTmFtZScsICdhdXRvbWF0aW9uTmFtZScsICdwbGF0Zm9ybU5hbWVzJywgJ21haW5DbGFzcyddO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZXJDb21tYW5kIGV4dGVuZHMgRXh0ZW5zaW9uQ29tbWFuZCB7XG5cbiAgY29uc3RydWN0b3IgKHtjb25maWcsIGpzb259KSB7XG4gICAgc3VwZXIoe2NvbmZpZywganNvbiwgdHlwZTogRFJJVkVSX1RZUEV9KTtcbiAgICB0aGlzLmtub3duRXh0ZW5zaW9ucyA9IEtOT1dOX0RSSVZFUlM7XG4gIH1cblxuICBhc3luYyBpbnN0YWxsICh7ZHJpdmVyLCBpbnN0YWxsVHlwZSwgcGFja2FnZU5hbWV9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmluc3RhbGwoe2V4dDogZHJpdmVyLCBpbnN0YWxsVHlwZSwgcGFja2FnZU5hbWV9KTtcbiAgfVxuXG4gIGFzeW5jIHVuaW5zdGFsbCAoe2RyaXZlcn0pIHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIudW5pbnN0YWxsKHtleHQ6IGRyaXZlcn0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlICh7ZHJpdmVyLCB1bnNhZmV9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLnVwZGF0ZSh7ZXh0OiBkcml2ZXIsIHVuc2FmZX0pO1xuICB9XG5cbiAgYXN5bmMgcnVuICh7ZHJpdmVyLCBzY3JpcHROYW1lfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5ydW4oe2V4dDogZHJpdmVyLCBzY3JpcHROYW1lfSk7XG4gIH1cblxuICBnZXRQb3N0SW5zdGFsbFRleHQgKHtleHROYW1lLCBleHREYXRhfSkge1xuICAgIHJldHVybiBgRHJpdmVyICR7ZXh0TmFtZX1AJHtleHREYXRhLnZlcnNpb259IHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWRcXG5gLmdyZWVuICtcbiAgICAgICAgICAgYC0gYXV0b21hdGlvbk5hbWU6ICR7ZXh0RGF0YS5hdXRvbWF0aW9uTmFtZS5ncmVlbn1cXG5gICtcbiAgICAgICAgICAgYC0gcGxhdGZvcm1OYW1lczogJHtKU09OLnN0cmluZ2lmeShleHREYXRhLnBsYXRmb3JtTmFtZXMpLmdyZWVufWA7XG4gIH1cblxuICB2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyAoYXBwaXVtUGtnRGF0YSkge1xuICAgIGNvbnN0IG1pc3NpbmdGaWVsZHMgPSBSRVFfRFJJVkVSX0ZJRUxEUy5yZWR1Y2UoKGFjYywgZmllbGQpID0+IChcbiAgICAgIGFwcGl1bVBrZ0RhdGFbZmllbGRdID8gYWNjIDogWy4uLmFjYywgZmllbGRdXG4gICAgKSwgW10pO1xuXG4gICAgaWYgKCFfLmlzRW1wdHkobWlzc2luZ0ZpZWxkcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5zdGFsbGVkIGRyaXZlciBkaWQgbm90IGV4cG9zZSBjb3JyZWN0IGZpZWxkcyBmb3IgY29tcGFiaWxpdHkgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHdpdGggQXBwaXVtLiBNaXNzaW5nIGZpZWxkczogJHtKU09OLnN0cmluZ2lmeShtaXNzaW5nRmllbGRzKX1gKTtcbiAgICB9XG5cbiAgfVxuXG59XG4iXSwiZmlsZSI6ImxpYi9jbGkvZHJpdmVyLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
90
+ exports.default = DriverCommand;
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jbGkvZHJpdmVyLWNvbW1hbmQuanMiXSwibmFtZXMiOlsiUkVRX0RSSVZFUl9GSUVMRFMiLCJEcml2ZXJDb21tYW5kIiwiRXh0ZW5zaW9uQ29tbWFuZCIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwianNvbiIsInR5cGUiLCJEUklWRVJfVFlQRSIsImtub3duRXh0ZW5zaW9ucyIsIktOT1dOX0RSSVZFUlMiLCJpbnN0YWxsIiwiZHJpdmVyIiwiaW5zdGFsbFR5cGUiLCJwYWNrYWdlTmFtZSIsImV4dCIsInVuaW5zdGFsbCIsInVwZGF0ZSIsInVuc2FmZSIsInJ1biIsInNjcmlwdE5hbWUiLCJnZXRQb3N0SW5zdGFsbFRleHQiLCJleHROYW1lIiwiZXh0RGF0YSIsInZlcnNpb24iLCJncmVlbiIsImF1dG9tYXRpb25OYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsInBsYXRmb3JtTmFtZXMiLCJ2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyIsImFwcGl1bVBrZ0RhdGEiLCJtaXNzaW5nRmllbGRzIiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJfIiwiaXNFbXB0eSIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLENBQUMsWUFBRCxFQUFlLGdCQUFmLEVBQWlDLGVBQWpDLEVBQWtELFdBQWxELENBQTFCOztBQUVlLE1BQU1DLGFBQU4sU0FBNEJDLHlCQUE1QixDQUE2QztBQUsxREMsRUFBQUEsV0FBVyxDQUFFO0FBQUNDLElBQUFBLE1BQUQ7QUFBU0MsSUFBQUE7QUFBVCxHQUFGLEVBQWtCO0FBQzNCLFVBQU07QUFBQ0QsTUFBQUEsTUFBRDtBQUFTQyxNQUFBQSxJQUFUO0FBQWVDLE1BQUFBLElBQUksRUFBRUM7QUFBckIsS0FBTjtBQUNBLFNBQUtDLGVBQUwsR0FBdUJDLHdCQUF2QjtBQUNEOztBQUVZLFFBQVBDLE9BQU8sQ0FBRTtBQUFDQyxJQUFBQSxNQUFEO0FBQVNDLElBQUFBLFdBQVQ7QUFBc0JDLElBQUFBO0FBQXRCLEdBQUYsRUFBc0M7QUFDakQsV0FBTyxNQUFNLE1BQU1ILE9BQU4sQ0FBYztBQUFDSSxNQUFBQSxHQUFHLEVBQUVILE1BQU47QUFBY0MsTUFBQUEsV0FBZDtBQUEyQkMsTUFBQUE7QUFBM0IsS0FBZCxDQUFiO0FBQ0Q7O0FBRWMsUUFBVEUsU0FBUyxDQUFFO0FBQUNKLElBQUFBO0FBQUQsR0FBRixFQUFZO0FBQ3pCLFdBQU8sTUFBTSxNQUFNSSxTQUFOLENBQWdCO0FBQUNELE1BQUFBLEdBQUcsRUFBRUg7QUFBTixLQUFoQixDQUFiO0FBQ0Q7O0FBRVcsUUFBTkssTUFBTSxDQUFFO0FBQUNMLElBQUFBLE1BQUQ7QUFBU00sSUFBQUE7QUFBVCxHQUFGLEVBQW9CO0FBQzlCLFdBQU8sTUFBTSxNQUFNRCxNQUFOLENBQWE7QUFBQ0YsTUFBQUEsR0FBRyxFQUFFSCxNQUFOO0FBQWNNLE1BQUFBO0FBQWQsS0FBYixDQUFiO0FBQ0Q7O0FBRVEsUUFBSEMsR0FBRyxDQUFFO0FBQUNQLElBQUFBLE1BQUQ7QUFBU1EsSUFBQUE7QUFBVCxHQUFGLEVBQXdCO0FBQy9CLFdBQU8sTUFBTSxNQUFNRCxHQUFOLENBQVU7QUFBQ0osTUFBQUEsR0FBRyxFQUFFSCxNQUFOO0FBQWNRLE1BQUFBO0FBQWQsS0FBVixDQUFiO0FBQ0Q7O0FBRURDLEVBQUFBLGtCQUFrQixDQUFFO0FBQUNDLElBQUFBLE9BQUQ7QUFBVUMsSUFBQUE7QUFBVixHQUFGLEVBQXNCO0FBQ3RDLFdBQVEsVUFBU0QsT0FBUSxJQUFHQyxPQUFPLENBQUNDLE9BQVEsMkJBQXJDLENBQWdFQyxLQUFoRSxHQUNDLHFCQUFvQkYsT0FBTyxDQUFDRyxjQUFSLENBQXVCRCxLQUFNLElBRGxELEdBRUMsb0JBQW1CRSxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsT0FBTyxDQUFDTSxhQUF2QixFQUFzQ0osS0FBTSxFQUZ2RTtBQUdEOztBQUVESyxFQUFBQSx1QkFBdUIsQ0FBRUMsYUFBRixFQUFpQjtBQUN0QyxVQUFNQyxhQUFhLEdBQUcvQixpQkFBaUIsQ0FBQ2dDLE1BQWxCLENBQXlCLENBQUNDLEdBQUQsRUFBTUMsS0FBTixLQUM3Q0osYUFBYSxDQUFDSSxLQUFELENBQWIsR0FBdUJELEdBQXZCLEdBQTZCLENBQUMsR0FBR0EsR0FBSixFQUFTQyxLQUFULENBRFQsRUFFbkIsRUFGbUIsQ0FBdEI7O0FBSUEsUUFBSSxDQUFDQyxnQkFBRUMsT0FBRixDQUFVTCxhQUFWLENBQUwsRUFBK0I7QUFDN0IsWUFBTSxJQUFJTSxLQUFKLENBQVcsaUVBQUQsR0FDQyxnQ0FBK0JYLElBQUksQ0FBQ0MsU0FBTCxDQUFlSSxhQUFmLENBQThCLEVBRHhFLENBQU47QUFFRDtBQUVGOztBQTFDeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEV4dGVuc2lvbkNvbW1hbmQgZnJvbSAnLi9leHRlbnNpb24tY29tbWFuZCc7XG5pbXBvcnQgeyBEUklWRVJfVFlQRSwgS05PV05fRFJJVkVSUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IFJFUV9EUklWRVJfRklFTERTID0gWydkcml2ZXJOYW1lJywgJ2F1dG9tYXRpb25OYW1lJywgJ3BsYXRmb3JtTmFtZXMnLCAnbWFpbkNsYXNzJ107XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlckNvbW1hbmQgZXh0ZW5kcyBFeHRlbnNpb25Db21tYW5kIHtcblxuICAvKipcbiAgICogQHBhcmFtIHtEcml2ZXJDb21tYW5kT3B0aW9uc30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3IgKHtjb25maWcsIGpzb259KSB7XG4gICAgc3VwZXIoe2NvbmZpZywganNvbiwgdHlwZTogRFJJVkVSX1RZUEV9KTtcbiAgICB0aGlzLmtub3duRXh0ZW5zaW9ucyA9IEtOT1dOX0RSSVZFUlM7XG4gIH1cblxuICBhc3luYyBpbnN0YWxsICh7ZHJpdmVyLCBpbnN0YWxsVHlwZSwgcGFja2FnZU5hbWV9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmluc3RhbGwoe2V4dDogZHJpdmVyLCBpbnN0YWxsVHlwZSwgcGFja2FnZU5hbWV9KTtcbiAgfVxuXG4gIGFzeW5jIHVuaW5zdGFsbCAoe2RyaXZlcn0pIHtcbiAgICByZXR1cm4gYXdhaXQgc3VwZXIudW5pbnN0YWxsKHtleHQ6IGRyaXZlcn0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlICh7ZHJpdmVyLCB1bnNhZmV9KSB7XG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLnVwZGF0ZSh7ZXh0OiBkcml2ZXIsIHVuc2FmZX0pO1xuICB9XG5cbiAgYXN5bmMgcnVuICh7ZHJpdmVyLCBzY3JpcHROYW1lfSkge1xuICAgIHJldHVybiBhd2FpdCBzdXBlci5ydW4oe2V4dDogZHJpdmVyLCBzY3JpcHROYW1lfSk7XG4gIH1cblxuICBnZXRQb3N0SW5zdGFsbFRleHQgKHtleHROYW1lLCBleHREYXRhfSkge1xuICAgIHJldHVybiBgRHJpdmVyICR7ZXh0TmFtZX1AJHtleHREYXRhLnZlcnNpb259IHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWRcXG5gLmdyZWVuICtcbiAgICAgICAgICAgYC0gYXV0b21hdGlvbk5hbWU6ICR7ZXh0RGF0YS5hdXRvbWF0aW9uTmFtZS5ncmVlbn1cXG5gICtcbiAgICAgICAgICAgYC0gcGxhdGZvcm1OYW1lczogJHtKU09OLnN0cmluZ2lmeShleHREYXRhLnBsYXRmb3JtTmFtZXMpLmdyZWVufWA7XG4gIH1cblxuICB2YWxpZGF0ZUV4dGVuc2lvbkZpZWxkcyAoYXBwaXVtUGtnRGF0YSkge1xuICAgIGNvbnN0IG1pc3NpbmdGaWVsZHMgPSBSRVFfRFJJVkVSX0ZJRUxEUy5yZWR1Y2UoKGFjYywgZmllbGQpID0+IChcbiAgICAgIGFwcGl1bVBrZ0RhdGFbZmllbGRdID8gYWNjIDogWy4uLmFjYywgZmllbGRdXG4gICAgKSwgW10pO1xuXG4gICAgaWYgKCFfLmlzRW1wdHkobWlzc2luZ0ZpZWxkcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5zdGFsbGVkIGRyaXZlciBkaWQgbm90IGV4cG9zZSBjb3JyZWN0IGZpZWxkcyBmb3IgY29tcGFiaWxpdHkgYCArXG4gICAgICAgICAgICAgICAgICAgICAgYHdpdGggQXBwaXVtLiBNaXNzaW5nIGZpZWxkczogJHtKU09OLnN0cmluZ2lmeShtaXNzaW5nRmllbGRzKX1gKTtcbiAgICB9XG5cbiAgfVxuXG59XG5cbi8qKlxuICogQHR5cGVkZWYgRHJpdmVyQ29tbWFuZE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KCcuLi9leHRlbnNpb24vZHJpdmVyLWNvbmZpZycpLkRyaXZlckNvbmZpZ30gY29uZmlnXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGpzb25cbiAqL1xuIl19