appium 2.0.0-beta.3 → 2.0.0-beta.34

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 (149) hide show
  1. package/README.md +10 -11
  2. package/build/lib/appium.d.ts +215 -0
  3. package/build/lib/appium.d.ts.map +1 -0
  4. package/build/lib/appium.js +241 -132
  5. package/build/lib/cli/args.d.ts +20 -0
  6. package/build/lib/cli/args.d.ts.map +1 -0
  7. package/build/lib/cli/args.js +96 -282
  8. package/build/lib/cli/driver-command.d.ts +36 -0
  9. package/build/lib/cli/driver-command.d.ts.map +1 -0
  10. package/build/lib/cli/driver-command.js +19 -12
  11. package/build/lib/cli/extension-command.d.ts +345 -0
  12. package/build/lib/cli/extension-command.d.ts.map +1 -0
  13. package/build/lib/cli/extension-command.js +171 -96
  14. package/build/lib/cli/extension.d.ts +14 -0
  15. package/build/lib/cli/extension.d.ts.map +1 -0
  16. package/build/lib/cli/extension.js +31 -16
  17. package/build/lib/cli/parser.d.ts +80 -0
  18. package/build/lib/cli/parser.d.ts.map +1 -0
  19. package/build/lib/cli/parser.js +152 -95
  20. package/build/lib/cli/plugin-command.d.ts +39 -0
  21. package/build/lib/cli/plugin-command.d.ts.map +1 -0
  22. package/build/lib/cli/plugin-command.js +18 -13
  23. package/build/lib/cli/utils.d.ts +29 -0
  24. package/build/lib/cli/utils.d.ts.map +1 -0
  25. package/build/lib/cli/utils.js +27 -3
  26. package/build/lib/config-file.d.ts +100 -0
  27. package/build/lib/config-file.d.ts.map +1 -0
  28. package/build/lib/config-file.js +136 -0
  29. package/build/lib/config.d.ts +41 -0
  30. package/build/lib/config.d.ts.map +1 -0
  31. package/build/lib/config.js +92 -67
  32. package/build/lib/constants.d.ts +48 -0
  33. package/build/lib/constants.d.ts.map +1 -0
  34. package/build/lib/constants.js +60 -0
  35. package/build/lib/extension/driver-config.d.ts +84 -0
  36. package/build/lib/extension/driver-config.d.ts.map +1 -0
  37. package/build/lib/extension/driver-config.js +190 -0
  38. package/build/lib/extension/extension-config.d.ts +170 -0
  39. package/build/lib/extension/extension-config.d.ts.map +1 -0
  40. package/build/lib/extension/extension-config.js +297 -0
  41. package/build/lib/extension/index.d.ts +39 -0
  42. package/build/lib/extension/index.d.ts.map +1 -0
  43. package/build/lib/extension/index.js +77 -0
  44. package/build/lib/extension/manifest.d.ts +174 -0
  45. package/build/lib/extension/manifest.d.ts.map +1 -0
  46. package/build/lib/extension/manifest.js +246 -0
  47. package/build/lib/extension/package-changed.d.ts +11 -0
  48. package/build/lib/extension/package-changed.d.ts.map +1 -0
  49. package/build/lib/extension/package-changed.js +68 -0
  50. package/build/lib/extension/plugin-config.d.ts +62 -0
  51. package/build/lib/extension/plugin-config.d.ts.map +1 -0
  52. package/build/lib/extension/plugin-config.js +87 -0
  53. package/build/lib/grid-register.d.ts +10 -0
  54. package/build/lib/grid-register.d.ts.map +1 -0
  55. package/build/lib/grid-register.js +21 -25
  56. package/build/lib/logger.d.ts +3 -0
  57. package/build/lib/logger.d.ts.map +1 -0
  58. package/build/lib/logger.js +4 -6
  59. package/build/lib/logsink.d.ts +4 -0
  60. package/build/lib/logsink.d.ts.map +1 -0
  61. package/build/lib/logsink.js +12 -16
  62. package/build/lib/main.d.ts +54 -0
  63. package/build/lib/main.d.ts.map +1 -0
  64. package/build/lib/main.js +189 -90
  65. package/build/lib/schema/arg-spec.d.ts +143 -0
  66. package/build/lib/schema/arg-spec.d.ts.map +1 -0
  67. package/build/lib/schema/arg-spec.js +119 -0
  68. package/build/lib/schema/cli-args.d.ts +19 -0
  69. package/build/lib/schema/cli-args.d.ts.map +1 -0
  70. package/build/lib/schema/cli-args.js +180 -0
  71. package/build/lib/schema/cli-transformers.d.ts +5 -0
  72. package/build/lib/schema/cli-transformers.d.ts.map +1 -0
  73. package/build/lib/schema/cli-transformers.js +74 -0
  74. package/build/lib/schema/index.d.ts +3 -0
  75. package/build/lib/schema/index.d.ts.map +1 -0
  76. package/build/lib/schema/index.js +34 -0
  77. package/build/lib/schema/keywords.d.ts +24 -0
  78. package/build/lib/schema/keywords.d.ts.map +1 -0
  79. package/build/lib/schema/keywords.js +70 -0
  80. package/build/lib/schema/schema.d.ts +259 -0
  81. package/build/lib/schema/schema.d.ts.map +1 -0
  82. package/build/lib/schema/schema.js +452 -0
  83. package/build/lib/utils.d.ts +66 -0
  84. package/build/lib/utils.d.ts.map +1 -0
  85. package/build/lib/utils.js +35 -139
  86. package/build/tsconfig.tsbuildinfo +1 -0
  87. package/build/types/appium-manifest.d.ts +40 -0
  88. package/build/types/appium-manifest.d.ts.map +1 -0
  89. package/build/types/cli.d.ts +112 -0
  90. package/build/types/cli.d.ts.map +1 -0
  91. package/build/types/extension.d.ts +43 -0
  92. package/build/types/extension.d.ts.map +1 -0
  93. package/build/types/external-manifest.d.ts +47 -0
  94. package/build/types/external-manifest.d.ts.map +1 -0
  95. package/build/types/index.d.ts +15 -0
  96. package/build/types/index.d.ts.map +1 -0
  97. package/index.js +11 -0
  98. package/lib/appium-config.schema.json +278 -0
  99. package/lib/appium.js +402 -155
  100. package/lib/cli/args.js +174 -377
  101. package/lib/cli/driver-command.js +22 -7
  102. package/lib/cli/extension-command.js +372 -177
  103. package/lib/cli/extension.js +32 -10
  104. package/lib/cli/parser.js +253 -83
  105. package/lib/cli/plugin-command.js +19 -6
  106. package/lib/cli/utils.js +22 -2
  107. package/lib/config-file.js +223 -0
  108. package/lib/config.js +170 -69
  109. package/lib/constants.js +78 -0
  110. package/lib/extension/driver-config.js +249 -0
  111. package/lib/extension/extension-config.js +458 -0
  112. package/lib/extension/index.js +102 -0
  113. package/lib/extension/manifest.js +484 -0
  114. package/lib/extension/package-changed.js +63 -0
  115. package/lib/extension/plugin-config.js +113 -0
  116. package/lib/grid-register.js +25 -22
  117. package/lib/logger.js +1 -1
  118. package/lib/logsink.js +14 -7
  119. package/lib/main.js +255 -90
  120. package/lib/schema/arg-spec.js +232 -0
  121. package/lib/schema/cli-args.js +261 -0
  122. package/lib/schema/cli-transformers.js +122 -0
  123. package/lib/schema/index.js +2 -0
  124. package/lib/schema/keywords.js +134 -0
  125. package/lib/schema/schema.js +734 -0
  126. package/lib/utils.js +85 -129
  127. package/package.json +68 -85
  128. package/scripts/postinstall.js +71 -0
  129. package/types/appium-manifest.ts +61 -0
  130. package/types/cli.ts +153 -0
  131. package/types/extension.ts +56 -0
  132. package/types/external-manifest.ts +58 -0
  133. package/types/index.ts +14 -0
  134. package/CHANGELOG.md +0 -3515
  135. package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
  136. package/build/lib/cli/npm.js +0 -206
  137. package/build/lib/cli/parser-helpers.js +0 -82
  138. package/build/lib/driver-config.js +0 -77
  139. package/build/lib/drivers.js +0 -96
  140. package/build/lib/extension-config.js +0 -251
  141. package/build/lib/plugin-config.js +0 -59
  142. package/build/lib/plugins.js +0 -14
  143. package/lib/cli/npm.js +0 -183
  144. package/lib/cli/parser-helpers.js +0 -79
  145. package/lib/driver-config.js +0 -46
  146. package/lib/drivers.js +0 -81
  147. package/lib/extension-config.js +0 -208
  148. package/lib/plugin-config.js +0 -34
  149. package/lib/plugins.js +0 -10
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _axios = _interopRequireDefault(require("axios"));
13
13
 
14
- var _appiumSupport = require("appium-support");
14
+ var _support = require("@appium/support");
15
15
 
16
16
  var _logger = _interopRequireDefault(require("./logger"));
17
17
 
@@ -22,21 +22,27 @@ const hubUri = config => {
22
22
  return `${protocol}://${config.hubHost}:${config.hubPort}`;
23
23
  };
24
24
 
25
- async function registerNode(configFile, addr, port, basePath) {
26
- let data;
25
+ async function registerNode(data, addr, port, basePath) {
26
+ let configFilePath;
27
27
 
28
- try {
29
- data = await _appiumSupport.fs.readFile(configFile, 'utf-8');
30
- } catch (err) {
31
- _logger.default.error(`Unable to load node configuration file to register with grid: ${err.message}`);
28
+ if (_lodash.default.isString(data)) {
29
+ configFilePath = data;
32
30
 
33
- return;
34
- }
31
+ try {
32
+ data = await _support.fs.readFile(data, 'utf-8');
33
+ } catch (err) {
34
+ _logger.default.error(`Unable to load node configuration file ${configFilePath} to register with grid: ${err.message}`);
35
35
 
36
- if (!data) {
37
- _logger.default.error('No data found in the node configuration file to send to the grid');
36
+ return;
37
+ }
38
38
 
39
- return;
39
+ try {
40
+ data = JSON.parse(data);
41
+ } catch (err) {
42
+ _logger.default.errorAndThrow(`Syntax error in node configuration file ${configFilePath}: ${err.message}`);
43
+
44
+ return;
45
+ }
40
46
  }
41
47
 
42
48
  postRequest(data, addr, port, basePath);
@@ -58,15 +64,7 @@ async function registerToGrid(postOptions, configHolder) {
58
64
  }
59
65
  }
60
66
 
61
- function postRequest(data, addr, port, basePath) {
62
- let configHolder;
63
-
64
- try {
65
- configHolder = JSON.parse(data);
66
- } catch (err) {
67
- _logger.default.errorAndThrow(`Syntax error in node configuration file: ${err.message}`);
68
- }
69
-
67
+ function postRequest(configHolder, addr, port, basePath) {
70
68
  if (!_lodash.default.has(configHolder, 'configuration')) {
71
69
  let configuration = {};
72
70
 
@@ -151,7 +149,5 @@ async function isAlreadyRegistered(configHolder) {
151
149
  }
152
150
 
153
151
  var _default = registerNode;
154
- exports.default = _default;require('source-map-support').install();
155
-
156
-
157
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ncmlkLXJlZ2lzdGVyLmpzIl0sIm5hbWVzIjpbImh1YlVyaSIsImNvbmZpZyIsInByb3RvY29sIiwiaHViUHJvdG9jb2wiLCJodWJIb3N0IiwiaHViUG9ydCIsInJlZ2lzdGVyTm9kZSIsImNvbmZpZ0ZpbGUiLCJhZGRyIiwicG9ydCIsImJhc2VQYXRoIiwiZGF0YSIsImZzIiwicmVhZEZpbGUiLCJlcnIiLCJsb2dnZXIiLCJlcnJvciIsIm1lc3NhZ2UiLCJwb3N0UmVxdWVzdCIsInJlZ2lzdGVyVG9HcmlkIiwicG9zdE9wdGlvbnMiLCJjb25maWdIb2xkZXIiLCJzdGF0dXMiLCJFcnJvciIsImRlYnVnIiwiY29uZmlndXJhdGlvbiIsIkpTT04iLCJwYXJzZSIsImVycm9yQW5kVGhyb3ciLCJfIiwiaGFzIiwicHJvcGVydHkiLCJ1cmwiLCJob3N0IiwiaWQiLCJyZWdSZXF1ZXN0IiwibWV0aG9kIiwicmVnaXN0ZXIiLCJyZWdpc3RlckN5Y2xlSW50ZXJ2YWwiLCJyZWdpc3RlckN5Y2xlIiwiaXNOYU4iLCJ3YXJuIiwiZmlyc3QiLCJzZXRJbnRlcnZhbCIsInJlZ2lzdGVyUmV0cnkiLCJpc0FscmVhZHlSZWdpc3RlcmVkIiwidGltZW91dCIsInN1Y2Nlc3MiLCJtc2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsTUFBTSxHQUFJQyxNQUFELElBQVk7QUFDekIsUUFBTUMsUUFBUSxHQUFHRCxNQUFNLENBQUNFLFdBQVAsSUFBc0IsTUFBdkM7QUFDQSxTQUFRLEdBQUVELFFBQVMsTUFBS0QsTUFBTSxDQUFDRyxPQUFRLElBQUdILE1BQU0sQ0FBQ0ksT0FBUSxFQUF6RDtBQUNELENBSEQ7O0FBS0EsZUFBZUMsWUFBZixDQUE2QkMsVUFBN0IsRUFBeUNDLElBQXpDLEVBQStDQyxJQUEvQyxFQUFxREMsUUFBckQsRUFBK0Q7QUFDN0QsTUFBSUMsSUFBSjs7QUFDQSxNQUFJO0FBQ0ZBLElBQUFB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SSxhQUFiLENBQTJCUyxFQUF0Qzs7QUFDQSxNQUFJO0FBQ0YsVUFBTTtBQUFDdkIsTUFBQUEsSUFBRDtBQUFPVyxNQUFBQTtBQUFQLFFBQWlCLE1BQU0sb0JBQU07QUFDakNVLE1BQUFBLEdBQUcsRUFBRyxHQUFFaEMsTUFBTSxDQUFDcUIsWUFBWSxDQUFDSSxhQUFkLENBQTZCLHNCQUFxQlMsRUFBRyxFQURsQztBQUVqQ1ksTUFBQUEsT0FBTyxFQUFFO0FBRndCLEtBQU4sQ0FBN0I7O0FBSUEsUUFBSXhCLE1BQU0sS0FBSyxHQUFmLEVBQW9CO0FBQ2xCLFlBQU0sSUFBSUMsS0FBSixDQUFXLDRCQUEyQkQsTUFBTyxFQUE3QyxDQUFOO0FBQ0Q7O0FBQ0QsUUFBSSxDQUFDWCxJQUFJLENBQUNvQyxPQUFWLEVBQW1CO0FBRWpCaEMsc0JBQU9TLEtBQVAsQ0FBYyw0QkFBMkJiLElBQUksQ0FBQ3FDLEdBQUksRUFBbEQ7QUFDRDs7QUFDRCxXQUFPckMsSUFBSSxDQUFDb0MsT0FBWjtBQUNELEdBYkQsQ0FhRSxPQUFPakMsR0FBUCxFQUFZO0FBQ1pDLG9CQUFPUyxLQUFQLENBQWMsK0JBQThCVixHQUFHLENBQUNHLE9BQVEsRUFBeEQ7QUFDRDtBQUNGOztlQUdjWCxZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbmNvbnN0IGh1YlVyaSA9IChjb25maWcpID0+IHtcbiAgY29uc3QgcHJvdG9jb2wgPSBjb25maWcuaHViUHJvdG9jb2wgfHwgJ2h0dHAnO1xuICByZXR1cm4gYCR7cHJvdG9jb2x9Oi8vJHtjb25maWcuaHViSG9zdH06JHtjb25maWcuaHViUG9ydH1gO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gcmVnaXN0ZXJOb2RlIChjb25maWdGaWxlLCBhZGRyLCBwb3J0LCBiYXNlUGF0aCkge1xuICBsZXQgZGF0YTtcbiAgdHJ5IHtcbiAgICBkYXRhID0gYXdhaXQgZnMucmVhZEZpbGUoY29uZmlnRmlsZSwgJ3V0Zi04Jyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihgVW5hYmxlIHRvIGxvYWQgbm9kZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gcmVnaXN0ZXIgd2l0aCBncmlkOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIENoZWNrIHByZXNlbmNlIG9mIGRhdGEgYmVmb3JlIHBvc3RpbmcgIGl0IHRvIHRoZSBzZWxlbml1bSBncmlkXG4gIGlmICghZGF0YSkge1xuICAgIGxvZ2dlci5lcnJvcignTm8gZGF0YSBmb3VuZCBpbiB0aGUgbm9kZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gc2VuZCB0byB0aGUgZ3JpZCcpO1xuICAgIHJldHVybjtcbiAgfVxuICBwb3N0UmVxdWVzdChkYXRhLCBhZGRyLCBwb3J0LCBiYXNlUGF0aCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyVG9HcmlkIChwb3N0T3B0aW9ucywgY29uZmlnSG9sZGVyKSB7XG4gIHRyeSB7XG4gICAgY29uc3Qge3N0YXR1c30gPSBhd2FpdCBheGlvcyhwb3N0T3B0aW9ucyk7XG4gICAgaWYgKHN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggY29kZSAke3N0YXR1c31gKTtcbiAgICB9XG4gICAgbG9nZ2VyLmRlYnVnKGBBcHBpdW0gc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgdGhlIGdyaWQgb24gYCArXG4gICAgICBodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKGBBbiBhdHRlbXB0IHRvIHJlZ2lzdGVyIHdpdGggdGhlIGdyaWQgd2FzIHVuc3VjY2Vzc2Z1bDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3N0UmVxdWVzdCAoZGF0YSwgYWRkciwgcG9ydCwgYmFzZVBhdGgpIHtcbiAgLy8gcGFyc2UganNvbiB0byBnZXQgaHViIGhvc3QgYW5kIHBvcnRcbiAgbGV0IGNvbmZpZ0hvbGRlcjtcbiAgdHJ5IHtcbiAgICBjb25maWdIb2xkZXIgPSBKU09OLnBhcnNlKGRhdGEpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZXJyb3JBbmRUaHJvdyhgU3ludGF4IGVycm9yIGluIG5vZGUgY29uZmlndXJhdGlvbiBmaWxlOiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG5cbiAgLy8gTW92ZSBTZWxlbml1bSAzIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0byBjb25maWd1cmF0aW9uIG9iamVjdFxuICBpZiAoIV8uaGFzKGNvbmZpZ0hvbGRlciwgJ2NvbmZpZ3VyYXRpb24nKSkge1xuICAgIGxldCBjb25maWd1cmF0aW9uID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBjb25maWdIb2xkZXIpIHtcbiAgICAgIGlmIChfLmhhcyhjb25maWdIb2xkZXIsIHByb3BlcnR5KSAmJiBwcm9wZXJ0eSAhPT0gJ2NhcGFiaWxpdGllcycpIHtcbiAgICAgICAgY29uZmlndXJhdGlvbltwcm9wZXJ0eV0gPSBjb25maWdIb2xkZXJbcHJvcGVydHldO1xuICAgICAgICBkZWxldGUgY29uZmlnSG9sZGVyW3Byb3BlcnR5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICB9XG5cbiAgLy8gaWYgdGhlIG5vZGUgY29uZmlnIGRvZXMgbm90IGhhdmUgdGhlIGFwcGl1bS93ZWJkcml2ZXIgdXJsLCBob3N0LCBhbmQgcG9ydCxcbiAgLy8gYXV0b21hdGljYWxseSBhZGQgaXQgYmFzZWQgb24gaG93IGFwcGl1bSB3YXMgaW5pdGlhbGl6ZWRcbiAgLy8gb3RoZXJ3aXNlLCB3ZSB3aWxsIHRha2Ugd2hhdGV2ZXIgdGhlIHVzZXIgc2V0dXBcbiAgLy8gYmVjYXVzZSB3ZSB3aWxsIGFsd2F5cyBzZXQgbG9jYWxob3N0LzEyNy4wLjAuMS4gdGhpcyB3b24ndCB3b3JrIGlmIHlvdXJcbiAgLy8gbm9kZSBhbmQgZ3JpZCBhcmVuJ3QgaW4gdGhlIHNhbWUgcGxhY2VcbiAgaWYgKCFjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi51cmwgfHwgIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmhvc3QgfHwgIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnBvcnQpIHtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi51cmwgPSBgaHR0cDovLyR7YWRkcn06JHtwb3J0fSR7YmFzZVBhdGh9YDtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5ob3N0ID0gYWRkcjtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5wb3J0ID0gcG9ydDtcbiAgfVxuICAvLyBpZiB0aGUgbm9kZSBjb25maWcgZG9lcyBub3QgaGF2ZSBpZCBhdXRvbWF0aWNhbGx5IGFkZCBpdFxuICBpZiAoIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmlkKSB7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaWQgPSBgaHR0cDovLyR7Y29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaG9zdH06JHtjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5wb3J0fWA7XG4gIH1cblxuICAvLyB0aGUgcG9zdCBvcHRpb25zXG4gIGNvbnN0IHJlZ1JlcXVlc3QgPSB7XG4gICAgdXJsOiBgJHtodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pfS9ncmlkL3JlZ2lzdGVyYCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBkYXRhOiBjb25maWdIb2xkZXIsXG4gIH07XG5cbiAgaWYgKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnJlZ2lzdGVyICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBObyByZWdpc3RyYXRpb24gc2VudCAoJHtjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5yZWdpc3Rlcn0gPSBmYWxzZSlgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZWdpc3RlckN5Y2xlSW50ZXJ2YWwgPSBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5yZWdpc3RlckN5Y2xlO1xuICBpZiAoaXNOYU4ocmVnaXN0ZXJDeWNsZUludGVydmFsKSB8fCByZWdpc3RlckN5Y2xlSW50ZXJ2YWwgPD0gMCkge1xuICAgIGxvZ2dlci53YXJuKGAncmVnaXN0ZXJDeWNsZScgaXMgbm90IGEgdmFsaWQgcG9zaXRpdmUgbnVtYmVyLiBgICtcbiAgICAgIGBObyByZWdpc3RyYXRpb24gcmVxdWVzdCB3aWxsIGJlIHNlbnQgdG8gdGhlIGdyaWQuYCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIGluaXRpYXRlIGEgbmV3IFRocmVhZFxuICBsZXQgZmlyc3QgPSB0cnVlO1xuICBsb2dnZXIuZGVidWcoYFN0YXJ0aW5nIGF1dG8gcmVnaXN0ZXIgdGhyZWFkIGZvciB0aGUgZ3JpZC4gYCArXG4gICAgYFdpbGwgdHJ5IHRvIHJlZ2lzdGVyIGV2ZXJ5ICR7cmVnaXN0ZXJDeWNsZUludGVydmFsfSBtcy5gKTtcbiAgc2V0SW50ZXJ2YWwoYXN5bmMgZnVuY3Rpb24gcmVnaXN0ZXJSZXRyeSAoKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgICAgYXdhaXQgcmVnaXN0ZXJUb0dyaWQocmVnUmVxdWVzdCwgY29uZmlnSG9sZGVyKTtcbiAgICB9IGVsc2UgaWYgKCFhd2FpdCBpc0FscmVhZHlSZWdpc3RlcmVkKGNvbmZpZ0hvbGRlcikpIHtcbiAgICAgIC8vIG1ha2UgdGhlIGh0dHAgUE9TVCB0byB0aGUgZ3JpZCBmb3IgcmVnaXN0cmF0aW9uXG4gICAgICBhd2FpdCByZWdpc3RlclRvR3JpZChyZWdSZXF1ZXN0LCBjb25maWdIb2xkZXIpO1xuICAgIH1cbiAgfSwgcmVnaXN0ZXJDeWNsZUludGVydmFsKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNBbHJlYWR5UmVnaXN0ZXJlZCAoY29uZmlnSG9sZGVyKSB7XG4gIC8vY2hlY2sgaWYgbm9kZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgY29uc3QgaWQgPSBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5pZDtcbiAgdHJ5IHtcbiAgICBjb25zdCB7ZGF0YSwgc3RhdHVzfSA9IGF3YWl0IGF4aW9zKHtcbiAgICAgIHVybDogYCR7aHViVXJpKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uKX0vZ3JpZC9hcGkvcHJveHk/aWQ9JHtpZH1gLFxuICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgfSk7XG4gICAgaWYgKHN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggY29kZSAke3N0YXR1c31gKTtcbiAgICB9XG4gICAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgIC8vIGlmIHJlZ2lzdGVyIGZhaWwsIHByaW50IHRoZSBkZWJ1ZyBtc2dcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgR3JpZCByZWdpc3RyYXRpb24gZXJyb3I6ICR7ZGF0YS5tc2d9YCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhLnN1Y2Nlc3M7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5kZWJ1ZyhgSHViIGRvd24gb3Igbm90IHJlc3BvbmRpbmc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCByZWdpc3Rlck5vZGU7XG4iXSwiZmlsZSI6ImxpYi9ncmlkLXJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
152
+ exports.default = _default;
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJodWJVcmkiLCJjb25maWciLCJwcm90b2NvbCIsImh1YlByb3RvY29sIiwiaHViSG9zdCIsImh1YlBvcnQiLCJyZWdpc3Rlck5vZGUiLCJkYXRhIiwiYWRkciIsInBvcnQiLCJiYXNlUGF0aCIsImNvbmZpZ0ZpbGVQYXRoIiwiXyIsImlzU3RyaW5nIiwiZnMiLCJyZWFkRmlsZSIsImVyciIsImxvZ2dlciIsImVycm9yIiwibWVzc2FnZSIsIkpTT04iLCJwYXJzZSIsImVycm9yQW5kVGhyb3ciLCJwb3N0UmVxdWVzdCIsInJlZ2lzdGVyVG9HcmlkIiwicG9zdE9wdGlvbnMiLCJjb25maWdIb2xkZXIiLCJzdGF0dXMiLCJFcnJvciIsImRlYnVnIiwiY29uZmlndXJhdGlvbiIsImhhcyIsInByb3BlcnR5IiwidXJsIiwiaG9zdCIsImlkIiwicmVnUmVxdWVzdCIsIm1ldGhvZCIsInJlZ2lzdGVyIiwicmVnaXN0ZXJDeWNsZUludGVydmFsIiwicmVnaXN0ZXJDeWNsZSIsImlzTmFOIiwid2FybiIsImZpcnN0Iiwic2V0SW50ZXJ2YWwiLCJyZWdpc3RlclJldHJ5IiwiaXNBbHJlYWR5UmVnaXN0ZXJlZCIsInRpbWVvdXQiLCJzdWNjZXNzIiwibXNnIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL2dyaWQtcmVnaXN0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG5jb25zdCBodWJVcmkgPSAoY29uZmlnKSA9PiB7XG4gIGNvbnN0IHByb3RvY29sID0gY29uZmlnLmh1YlByb3RvY29sIHx8ICdodHRwJztcbiAgcmV0dXJuIGAke3Byb3RvY29sfTovLyR7Y29uZmlnLmh1Ykhvc3R9OiR7Y29uZmlnLmh1YlBvcnR9YDtcbn07XG5cbi8qKlxuICogUmVnaXN0ZXJzIGEgbmV3IG5vZGUgd2l0aCBhIHNlbGVuaXVtIGdyaWRcbiAqIEBwYXJhbSB7c3RyaW5nfG9iamVjdH0gZGF0YSAtIFBhdGggb3Igb2JqZWN0IHJlcHJlc2VudGluZyBzZWxlbml1bSBncmlkIG5vZGUgY29uZmlnIGZpbGUuIElmIGEgYHN0cmluZ2AsIGFsbCBzdWJzZXF1ZW50IGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQhXG4gKiBAcGFyYW0ge3N0cmluZ30gW2FkZHJdIC0gQmluZCB0byB0aGlzIGFkZHJlc3NcbiAqIEBwYXJhbSB7bnVtYmVyfSBbcG9ydF0gLSBCaW5kIHRvIHRoaXMgcG9ydFxuICogQHBhcmFtIHtzdHJpbmd9IFtiYXNlUGF0aF0gLSBCYXNlIHBhdGggZm9yIHRoZSBncmlkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyTm9kZSAoZGF0YSwgYWRkciwgcG9ydCwgYmFzZVBhdGgpIHtcbiAgbGV0IGNvbmZpZ0ZpbGVQYXRoO1xuICBpZiAoXy5pc1N0cmluZyhkYXRhKSkge1xuICAgIGNvbmZpZ0ZpbGVQYXRoID0gZGF0YTtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGRhdGEsICd1dGYtOCcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yKGBVbmFibGUgdG8gbG9hZCBub2RlIGNvbmZpZ3VyYXRpb24gZmlsZSAke2NvbmZpZ0ZpbGVQYXRofSB0byByZWdpc3RlciB3aXRoIGdyaWQ6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBkYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5lcnJvckFuZFRocm93KGBTeW50YXggZXJyb3IgaW4gbm9kZSBjb25maWd1cmF0aW9uIGZpbGUgJHtjb25maWdGaWxlUGF0aH06ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcG9zdFJlcXVlc3QoZGF0YSwgYWRkciwgcG9ydCwgYmFzZVBhdGgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWdpc3RlclRvR3JpZCAocG9zdE9wdGlvbnMsIGNvbmZpZ0hvbGRlcikge1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGF0dXN9ID0gYXdhaXQgYXhpb3MocG9zdE9wdGlvbnMpO1xuICAgIGlmIChzdGF0dXMgIT09IDIwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZCB3aXRoIGNvZGUgJHtzdGF0dXN9YCk7XG4gICAgfVxuICAgIGxvZ2dlci5kZWJ1ZyhgQXBwaXVtIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIHdpdGggdGhlIHRoZSBncmlkIG9uIGAgK1xuICAgICAgaHViVXJpKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihgQW4gYXR0ZW1wdCB0byByZWdpc3RlciB3aXRoIHRoZSBncmlkIHdhcyB1bnN1Y2Nlc3NmdWw6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9zdFJlcXVlc3QgKGNvbmZpZ0hvbGRlciwgYWRkciwgcG9ydCwgYmFzZVBhdGgpIHtcbiAgLy8gTW92ZSBTZWxlbml1bSAzIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyB0byBjb25maWd1cmF0aW9uIG9iamVjdFxuICBpZiAoIV8uaGFzKGNvbmZpZ0hvbGRlciwgJ2NvbmZpZ3VyYXRpb24nKSkge1xuICAgIGxldCBjb25maWd1cmF0aW9uID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBjb25maWdIb2xkZXIpIHtcbiAgICAgIGlmIChfLmhhcyhjb25maWdIb2xkZXIsIHByb3BlcnR5KSAmJiBwcm9wZXJ0eSAhPT0gJ2NhcGFiaWxpdGllcycpIHtcbiAgICAgICAgY29uZmlndXJhdGlvbltwcm9wZXJ0eV0gPSBjb25maWdIb2xkZXJbcHJvcGVydHldO1xuICAgICAgICBkZWxldGUgY29uZmlnSG9sZGVyW3Byb3BlcnR5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICB9XG5cbiAgLy8gaWYgdGhlIG5vZGUgY29uZmlnIGRvZXMgbm90IGhhdmUgdGhlIGFwcGl1bS93ZWJkcml2ZXIgdXJsLCBob3N0LCBhbmQgcG9ydCxcbiAgLy8gYXV0b21hdGljYWxseSBhZGQgaXQgYmFzZWQgb24gaG93IGFwcGl1bSB3YXMgaW5pdGlhbGl6ZWRcbiAgLy8gb3RoZXJ3aXNlLCB3ZSB3aWxsIHRha2Ugd2hhdGV2ZXIgdGhlIHVzZXIgc2V0dXBcbiAgLy8gYmVjYXVzZSB3ZSB3aWxsIGFsd2F5cyBzZXQgbG9jYWxob3N0LzEyNy4wLjAuMS4gdGhpcyB3b24ndCB3b3JrIGlmIHlvdXJcbiAgLy8gbm9kZSBhbmQgZ3JpZCBhcmVuJ3QgaW4gdGhlIHNhbWUgcGxhY2VcbiAgaWYgKCFjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi51cmwgfHwgIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmhvc3QgfHwgIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnBvcnQpIHtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi51cmwgPSBgaHR0cDovLyR7YWRkcn06JHtwb3J0fSR7YmFzZVBhdGh9YDtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5ob3N0ID0gYWRkcjtcbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5wb3J0ID0gcG9ydDtcbiAgfVxuICAvLyBpZiB0aGUgbm9kZSBjb25maWcgZG9lcyBub3QgaGF2ZSBpZCBhdXRvbWF0aWNhbGx5IGFkZCBpdFxuICBpZiAoIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmlkKSB7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaWQgPSBgaHR0cDovLyR7Y29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaG9zdH06JHtjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5wb3J0fWA7XG4gIH1cblxuICAvLyB0aGUgcG9zdCBvcHRpb25zXG4gIGNvbnN0IHJlZ1JlcXVlc3QgPSB7XG4gICAgdXJsOiBgJHtodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pfS9ncmlkL3JlZ2lzdGVyYCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBkYXRhOiBjb25maWdIb2xkZXIsXG4gIH07XG5cbiAgaWYgKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnJlZ2lzdGVyICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBObyByZWdpc3RyYXRpb24gc2VudCAoJHtjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5yZWdpc3Rlcn0gPSBmYWxzZSlgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZWdpc3RlckN5Y2xlSW50ZXJ2YWwgPSBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5yZWdpc3RlckN5Y2xlO1xuICBpZiAoaXNOYU4ocmVnaXN0ZXJDeWNsZUludGVydmFsKSB8fCByZWdpc3RlckN5Y2xlSW50ZXJ2YWwgPD0gMCkge1xuICAgIGxvZ2dlci53YXJuKGAncmVnaXN0ZXJDeWNsZScgaXMgbm90IGEgdmFsaWQgcG9zaXRpdmUgbnVtYmVyLiBgICtcbiAgICAgIGBObyByZWdpc3RyYXRpb24gcmVxdWVzdCB3aWxsIGJlIHNlbnQgdG8gdGhlIGdyaWQuYCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIGluaXRpYXRlIGEgbmV3IFRocmVhZFxuICBsZXQgZmlyc3QgPSB0cnVlO1xuICBsb2dnZXIuZGVidWcoYFN0YXJ0aW5nIGF1dG8gcmVnaXN0ZXIgdGhyZWFkIGZvciB0aGUgZ3JpZC4gYCArXG4gICAgYFdpbGwgdHJ5IHRvIHJlZ2lzdGVyIGV2ZXJ5ICR7cmVnaXN0ZXJDeWNsZUludGVydmFsfSBtcy5gKTtcbiAgc2V0SW50ZXJ2YWwoYXN5bmMgZnVuY3Rpb24gcmVnaXN0ZXJSZXRyeSAoKSB7XG4gICAgaWYgKGZpcnN0KSB7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgICAgYXdhaXQgcmVnaXN0ZXJUb0dyaWQocmVnUmVxdWVzdCwgY29uZmlnSG9sZGVyKTtcbiAgICB9IGVsc2UgaWYgKCFhd2FpdCBpc0FscmVhZHlSZWdpc3RlcmVkKGNvbmZpZ0hvbGRlcikpIHtcbiAgICAgIC8vIG1ha2UgdGhlIGh0dHAgUE9TVCB0byB0aGUgZ3JpZCBmb3IgcmVnaXN0cmF0aW9uXG4gICAgICBhd2FpdCByZWdpc3RlclRvR3JpZChyZWdSZXF1ZXN0LCBjb25maWdIb2xkZXIpO1xuICAgIH1cbiAgfSwgcmVnaXN0ZXJDeWNsZUludGVydmFsKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNBbHJlYWR5UmVnaXN0ZXJlZCAoY29uZmlnSG9sZGVyKSB7XG4gIC8vY2hlY2sgaWYgbm9kZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgY29uc3QgaWQgPSBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5pZDtcbiAgdHJ5IHtcbiAgICBjb25zdCB7ZGF0YSwgc3RhdHVzfSA9IGF3YWl0IGF4aW9zKHtcbiAgICAgIHVybDogYCR7aHViVXJpKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uKX0vZ3JpZC9hcGkvcHJveHk/aWQ9JHtpZH1gLFxuICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgfSk7XG4gICAgaWYgKHN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggY29kZSAke3N0YXR1c31gKTtcbiAgICB9XG4gICAgaWYgKCFkYXRhLnN1Y2Nlc3MpIHtcbiAgICAgIC8vIGlmIHJlZ2lzdGVyIGZhaWwsIHByaW50IHRoZSBkZWJ1ZyBtc2dcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgR3JpZCByZWdpc3RyYXRpb24gZXJyb3I6ICR7ZGF0YS5tc2d9YCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhLnN1Y2Nlc3M7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5kZWJ1ZyhgSHViIGRvd24gb3Igbm90IHJlc3BvbmRpbmc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCByZWdpc3Rlck5vZGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsTUFBTSxHQUFJQyxNQUFELElBQVk7RUFDekIsTUFBTUMsUUFBUSxHQUFHRCxNQUFNLENBQUNFLFdBQVAsSUFBc0IsTUFBdkM7RUFDQSxPQUFRLEdBQUVELFFBQVMsTUFBS0QsTUFBTSxDQUFDRyxPQUFRLElBQUdILE1BQU0sQ0FBQ0ksT0FBUSxFQUF6RDtBQUNELENBSEQ7O0FBWUEsZUFBZUMsWUFBZixDQUE2QkMsSUFBN0IsRUFBbUNDLElBQW5DLEVBQXlDQyxJQUF6QyxFQUErQ0MsUUFBL0MsRUFBeUQ7RUFDdkQsSUFBSUMsY0FBSjs7RUFDQSxJQUFJQyxnQkFBRUMsUUFBRixDQUFXTixJQUFYLENBQUosRUFBc0I7SUFDcEJJLGNBQWMsR0FBR0osSUFBakI7O0lBQ0EsSUFBSTtNQUNGQSxJQUFJLEdBQUcsTUFBTU8sWUFBR0MsUUFBSCxDQUFZUixJQUFaLEVBQWtCLE9BQWxCLENBQWI7SUFDRCxDQUZELENBRUUsT0FBT1MsR0FBUCxFQUFZO01BQ1pDLGdCQUFPQyxLQUFQLENBQWMsMENBQXlDUCxjQUFlLDJCQUEwQkssR0FBRyxDQUFDRyxPQUFRLEVBQTVHOztNQUNBO0lBQ0Q7O0lBQ0QsSUFBSTtNQUNGWixJQUFJLEdBQUdhLElBQUksQ0FBQ0MsS0FBTCxDQUFXZCxJQUFYLENBQVA7SUFDRCxDQUZELENBRUUsT0FBT1MsR0FBUCxFQUFZO01BQ1pDLGdCQUFPSyxhQUFQLENBQXNCLDJDQUEwQ1gsY0FBZSxLQUFJSyxHQUFHLENBQUNHLE9BQVEsRUFBL0Y7O01BQ0E7SUFDRDtFQUNGOztFQUVESSxXQUFXLENBQUNoQixJQUFELEVBQU9DLElBQVAsRUFBYUMsSUFBYixFQUFtQkMsUUFBbkIsQ0FBWDtBQUNEOztBQUVELGVB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
@@ -0,0 +1,3 @@
1
+ export default log;
2
+ declare let log: import("@appium/types").AppiumLogger;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAGA,sDAAqC"}
@@ -7,12 +7,10 @@ exports.default = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _appiumSupport = require("appium-support");
10
+ var _support = require("@appium/support");
11
11
 
12
- let log = _appiumSupport.logger.getLogger('Appium');
12
+ let log = _support.logger.getLogger('Appium');
13
13
 
14
14
  var _default = log;
15
- exports.default = _default;require('source-map-support').install();
16
-
17
-
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQSxJQUFJQSxHQUFHLEdBQUdDLHNCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQVY7O2VBRWVGLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dnZXIgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5cblxubGV0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0FwcGl1bScpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwiZmlsZSI6ImxpYi9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
15
+ exports.default = _default;
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cblxubGV0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0FwcGl1bScpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUdBLElBQUlBLEdBQUcsR0FBR0MsZ0JBQU9DLFNBQVAsQ0FBaUIsUUFBakIsQ0FBVjs7ZUFFZUYsRyJ9
@@ -0,0 +1,4 @@
1
+ export default init;
2
+ export function init(args: any): Promise<void>;
3
+ export function clear(): void;
4
+ //# sourceMappingURL=logsink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logsink.d.ts","sourceRoot":"","sources":["../../lib/logsink.js"],"names":[],"mappings":";AA6LA,+CA0BC;AAED,8BAOC"}
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.init = init;
9
8
  exports.clear = clear;
10
9
  exports.default = void 0;
10
+ exports.init = init;
11
11
 
12
12
  require("source-map-support/register");
13
13
 
@@ -15,13 +15,11 @@ var _npmlog = _interopRequireDefault(require("npmlog"));
15
15
 
16
16
  var _winston = require("winston");
17
17
 
18
- var _appiumSupport = require("appium-support");
19
-
20
- var _dateformat = _interopRequireDefault(require("dateformat"));
18
+ var _support = require("@appium/support");
21
19
 
22
20
  var _lodash = _interopRequireDefault(require("lodash"));
23
21
 
24
- _appiumSupport.logger.patchLogger(_npmlog.default);
22
+ _support.logger.patchLogger(_npmlog.default);
25
23
 
26
24
  global._global_npmlog = _npmlog.default;
27
25
  _npmlog.default.level = 'silent';
@@ -47,17 +45,17 @@ const npmToWinstonLevels = {
47
45
  error: 'error'
48
46
  };
49
47
  let log = null;
50
- let timeZone = null;
48
+ let useLocalTimeZone = false;
51
49
 
52
50
  const timestampFormat = _winston.format.timestamp({
53
51
  format() {
54
52
  let date = new Date();
55
53
 
56
- if (!timeZone) {
57
- date = new Date(date.valueOf() + date.getTimezoneOffset() * 60000);
54
+ if (useLocalTimeZone) {
55
+ date = new Date(date.valueOf() - date.getTimezoneOffset() * 60000);
58
56
  }
59
57
 
60
- return (0, _dateformat.default)(date, 'yyyy-mm-dd HH:MM:ss:l');
58
+ return date.toISOString().replace(/[TZ]/g, ' ').replace(/\./g, ':').trim();
61
59
  }
62
60
 
63
61
  });
@@ -150,8 +148,8 @@ async function createTransports(args) {
150
148
 
151
149
  if (args.logFile) {
152
150
  try {
153
- if (await _appiumSupport.fs.exists(args.logFile)) {
154
- await _appiumSupport.fs.unlink(args.logFile);
151
+ if (await _support.fs.exists(args.logFile)) {
152
+ await _support.fs.unlink(args.logFile);
155
153
  }
156
154
 
157
155
  transports.push(createFileTransport(args, fileLogLevel));
@@ -172,7 +170,7 @@ async function createTransports(args) {
172
170
  }
173
171
 
174
172
  async function init(args) {
175
- timeZone = args.localTimezone;
173
+ useLocalTimeZone = args.localTimezone;
176
174
  clear();
177
175
  log = (0, _winston.createLogger)({
178
176
  transports: await createTransports(args),
@@ -207,7 +205,5 @@ function clear() {
207
205
  }
208
206
 
209
207
  var _default = init;
210
- exports.default = _default;require('source-map-support').install();
211
-
212
-
213
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dzaW5rLmpzIl0sIm5hbWVzIjpbImxvZ2dlciIsInBhdGNoTG9nZ2VyIiwibnBtbG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJsZXZlbCIsImxldmVscyIsImRlYnVnIiwiaW5mbyIsIndhcm4iLCJlcnJvciIsImNvbG9ycyIsIm5wbVRvV2luc3RvbkxldmVscyIsInNpbGx5IiwidmVyYm9zZSIsImh0dHAiLCJsb2ciLCJ0aW1lWm9uZSIsInRpbWVzdGFtcEZvcm1hdCIsImZvcm1hdCIsInRpbWVzdGFtcCIsImRhdGUiLCJEYXRlIiwidmFsdWVPZiIsImdldFRpbWV6b25lT2Zmc2V0IiwiY29sb3JpemVGb3JtYXQiLCJjb2xvcml6ZSIsInN0cmlwQ29sb3JGb3JtYXQiLCJzdHJpcENvbG9yIiwiY29kZSIsIm1lc3NhZ2UiLCJyZXBsYWNlIiwiY3JlYXRlQ29uc29sZVRyYW5zcG9ydCIsImFyZ3MiLCJsb2dMdmwiLCJ0cmFuc3BvcnRzIiwiQ29uc29sZSIsIm5hbWUiLCJoYW5kbGVFeGNlcHRpb25zIiwiZXhpdE9uRXJyb3IiLCJqc29uIiwic3RkZXJyTGV2ZWxzIiwiY29tYmluZSIsImFkanVzdERlYnVnIiwibG9nTm9Db2xvcnMiLCJwcmludGYiLCJwcmludEluZm8iLCJsb2dUaW1lc3RhbXAiLCJjcmVhdGVGaWxlVHJhbnNwb3J0IiwiRmlsZSIsImZpbGVuYW1lIiwibG9nRmlsZSIsIm1heEZpbGVzIiwiY3JlYXRlSHR0cFRyYW5zcG9ydCIsImhvc3QiLCJwb3J0Iiwid2ViaG9vayIsIm1hdGNoIiwiaG9zdEFuZFBvcnQiLCJzcGxpdCIsInBhcnNlSW50IiwiSHR0cCIsInBhdGgiLCJjcmVhdGVUcmFuc3BvcnRzIiwiY29uc29sZUxvZ0xldmVsIiwiZmlsZUxvZ0xldmVsIiwibG9nbGV2ZWwiLCJsdmxQYWlyIiwicHVzaCIsImZzIiwiZXhpc3RzIiwidW5saW5rIiwiZSIsImNvbnNvbGUiLCJpbml0IiwibG9jYWxUaW1lem9uZSIsImNsZWFyIiwib24iLCJsb2dPYmoiLCJ3aW5zdG9uTGV2ZWwiLCJtc2ciLCJwcmVmaXgiLCJtYWdlbnRhIiwibG9nSGFuZGxlciIsIl8iLCJpc0Z1bmN0aW9uIiwidHJhbnNwb3J0Iiwia2V5cyIsInJlbW92ZSIsInJlbW92ZUFsbExpc3RlbmVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUlBQSxzQkFBT0MsV0FBUCxDQUFtQkMsZUFBbkI7O0FBQ0FDLE1BQU0sQ0FBQ0MsY0FBUCxHQUF3QkYsZUFBeEI7QUFHQUEsZ0JBQU9HLEtBQVAsR0FBZSxRQUFmO0FBQ0EsTUFBTUMsTUFBTSxHQUFHO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxDQURNO0FBRWJDLEVBQUFBLElBQUksRUFBRSxDQUZPO0FBR2JDLEVBQUFBLElBQUksRUFBRSxDQUhPO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWY7QUFPQSxNQUFNQyxNQUFNLEdBQUc7QUFDYkgsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkQsRUFBQUEsS0FBSyxFQUFFLE1BRk07QUFHYkUsRUFBQUEsSUFBSSxFQUFFLFFBSE87QUFJYkMsRUFBQUEsS0FBSyxFQUFFO0FBSk0sQ0FBZjtBQU9BLE1BQU1FLGtCQUFrQixHQUFHO0FBQ3pCQyxFQUFBQSxLQUFLLEVBQUUsT0FEa0I7QUFFekJDLEVBQUFBLE9BQU8sRUFBRSxPQUZnQjtBQUd6QlAsRUFBQUEsS0FBSyxFQUFFLE9BSGtCO0FBSXpCQyxFQUFBQSxJQUFJLEVBQUUsTUFKbUI7QUFLekJPLEVBQUFBLElBQUksRUFBRSxNQUxtQjtBQU16Qk4sRUFBQUEsSUFBSSxFQUFFLE1BTm1CO0FBT3pCQyxFQUFBQSxLQUFLLEVBQUU7QUFQa0IsQ0FBM0I7QUFVQSxJQUFJTSxHQUFHLEdBQUcsSUFBVjtBQUNBLElBQUlDLFFBQVEsR0FBRyxJQUFmOztBQUdBLE1BQU1DLGVBQWUsR0FBR0MsZ0JBQU9DLFNBQVAsQ0FBaUI7QUFDdkNELEVBQUFBLE1B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bEI7O0FBQ0EsUUFBSS9DLElBQUksQ0FBQ2tELFVBQUwsSUFBbUJDLGdCQUFFQyxVQUFGLENBQWFwRCxJQUFJLENBQUNrRCxVQUFsQixDQUF2QixFQUFzRDtBQUNwRGxELE1BQUFBLElBQUksQ0FBQ2tELFVBQUwsQ0FBZ0JMLE1BQU0sQ0FBQ3pFLEtBQXZCLEVBQThCMkUsR0FBOUI7QUFDRDtBQUVGLEdBWkQ7QUFhRDs7QUFFRCxTQUFTSixLQUFULEdBQWtCO0FBQ2hCLE1BQUk1RCxHQUFKLEVBQVM7QUFDUCxTQUFLLElBQUlzRSxTQUFULElBQXNCRixnQkFBRUcsSUFBRixDQUFPdkUsR0FBRyxDQUFDbUIsVUFBWCxDQUF0QixFQUE4QztBQUM1Q25CLE1BQUFBLEdBQUcsQ0FBQ3dFLE1BQUosQ0FBV0YsU0FBWDtBQUNEO0FBQ0Y7O0FBQ0RwRixrQkFBT3VGLGtCQUFQLENBQTBCLEtBQTFCO0FBQ0Q7O2VBSWNmLEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbnBtbG9nIGZyb20gJ25wbWxvZyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIGZvcm1hdCwgdHJhbnNwb3J0cyB9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBkYXRlZm9ybWF0IGZyb20gJ2RhdGVmb3JtYXQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG4vLyBzZXQgdXAgZGlzdHJpYnV0ZWQgbG9nZ2luZyBiZWZvcmUgZXZlcnl0aGluZyBlbHNlXG5sb2dnZXIucGF0Y2hMb2dnZXIobnBtbG9nKTtcbmdsb2JhbC5fZ2xvYmFsX25wbWxvZyA9IG5wbWxvZztcblxuLy8gbnBtbG9nIGlzIHVzZWQgb25seSBmb3IgZW1pdHRpbmcsIHdlIHVzZSB3aW5zdG9uIGZvciBvdXRwdXRcbm5wbWxvZy5sZXZlbCA9ICdzaWxlbnQnO1xuY29uc3QgbGV2ZWxzID0ge1xuICBkZWJ1ZzogNCxcbiAgaW5mbzogMyxcbiAgd2FybjogMixcbiAgZXJyb3I6IDEsXG59O1xuXG5jb25zdCBjb2xvcnMgPSB7XG4gIGluZm86ICdjeWFuJyxcbiAgZGVidWc6ICdncmV5JyxcbiAgd2FybjogJ3llbGxvdycsXG4gIGVycm9yOiAncmVkJyxcbn07XG5cbmNvbnN0IG5wbVRvV2luc3RvbkxldmVscyA9IHtcbiAgc2lsbHk6ICdkZWJ1ZycsXG4gIHZlcmJvc2U6ICdkZWJ1ZycsXG4gIGRlYnVnOiAnZGVidWcnLFxuICBpbmZvOiAnaW5mbycsXG4gIGh0dHA6ICdpbmZvJyxcbiAgd2FybjogJ3dhcm4nLFxuICBlcnJvcjogJ2Vycm9yJyxcbn07XG5cbmxldCBsb2cgPSBudWxsO1xubGV0IHRpbWVab25lID0gbnVsbDtcblxuLy8gYWRkIHRoZSB0aW1lc3RhbXAgaW4gdGhlIGNvcnJlY3QgZm9ybWF0IHRvIHRoZSBsb2cgaW5mbyBvYmplY3RcbmNvbnN0IHRpbWVzdGFtcEZvcm1hdCA9IGZvcm1hdC50aW1lc3RhbXAoe1xuICBmb3JtYXQgKCkge1xuICAgIGxldCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBpZiAoIXRpbWVab25lKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkgKyBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMCk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlZm9ybWF0KGRhdGUsICd5eXl5LW1tLWRkIEhIOk1NOnNzOmwnKTtcbiAgfSxcbn0pO1xuXG4vLyBzZXQgdGhlIGN1c3RvbSBjb2xvcnNcbmNvbnN0IGNvbG9yaXplRm9ybWF0ID0gZm9ybWF0LmNvbG9yaXplKHtcbiAgY29sb3JzLFxufSk7XG5cbi8vIFN0cmlwIHRoZSBjb2xvciBtYXJraW5nIHdpdGhpbiBtZXNzYWdlc1xuY29uc3Qgc3RyaXBDb2xvckZvcm1hdCA9IGZvcm1hdChmdW5jdGlvbiBzdHJpcENvbG9yIChpbmZvKSB7XG4gIGNvbnN0IGNvZGUgPSAvXFx1MDAxYlxcWyhcXGQrKDtcXGQrKSopP20vZzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIGluZm8ubWVzc2FnZSA9IGluZm8ubWVzc2FnZS5yZXBsYWNlKGNvZGUsICcnKTtcbiAgcmV0dXJuIGluZm87XG59KSgpO1xuXG5mdW5jdGlvbiBjcmVhdGVDb25zb2xlVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5Db25zb2xlKSh7XG4gICAgbmFtZTogJ2NvbnNvbGUnLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgc3RkZXJyTGV2ZWxzOiBbJ2Vycm9yJ10sXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIGZvcm1hdChmdW5jdGlvbiBhZGp1c3REZWJ1ZyAoaW5mbykge1xuICAgICAgICAvLyBwcmVwZW5kIGRlYnVnIG1hcmtlciwgYW5kIHNoaWZ0IHRvIGBpbmZvYCBsb2cgbGV2ZWxcbiAgICAgICAgaWYgKGluZm8ubGV2ZWwgPT09ICdkZWJ1ZycpIHtcbiAgICAgICAgICBpbmZvLmxldmVsID0gJ2luZm8nO1xuICAgICAgICAgIGluZm8ubWVzc2FnZSA9IGBbZGVidWddICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9KSgpLFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgYXJncy5sb2dOb0NvbG9ycyA/IHN0cmlwQ29sb3JGb3JtYXQgOiBjb2xvcml6ZUZvcm1hdCxcbiAgICAgIGZvcm1hdC5wcmludGYoZnVuY3Rpb24gcHJpbnRJbmZvIChpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHthcmdzLmxvZ1RpbWVzdGFtcCA/IGAke2luZm8udGltZXN0YW1wfSAtIGAgOiAnJ30ke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZVRyYW5zcG9ydCAoYXJncywgbG9nTHZsKSB7XG4gIHJldHVybiBuZXcgKHRyYW5zcG9ydHMuRmlsZSkoe1xuICAgIG5hbWU6ICdmaWxlJyxcbiAgICBmaWxlbmFtZTogYXJncy5sb2dGaWxlLFxuICAgIG1heEZpbGVzOiAxLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIHN0cmlwQ29sb3JGb3JtYXQsXG4gICAgICB0aW1lc3RhbXBGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyAoaW5mbykge1xuICAgICAgICByZXR1cm4gYCR7aW5mby50aW1lc3RhbXB9ICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICB9KVxuICAgIClcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUh0dHBUcmFuc3BvcnQgKGFyZ3MsIGxvZ0x2bCkge1xuICBsZXQgaG9zdCA9ICcxMjcuMC4wLjEnO1xuICBsZXQgcG9ydCA9IDkwMDM7XG5cbiAgaWYgKGFyZ3Mud2ViaG9vay5tYXRjaCgnOicpKSB7XG4gICAgY29uc3QgaG9zdEFuZFBvcnQgPSBhcmdzLndlYmhvb2suc3BsaXQoJzonKTtcbiAgICBob3N0ID0gaG9zdEFuZFBvcnRbMF07XG4gICAgcG9ydCA9IHBhcnNlSW50KGhvc3RBbmRQb3J0WzFdLCAxMCk7XG4gIH1cblxuICByZXR1cm4gbmV3ICh0cmFuc3BvcnRzLkh0dHApKHtcbiAgICBuYW1lOiAnaHR0cCcsXG4gICAgaG9zdCxcbiAgICBwb3J0LFxuICAgIHBhdGg6ICcvJyxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBzdHJpcENvbG9yRm9ybWF0LFxuICAgICAgZm9ybWF0LnByaW50ZihmdW5jdGlvbiBwcmludEluZm8gKGluZm8pIHtcbiAgICAgICAgcmV0dXJuIGAke2luZm8udGltZXN0YW1wfSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlVHJhbnNwb3J0cyAoYXJncykge1xuICBsZXQgdHJhbnNwb3J0cyA9IFtdO1xuICBsZXQgY29uc29sZUxvZ0xldmVsID0gbnVsbDtcbiAgbGV0IGZpbGVMb2dMZXZlbCA9IG51bGw7XG5cbiAgaWYgKGFyZ3MubG9nbGV2ZWwgJiYgYXJncy5sb2dsZXZlbC5tYXRjaCgnOicpKSB7XG4gICAgLy8gLS1sb2ctbGV2ZWwgYXJnIGNhbiBvcHRpb25hbGx5IHByb3ZpZGUgZGlmZiBsb2dnaW5nIGxldmVscyBmb3IgY29uc29sZSBhbmQgZmlsZSwgc2VwYXJhdGVkIGJ5IGEgY29sb25cbiAgICBjb25zdCBsdmxQYWlyID0gYXJncy5sb2dsZXZlbC5zcGxpdCgnOicpO1xuICAgIGNvbnNvbGVMb2dMZXZlbCA9IGx2bFBhaXJbMF0gfHwgY29uc29sZUxvZ0xldmVsO1xuICAgIGZpbGVMb2dMZXZlbCA9IGx2bFBhaXJbMV0gfHwgZmlsZUxvZ0xldmVsO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGVMb2dMZXZlbCA9IGZpbGVMb2dMZXZlbCA9IGFyZ3MubG9nbGV2ZWw7XG4gIH1cblxuICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlQ29uc29sZVRyYW5zcG9ydChhcmdzLCBjb25zb2xlTG9nTGV2ZWwpKTtcblxuICBpZiAoYXJncy5sb2dGaWxlKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGlmIHdlIGRvbid0IGRlbGV0ZSB0aGUgbG9nIGZpbGUsIHdpbnN0b24gd2lsbCBhbHdheXMgYXBwZW5kIGFuZCBpdCB3aWxsIGdyb3cgaW5maW5pdGVseSBsYXJnZTtcbiAgICAgIC8vIHdpbnN0b24gYWxsb3dzIGZvciBsaW1pdGluZyBsb2cgZmlsZSBzaXplLCBidXQgYXMgb2YgOS4yLjE0IHRoZXJlJ3MgYSBzZXJpb3VzIGJ1ZyB3aGVuIHVzaW5nXG4gICAgICAvLyBtYXhGaWxlcyBhbmQgbWF4U2l6ZSB0b2dldGhlci4gaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRpcm9uL3dpbnN0b24vaXNzdWVzLzM5N1xuICAgICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhhcmdzLmxvZ0ZpbGUpKSB7XG4gICAgICAgIGF3YWl0IGZzLnVubGluayhhcmdzLmxvZ0ZpbGUpO1xuICAgICAgfVxuXG4gICAgICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlRmlsZVRyYW5zcG9ydChhcmdzLCBmaWxlTG9nTGV2ZWwpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYFRyaWVkIHRvIGF0dGFjaCBsb2dnaW5nIHRvIGZpbGUgJyR7YXJncy5sb2dGaWxlfScgYnV0IGFuIGVycm9yIGAgK1xuICAgICAgICAgICAgICAgICAgYG9jY3VycmVkOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoYXJncy53ZWJob29rKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zcG9ydHMucHVzaChjcmVhdGVIdHRwVHJhbnNwb3J0KGFyZ3MsIGZpbGVMb2dMZXZlbCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhgVHJpZWQgdG8gYXR0YWNoIGxvZ2dpbmcgdG8gSHR0cCBhdCAke2FyZ3Mud2ViaG9va30gYnV0IGAgK1xuICAgICAgICAgICAgICAgICAgYGFuIGVycm9yIG9jY3VycmVkOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNwb3J0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdCAoYXJncykge1xuICAvLyBzZXQgZGUgZmFjdG8gcGFyYW0gcGFzc2VkIHRvIHRpbWVzdGFtcCBmdW5jdGlvblxuICB0aW1lWm9uZSA9IGFyZ3MubG9jYWxUaW1lem9uZTtcblxuICAvLyBjbGVhbiB1cCBpbiBjYXNlIHdlIGhhdmUgaW5pdGlhdGVkIGJlZm9yZSBzaW5jZSBucG1sb2cgaXMgYSBnbG9iYWwgb2JqZWN0XG4gIGNsZWFyKCk7XG5cbiAgbG9nID0gY3JlYXRlTG9nZ2VyKHtcbiAgICB0cmFuc3BvcnRzOiBhd2FpdCBjcmVhdGVUcmFuc3BvcnRzKGFyZ3MpLFxuICAgIGxldmVscyxcbiAgfSk7XG5cbiAgLy8gQ2FwdHVyZSBsb2dzIGVtaXR0ZWQgdmlhIG5wbWxvZyBhbmQgcGFzcyB0aGVtIHRocm91Z2ggd2luc3RvblxuICBucG1sb2cub24oJ2xvZycsIChsb2dPYmopID0+IHtcbiAgICBjb25zdCB3aW5zdG9uTGV2ZWwgPSBucG1Ub1dpbnN0b25MZXZlbHNbbG9nT2JqLmxldmVsXSB8fCAnaW5mbyc7XG4gICAgbGV0IG1zZyA9IGxvZ09iai5tZXNzYWdlO1xuICAgIGlmIChsb2dPYmoucHJlZml4KSB7XG4gICAgICBjb25zdCBwcmVmaXggPSBgWyR7bG9nT2JqLnByZWZpeH1dYDtcbiAgICAgIG1zZyA9IGAke2FyZ3MubG9nTm9Db2xvcnMgPyBwcmVmaXggOiBwcmVmaXgubWFnZW50YX0gJHttc2d9YDtcbiAgICB9XG4gICAgbG9nW3dpbnN0b25MZXZlbF0obXNnKTtcbiAgICBpZiAoYXJncy5sb2dIYW5kbGVyICYmIF8uaXNGdW5jdGlvbihhcmdzLmxvZ0hhbmRsZXIpKSB7XG4gICAgICBhcmdzLmxvZ0hhbmRsZXIobG9nT2JqLmxldmVsLCBtc2cpO1xuICAgIH1cblxuICB9KTtcbn1cblxuZnVuY3Rpb24gY2xlYXIgKCkge1xuICBpZiAobG9nKSB7XG4gICAgZm9yIChsZXQgdHJhbnNwb3J0IG9mIF8ua2V5cyhsb2cudHJhbnNwb3J0cykpIHtcbiAgICAgIGxvZy5yZW1vdmUodHJhbnNwb3J0KTtcbiAgICB9XG4gIH1cbiAgbnBtbG9nLnJlbW92ZUFsbExpc3RlbmVycygnbG9nJyk7XG59XG5cblxuZXhwb3J0IHsgaW5pdCwgY2xlYXIgfTtcbmV4cG9ydCBkZWZhdWx0IGluaXQ7XG4iXSwiZmlsZSI6ImxpYi9sb2dzaW5rLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
208
+ exports.default = _default;
209
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2dnZXIiLCJwYXRjaExvZ2dlciIsIm5wbWxvZyIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibGV2ZWwiLCJsZXZlbHMiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJjb2xvcnMiLCJucG1Ub1dpbnN0b25MZXZlbHMiLCJzaWxseSIsInZlcmJvc2UiLCJodHRwIiwibG9nIiwidXNlTG9jYWxUaW1lWm9uZSIsInRpbWVzdGFtcEZvcm1hdCIsImZvcm1hdCIsInRpbWVzdGFtcCIsImRhdGUiLCJEYXRlIiwidmFsdWVPZiIsImdldFRpbWV6b25lT2Zmc2V0IiwidG9JU09TdHJpbmciLCJyZXBsYWNlIiwidHJpbSIsImNvbG9yaXplRm9ybWF0IiwiY29sb3JpemUiLCJzdHJpcENvbG9yRm9ybWF0Iiwic3RyaXBDb2xvciIsImNvZGUiLCJtZXNzYWdlIiwiY3JlYXRlQ29uc29sZVRyYW5zcG9ydCIsImFyZ3MiLCJsb2dMdmwiLCJ0cmFuc3BvcnRzIiwiQ29uc29sZSIsIm5hbWUiLCJoYW5kbGVFeGNlcHRpb25zIiwiZXhpdE9uRXJyb3IiLCJqc29uIiwic3RkZXJyTGV2ZWxzIiwiY29tYmluZSIsImFkanVzdERlYnVnIiwibG9nTm9Db2xvcnMiLCJwcmludGYiLCJwcmludEluZm8iLCJsb2dUaW1lc3RhbXAiLCJjcmVhdGVGaWxlVHJhbnNwb3J0IiwiRmlsZSIsImZpbGVuYW1lIiwibG9nRmlsZSIsIm1heEZpbGVzIiwiY3JlYXRlSHR0cFRyYW5zcG9ydCIsImhvc3QiLCJwb3J0Iiwid2ViaG9vayIsIm1hdGNoIiwiaG9zdEFuZFBvcnQiLCJzcGxpdCIsInBhcnNlSW50IiwiSHR0cCIsInBhdGgiLCJjcmVhdGVUcmFuc3BvcnRzIiwiY29uc29sZUxvZ0xldmVsIiwiZmlsZUxvZ0xldmVsIiwibG9nbGV2ZWwiLCJsdmxQYWlyIiwicHVzaCIsImZzIiwiZXhpc3RzIiwidW5saW5rIiwiZSIsImNvbnNvbGUiLCJpbml0IiwibG9jYWxUaW1lem9uZSIsImNsZWFyIiwib24iLCJsb2dPYmoiLCJ3aW5zdG9uTGV2ZWwiLCJtc2ciLCJwcmVmaXgiLCJtYWdlbnRhIiwibG9nSGFuZGxlciIsIl8iLCJpc0Z1bmN0aW9uIiwidHJhbnNwb3J0Iiwia2V5cyIsInJlbW92ZSIsInJlbW92ZUFsbExpc3RlbmVycyJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dzaW5rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciwgZm9ybWF0LCB0cmFuc3BvcnRzIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgeyBmcywgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuLy8gc2V0IHVwIGRpc3RyaWJ1dGVkIGxvZ2dpbmcgYmVmb3JlIGV2ZXJ5dGhpbmcgZWxzZVxubG9nZ2VyLnBhdGNoTG9nZ2VyKG5wbWxvZyk7XG5nbG9iYWwuX2dsb2JhbF9ucG1sb2cgPSBucG1sb2c7XG5cbi8vIG5wbWxvZyBpcyB1c2VkIG9ubHkgZm9yIGVtaXR0aW5nLCB3ZSB1c2Ugd2luc3RvbiBmb3Igb3V0cHV0XG5ucG1sb2cubGV2ZWwgPSAnc2lsZW50JztcbmNvbnN0IGxldmVscyA9IHtcbiAgZGVidWc6IDQsXG4gIGluZm86IDMsXG4gIHdhcm46IDIsXG4gIGVycm9yOiAxLFxufTtcblxuY29uc3QgY29sb3JzID0ge1xuICBpbmZvOiAnY3lhbicsXG4gIGRlYnVnOiAnZ3JleScsXG4gIHdhcm46ICd5ZWxsb3cnLFxuICBlcnJvcjogJ3JlZCcsXG59O1xuXG5jb25zdCBucG1Ub1dpbnN0b25MZXZlbHMgPSB7XG4gIHNpbGx5OiAnZGVidWcnLFxuICB2ZXJib3NlOiAnZGVidWcnLFxuICBkZWJ1ZzogJ2RlYnVnJyxcbiAgaW5mbzogJ2luZm8nLFxuICBodHRwOiAnaW5mbycsXG4gIHdhcm46ICd3YXJuJyxcbiAgZXJyb3I6ICdlcnJvcicsXG59O1xuXG5sZXQgbG9nID0gbnVsbDtcbmxldCB1c2VMb2NhbFRpbWVab25lID0gZmFsc2U7XG5cbi8vIGFkZCB0aGUgdGltZXN0YW1wIGluIHRoZSBjb3JyZWN0IGZvcm1hdCB0byB0aGUgbG9nIGluZm8gb2JqZWN0XG5jb25zdCB0aW1lc3RhbXBGb3JtYXQgPSBmb3JtYXQudGltZXN0YW1wKHtcbiAgZm9ybWF0ICgpIHtcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgaWYgKHVzZUxvY2FsVGltZVpvbmUpIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICB9XG4gICAgLy8gJzIwMTItMTEtMDRUMTQ6NTE6MDYuMTU3WicgLT4gJzIwMTItMTEtMDQgMTQ6NTE6MDY6MTU3J1xuICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKClcbiAgICAgIC5yZXBsYWNlKC9bVFpdL2csICcgJylcbiAgICAgIC5yZXBsYWNlKC9cXC4vZywgJzonKVxuICAgICAgLnRyaW0oKTtcbiAgfSxcbn0pO1xuXG4vLyBzZXQgdGhlIGN1c3RvbSBjb2xvcnNcbmNvbnN0IGNvbG9yaXplRm9ybWF0ID0gZm9ybWF0LmNvbG9yaXplKHtcbiAgY29sb3JzLFxufSk7XG5cbi8vIFN0cmlwIHRoZSBjb2xvciBtYXJraW5nIHdpdGhpbiBtZXNzYWdlc1xuY29uc3Qgc3RyaXBDb2xvckZvcm1hdCA9IGZvcm1hdChmdW5jdGlvbiBzdHJpcENvbG9yIChpbmZvKSB7XG4gIGNvbnN0IGNvZGUgPSAvXFx1MDAxYlxcWyhcXGQrKDtcXGQrKSopP20vZzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIGluZm8ubWVzc2FnZSA9IGluZm8ubWVzc2FnZS5yZXBsYWNlKGNvZGUsICcnKTtcbiAgcmV0dXJuIGluZm87XG59KSgpO1xuXG5mdW5jdGlvbiBjcmVhdGVDb25zb2xlVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5Db25zb2xlKSh7XG4gICAgLy8gYG5hbWVgIGlzIHVuc3VwcG9ydGVkIHBlciB3aW5zdG9uJ3MgdHlwZSBkZWNsYXJhdGlvbnNcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgbmFtZTogJ2NvbnNvbGUnLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgc3RkZXJyTGV2ZWxzOiBbJ2Vycm9yJ10sXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIGZvcm1hdChmdW5jdGlvbiBhZGp1c3REZWJ1ZyAoaW5mbykge1xuICAgICAgICAvLyBwcmVwZW5kIGRlYnVnIG1hcmtlciwgYW5kIHNoaWZ0IHRvIGBpbmZvYCBsb2cgbGV2ZWxcbiAgICAgICAgaWYgKGluZm8ubGV2ZWwgPT09ICdkZWJ1ZycpIHtcbiAgICAgICAgICBpbmZvLmxldmVsID0gJ2luZm8nO1xuICAgICAgICAgIGluZm8ubWVzc2FnZSA9IGBbZGVidWddICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9KSgpLFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgYXJncy5sb2dOb0NvbG9ycyA/IHN0cmlwQ29sb3JGb3JtYXQgOiBjb2xvcml6ZUZvcm1hdCxcbiAgICAgIGZvcm1hdC5wcmludGYoZnVuY3Rpb24gcHJpbnRJbmZvIChpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHthcmdzLmxvZ1RpbWVzdGFtcCA/IGAke2luZm8udGltZXN0YW1wfSAtIGAgOiAnJ30ke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZVRyYW5zcG9ydCAoYXJncywgbG9nTHZsKSB7XG4gIHJldHVybiBuZXcgKHRyYW5zcG9ydHMuRmlsZSkoe1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBuYW1lOiAnZmlsZScsXG4gICAgZmlsZW5hbWU6IGFyZ3MubG9nRmlsZSxcbiAgICBtYXhGaWxlczogMSxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBzdHJpcENvbG9yRm9ybWF0LFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgZm9ybWF0LnByaW50ZihmdW5jdGlvbiBwcmludEluZm8gKGluZm8pIHtcbiAgICAgICAgcmV0dXJuIGAke2luZm8udGltZXN0YW1wfSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIdHRwVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgbGV0IGhvc3QgPSAnMTI3LjAuMC4xJztcbiAgbGV0IHBvcnQgPSA5MDAzO1xuXG4gIGlmIChhcmdzLndlYmhvb2subWF0Y2goJzonKSkge1xuICAgIGNvbnN0IGhvc3RBbmRQb3J0ID0gYXJncy53ZWJob29rLnNwbGl0KCc6Jyk7XG4gICAgaG9zdCA9IGhvc3RBbmRQb3J0WzBdO1xuICAgIHBvcnQgPSBwYXJzZUludChob3N0QW5kUG9ydFsxXSwgMTApO1xuICB9XG5cbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5IdHRwKSh7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIG5hbWU6ICdodHRwJyxcbiAgICBob3N0LFxuICAgIHBvcnQsXG4gICAgcGF0aDogJy8nLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIHN0cmlwQ29sb3JGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyAoaW5mbykge1xuICAgICAgICByZXR1cm4gYCR7aW5mby50aW1lc3RhbXB9ICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICB9KVxuICAgICksXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVUcmFuc3BvcnRzIChhcmdzKSB7XG4gIGxldCB0cmFuc3BvcnRzID0gW107XG4gIGxldCBjb25zb2xlTG9nTGV2ZWwgPSBudWxsO1xuICBsZXQgZmlsZUxvZ0xldmVsID0gbnVsbDtcblxuICBpZiAoYXJncy5sb2dsZXZlbCAmJiBhcmdzLmxvZ2xldmVsLm1hdGNoKCc6JykpIHtcbiAgICAvLyAtLWxvZy1sZXZlbCBhcmcgY2FuIG9wdGlvbmFsbHkgcHJvdmlkZSBkaWZmIGxvZ2dpbmcgbGV2ZWxzIGZvciBjb25zb2xlIGFuZCBmaWxlLCBzZXBhcmF0ZWQgYnkgYSBjb2xvblxuICAgIGNvbnN0IGx2bFBhaXIgPSBhcmdzLmxvZ2xldmVsLnNwbGl0KCc6Jyk7XG4gICAgY29uc29sZUxvZ0xldmVsID0gbHZsUGFpclswXSB8fCBjb25zb2xlTG9nTGV2ZWw7XG4gICAgZmlsZUxvZ0xldmVsID0gbHZsUGFpclsxXSB8fCBmaWxlTG9nTGV2ZWw7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZUxvZ0xldmVsID0gZmlsZUxvZ0xldmVsID0gYXJncy5sb2dsZXZlbDtcbiAgfVxuXG4gIHRyYW5zcG9ydHMucHVzaChjcmVhdGVDb25zb2xlVHJhbnNwb3J0KGFyZ3MsIGNvbnNvbGVMb2dMZXZlbCkpO1xuXG4gIGlmIChhcmdzLmxvZ0ZpbGUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gaWYgd2UgZG9uJ3QgZGVsZXRlIHRoZSBsb2cgZmlsZSwgd2luc3RvbiB3aWxsIGFsd2F5cyBhcHBlbmQgYW5kIGl0IHdpbGwgZ3JvdyBpbmZpbml0ZWx5IGxhcmdlO1xuICAgICAgLy8gd2luc3RvbiBhbGxvd3MgZm9yIGxpbWl0aW5nIGxvZyBmaWxlIHNpemUsIGJ1dCBhcyBvZiA5LjIuMTQgdGhlcmUncyBhIHNlcmlvdXMgYnVnIHdoZW4gdXNpbmdcbiAgICAgIC8vIG1heEZpbGVzIGFuZCBtYXhTaXplIHRvZ2V0aGVyLiBodHRwczovL2dpdGh1Yi5jb20vZmxhdGlyb24vd2luc3Rvbi9pc3N1ZXMvMzk3XG4gICAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKGFyZ3MubG9nRmlsZSkpIHtcbiAgICAgICAgYXdhaXQgZnMudW5saW5rKGFyZ3MubG9nRmlsZSk7XG4gICAgICB9XG5cbiAgICAgIHRyYW5zcG9ydHMucHVzaChjcmVhdGVGaWxlVHJhbnNwb3J0KGFyZ3MsIGZpbGVMb2dMZXZlbCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhgVHJpZWQgdG8gYXR0YWNoIGxvZ2dpbmcgdG8gZmlsZSAnJHthcmdzLmxvZ0ZpbGV9JyBidXQgYW4gZXJyb3IgYCArXG4gICAgICAgICAgICAgICAgICBgb2NjdXJyZWQ6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChhcmdzLndlYmhvb2spIHtcbiAgICB0cnkge1xuICAgICAgdHJhbnNwb3J0cy5wdXNoKGNyZWF0ZUh0dHBUcmFuc3BvcnQoYXJncywgZmlsZUxvZ0xldmVsKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGBUcmllZCB0byBhdHRhY2ggbG9nZ2luZyB0byBIdHRwIGF0ICR7YXJncy53ZWJob29rfSBidXQgYCArXG4gICAgICAgICAgICAgICAgICBgYW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc3BvcnRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0IChhcmdzKSB7XG4gIC8vIHNldCBkZSBmYWN0byBwYXJhbSBwYXNzZWQgdG8gdGltZXN0YW1wIGZ1bmN0aW9uXG4gIHVzZUxvY2FsVGltZVpvbmUgPSBhcmdzLmxvY2FsVGltZXpvbmU7XG5cbiAgLy8gY2xlYW4gdXAgaW4gY2FzZSB3ZSBoYXZlIGluaXRpYXRlZCBiZWZvcmUgc2luY2UgbnBtbG9nIGlzIGEgZ2xvYmFsIG9iamVjdFxuICBjbGVhcigpO1xuXG4gIGxvZyA9IGNyZWF0ZUxvZ2dlcih7XG4gICAgdHJhbnNwb3J0czogYXdhaXQgY3JlYXRlVHJhbnNwb3J0cyhhcmdzKSxcbiAgICBsZXZlbHMsXG4gIH0pO1xuXG4gIC8vIENhcHR1cmUgbG9ncyBlbWl0dGVkIHZpYSBucG1sb2cgYW5kIHBhc3MgdGhlbSB0aHJvdWdoIHdpbnN0b25cbiAgbnBtbG9nLm9uKCdsb2cnLCAobG9nT2JqKSA9PiB7XG4gICAgY29uc3Qgd2luc3RvbkxldmVsID0gbnBtVG9XaW5zdG9uTGV2ZWxzW2xvZ09iai5sZXZlbF0gfHwgJ2luZm8nO1xuICAgIGxldCBtc2cgPSBsb2dPYmoubWVzc2FnZTtcbiAgICBpZiAobG9nT2JqLnByZWZpeCkge1xuICAgICAgY29uc3QgcHJlZml4ID0gYFske2xvZ09iai5wcmVmaXh9XWA7XG4gICAgICBtc2cgPSBgJHthcmdzLmxvZ05vQ29sb3JzID8gcHJlZml4IDogcHJlZml4Lm1hZ2VudGF9ICR7bXNnfWA7XG4gICAgfVxuICAgIGxvZ1t3aW5zdG9uTGV2ZWxdKG1zZyk7XG4gICAgaWYgKGFyZ3MubG9nSGFuZGxlciAmJiBfLmlzRnVuY3Rpb24oYXJncy5sb2dIYW5kbGVyKSkge1xuICAgICAgYXJncy5sb2dIYW5kbGVyKGxvZ09iai5sZXZlbCwgbXNnKTtcbiAgICB9XG5cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNsZWFyICgpIHtcbiAgaWYgKGxvZykge1xuICAgIGZvciAobGV0IHRyYW5zcG9ydCBvZiBfLmtleXMobG9nLnRyYW5zcG9ydHMpKSB7XG4gICAgICBsb2cucmVtb3ZlKHRyYW5zcG9ydCk7XG4gICAgfVxuICB9XG4gIG5wbWxvZy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2xvZycpO1xufVxuXG5cbmV4cG9ydCB7IGluaXQsIGNsZWFyIH07XG5leHBvcnQgZGVmYXVsdCBpbml0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUFBLGdCQUFPQyxXQUFQLENBQW1CQyxlQUFuQjs7QUFDQUMsTUFBTSxDQUFDQyxjQUFQLEdBQXdCRixlQUF4QjtBQUdBQSxnQkFBT0csS0FBUCxHQUFlLFFBQWY7QUFDQSxNQUFNQyxNQUFNLEdBQUc7RUFDYkMsS0FBSyxFQUFFLENBRE07RUFFYkMsSUFBSSxFQUFFLENBRk87RUFHYkMsSUFBSSxFQUFFLENBSE87RUFJYkMsS0FBSyxFQUFFO0FBSk0sQ0FBZjtBQU9BLE1BQU1DLE1BQU0sR0FBRztFQUNiSCxJQUFJLEVBQUUsTUFETztFQUViRCxLQUFLLEVBQUUsTUFGTTtFQUdiRSxJQUFJLEVBQUUsUUFITztFQUliQyxLQUFLLEVBQUU7QUFKTSxDQUFmO0FBT0EsTUFBTUUsa0JBQWtCLEdBQUc7RUFDekJDLEtBQUssRUFBRSxPQURrQjtFQUV6QkMsT0FBTyxFQUFFLE9BRmdCO0VBR3pCUCxLQUFLLEVBQUUsT0FIa0I7RUFJekJDLElBQUksRUFBRSxNQUptQjtFQUt6Qk8sSUFBSSxFQUFFLE1BTG1CO0VBTXpCTixJQUFJLEVBQUUsTUFObUI7RUFPekJDLEtBQUssRUFBRTtBQVBrQixDQUEzQjtBQVVBLElBQUlNLEdBQUcsR0FBRyxJQUFWO0FBQ0EsSUFBSUMsZ0JBQWdCLEdBQUcsS0FBdkI7O0FBR0EsTUFBTUMsZUFBZSxHQUFHQyxnQkFBT0MsU0FBUCxDQUFpQjtFQUN2Q0QsTUFBTSxHQUFJO0lBQ1IsSUFBSUUsSUFBSSxHQUFHLElBQUlDLElBQUosRUFBWDs7SUFDQSxJQUFJTCxnQkFBSixFQUFzQjtNQUNwQkksSUFBSSxHQUFHLElBQUlDLElBQUosQ0FBU0QsSUFBSSxDQUFDRSxPQUFMLEtBQWlC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
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ export { readConfigFile } from "./config-file";
3
+ export type DriverType = import('../types').DriverType;
4
+ export type PluginType = import('../types').PluginType;
5
+ export type DriverClass = import('../types').DriverClass;
6
+ export type PluginClass = import('../types').PluginClass;
7
+ export type WithServerSubcommand = import('../types').WithServerSubcommand;
8
+ /**
9
+ * Literally an empty object
10
+ */
11
+ export type ExtCommandInitResult = {};
12
+ export type ServerInitData = {
13
+ /**
14
+ * - The Appium driver
15
+ */
16
+ appiumDriver: AppiumDriver;
17
+ /**
18
+ * - The parsed arguments
19
+ */
20
+ parsedArgs: import('../types').ParsedArgs;
21
+ };
22
+ export type ServerInitResult = ServerInitData & import('./extension').ExtensionConfigs;
23
+ export type Args<T = import("../types").WithServerSubcommand> = import('../types').Args<T>;
24
+ export type ParsedArgs<T = import("../types").WithServerSubcommand> = import('../types').ParsedArgs<T>;
25
+ /**
26
+ * Initializes Appium's config. Starts server if appropriate and resolves the
27
+ * server instance if so; otherwise resolves w/ `undefined`.
28
+ * @template [T=WithServerSubcommand]
29
+ * @param {Args<T>} [args] - Arguments from CLI or otherwise
30
+ * @returns {Promise<import('@appium/types').AppiumServer|undefined>}
31
+ */
32
+ export function main<T = import("../types").WithServerSubcommand>(args?: Args<T> | undefined): Promise<import('@appium/types').AppiumServer | undefined>;
33
+ /**
34
+ * Initializes Appium, but does not start the server.
35
+ *
36
+ * Use this to get at the configuration schema.
37
+ *
38
+ * If `args` contains a non-empty `subcommand` which is not `server`, this function will return an empty object.
39
+ *
40
+ * @template [T=WithServerSubcommand]
41
+ * @param {Args<T>} [args] - Partial args (progammatic usage only)
42
+ * @returns {Promise<ServerInitResult | ExtCommandInitResult>}
43
+ * @example
44
+ * import {init, getSchema} from 'appium';
45
+ * const options = {}; // config object
46
+ * await init(options);
47
+ * const schema = getSchema(); // entire config schema including plugins and drivers
48
+ */
49
+ export function init<T = import("../types").WithServerSubcommand>(args?: Args<T> | undefined): Promise<ServerInitResult | ExtCommandInitResult>;
50
+ export const resolveAppiumHome: ((cwd?: string | undefined) => Promise<string>) & _.MemoizedFunction;
51
+ import { AppiumDriver } from "./appium";
52
+ import _ from "lodash";
53
+ export { finalizeSchema, getSchema, validate } from "./schema/schema";
54
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../lib/main.js"],"names":[],"mappings":";;yBA6Va,OAAO,UAAU,EAAE,UAAU;yBAC7B,OAAO,UAAU,EAAE,UAAU;0BAC7B,OAAO,UAAU,EAAE,WAAW;0BAC9B,OAAO,UAAU,EAAE,WAAW;mCAC9B,OAAO,UAAU,EAAE,oBAAoB;;;;mCAKtC,EAAE;;;;;kBAKF,YAAY;;;;gBACZ,OAAO,UAAU,EAAE,UAAU;;+BAI9B,cAAc,GAAG,OAAO,aAAa,EAAE,gBAAgB;gEAKvD,OAAO,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;sEAK1B,OAAO,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AApI7C;;;;;;GAMG;AACH,+FAFa,QAAQ,OAAO,eAAe,EAAE,YAAY,GAAC,SAAS,CAAC,CAmFnE;AAjMD;;;;;;;;;;;;;;;GAeG;AACH,+FAPa,QAAQ,gBAAgB,GAAG,oBAAoB,CAAC,CA8F5D"}