appium 2.0.0-beta.46 → 2.0.0-beta.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +145 -44
  2. package/build/lib/appium.d.ts +3 -103
  3. package/build/lib/appium.d.ts.map +1 -1
  4. package/build/lib/appium.js +679 -549
  5. package/build/lib/appium.js.map +1 -1
  6. package/build/lib/cli/args.js +247 -127
  7. package/build/lib/cli/args.js.map +1 -1
  8. package/build/lib/cli/driver-command.d.ts +24 -5
  9. package/build/lib/cli/driver-command.d.ts.map +1 -1
  10. package/build/lib/cli/driver-command.js +78 -88
  11. package/build/lib/cli/driver-command.js.map +1 -1
  12. package/build/lib/cli/extension-command.d.ts +33 -24
  13. package/build/lib/cli/extension-command.d.ts.map +1 -1
  14. package/build/lib/cli/extension-command.js +729 -512
  15. package/build/lib/cli/extension-command.js.map +1 -1
  16. package/build/lib/cli/extension.d.ts +7 -6
  17. package/build/lib/cli/extension.d.ts.map +1 -1
  18. package/build/lib/cli/extension.js +68 -65
  19. package/build/lib/cli/extension.js.map +1 -1
  20. package/build/lib/cli/parser.d.ts +3 -3
  21. package/build/lib/cli/parser.d.ts.map +1 -1
  22. package/build/lib/cli/parser.js +234 -192
  23. package/build/lib/cli/parser.js.map +1 -1
  24. package/build/lib/cli/plugin-command.js +58 -87
  25. package/build/lib/cli/plugin-command.js.map +1 -1
  26. package/build/lib/cli/utils.js +66 -69
  27. package/build/lib/cli/utils.js.map +1 -1
  28. package/build/lib/config-file.d.ts.map +1 -1
  29. package/build/lib/config-file.js +189 -120
  30. package/build/lib/config-file.js.map +1 -1
  31. package/build/lib/config.d.ts.map +1 -1
  32. package/build/lib/config.js +254 -213
  33. package/build/lib/config.js.map +1 -1
  34. package/build/lib/constants.d.ts +6 -5
  35. package/build/lib/constants.d.ts.map +1 -1
  36. package/build/lib/constants.js +65 -59
  37. package/build/lib/constants.js.map +1 -1
  38. package/build/lib/extension/driver-config.js +199 -164
  39. package/build/lib/extension/driver-config.js.map +1 -1
  40. package/build/lib/extension/extension-config.d.ts +33 -26
  41. package/build/lib/extension/extension-config.d.ts.map +1 -1
  42. package/build/lib/extension/extension-config.js +541 -396
  43. package/build/lib/extension/extension-config.js.map +1 -1
  44. package/build/lib/extension/index.js +98 -68
  45. package/build/lib/extension/index.js.map +1 -1
  46. package/build/lib/extension/manifest-migrations.d.ts +27 -0
  47. package/build/lib/extension/manifest-migrations.d.ts.map +1 -0
  48. package/build/lib/extension/manifest-migrations.js +118 -0
  49. package/build/lib/extension/manifest-migrations.js.map +1 -0
  50. package/build/lib/extension/manifest.d.ts +35 -63
  51. package/build/lib/extension/manifest.d.ts.map +1 -1
  52. package/build/lib/extension/manifest.js +500 -240
  53. package/build/lib/extension/manifest.js.map +1 -1
  54. package/build/lib/extension/package-changed.js +57 -61
  55. package/build/lib/extension/package-changed.js.map +1 -1
  56. package/build/lib/extension/plugin-config.d.ts +2 -3
  57. package/build/lib/extension/plugin-config.d.ts.map +1 -1
  58. package/build/lib/extension/plugin-config.js +94 -70
  59. package/build/lib/extension/plugin-config.js.map +1 -1
  60. package/build/lib/grid-register.js +119 -137
  61. package/build/lib/grid-register.js.map +1 -1
  62. package/build/lib/logger.d.ts +1 -1
  63. package/build/lib/logger.d.ts.map +1 -1
  64. package/build/lib/logger.js +5 -15
  65. package/build/lib/logger.js.map +1 -1
  66. package/build/lib/logsink.d.ts.map +1 -1
  67. package/build/lib/logsink.js +189 -183
  68. package/build/lib/logsink.js.map +1 -1
  69. package/build/lib/main.d.ts +19 -12
  70. package/build/lib/main.d.ts.map +1 -1
  71. package/build/lib/main.js +330 -304
  72. package/build/lib/main.js.map +1 -1
  73. package/build/lib/schema/arg-spec.js +153 -108
  74. package/build/lib/schema/arg-spec.js.map +1 -1
  75. package/build/lib/schema/cli-args.js +203 -164
  76. package/build/lib/schema/cli-args.js.map +1 -1
  77. package/build/lib/schema/cli-transformers.js +117 -72
  78. package/build/lib/schema/cli-transformers.js.map +1 -1
  79. package/build/lib/schema/index.js +17 -32
  80. package/build/lib/schema/index.js.map +1 -1
  81. package/build/lib/schema/keywords.js +125 -67
  82. package/build/lib/schema/keywords.js.map +1 -1
  83. package/build/lib/schema/schema.d.ts.map +1 -1
  84. package/build/lib/schema/schema.js +582 -417
  85. package/build/lib/schema/schema.js.map +1 -1
  86. package/build/lib/utils.d.ts +41 -255
  87. package/build/lib/utils.d.ts.map +1 -1
  88. package/build/lib/utils.js +342 -193
  89. package/build/lib/utils.js.map +1 -1
  90. package/build/tsconfig.tsbuildinfo +1 -1
  91. package/build/types/cli.d.ts +45 -34
  92. package/build/types/cli.d.ts.map +1 -1
  93. package/build/types/cli.js +3 -0
  94. package/build/types/cli.js.map +1 -0
  95. package/build/types/index.d.ts +1 -2
  96. package/build/types/index.d.ts.map +1 -1
  97. package/build/types/index.js +19 -0
  98. package/build/types/index.js.map +1 -0
  99. package/build/types/manifest/base.d.ts +135 -0
  100. package/build/types/manifest/base.d.ts.map +1 -0
  101. package/build/types/manifest/base.js +3 -0
  102. package/build/types/manifest/base.js.map +1 -0
  103. package/build/types/manifest/index.d.ts +19 -0
  104. package/build/types/manifest/index.d.ts.map +1 -0
  105. package/build/types/manifest/index.js +40 -0
  106. package/build/types/manifest/index.js.map +1 -0
  107. package/build/types/manifest/v3.d.ts +139 -0
  108. package/build/types/manifest/v3.d.ts.map +1 -0
  109. package/build/types/manifest/v3.js +3 -0
  110. package/build/types/manifest/v3.js.map +1 -0
  111. package/lib/appium.js +1 -1
  112. package/lib/cli/args.js +1 -1
  113. package/lib/cli/driver-command.js +17 -0
  114. package/lib/cli/extension-command.js +119 -65
  115. package/lib/cli/extension.js +9 -8
  116. package/lib/cli/parser.js +2 -2
  117. package/lib/config-file.js +2 -3
  118. package/lib/config.js +3 -2
  119. package/lib/constants.js +7 -5
  120. package/lib/extension/extension-config.js +52 -47
  121. package/lib/extension/manifest-migrations.js +120 -0
  122. package/lib/extension/manifest.js +184 -103
  123. package/lib/extension/plugin-config.js +1 -2
  124. package/lib/logsink.js +26 -5
  125. package/lib/main.js +58 -50
  126. package/lib/schema/schema.js +6 -1
  127. package/lib/utils.js +62 -0
  128. package/package.json +24 -25
  129. package/scripts/autoinstall-extensions.js +78 -26
  130. package/types/cli.ts +81 -42
  131. package/types/index.ts +1 -2
  132. package/types/manifest/README.md +30 -0
  133. package/types/manifest/base.ts +158 -0
  134. package/types/manifest/index.ts +27 -0
  135. package/types/manifest/v3.ts +161 -0
  136. package/build/types/appium-manifest.d.ts +0 -59
  137. package/build/types/appium-manifest.d.ts.map +0 -1
  138. package/build/types/extension-manifest.d.ts +0 -55
  139. package/build/types/extension-manifest.d.ts.map +0 -1
  140. package/types/appium-manifest.ts +0 -73
  141. package/types/extension-manifest.ts +0 -64
@@ -1,153 +1,135 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _axios = _interopRequireDefault(require("axios"));
11
-
12
- var _support = require("@appium/support");
13
-
14
- var _logger = _interopRequireDefault(require("./logger"));
15
-
16
- var _lodash = _interopRequireDefault(require("lodash"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- const hubUri = config => {
21
- const protocol = config.hubProtocol || 'http';
22
- return `${protocol}://${config.hubHost}:${config.hubPort}`;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
4
  };
24
-
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const axios_1 = __importDefault(require("axios"));
7
+ const support_1 = require("@appium/support");
8
+ const logger_1 = __importDefault(require("./logger"));
9
+ const lodash_1 = __importDefault(require("lodash"));
10
+ const hubUri = (config) => {
11
+ const protocol = config.hubProtocol || 'http';
12
+ return `${protocol}://${config.hubHost}:${config.hubPort}`;
13
+ };
14
+ /**
15
+ * Registers a new node with a selenium grid
16
+ * @param {string|object} data - Path or object representing selenium grid node config file. If a `string`, all subsequent arguments are required!
17
+ * @param {string} [addr] - Bind to this address
18
+ * @param {number} [port] - Bind to this port
19
+ * @param {string} [basePath] - Base path for the grid
20
+ */
25
21
  async function registerNode(data, addr, port, basePath) {
26
- let configFilePath;
27
-
28
- if (_lodash.default.isString(data)) {
29
- configFilePath = data;
30
-
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
-
36
- return;
22
+ let configFilePath;
23
+ if (lodash_1.default.isString(data)) {
24
+ configFilePath = data;
25
+ try {
26
+ data = await support_1.fs.readFile(data, 'utf-8');
27
+ }
28
+ catch (err) {
29
+ logger_1.default.error(`Unable to load node configuration file ${configFilePath} to register with grid: ${err.message}`);
30
+ return;
31
+ }
32
+ try {
33
+ data = JSON.parse(data);
34
+ }
35
+ catch (err) {
36
+ logger_1.default.errorAndThrow(`Syntax error in node configuration file ${configFilePath}: ${err.message}`);
37
+ return;
38
+ }
37
39
  }
38
-
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
- }
46
- }
47
-
48
- postRequest(data, addr, port, basePath);
40
+ postRequest(data, addr, port, basePath);
49
41
  }
50
-
51
42
  async function registerToGrid(postOptions, configHolder) {
52
- try {
53
- const {
54
- status
55
- } = await (0, _axios.default)(postOptions);
56
-
57
- if (status !== 200) {
58
- throw new Error(`Request failed with code ${status}`);
43
+ try {
44
+ const { status } = await (0, axios_1.default)(postOptions);
45
+ if (status !== 200) {
46
+ throw new Error(`Request failed with code ${status}`);
47
+ }
48
+ logger_1.default.debug(`Appium successfully registered with the the grid on ` + hubUri(configHolder.configuration));
49
+ }
50
+ catch (err) {
51
+ logger_1.default.error(`An attempt to register with the grid was unsuccessful: ${err.message}`);
59
52
  }
60
-
61
- _logger.default.debug(`Appium successfully registered with the the grid on ` + hubUri(configHolder.configuration));
62
- } catch (err) {
63
- _logger.default.error(`An attempt to register with the grid was unsuccessful: ${err.message}`);
64
- }
65
53
  }
66
-
67
54
  function postRequest(configHolder, addr, port, basePath) {
68
- if (!_lodash.default.has(configHolder, 'configuration')) {
69
- let configuration = {};
70
-
71
- for (const property in configHolder) {
72
- if (_lodash.default.has(configHolder, property) && property !== 'capabilities') {
73
- configuration[property] = configHolder[property];
74
- delete configHolder[property];
75
- }
55
+ // Move Selenium 3 configuration properties to configuration object
56
+ if (!lodash_1.default.has(configHolder, 'configuration')) {
57
+ let configuration = {};
58
+ for (const property in configHolder) {
59
+ if (lodash_1.default.has(configHolder, property) && property !== 'capabilities') {
60
+ configuration[property] = configHolder[property];
61
+ delete configHolder[property];
62
+ }
63
+ }
64
+ configHolder.configuration = configuration;
65
+ }
66
+ // if the node config does not have the appium/webdriver url, host, and port,
67
+ // automatically add it based on how appium was initialized
68
+ // otherwise, we will take whatever the user setup
69
+ // because we will always set localhost/127.0.0.1. this won't work if your
70
+ // node and grid aren't in the same place
71
+ if (!configHolder.configuration.url ||
72
+ !configHolder.configuration.host ||
73
+ !configHolder.configuration.port) {
74
+ configHolder.configuration.url = `http://${addr}:${port}${basePath}`;
75
+ configHolder.configuration.host = addr;
76
+ configHolder.configuration.port = port;
77
+ }
78
+ // if the node config does not have id automatically add it
79
+ if (!configHolder.configuration.id) {
80
+ configHolder.configuration.id = `http://${configHolder.configuration.host}:${configHolder.configuration.port}`;
76
81
  }
77
-
78
- configHolder.configuration = configuration;
79
- }
80
-
81
- if (!configHolder.configuration.url || !configHolder.configuration.host || !configHolder.configuration.port) {
82
- configHolder.configuration.url = `http://${addr}:${port}${basePath}`;
83
- configHolder.configuration.host = addr;
84
- configHolder.configuration.port = port;
85
- }
86
-
87
- if (!configHolder.configuration.id) {
88
- configHolder.configuration.id = `http://${configHolder.configuration.host}:${configHolder.configuration.port}`;
89
- }
90
-
91
- const regRequest = {
92
- url: `${hubUri(configHolder.configuration)}/grid/register`,
93
- method: 'POST',
94
- data: configHolder
95
- };
96
-
97
- if (configHolder.configuration.register !== true) {
98
- _logger.default.debug(`No registration sent (${configHolder.configuration.register} = false)`);
99
-
100
- return;
101
- }
102
-
103
- const registerCycleInterval = configHolder.configuration.registerCycle;
104
-
105
- if (isNaN(registerCycleInterval) || registerCycleInterval <= 0) {
106
- _logger.default.warn(`'registerCycle' is not a valid positive number. ` + `No registration request will be sent to the grid.`);
107
-
108
- return;
109
- }
110
-
111
- let first = true;
112
-
113
- _logger.default.debug(`Starting auto register thread for the grid. ` + `Will try to register every ${registerCycleInterval} ms.`);
114
-
115
- setInterval(async function registerRetry() {
116
- if (first) {
117
- first = false;
118
- await registerToGrid(regRequest, configHolder);
119
- } else if (!(await isAlreadyRegistered(configHolder))) {
120
- await registerToGrid(regRequest, configHolder);
82
+ // the post options
83
+ const regRequest = {
84
+ url: `${hubUri(configHolder.configuration)}/grid/register`,
85
+ method: 'POST',
86
+ data: configHolder,
87
+ };
88
+ if (configHolder.configuration.register !== true) {
89
+ logger_1.default.debug(`No registration sent (${configHolder.configuration.register} = false)`);
90
+ return;
121
91
  }
122
- }, registerCycleInterval);
92
+ const registerCycleInterval = configHolder.configuration.registerCycle;
93
+ if (isNaN(registerCycleInterval) || registerCycleInterval <= 0) {
94
+ logger_1.default.warn(`'registerCycle' is not a valid positive number. ` +
95
+ `No registration request will be sent to the grid.`);
96
+ return;
97
+ }
98
+ // initiate a new Thread
99
+ let first = true;
100
+ logger_1.default.debug(`Starting auto register thread for the grid. ` +
101
+ `Will try to register every ${registerCycleInterval} ms.`);
102
+ setInterval(async function registerRetry() {
103
+ if (first) {
104
+ first = false;
105
+ await registerToGrid(regRequest, configHolder);
106
+ }
107
+ else if (!(await isAlreadyRegistered(configHolder))) {
108
+ // make the http POST to the grid for registration
109
+ await registerToGrid(regRequest, configHolder);
110
+ }
111
+ }, registerCycleInterval);
123
112
  }
124
-
125
113
  async function isAlreadyRegistered(configHolder) {
126
- const id = configHolder.configuration.id;
127
-
128
- try {
129
- const {
130
- data,
131
- status
132
- } = await (0, _axios.default)({
133
- url: `${hubUri(configHolder.configuration)}/grid/api/proxy?id=${id}`,
134
- timeout: 10000
135
- });
136
-
137
- if (status !== 200) {
138
- throw new Error(`Request failed with code ${status}`);
114
+ //check if node is already registered
115
+ const id = configHolder.configuration.id;
116
+ try {
117
+ const { data, status } = await (0, axios_1.default)({
118
+ url: `${hubUri(configHolder.configuration)}/grid/api/proxy?id=${id}`,
119
+ timeout: 10000,
120
+ });
121
+ if (status !== 200) {
122
+ throw new Error(`Request failed with code ${status}`);
123
+ }
124
+ if (!data.success) {
125
+ // if register fail, print the debug msg
126
+ logger_1.default.debug(`Grid registration error: ${data.msg}`);
127
+ }
128
+ return data.success;
139
129
  }
140
-
141
- if (!data.success) {
142
- _logger.default.debug(`Grid registration error: ${data.msg}`);
130
+ catch (err) {
131
+ logger_1.default.debug(`Hub down or not responding: ${err.message}`);
143
132
  }
144
-
145
- return data.success;
146
- } catch (err) {
147
- _logger.default.debug(`Hub down or not responding: ${err.message}`);
148
- }
149
133
  }
150
-
151
- var _default = registerNode;
152
- exports.default = _default;
153
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJodWJVcmkiLCJjb25maWciLCJwcm90b2NvbCIsImh1YlByb3RvY29sIiwiaHViSG9zdCIsImh1YlBvcnQiLCJyZWdpc3Rlck5vZGUiLCJkYXRhIiwiYWRkciIsInBvcnQiLCJiYXNlUGF0aCIsImNvbmZpZ0ZpbGVQYXRoIiwiXyIsImlzU3RyaW5nIiwiZnMiLCJyZWFkRmlsZSIsImVyciIsImxvZ2dlciIsImVycm9yIiwibWVzc2FnZSIsIkpTT04iLCJwYXJzZSIsImVycm9yQW5kVGhyb3ciLCJwb3N0UmVxdWVzdCIsInJlZ2lzdGVyVG9HcmlkIiwicG9zdE9wdGlvbnMiLCJjb25maWdIb2xkZXIiLCJzdGF0dXMiLCJheGlvcyIsIkVycm9yIiwiZGVidWciLCJjb25maWd1cmF0aW9uIiwiaGFzIiwicHJvcGVydHkiLCJ1cmwiLCJob3N0IiwiaWQiLCJyZWdSZXF1ZXN0IiwibWV0aG9kIiwicmVnaXN0ZXIiLCJyZWdpc3RlckN5Y2xlSW50ZXJ2YWwiLCJyZWdpc3RlckN5Y2xlIiwiaXNOYU4iLCJ3YXJuIiwiZmlyc3QiLCJzZXRJbnRlcnZhbCIsInJlZ2lzdGVyUmV0cnkiLCJpc0FscmVhZHlSZWdpc3RlcmVkIiwidGltZW91dCIsInN1Y2Nlc3MiLCJtc2ciXSwic291cmNlcyI6WyIuLi8uLi9saWIvZ3JpZC1yZWdpc3Rlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHtmc30gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgaHViVXJpID0gKGNvbmZpZykgPT4ge1xuICBjb25zdCBwcm90b2NvbCA9IGNvbmZpZy5odWJQcm90b2NvbCB8fCAnaHR0cCc7XG4gIHJldHVybiBgJHtwcm90b2NvbH06Ly8ke2NvbmZpZy5odWJIb3N0fToke2NvbmZpZy5odWJQb3J0fWA7XG59O1xuXG4vKipcbiAqIFJlZ2lzdGVycyBhIG5ldyBub2RlIHdpdGggYSBzZWxlbml1bSBncmlkXG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IGRhdGEgLSBQYXRoIG9yIG9iamVjdCByZXByZXNlbnRpbmcgc2VsZW5pdW0gZ3JpZCBub2RlIGNvbmZpZyBmaWxlLiBJZiBhIGBzdHJpbmdgLCBhbGwgc3Vic2VxdWVudCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIVxuICogQHBhcmFtIHtzdHJpbmd9IFthZGRyXSAtIEJpbmQgdG8gdGhpcyBhZGRyZXNzXG4gKiBAcGFyYW0ge251bWJlcn0gW3BvcnRdIC0gQmluZCB0byB0aGlzIHBvcnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbYmFzZVBhdGhdIC0gQmFzZSBwYXRoIGZvciB0aGUgZ3JpZFxuICovXG5hc3luYyBmdW5jdGlvbiByZWdpc3Rlck5vZGUoZGF0YSwgYWRkciwgcG9ydCwgYmFzZVBhdGgpIHtcbiAgbGV0IGNvbmZpZ0ZpbGVQYXRoO1xuICBpZiAoXy5pc1N0cmluZyhkYXRhKSkge1xuICAgIGNvbmZpZ0ZpbGVQYXRoID0gZGF0YTtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IGF3YWl0IGZzLnJlYWRGaWxlKGRhdGEsICd1dGYtOCcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIGxvYWQgbm9kZSBjb25maWd1cmF0aW9uIGZpbGUgJHtjb25maWdGaWxlUGF0aH0gdG8gcmVnaXN0ZXIgd2l0aCBncmlkOiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBkYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5lcnJvckFuZFRocm93KFxuICAgICAgICBgU3ludGF4IGVycm9yIGluIG5vZGUgY29uZmlndXJhdGlvbiBmaWxlICR7Y29uZmlnRmlsZVBhdGh9OiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcG9zdFJlcXVlc3QoZGF0YSwgYWRkciwgcG9ydCwgYmFzZVBhdGgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWdpc3RlclRvR3JpZChwb3N0T3B0aW9ucywgY29uZmlnSG9sZGVyKSB7XG4gIHRyeSB7XG4gICAgY29uc3Qge3N0YXR1c30gPSBhd2FpdCBheGlvcyhwb3N0T3B0aW9ucyk7XG4gICAgaWYgKHN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcXVlc3QgZmFpbGVkIHdpdGggY29kZSAke3N0YXR1c31gKTtcbiAgICB9XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYEFwcGl1bSBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSB0aGUgZ3JpZCBvbiBgICsgaHViVXJpKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uKVxuICAgICk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihgQW4gYXR0ZW1wdCB0byByZWdpc3RlciB3aXRoIHRoZSBncmlkIHdhcyB1bnN1Y2Nlc3NmdWw6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9zdFJlcXVlc3QoY29uZmlnSG9sZGVyLCBhZGRyLCBwb3J0LCBiYXNlUGF0aCkge1xuICAvLyBNb3ZlIFNlbGVuaXVtIDMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gIGlmICghXy5oYXMoY29uZmlnSG9sZGVyLCAnY29uZmlndXJhdGlvbicpKSB7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb24gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGNvbmZpZ0hvbGRlcikge1xuICAgICAgaWYgKF8uaGFzKGNvbmZpZ0hvbGRlciwgcHJvcGVydHkpICYmIHByb3BlcnR5ICE9PSAnY2FwYWJpbGl0aWVzJykge1xuICAgICAgICBjb25maWd1cmF0aW9uW3Byb3BlcnR5XSA9IGNvbmZpZ0hvbGRlcltwcm9wZXJ0eV07XG4gICAgICAgIGRlbGV0ZSBjb25maWdIb2xkZXJbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gIH1cblxuICAvLyBpZiB0aGUgbm9kZSBjb25maWcgZG9lcyBub3QgaGF2ZSB0aGUgYXBwaXVtL3dlYmRyaXZlciB1cmwsIGhvc3QsIGFuZCBwb3J0LFxuICAvLyBhdXRvbWF0aWNhbGx5IGFkZCBpdCBiYXNlZCBvbiBob3cgYXBwaXVtIHdhcyBpbml0aWFsaXplZFxuICAvLyBvdGhlcndpc2UsIHdlIHdpbGwgdGFrZSB3aGF0ZXZlciB0aGUgdXNlciBzZXR1cFxuICAvLyBiZWNhdXNlIHdlIHdpbGwgYWx3YXlzIHNldCBsb2NhbGhvc3QvMTI3LjAuMC4xLiB0aGlzIHdvbid0IHdvcmsgaWYgeW91clxuICAvLyBub2RlIGFuZCBncmlkIGFyZW4ndCBpbiB0aGUgc2FtZSBwbGFjZVxuICBpZiAoXG4gICAgIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnVybCB8fFxuICAgICFjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5ob3N0IHx8XG4gICAgIWNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLnBvcnRcbiAgKSB7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24udXJsID0gYGh0dHA6Ly8ke2FkZHJ9OiR7cG9ydH0ke2Jhc2VQYXRofWA7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24uaG9zdCA9IGFkZHI7XG4gICAgY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucG9ydCA9IHBvcnQ7XG4gIH1cbiAgLy8gaWYgdGhlIG5vZGUgY29uZmlnIGRvZXMgbm90IGhhdmUgaWQgYXV0b21hdGljYWxseSBhZGQgaXRcbiAgaWYgKCFjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5pZCkge1xuICAgIGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmlkID0gYGh0dHA6Ly8ke2NvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmhvc3R9OiR7Y29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucG9ydH1gO1xuICB9XG5cbiAgLy8gdGhlIHBvc3Qgb3B0aW9uc1xuICBjb25zdCByZWdSZXF1ZXN0ID0ge1xuICAgIHVybDogYCR7aHViVXJpKGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uKX0vZ3JpZC9yZWdpc3RlcmAsXG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgZGF0YTogY29uZmlnSG9sZGVyLFxuICB9O1xuXG4gIGlmIChjb25maWdIb2xkZXIuY29uZmlndXJhdGlvbi5yZWdpc3RlciAhPT0gdHJ1ZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgTm8gcmVnaXN0cmF0aW9uIHNlbnQgKCR7Y29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucmVnaXN0ZXJ9ID0gZmFsc2UpYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVnaXN0ZXJDeWNsZUludGVydmFsID0gY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24ucmVnaXN0ZXJDeWNsZTtcbiAgaWYgKGlzTmFOKHJlZ2lzdGVyQ3ljbGVJbnRlcnZhbCkgfHwgcmVnaXN0ZXJDeWNsZUludGVydmFsIDw9IDApIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgIGAncmVnaXN0ZXJDeWNsZScgaXMgbm90IGEgdmFsaWQgcG9zaXRpdmUgbnVtYmVyLiBgICtcbiAgICAgICAgYE5vIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IHdpbGwgYmUgc2VudCB0byB0aGUgZ3JpZC5gXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gaW5pdGlhdGUgYSBuZXcgVGhyZWFkXG4gIGxldCBmaXJzdCA9IHRydWU7XG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgU3RhcnRpbmcgYXV0byByZWdpc3RlciB0aHJlYWQgZm9yIHRoZSBncmlkLiBgICtcbiAgICAgIGBXaWxsIHRyeSB0byByZWdpc3RlciBldmVyeSAke3JlZ2lzdGVyQ3ljbGVJbnRlcnZhbH0gbXMuYFxuICApO1xuICBzZXRJbnRlcnZhbChhc3luYyBmdW5jdGlvbiByZWdpc3RlclJldHJ5KCkge1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgIGF3YWl0IHJlZ2lzdGVyVG9HcmlkKHJlZ1JlcXVlc3QsIGNvbmZpZ0hvbGRlcik7XG4gICAgfSBlbHNlIGlmICghKGF3YWl0IGlzQWxyZWFkeVJlZ2lzdGVyZWQoY29uZmlnSG9sZGVyKSkpIHtcbiAgICAgIC8vIG1ha2UgdGhlIGh0dHAgUE9TVCB0byB0aGUgZ3JpZCBmb3IgcmVnaXN0cmF0aW9uXG4gICAgICBhd2FpdCByZWdpc3RlclRvR3JpZChyZWdSZXF1ZXN0LCBjb25maWdIb2xkZXIpO1xuICAgIH1cbiAgfSwgcmVnaXN0ZXJDeWNsZUludGVydmFsKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNBbHJlYWR5UmVnaXN0ZXJlZChjb25maWdIb2xkZXIpIHtcbiAgLy9jaGVjayBpZiBub2RlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZFxuICBjb25zdCBpZCA9IGNvbmZpZ0hvbGRlci5jb25maWd1cmF0aW9uLmlkO1xuICB0cnkge1xuICAgIGNvbnN0IHtkYXRhLCBzdGF0dXN9ID0gYXdhaXQgYXhpb3Moe1xuICAgICAgdXJsOiBgJHtodWJVcmkoY29uZmlnSG9sZGVyLmNvbmZpZ3VyYXRpb24pfS9ncmlkL2FwaS9wcm94eT9pZD0ke2lkfWAsXG4gICAgICB0aW1lb3V0OiAxMDAwMCxcbiAgICB9KTtcbiAgICBpZiAoc3RhdHVzICE9PSAyMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVxdWVzdCBmYWlsZWQgd2l0aCBjb2RlICR7c3RhdHVzfWApO1xuICAgIH1cbiAgICBpZiAoIWRhdGEuc3VjY2Vzcykge1xuICAgICAgLy8gaWYgcmVnaXN0ZXIgZmFpbCwgcHJpbnQgdGhlIGRlYnVnIG1zZ1xuICAgICAgbG9nZ2VyLmRlYnVnKGBHcmlkIHJlZ2lzdHJhdGlvbiBlcnJvcjogJHtkYXRhLm1zZ31gKTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGEuc3VjY2VzcztcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBIdWIgZG93biBvciBub3QgcmVzcG9uZGluZzogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCByZWdpc3Rlck5vZGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsTUFBTSxHQUFJQyxNQUFELElBQVk7RUFDekIsTUFBTUMsUUFBUSxHQUFHRCxNQUFNLENBQUNFLFdBQVAsSUFBc0IsTUFBdkM7RUFDQSxPQUFRLEdBQUVELFFBQVMsTUFBS0QsTUFBTSxDQUFDRyxPQUFRLElBQUdILE1BQU0sQ0FBQ0ksT0FBUSxFQUF6RDtBQUNELENBSEQ7O0FBWUEsZUFBZUMsWUFBZixDQUE0QkMsSUFBNUIsRUFBa0NDLElBQWxDLEVBQXdDQyxJQUF4QyxFQUE4Q0MsUUFBOUMsRUFBd0Q7RUFDdEQsSUFBSUMsY0FBSjs7RUFDQSxJQUFJQyxlQUFBLENBQUVDLFFBQUYsQ0FBV04sSUFBWCxDQUFKLEVBQXNCO0lBQ3BCSSxjQUFjLEdBQUdKLElBQWpCOztJQUNBLElBQUk7TUFDRkEsSUFBSSxHQUFHLE1BQU1PLFdBQUEsQ0FBR0MsUUFBSCxDQUFZUixJQUFaLEVBQWtCLE9BQWxCLENBQWI7SUFDRCxDQUZELENBRUUsT0FBT1MsR0FBUCxFQUFZO01BQ1pDLGVBQUEsQ0FBT0MsS0FBUCxDQUNHLDBDQUF5Q1AsY0FBZSwyQkFBMEJLLEdBQUcsQ0FBQ0csT0FBUSxFQURqRzs7TUFHQTtJQUNEOztJQUNELElBQUk7TUFDRlosSUFBSSxHQUFHYSxJQUFJLENBQUNDLEtBQUwsQ0FBV2QsSUFBWCxDQUFQO0lBQ0QsQ0FGRCxDQUVFLE9BQU9TLEdBQVAsRUFBWTtNQUNaQyxlQUFBLENBQU9LLGFBQVAsQ0FDRywyQ0FBMENYLGNBQWUsS0FBSUssR0FBRyxDQUFD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
134
+ exports.default = registerNode;
135
+ //# sourceMappingURL=grid-register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-register.js","names":["hubUri","config","protocol","hubProtocol","hubHost","hubPort","registerNode","data","addr","port","basePath","configFilePath","_","isString","fs","readFile","err","logger","error","message","JSON","parse","errorAndThrow","postRequest","registerToGrid","postOptions","configHolder","status","axios","Error","debug","configuration","has","property","url","host","id","regRequest","method","register","registerCycleInterval","registerCycle","isNaN","warn","first","setInterval","registerRetry","isAlreadyRegistered","timeout","success","msg"],"sources":["../../lib/grid-register.js"],"sourcesContent":["import axios from 'axios';\nimport {fs} from '@appium/support';\nimport logger from './logger';\nimport _ from 'lodash';\n\nconst hubUri = (config) => {\n const protocol = config.hubProtocol || 'http';\n return `${protocol}://${config.hubHost}:${config.hubPort}`;\n};\n\n/**\n * Registers a new node with a selenium grid\n * @param {string|object} data - Path or object representing selenium grid node config file. If a `string`, all subsequent arguments are required!\n * @param {string} [addr] - Bind to this address\n * @param {number} [port] - Bind to this port\n * @param {string} [basePath] - Base path for the grid\n */\nasync function registerNode(data, addr, port, basePath) {\n let configFilePath;\n if (_.isString(data)) {\n configFilePath = data;\n try {\n data = await fs.readFile(data, 'utf-8');\n } catch (err) {\n logger.error(\n `Unable to load node configuration file ${configFilePath} to register with grid: ${err.message}`\n );\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (err) {\n logger.errorAndThrow(\n `Syntax error in node configuration file ${configFilePath}: ${err.message}`\n );\n return;\n }\n }\n\n postRequest(data, addr, port, basePath);\n}\n\nasync function registerToGrid(postOptions, configHolder) {\n try {\n const {status} = await axios(postOptions);\n if (status !== 200) {\n throw new Error(`Request failed with code ${status}`);\n }\n logger.debug(\n `Appium successfully registered with the the grid on ` + hubUri(configHolder.configuration)\n );\n } catch (err) {\n logger.error(`An attempt to register with the grid was unsuccessful: ${err.message}`);\n }\n}\n\nfunction postRequest(configHolder, addr, port, basePath) {\n // Move Selenium 3 configuration properties to configuration object\n if (!_.has(configHolder, 'configuration')) {\n let configuration = {};\n for (const property in configHolder) {\n if (_.has(configHolder, property) && property !== 'capabilities') {\n configuration[property] = configHolder[property];\n delete configHolder[property];\n }\n }\n configHolder.configuration = configuration;\n }\n\n // if the node config does not have the appium/webdriver url, host, and port,\n // automatically add it based on how appium was initialized\n // otherwise, we will take whatever the user setup\n // because we will always set localhost/127.0.0.1. this won't work if your\n // node and grid aren't in the same place\n if (\n !configHolder.configuration.url ||\n !configHolder.configuration.host ||\n !configHolder.configuration.port\n ) {\n configHolder.configuration.url = `http://${addr}:${port}${basePath}`;\n configHolder.configuration.host = addr;\n configHolder.configuration.port = port;\n }\n // if the node config does not have id automatically add it\n if (!configHolder.configuration.id) {\n configHolder.configuration.id = `http://${configHolder.configuration.host}:${configHolder.configuration.port}`;\n }\n\n // the post options\n const regRequest = {\n url: `${hubUri(configHolder.configuration)}/grid/register`,\n method: 'POST',\n data: configHolder,\n };\n\n if (configHolder.configuration.register !== true) {\n logger.debug(`No registration sent (${configHolder.configuration.register} = false)`);\n return;\n }\n\n const registerCycleInterval = configHolder.configuration.registerCycle;\n if (isNaN(registerCycleInterval) || registerCycleInterval <= 0) {\n logger.warn(\n `'registerCycle' is not a valid positive number. ` +\n `No registration request will be sent to the grid.`\n );\n return;\n }\n // initiate a new Thread\n let first = true;\n logger.debug(\n `Starting auto register thread for the grid. ` +\n `Will try to register every ${registerCycleInterval} ms.`\n );\n setInterval(async function registerRetry() {\n if (first) {\n first = false;\n await registerToGrid(regRequest, configHolder);\n } else if (!(await isAlreadyRegistered(configHolder))) {\n // make the http POST to the grid for registration\n await registerToGrid(regRequest, configHolder);\n }\n }, registerCycleInterval);\n}\n\nasync function isAlreadyRegistered(configHolder) {\n //check if node is already registered\n const id = configHolder.configuration.id;\n try {\n const {data, status} = await axios({\n url: `${hubUri(configHolder.configuration)}/grid/api/proxy?id=${id}`,\n timeout: 10000,\n });\n if (status !== 200) {\n throw new Error(`Request failed with code ${status}`);\n }\n if (!data.success) {\n // if register fail, print the debug msg\n logger.debug(`Grid registration error: ${data.msg}`);\n }\n return data.success;\n } catch (err) {\n logger.debug(`Hub down or not responding: ${err.message}`);\n }\n}\n\nexport default registerNode;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,MAAM,GAAIC,MAAD,IAAY;EACzB,MAAMC,QAAQ,GAAGD,MAAM,CAACE,WAAP,IAAsB,MAAvC;EACA,OAAQ,GAAED,QAAS,MAAKD,MAAM,CAACG,OAAQ,IAAGH,MAAM,CAACI,OAAQ,EAAzD;AACD,CAHD;;AAYA,eAAeC,YAAf,CAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,IAAxC,EAA8CC,QAA9C,EAAwD;EACtD,IAAIC,cAAJ;;EACA,IAAIC,eAAA,CAAEC,QAAF,CAAWN,IAAX,CAAJ,EAAsB;IACpBI,cAAc,GAAGJ,IAAjB;;IACA,IAAI;MACFA,IAAI,GAAG,MAAMO,WAAA,CAAGC,QAAH,CAAYR,IAAZ,EAAkB,OAAlB,CAAb;IACD,CAFD,CAEE,OAAOS,GAAP,EAAY;MACZC,eAAA,CAAOC,KAAP,CACG,0CAAyCP,cAAe,2BAA0BK,GAAG,CAACG,OAAQ,EADjG;;MAGA;IACD;;IACD,IAAI;MACFZ,IAAI,GAAGa,IAAI,CAACC,KAAL,CAAWd,IAAX,CAAP;IACD,CAFD,CAEE,OAAOS,GAAP,EAAY;MACZC,eAAA,CAAOK,aAAP,CACG,2CAA0CX,cAAe,KAAIK,GAAG,CAACG,OAAQ,EAD5E;;MAGA;IACD;EACF;;EAEDI,WAAW,CAAChB,IAAD,EAAOC,IAAP,EAAaC,IAAb,EAAmBC,QAAnB,CAAX;AACD;;AAED,eAAec,cAAf,CAA8BC,WAA9B,EAA2CC,YAA3C,EAAyD;EACvD,IAAI;IACF,MAAM;MAACC;IAAD,IAAW,MAAM,IAAAC,cAAA,EAAMH,WAAN,CAAvB;;IACA,IAAIE,MAAM,KAAK,GAAf,EAAoB;MAClB,MAAM,IAAIE,KAAJ,CAAW,4BAA2BF,MAAO,EAA7C,CAAN;IACD;;IACDV,eAAA,CAAOa,KAAP,CACG,sDAAD,GAAyD9B,MAAM,CAAC0B,YAAY,CAACK,aAAd,CADjE;EAGD,CARD,CAQE,OAAOf,GAAP,EAAY;IACZC,eAAA,CAAOC,KAAP,CAAc,0DAAyDF,GAAG,CAACG,OAAQ,EAAnF;EACD;AACF;;AAED,SAASI,WAAT,CAAqBG,YAArB,EAAmClB,IAAnC,EAAyCC,IAAzC,EAA+CC,QAA/C,EAAyD;EAEvD,IAAI,CAACE,eAAA,CAAEoB,GAAF,CAAMN,YAAN,EAAoB,eAApB,CAAL,EAA2C;IACzC,IAAIK,aAAa,GAAG,EAApB;;IACA,KAAK,MAAME,QAAX,IAAuBP,YAAvB,EAAqC;MACnC,IAAId,eAAA,CAAEoB,GAAF,CAAMN,YAAN,EAAoBO,QAApB,KAAiCA,QAAQ,KAAK,cAAlD,EAAkE;QAChEF,aAAa,CAACE,QAAD,CAAb,GAA0BP,YAAY,CAACO,QAAD,CAAtC;QACA,OAAOP,YAAY,CAACO,QAAD,CAAnB;MACD;IACF;;IACDP,YAAY,CAACK,aAAb,GAA6BA,aAA7B;EACD;;EAOD,IACE,CAACL,YAAY,CAACK,aAAb,CAA2BG,GAA5B,IACA,CAACR,YAAY,CAACK,aAAb,CAA2BI,IAD5B,IAEA,CAACT,YAAY,CAACK,aAAb,CAA2BtB,IAH9B,EAIE;IACAiB,YAAY,CAACK,aAAb,CAA2BG,GAA3B,GAAkC,UAAS1B,IAAK,IAAGC,IAAK,GAAEC,QAAS,EAAnE;IACAgB,YAAY,CAACK,aAAb,CAA2BI,IAA3B,GAAkC3B,IAAlC;IACAkB,YAAY,CAACK,aAAb,CAA2BtB,IAA3B,GAAkCA,IAAlC;EACD;;EAED,IAAI,CAACiB,YAAY,CAACK,aAAb,CAA2BK,EAAhC,EAAoC;IAClCV,YAAY,CAACK,aAAb,CAA2BK,EAA3B,GAAiC,UAASV,YAAY,CAACK,aAAb,CAA2BI,IAAK,IAAGT,YAAY,CAACK,aAAb,CAA2BtB,IAAK,EAA7G;EACD;;EAGD,MAAM4B,UAAU,GAAG;IACjBH,GAAG,EAAG,GAAElC,MAAM,CAAC0B,YAAY,CAACK,aAAd,CAA6B,gBAD1B;IAEjBO,MAAM,EAAE,MAFS;IAGjB/B,IAAI,EAAEmB;EAHW,CAAnB;;EAMA,IAAIA,YAAY,CAACK,aAAb,CAA2BQ,QAA3B,KAAwC,IAA5C,EAAkD;IAChDtB,eAAA,CAAOa,KAAP,CAAc,yBAAwBJ,YAAY,CAACK,aAAb,CAA2BQ,QAAS,WAA1E;;IACA;EACD;;EAED,MAAMC,qBAAqB,GAAGd,YAAY,CAACK,aAAb,CAA2BU,aAAzD;;EACA,IAAIC,KAAK,CAACF,qBAAD,CAAL,IAAgCA,qBAAqB,IAAI,CAA7D,EAAgE;IAC9DvB,eAAA,CAAO0B,IAAP,CACG,kDAAD,GACG,mDAFL;;IAIA;EACD;;EAED,IAAIC,KAAK,GAAG,IAAZ;;EACA3B,eAAA,CAAOa,KAAP,CACG,8CAAD,GACG,8BAA6BU,qBAAsB,MAFxD;;EAIAK,WAAW,CAAC,eAAeC,aAAf,GAA+B;IACzC,IAAIF,KAAJ,EAAW;MACTA,KAAK,GAAG,KAAR;MACA,MAAMpB,cAAc,CAACa,UAAD,EAAaX,YAAb,CAApB;IACD,CAHD,MAGO,IAAI,EAAE,MAAMqB,mBAAmB,CAACrB,YAAD,CAA3B,CAAJ,EAAgD;MAErD,MAAMF,cAAc,CAACa,UAAD,EAAaX,YAAb,CAApB;IACD;EACF,CARU,EAQRc,qBARQ,CAAX;AASD;;AAED,eAAeO,mBAAf,CAAmCrB,YAAnC,EAAiD;EAE/C,MAAMU,EAAE,GAAGV,YAAY,CAACK,aAAb,CAA2BK,EAAtC;;EACA,IAAI;IACF,MAAM;MAAC7B,IAAD;MAAOoB;IAAP,IAAiB,MAAM,IAAAC,cAAA,EAAM;MACjCM,GAAG,EAAG,GAAElC,MAAM,CAAC0B,YAAY,CAACK,aAAd,CAA6B,sBAAqBK,EAAG,EADlC;MAEjCY,OAAO,EAAE;IAFwB,CAAN,CAA7B;;IAIA,IAAIrB,MAAM,KAAK,GAAf,EAAoB;MAClB,MAAM,IAAIE,KAAJ,CAAW,4BAA2BF,MAAO,EAA7C,CAAN;IACD;;IACD,IAAI,CAACpB,IAAI,CAAC0C,OAAV,EAAmB;MAEjBhC,eAAA,CAAOa,KAAP,CAAc,4BAA2BvB,IAAI,CAAC2C,GAAI,EAAlD;IACD;;IACD,OAAO3C,IAAI,CAAC0C,OAAZ;EACD,CAbD,CAaE,OAAOjC,GAAP,EAAY;IACZC,eAAA,CAAOa,KAAP,CAAc,+BAA8Bd,GAAG,CAACG,OAAQ,EAAxD;EACD;AACF;;eAEcb,Y"}
1
+ {"version":3,"file":"grid-register.js","sourceRoot":"","sources":["../../lib/grid-register.js"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export default log;
2
- declare let log: import("../../types/build").AppiumLogger;
2
+ declare let log: import("../../types/build/lib").AppiumLogger;
3
3
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,0DAAqC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,8DAAqC"}
@@ -1,16 +1,6 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _support = require("@appium/support");
11
-
12
- let log = _support.logger.getLogger('Appium');
13
-
14
- var _default = log;
15
- exports.default = _default;
16
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bG9nZ2VyfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5sZXQgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignQXBwaXVtJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBSUEsR0FBRyxHQUFHQyxlQUFBLENBQU9DLFNBQVAsQ0FBaUIsUUFBakIsQ0FBVjs7ZUFFZUYsRyJ9
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const support_1 = require("@appium/support");
4
+ let log = support_1.logger.getLogger('Appium');
5
+ exports.default = log;
6
+ //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","names":["log","logger","getLogger"],"sources":["../../lib/logger.js"],"sourcesContent":["import {logger} from '@appium/support';\n\nlet log = logger.getLogger('Appium');\n\nexport default log;\n"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAIA,GAAG,GAAGC,eAAA,CAAOC,SAAP,CAAiB,QAAjB,CAAV;;eAEeF,G"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";;AAAA,6CAAuC;AAEvC,IAAI,GAAG,GAAG,gBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAErC,kBAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"logsink.d.ts","sourceRoot":"","sources":["../../lib/logsink.js"],"names":[],"mappings":";AA4LA,+CA0BC;AAED,8BAOC"}
1
+ {"version":3,"file":"logsink.d.ts","sourceRoot":"","sources":["../../lib/logsink.js"],"names":[],"mappings":";AA0MA,+CAiCC;AAED,8BAOC"}