creevey 0.10.0-beta.4 → 0.10.0-beta.41

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 (227) hide show
  1. package/README.md +19 -41
  2. package/dist/client/addon/components/Addon.js +17 -7
  3. package/dist/client/addon/components/Addon.js.map +1 -1
  4. package/dist/client/addon/components/Panel.js +2 -2
  5. package/dist/client/addon/components/Panel.js.map +1 -1
  6. package/dist/client/addon/components/Tools.js +17 -7
  7. package/dist/client/addon/components/Tools.js.map +1 -1
  8. package/dist/client/addon/withCreevey.d.ts +2 -1
  9. package/dist/client/addon/withCreevey.js +11 -1
  10. package/dist/client/addon/withCreevey.js.map +1 -1
  11. package/dist/client/shared/components/ImagesView/BlendView.d.ts +1 -1
  12. package/dist/client/shared/components/ImagesView/BlendView.js +17 -7
  13. package/dist/client/shared/components/ImagesView/BlendView.js.map +1 -1
  14. package/dist/client/shared/components/ImagesView/SideBySideView.d.ts +1 -1
  15. package/dist/client/shared/components/ImagesView/SideBySideView.js +17 -7
  16. package/dist/client/shared/components/ImagesView/SideBySideView.js.map +1 -1
  17. package/dist/client/shared/components/ImagesView/SlideView.d.ts +1 -1
  18. package/dist/client/shared/components/ImagesView/SlideView.js +17 -7
  19. package/dist/client/shared/components/ImagesView/SlideView.js.map +1 -1
  20. package/dist/client/shared/components/ImagesView/SwapView.d.ts +1 -1
  21. package/dist/client/shared/components/ImagesView/SwapView.js +29 -7
  22. package/dist/client/shared/components/ImagesView/SwapView.js.map +1 -1
  23. package/dist/client/shared/components/PageHeader/ImagePreview.d.ts +1 -1
  24. package/dist/client/shared/components/PageHeader/ImagePreview.js +1 -0
  25. package/dist/client/shared/components/PageHeader/ImagePreview.js.map +1 -1
  26. package/dist/client/shared/components/PageHeader/PageHeader.js +20 -8
  27. package/dist/client/shared/components/PageHeader/PageHeader.js.map +1 -1
  28. package/dist/client/shared/components/ResultsPage.d.ts +1 -1
  29. package/dist/client/shared/components/ResultsPage.js +43 -13
  30. package/dist/client/shared/components/ResultsPage.js.map +1 -1
  31. package/dist/client/shared/creeveyClientApi.js +8 -1
  32. package/dist/client/shared/creeveyClientApi.js.map +1 -1
  33. package/dist/client/shared/helpers.d.ts +1 -3
  34. package/dist/client/shared/helpers.js +4 -19
  35. package/dist/client/shared/helpers.js.map +1 -1
  36. package/dist/client/web/CreeveyApp.js +42 -14
  37. package/dist/client/web/CreeveyApp.js.map +1 -1
  38. package/dist/client/web/CreeveyContext.d.ts +5 -0
  39. package/dist/client/web/CreeveyContext.js +20 -7
  40. package/dist/client/web/CreeveyContext.js.map +1 -1
  41. package/dist/client/web/CreeveyLoader.js +2 -2
  42. package/dist/client/web/CreeveyLoader.js.map +1 -1
  43. package/dist/client/web/CreeveyView/SideBar/Search.js +19 -9
  44. package/dist/client/web/CreeveyView/SideBar/Search.js.map +1 -1
  45. package/dist/client/web/CreeveyView/SideBar/SideBar.js +18 -7
  46. package/dist/client/web/CreeveyView/SideBar/SideBar.js.map +1 -1
  47. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js +60 -7
  48. package/dist/client/web/CreeveyView/SideBar/SideBarFooter.js.map +1 -1
  49. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js +17 -7
  50. package/dist/client/web/CreeveyView/SideBar/SideBarHeader.js.map +1 -1
  51. package/dist/client/web/CreeveyView/SideBar/SuiteLink.d.ts +2 -2
  52. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js +18 -10
  53. package/dist/client/web/CreeveyView/SideBar/SuiteLink.js.map +1 -1
  54. package/dist/client/web/CreeveyView/SideBar/TestLink.js +18 -10
  55. package/dist/client/web/CreeveyView/SideBar/TestLink.js.map +1 -1
  56. package/dist/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +1 -1
  57. package/dist/client/web/CreeveyView/SideBar/TestsStatus.d.ts +1 -1
  58. package/dist/client/web/KeyboardEventsContext.d.ts +1 -8
  59. package/dist/client/web/KeyboardEventsContext.js +79 -64
  60. package/dist/client/web/KeyboardEventsContext.js.map +1 -1
  61. package/dist/client/web/assets/index-C47njyZV.js +802 -0
  62. package/dist/client/web/index.html +1 -1
  63. package/dist/client/web/index.js +17 -7
  64. package/dist/client/web/index.js.map +1 -1
  65. package/dist/client/web/themes.d.ts +2 -0
  66. package/dist/client/web/themes.js +22 -0
  67. package/dist/client/web/themes.js.map +1 -0
  68. package/dist/creevey.js +16 -9
  69. package/dist/creevey.js.map +1 -1
  70. package/dist/index.d.ts +1 -0
  71. package/dist/server/config.d.ts +1 -1
  72. package/dist/server/config.js +30 -7
  73. package/dist/server/config.js.map +1 -1
  74. package/dist/server/connection.d.ts +3 -0
  75. package/dist/server/connection.js +28 -0
  76. package/dist/server/connection.js.map +1 -0
  77. package/dist/server/docker.d.ts +1 -1
  78. package/dist/server/docker.js +56 -32
  79. package/dist/server/docker.js.map +1 -1
  80. package/dist/server/index.js +64 -11
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/logger.d.ts +2 -1
  83. package/dist/server/logger.js +7 -3
  84. package/dist/server/logger.js.map +1 -1
  85. package/dist/server/master/api.js +1 -1
  86. package/dist/server/master/api.js.map +1 -1
  87. package/dist/server/master/pool.d.ts +4 -3
  88. package/dist/server/master/pool.js +13 -66
  89. package/dist/server/master/pool.js.map +1 -1
  90. package/dist/server/master/queue.d.ts +13 -0
  91. package/dist/server/master/queue.js +71 -0
  92. package/dist/server/master/queue.js.map +1 -0
  93. package/dist/server/master/runner.d.ts +3 -0
  94. package/dist/server/master/runner.js +78 -10
  95. package/dist/server/master/runner.js.map +1 -1
  96. package/dist/server/master/server.js +1 -1
  97. package/dist/server/master/server.js.map +1 -1
  98. package/dist/server/master/start.js +13 -11
  99. package/dist/server/master/start.js.map +1 -1
  100. package/dist/server/playwright/docker-file.d.ts +1 -1
  101. package/dist/server/playwright/docker-file.js +15 -6
  102. package/dist/server/playwright/docker-file.js.map +1 -1
  103. package/dist/server/playwright/docker.d.ts +2 -1
  104. package/dist/server/playwright/docker.js +10 -2
  105. package/dist/server/playwright/docker.js.map +1 -1
  106. package/dist/server/playwright/index-source.mjs +16 -0
  107. package/dist/server/playwright/internal.d.ts +6 -6
  108. package/dist/server/playwright/internal.js +143 -91
  109. package/dist/server/playwright/internal.js.map +1 -1
  110. package/dist/server/playwright/webdriver.d.ts +1 -1
  111. package/dist/server/playwright/webdriver.js +5 -8
  112. package/dist/server/playwright/webdriver.js.map +1 -1
  113. package/dist/server/providers/browser.js +6 -4
  114. package/dist/server/providers/browser.js.map +1 -1
  115. package/dist/server/providers/hybrid.js +1 -1
  116. package/dist/server/providers/hybrid.js.map +1 -1
  117. package/dist/server/reporters/creevey.d.ts +7 -0
  118. package/dist/server/reporters/creevey.js +63 -0
  119. package/dist/server/reporters/creevey.js.map +1 -0
  120. package/dist/server/reporters/index.d.ts +2 -0
  121. package/dist/server/reporters/index.js +16 -0
  122. package/dist/server/reporters/index.js.map +1 -0
  123. package/dist/server/reporters/junit.d.ts +16 -0
  124. package/dist/server/reporters/junit.js +165 -0
  125. package/dist/server/reporters/junit.js.map +1 -0
  126. package/dist/server/reporters/teamcity.d.ts +7 -0
  127. package/dist/server/reporters/teamcity.js +60 -0
  128. package/dist/server/reporters/teamcity.js.map +1 -0
  129. package/dist/server/selenium/internal.d.ts +3 -4
  130. package/dist/server/selenium/internal.js +127 -108
  131. package/dist/server/selenium/internal.js.map +1 -1
  132. package/dist/server/selenium/selenoid.js +8 -6
  133. package/dist/server/selenium/selenoid.js.map +1 -1
  134. package/dist/server/selenium/webdriver.d.ts +1 -1
  135. package/dist/server/selenium/webdriver.js +5 -9
  136. package/dist/server/selenium/webdriver.js.map +1 -1
  137. package/dist/server/telemetry.js +2 -2
  138. package/dist/server/testsFiles/parser.js +45 -5
  139. package/dist/server/testsFiles/parser.js.map +1 -1
  140. package/dist/server/utils.d.ts +19 -1
  141. package/dist/server/utils.js +87 -8
  142. package/dist/server/utils.js.map +1 -1
  143. package/dist/server/webdriver.d.ts +5 -4
  144. package/dist/server/webdriver.js +23 -10
  145. package/dist/server/webdriver.js.map +1 -1
  146. package/dist/server/worker/chai-image.d.ts +1 -2
  147. package/dist/server/worker/chai-image.js +4 -3
  148. package/dist/server/worker/chai-image.js.map +1 -1
  149. package/dist/server/worker/context.d.ts +3 -0
  150. package/dist/server/worker/context.js +15 -0
  151. package/dist/server/worker/context.js.map +1 -0
  152. package/dist/server/worker/match-image.d.ts +4 -4
  153. package/dist/server/worker/match-image.js +7 -4
  154. package/dist/server/worker/match-image.js.map +1 -1
  155. package/dist/server/worker/start.js +47 -73
  156. package/dist/server/worker/start.js.map +1 -1
  157. package/dist/shared/index.d.ts +1 -1
  158. package/dist/types.d.ts +46 -10
  159. package/dist/types.js +2 -0
  160. package/dist/types.js.map +1 -1
  161. package/docs/cli.md +12 -0
  162. package/docs/config.md +179 -165
  163. package/docs/storybook.md +60 -0
  164. package/docs/tests.md +50 -45
  165. package/package.json +64 -63
  166. package/src/client/addon/components/Panel.tsx +2 -2
  167. package/src/client/addon/withCreevey.ts +10 -2
  168. package/src/client/shared/components/ImagesView/SwapView.tsx +18 -0
  169. package/src/client/shared/components/PageHeader/ImagePreview.tsx +1 -0
  170. package/src/client/shared/components/PageHeader/PageHeader.tsx +4 -2
  171. package/src/client/shared/components/ResultsPage.tsx +31 -8
  172. package/src/client/shared/creeveyClientApi.ts +9 -1
  173. package/src/client/shared/helpers.ts +4 -24
  174. package/src/client/web/CreeveyApp.tsx +27 -8
  175. package/src/client/web/CreeveyContext.tsx +9 -0
  176. package/src/client/web/CreeveyLoader.tsx +1 -1
  177. package/src/client/web/CreeveyView/SideBar/Search.tsx +3 -3
  178. package/src/client/web/CreeveyView/SideBar/SideBar.tsx +1 -0
  179. package/src/client/web/CreeveyView/SideBar/SideBarFooter.tsx +37 -6
  180. package/src/client/web/CreeveyView/SideBar/SuiteLink.tsx +3 -5
  181. package/src/client/web/CreeveyView/SideBar/TestLink.tsx +2 -4
  182. package/src/client/web/KeyboardEventsContext.tsx +61 -73
  183. package/src/client/web/themes.ts +24 -0
  184. package/src/creevey.ts +16 -10
  185. package/src/server/config.ts +30 -7
  186. package/src/server/connection.ts +26 -0
  187. package/src/server/docker.ts +63 -34
  188. package/src/server/index.ts +72 -14
  189. package/src/server/logger.ts +6 -2
  190. package/src/server/master/api.ts +1 -1
  191. package/src/server/master/pool.ts +23 -59
  192. package/src/server/master/queue.ts +77 -0
  193. package/src/server/master/runner.ts +96 -10
  194. package/src/server/master/server.ts +1 -1
  195. package/src/server/master/start.ts +16 -11
  196. package/src/server/playwright/docker-file.ts +18 -6
  197. package/src/server/playwright/docker.ts +16 -3
  198. package/src/server/playwright/index-source.mjs +16 -0
  199. package/src/server/playwright/internal.ts +182 -111
  200. package/src/server/playwright/webdriver.ts +6 -9
  201. package/src/server/providers/browser.ts +6 -4
  202. package/src/server/providers/hybrid.ts +1 -1
  203. package/src/server/reporters/creevey.ts +71 -0
  204. package/src/server/reporters/index.ts +11 -0
  205. package/src/server/reporters/junit.ts +205 -0
  206. package/src/server/reporters/teamcity.ts +74 -0
  207. package/src/server/selenium/internal.ts +131 -116
  208. package/src/server/selenium/selenoid.ts +8 -6
  209. package/src/server/selenium/webdriver.ts +6 -10
  210. package/src/server/telemetry.ts +2 -2
  211. package/src/server/testsFiles/parser.ts +52 -4
  212. package/src/server/utils.ts +97 -9
  213. package/src/server/webdriver.ts +24 -16
  214. package/src/server/worker/chai-image.ts +4 -4
  215. package/src/server/worker/context.ts +14 -0
  216. package/src/server/worker/match-image.ts +12 -8
  217. package/src/server/worker/start.ts +51 -86
  218. package/src/shared/index.ts +1 -1
  219. package/src/types.ts +50 -11
  220. package/types/global.d.ts +1 -0
  221. package/.yarnrc.yml +0 -1
  222. package/chromatic.config.json +0 -5
  223. package/dist/client/web/assets/index-DkmZfG9C.js +0 -591
  224. package/dist/server/reporter.d.ts +0 -26
  225. package/dist/server/reporter.js +0 -108
  226. package/dist/server/reporter.js.map +0 -1
  227. package/src/server/reporter.ts +0 -138
@@ -58,15 +58,19 @@ async function openUrlAndWaitForPageSource(browser, url, predicate) {
58
58
  } while (predicate(source));
59
59
  return source;
60
60
  }
61
- async function buildWebdriver(browserName, gridUrl, config, options) {
62
- const browserConfig = config.browsers[browserName];
63
- const { /*customizeBuilder,*/ seleniumCapabilities } = browserConfig;
61
+ async function buildWebdriver(browser, gridUrl, config, options) {
62
+ const browserConfig = config.browsers[browser];
63
+ const { /*customizeBuilder,*/ seleniumCapabilities, browserName } = browserConfig;
64
64
  const url = new URL(gridUrl);
65
65
  url.username = url.username ? '********' : '';
66
66
  url.password = url.password ? '********' : '';
67
- logger_js_1.logger.debug(`(${browserName}) Connecting to Selenium ${chalk_1.default.magenta(url.toString())}`);
67
+ (0, logger_js_1.logger)().debug(`Connecting to Selenium ${chalk_1.default.magenta(url.toString())}`);
68
68
  // TODO Define some capabilities explicitly and define typings
69
- const capabilities = new selenium_webdriver_1.Capabilities({ ...seleniumCapabilities, pageLoadStrategy: capabilities_js_1.PageLoadStrategy.EAGER });
69
+ const capabilities = new selenium_webdriver_1.Capabilities({
70
+ browserName,
71
+ ...seleniumCapabilities,
72
+ pageLoadStrategy: capabilities_js_1.PageLoadStrategy.EAGER,
73
+ });
70
74
  const prefs = new selenium_webdriver_1.logging.Preferences();
71
75
  if (options.trace) {
72
76
  for (const type of Object.values(selenium_webdriver_1.logging.Type)) {
@@ -76,47 +80,74 @@ async function buildWebdriver(browserName, gridUrl, config, options) {
76
80
  // TODO Fetch selenium grid capabilities
77
81
  // TODO Validate browsers, versions, and platform
78
82
  // TODO Use `customizeBuilder`
79
- let browser;
83
+ let webdriver;
80
84
  try {
81
- // const ie = new IeOptions();
82
- // const edge = new EdgeOptions();
83
- // const chrome = new ChromeOptions();
84
- // const safari = new SafariOptions();
85
- // const firefox = new FirefoxOptions();
86
- // edge.enableBidi();
87
- // chrome.enableBidi();
88
- // firefox.enableBidi();
89
- browser = await new selenium_webdriver_1.Builder()
90
- // .setIeOptions(ie)
91
- // .setEdgeOptions(edge)
92
- // .setChromeOptions(chrome)
93
- // .setSafariOptions(safari)
94
- // .setFirefoxOptions(firefox)
95
- .usingServer(gridUrl)
96
- .withCapabilities(capabilities)
97
- .setLoggingPrefs(prefs) // NOTE: Should go last
98
- .build();
99
- // const id = await browser.getWindowHandle();
100
- // context = await BrowsingContext(browser, { browsingContextId: id });
85
+ const maxRetries = 5;
86
+ let retries = 0;
87
+ do {
88
+ webdriver = await Promise.race([
89
+ new Promise((resolve) => {
90
+ setTimeout(() => {
91
+ retries += 1;
92
+ resolve(null);
93
+ }, 120_000);
94
+ }),
95
+ (async () => {
96
+ if (retries > 0) {
97
+ (0, logger_js_1.logger)().debug(`Trying to initialize session to Selenium Grid: retried ${retries} of ${maxRetries}`);
98
+ }
99
+ const retry = retries;
100
+ // const ie = new IeOptions();
101
+ // const edge = new EdgeOptions();
102
+ // const chrome = new ChromeOptions();
103
+ // const safari = new SafariOptions();
104
+ // const firefox = new FirefoxOptions();
105
+ // edge.enableBidi();
106
+ // chrome.enableBidi();
107
+ // firefox.enableBidi();
108
+ const driver = await new selenium_webdriver_1.Builder()
109
+ // .setIeOptions(ie)
110
+ // .setEdgeOptions(edge)
111
+ // .setChromeOptions(chrome)
112
+ // .setSafariOptions(safari)
113
+ // .setFirefoxOptions(firefox)
114
+ .usingServer(gridUrl)
115
+ .withCapabilities(capabilities)
116
+ .setLoggingPrefs(prefs) // NOTE: Should go last
117
+ .build();
118
+ // const id = await driver.getWindowHandle();
119
+ // context = await BrowsingContext(driver, { browsingContextId: id });
120
+ if (retry != retries) {
121
+ void driver.quit();
122
+ return null;
123
+ }
124
+ return driver;
125
+ })(),
126
+ ]);
127
+ if (webdriver)
128
+ break;
129
+ } while (retries < maxRetries);
130
+ if (!webdriver)
131
+ throw new Error('Failed to initialize session to Selenium Grid due to many retries');
101
132
  }
102
133
  catch (error) {
103
- logger_js_1.logger.error(`(${browserName}) Failed to start browser:`, error);
134
+ (0, logger_js_1.logger)().error(`Failed to start browser:`, error);
104
135
  return null;
105
136
  }
106
- return browser;
137
+ return webdriver;
107
138
  }
108
139
  class InternalBrowser {
109
140
  #isShuttingDown = false;
110
141
  #browser;
111
142
  #serverHost = null;
112
143
  #serverPort;
113
- #logger;
144
+ #storybookGlobals;
114
145
  #unsubscribe = types_js_1.noop;
115
146
  #keepAliveInterval = null;
116
- constructor(browser, port, logger) {
147
+ constructor(browser, port, storybookGlobals) {
117
148
  this.#browser = browser;
118
149
  this.#serverPort = port;
119
- this.#logger = logger;
150
+ this.#storybookGlobals = storybookGlobals;
120
151
  this.#unsubscribe = (0, messages_js_1.subscribeOn)('shutdown', () => {
121
152
  void this.closeBrowser();
122
153
  });
@@ -141,25 +172,25 @@ class InternalBrowser {
141
172
  async takeScreenshot(captureElement, ignoreElements) {
142
173
  let screenshot;
143
174
  const ignoreStyles = await this.insertIgnoreStyles(ignoreElements);
144
- if (this.#logger.getLevel() <= loglevel_1.default.levels.DEBUG) {
175
+ if ((0, logger_js_1.logger)().getLevel() <= loglevel_1.default.levels.DEBUG) {
145
176
  const { innerWidth, innerHeight } = await this.#browser.executeScript(function () {
146
177
  return {
147
178
  innerWidth: window.innerWidth,
148
179
  innerHeight: window.innerHeight,
149
180
  };
150
181
  });
151
- this.#logger.debug(`Viewport size is: ${innerWidth}x${innerHeight}`);
182
+ (0, logger_js_1.logger)().debug(`Viewport size is: ${innerWidth}x${innerHeight}`);
152
183
  }
153
184
  try {
154
185
  if (!captureElement) {
155
- this.#logger.debug('Capturing viewport screenshot');
186
+ (0, logger_js_1.logger)().debug('Capturing viewport screenshot');
156
187
  screenshot = await this.#browser.takeScreenshot();
157
- this.#logger.debug('Viewport screenshot is captured');
188
+ (0, logger_js_1.logger)().debug('Viewport screenshot is captured');
158
189
  }
159
190
  else {
160
- this.#logger.debug(`Checking is element ${chalk_1.default.cyan(captureElement)} fit into viewport`);
191
+ (0, logger_js_1.logger)().debug(`Checking is element ${chalk_1.default.cyan(captureElement)} fit into viewport`);
161
192
  const rects = await this.#browser.executeScript(function (selector) {
162
- window.scrollTo(0, 0); // TODO Maybe we should remove same code from `resetMousePosition`
193
+ window.scrollTo(0, 0);
163
194
  // eslint-disable-next-line no-var
164
195
  var element = document.querySelector(selector);
165
196
  if (!element)
@@ -175,9 +206,7 @@ class InternalBrowser {
175
206
  },
176
207
  // NOTE page_Offset is used only for IE9-11
177
208
  windowRect: {
178
- // eslint-disable-next-line @typescript-eslint/no-deprecated
179
209
  top: Math.round(window.scrollY || window.pageYOffset),
180
- // eslint-disable-next-line @typescript-eslint/no-deprecated
181
210
  left: Math.round(window.scrollX || window.pageXOffset),
182
211
  width: window.innerWidth,
183
212
  height: window.innerHeight,
@@ -190,22 +219,20 @@ class InternalBrowser {
190
219
  const isFitIntoViewport = elementRect.width + elementRect.left <= windowRect.width &&
191
220
  elementRect.height + elementRect.top <= windowRect.height;
192
221
  if (isFitIntoViewport) {
193
- this.#logger.debug(`Capturing ${chalk_1.default.cyan(captureElement)} with size: ${elementRect.width}x${elementRect.height}`);
222
+ (0, logger_js_1.logger)().debug(`Capturing ${chalk_1.default.cyan(captureElement)} with size: ${elementRect.width}x${elementRect.height}`);
194
223
  }
195
224
  else
196
- this.#logger.debug(`Capturing composite screenshot image of ${chalk_1.default.cyan(captureElement)} with size: ${elementRect.width}x${elementRect.height}`);
225
+ (0, logger_js_1.logger)().debug(`Capturing composite screenshot image of ${chalk_1.default.cyan(captureElement)} with size: ${elementRect.width}x${elementRect.height}`);
197
226
  // const element = await browser.findElement(By.css(captureElement));
198
227
  // screenshot = isFitIntoViewport
199
228
  // ? context
200
229
  // ? await context.captureElementScreenshot(await element.getId())
201
230
  // : await browser.findElement(By.css(captureElement)).takeScreenshot()
202
- // : // TODO pointer-events: none, need to research
203
- // await takeCompositeScreenshot(browser, windowRect, elementRect);
231
+ // : await takeCompositeScreenshot(browser, windowRect, elementRect);
204
232
  screenshot = isFitIntoViewport
205
233
  ? await this.#browser.findElement(selenium_webdriver_1.By.css(captureElement)).takeScreenshot()
206
- : // TODO pointer-events: none, need to research
207
- await this.takeCompositeScreenshot(windowRect, elementRect);
208
- this.#logger.debug(`${chalk_1.default.cyan(captureElement)} is captured`);
234
+ : await this.takeCompositeScreenshot(windowRect, elementRect);
235
+ (0, logger_js_1.logger)().debug(`${chalk_1.default.cyan(captureElement)} is captured`);
209
236
  }
210
237
  }
211
238
  finally {
@@ -222,9 +249,10 @@ class InternalBrowser {
222
249
  }
223
250
  async selectStory(id, waitForReady = false) {
224
251
  // NOTE: Global variables might be reset after hot reload. I think it's workaround, maybe we need better solution
252
+ await this.updateStorybookGlobals();
225
253
  await this.updateBrowserGlobalVariables();
226
254
  await this.resetMousePosition();
227
- this.#logger.debug(`Triggering 'SetCurrentStory' event with storyId ${chalk_1.default.magenta(id)}`);
255
+ (0, logger_js_1.logger)().debug(`Triggering 'SetCurrentStory' event with storyId ${chalk_1.default.magenta(id)}`);
228
256
  const result = await this.#browser.executeAsyncScript(function (storyId, shouldWaitForReady, callback) {
229
257
  if (typeof window.__CREEVEY_SELECT_STORY__ == 'undefined') {
230
258
  callback([
@@ -257,14 +285,14 @@ class InternalBrowser {
257
285
  return stories;
258
286
  }
259
287
  async afterTest(test) {
260
- if (this.#logger.getLevel() === loglevel_1.default.levels.TRACE) {
288
+ if ((0, logger_js_1.logger)().getLevel() === loglevel_1.default.levels.TRACE) {
261
289
  const output = [];
262
290
  const types = await this.#browser.manage().logs().getAvailableLogTypes();
263
291
  for (const type of types) {
264
292
  const logs = await this.#browser.manage().logs().get(type);
265
293
  output.push(logs.map((log) => JSON.stringify(log.toJSON(), null, 2)).join('\n'));
266
294
  }
267
- this.#logger.debug('----------', (0, utils_js_1.getTestPath)(test).join('/'), '----------\n', output.join('\n'), '\n----------------------------------------------------------------------------------------------------');
295
+ (0, logger_js_1.logger)().debug('----------', (0, utils_js_1.getTestPath)(test).join('/'), '----------\n', output.join('\n'), '\n----------------------------------------------------------------------------------------------------');
268
296
  }
269
297
  }
270
298
  static async getBrowser(browserName, gridUrl, config, options) {
@@ -274,7 +302,7 @@ class InternalBrowser {
274
302
  const browser = await buildWebdriver(browserName, gridUrl, config, options);
275
303
  if (!browser)
276
304
  return null;
277
- const internalBrowser = new InternalBrowser(browser, options.port, logger_js_1.logger);
305
+ const internalBrowser = new InternalBrowser(browser, options.port, _storybookGlobals);
278
306
  try {
279
307
  if (utils_js_1.isShuttingDown.current)
280
308
  return null;
@@ -283,22 +311,20 @@ class InternalBrowser {
283
311
  gridUrl,
284
312
  viewport,
285
313
  storybookUrl: address,
286
- storybookGlobals: _storybookGlobals,
287
- resolveStorybookUrl: config.resolveStorybookUrl,
288
314
  });
289
315
  return done ? internalBrowser : null;
290
316
  }
291
317
  catch (originalError) {
292
318
  void internalBrowser.closeBrowser();
293
- const message = originalError instanceof Error ? originalError.message : originalError;
294
- const error = new Error(`Can't load storybook root page by URL ${await browser.getCurrentUrl()}: ${message}`);
319
+ const message = originalError instanceof Error ? originalError.message : (originalError ?? 'Unknown error');
320
+ const error = new Error(`Can't load storybook root page: ${message}`);
295
321
  if (originalError instanceof Error)
296
322
  error.stack = originalError.stack;
297
- logger_js_1.logger.error(error);
323
+ (0, logger_js_1.logger)().error(error);
298
324
  return null;
299
325
  }
300
326
  }
301
- async init({ browserName, gridUrl, viewport, storybookUrl, storybookGlobals, resolveStorybookUrl, }) {
327
+ async init({ browserName, gridUrl, viewport, storybookUrl, }) {
302
328
  const sessionId = (await this.#browser.getSession()).getId();
303
329
  let browserHost = '';
304
330
  try {
@@ -309,19 +335,18 @@ class InternalBrowser {
309
335
  catch {
310
336
  /* noop */
311
337
  }
312
- this.#logger = loglevel_1.default.getLogger(sessionId);
313
- loglevel_plugin_prefix_1.default.apply(this.#logger, {
338
+ loglevel_plugin_prefix_1.default.apply((0, logger_js_1.logger)(), {
314
339
  format(level) {
315
340
  const levelColor = logger_js_1.colors[level.toUpperCase()];
316
- return `[${browserName}:${chalk_1.default.gray(sessionId)}] ${levelColor(level)} =>`;
341
+ return `[${browserName}:${chalk_1.default.gray(process.pid)}] ${levelColor(level)} => ${chalk_1.default.gray(sessionId)}`;
317
342
  },
318
343
  });
319
- this.#logger.debug(`Connected successful with ${chalk_1.default.green(browserHost)}`);
344
+ (0, logger_js_1.logger)().debug(`Connected successful with ${chalk_1.default.green(browserHost)}`);
320
345
  return await (0, utils_js_1.runSequence)([
321
- () => this.#browser.manage().setTimeouts({ pageLoad: 10000, script: 60000 }),
322
- () => this.openStorybookPage(storybookUrl, resolveStorybookUrl),
346
+ () => this.#browser.manage().setTimeouts({ pageLoad: 60000, script: 60000 }),
347
+ () => this.openStorybookPage(storybookUrl),
323
348
  () => this.waitForStorybook(),
324
- () => this.updateStorybookGlobals(storybookGlobals),
349
+ () => this.updateStorybookGlobals(),
325
350
  () => this.resolveCreeveyHost(),
326
351
  () => this.updateBrowserGlobalVariables(),
327
352
  // NOTE: Selenium draws automation toolbar with some delay after webdriver initialization
@@ -333,33 +358,25 @@ class InternalBrowser {
333
358
  },
334
359
  ], () => !this.#isShuttingDown);
335
360
  }
336
- async openStorybookPage(storybookUrl, resolver) {
361
+ async openStorybookPage(storybookUrl) {
337
362
  if (!webdriver_js_1.LOCALHOST_REGEXP.test(storybookUrl)) {
338
363
  return this.#browser.get((0, webdriver_js_1.appendIframePath)(storybookUrl));
339
364
  }
340
365
  try {
341
- if (resolver) {
342
- this.#logger.debug('Resolving storybook url with custom resolver');
343
- const resolvedUrl = await resolver();
344
- this.#logger.debug(`Resolver storybook url ${resolvedUrl}`);
345
- await this.#browser.get((0, webdriver_js_1.appendIframePath)(resolvedUrl));
346
- }
347
- else {
348
- // NOTE: getUrlChecker already calls `browser.get` so we don't need another one
349
- await (0, webdriver_js_1.resolveStorybookUrl)((0, webdriver_js_1.appendIframePath)(storybookUrl), (url) => this.checkUrl(url), this.#logger);
350
- }
366
+ // NOTE: getUrlChecker already calls `browser.get` so we don't need another one
367
+ await (0, webdriver_js_1.resolveStorybookUrl)((0, webdriver_js_1.appendIframePath)(storybookUrl), (url) => this.checkUrl(url));
351
368
  }
352
369
  catch (error) {
353
- this.#logger.error('Failed to resolve storybook URL', error instanceof Error ? error.message : '');
370
+ (0, logger_js_1.logger)().error('Failed to resolve storybook URL', error instanceof Error ? error.message : '');
354
371
  throw error;
355
372
  }
356
373
  }
357
374
  async checkUrl(url) {
358
375
  try {
359
376
  // NOTE: Before trying a new url, reset the current one
360
- this.#logger.debug(`Opening ${chalk_1.default.magenta('about:blank')} page`);
377
+ (0, logger_js_1.logger)().debug(`Opening ${chalk_1.default.magenta('about:blank')} page`);
361
378
  await openUrlAndWaitForPageSource(this.#browser, 'about:blank', (source) => !source.includes('<body></body>'));
362
- this.#logger.debug(`Opening ${chalk_1.default.magenta(url)} and checking the page source`);
379
+ (0, logger_js_1.logger)().debug(`Opening ${chalk_1.default.magenta(url)} and checking the page source`);
363
380
  const source = await openUrlAndWaitForPageSource(this.#browser, url,
364
381
  // NOTE: IE11 can return only `head` without body
365
382
  (source) => source.length == 0 || !/<body([^>]*>).+<\/body>/s.test(source));
@@ -368,7 +385,7 @@ class InternalBrowser {
368
385
  // because other add significant delay and some of them don't work in earlier chrome versions
369
386
  // Browsers always load page successful even it's failed
370
387
  // So we just check `root` element
371
- this.#logger.debug(`Checking ${chalk_1.default.cyan(`#${webdriver_js_1.storybookRootID}`)} existence on ${chalk_1.default.magenta(url)}`);
388
+ (0, logger_js_1.logger)().debug(`Checking ${chalk_1.default.cyan(`#${webdriver_js_1.storybookRootID}`)} existence on ${chalk_1.default.magenta(url)}`);
372
389
  return source.includes(`id="${webdriver_js_1.storybookRootID}"`);
373
390
  }
374
391
  catch {
@@ -376,7 +393,7 @@ class InternalBrowser {
376
393
  }
377
394
  }
378
395
  async waitForStorybook() {
379
- this.#logger.debug('Waiting for `setStories` event to make sure that storybook is initiated');
396
+ (0, logger_js_1.logger)().debug('Waiting for Storybook to initiate');
380
397
  const isTimeout = await Promise.race([
381
398
  new Promise((resolve) => {
382
399
  setTimeout(() => {
@@ -386,37 +403,28 @@ class InternalBrowser {
386
403
  (async () => {
387
404
  let wait = true;
388
405
  do {
389
- try {
390
- // TODO Research a different way to ensure storybook is initiated
391
- wait = await this.#browser.executeScript(function (SET_GLOBALS) {
392
- // TODO Maybe use
393
- // import { global } from '@storybook/global';
394
- // global.IS_STORYBOOK
395
- if (typeof window.__STORYBOOK_ADDONS_CHANNEL__ == 'undefined')
396
- return true;
397
- if (window.__STORYBOOK_ADDONS_CHANNEL__.last(SET_GLOBALS) == undefined)
398
- return true;
399
- return false;
400
- }, types_js_1.StorybookEvents.SET_GLOBALS);
401
- }
402
- catch (e) {
403
- this.#logger.debug('An error has been caught during the script:', e);
404
- }
406
+ // TODO Research a different way to ensure storybook is initiated
407
+ wait = await this.#browser.executeScript(function (SET_GLOBALS) {
408
+ if (typeof window.__STORYBOOK_ADDONS_CHANNEL__ == 'undefined')
409
+ return true;
410
+ if (window.__STORYBOOK_ADDONS_CHANNEL__.last(SET_GLOBALS) == undefined)
411
+ return true;
412
+ return false;
413
+ }, types_js_1.StorybookEvents.SET_GLOBALS);
405
414
  } while (wait);
406
415
  return false;
407
416
  })(),
408
417
  ]);
409
- // TODO Change the message to describe a reason why it might happen
410
418
  if (isTimeout)
411
- throw new Error('Failed to wait `setStories` event');
419
+ throw new Error('Failed to wait Storybook init');
412
420
  }
413
- async updateStorybookGlobals(globals) {
414
- if (!globals)
421
+ async updateStorybookGlobals() {
422
+ if (!this.#storybookGlobals)
415
423
  return;
416
- this.#logger.debug('Applying storybook globals');
424
+ (0, logger_js_1.logger)().debug('Applying storybook globals');
417
425
  await this.#browser.executeScript(function (globals) {
418
426
  window.__CREEVEY_UPDATE_GLOBALS__(globals);
419
- }, globals);
427
+ }, this.#storybookGlobals);
420
428
  }
421
429
  async resolveCreeveyHost() {
422
430
  const addresses = (0, webdriver_js_1.getAddresses)();
@@ -448,6 +456,7 @@ class InternalBrowser {
448
456
  }
449
457
  async updateBrowserGlobalVariables() {
450
458
  await this.#browser.executeScript(function (workerId, creeveyHost, creeveyPort) {
459
+ window.__CREEVEY_ENV__ = true;
451
460
  window.__CREEVEY_WORKER_ID__ = workerId;
452
461
  window.__CREEVEY_SERVER_HOST__ = creeveyHost;
453
462
  window.__CREEVEY_SERVER_PORT__ = creeveyPort;
@@ -463,7 +472,7 @@ class InternalBrowser {
463
472
  innerHeight: window.innerHeight,
464
473
  };
465
474
  });
466
- this.#logger.debug(`Resizing viewport from ${innerWidth}x${innerHeight} to ${viewport.width}x${viewport.height}`);
475
+ (0, logger_js_1.logger)().debug(`Resizing viewport from ${innerWidth}x${innerHeight} to ${viewport.width}x${viewport.height}`);
467
476
  const dWidth = windowRect.width - innerWidth;
468
477
  const dHeight = windowRect.height - innerHeight;
469
478
  await this.#browser
@@ -475,7 +484,7 @@ class InternalBrowser {
475
484
  });
476
485
  }
477
486
  async resetMousePosition() {
478
- this.#logger.debug('Resetting mouse position to the top-left corner');
487
+ (0, logger_js_1.logger)().debug('Resetting mouse position to the top-left corner');
479
488
  const browserName = (await this.#browser.getCapabilities()).getBrowserName();
480
489
  const [browserVersion] = (await this.#browser.getCapabilities()).getBrowserVersion()?.split('.') ??
481
490
  (await this.#browser.getCapabilities()).get('version')?.split('.') ??
@@ -501,8 +510,9 @@ class InternalBrowser {
501
510
  })
502
511
  .perform();
503
512
  }
504
- else if (browserName == 'firefox' && browserVersion == '61') {
513
+ else if (browserName == 'firefox') {
505
514
  // NOTE Firefox for some reason moving by 0 x 0 move cursor in bottom left corner :sad:
515
+ // NOTE In recent versions (eg 128.0) moving by 0 x 0 doesn't work at all
506
516
  await this.#browser.actions().move({ origin: selenium_webdriver_1.Origin.VIEWPORT, x: 0, y: 1 }).perform();
507
517
  }
508
518
  else {
@@ -514,7 +524,7 @@ class InternalBrowser {
514
524
  const ignoreSelectors = Array.prototype.concat(ignoreElements).filter(Boolean);
515
525
  if (!ignoreSelectors.length)
516
526
  return null;
517
- this.#logger.debug('Hiding ignored elements before capturing');
527
+ (0, logger_js_1.logger)().debug('Hiding ignored elements before capturing');
518
528
  return await this.#browser.executeScript(function (ignoreSelectors) {
519
529
  return window.__CREEVEY_INSERT_IGNORE_STYLES__(ignoreSelectors);
520
530
  }, ignoreSelectors);
@@ -575,7 +585,7 @@ class InternalBrowser {
575
585
  }
576
586
  async removeIgnoreStyles(ignoreStyles) {
577
587
  if (ignoreStyles) {
578
- this.#logger.debug('Revert hiding ignored elements');
588
+ (0, logger_js_1.logger)().debug('Revert hiding ignored elements');
579
589
  await this.#browser.executeScript(function (ignoreStyles) {
580
590
  window.__CREEVEY_REMOVE_IGNORE_STYLES__(ignoreStyles);
581
591
  }, ignoreStyles);
@@ -606,8 +616,17 @@ class InternalBrowser {
606
616
  keepAlive() {
607
617
  this.#keepAliveInterval = setInterval(() => {
608
618
  // NOTE Simple way to keep session alive
609
- void this.#browser.getCurrentUrl().then((url) => {
610
- logger_js_1.logger.debug('current url', chalk_1.default.magenta(url));
619
+ void this.#browser
620
+ .getCurrentUrl()
621
+ .then((url) => {
622
+ (0, logger_js_1.logger)().debug('current url', chalk_1.default.magenta(url));
623
+ })
624
+ .catch((error) => {
625
+ (0, logger_js_1.logger)().error(error);
626
+ (0, messages_js_1.emitWorkerMessage)({
627
+ type: 'error',
628
+ payload: { subtype: 'browser', error: 'Failed to ping browser' },
629
+ });
611
630
  });
612
631
  }, 10 * 1000);
613
632
  }
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/server/selenium/internal.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAC1B,gDAAwB;AACxB,kDAA0B;AAC1B,wDAA8B;AAC9B,oFAA4C;AAC5C,iCAA4B;AAC5B,2DAAuG;AACvG,gEAAgE;AAChE,oEAAoE;AACpE,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,4EAA0E;AAC1E,6CAUwB;AACxB,4CAA8C;AAC9C,gDAA6C;AAC7C,0CAAuE;AACvE,kDAMyB;AASzB,8DAA8D;AAC9D,4EAA4E;AAE5E,SAAS,cAAc,CAAC,IAAY,EAAE,SAAS,GAAG,EAAE;IAClD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,GAAG,SAAS,SAAS,EAAE,CAAC;IAExC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,CAAC,CAAC,cAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5E,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,SAAS,kBAAkB,GAAG,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7G,OAAO;QACT,CAAC;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;QACnD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CACJ,IAAI,KAAK,CACP,iCAAiC,SAAS,KACxC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,KAC7D,EAAE,CACH,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,OAAkB,EAClB,GAAW,EACX,SAAsC;IAEtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,GAAG,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,0FAA0F;QAC5F,CAAC;IACH,CAAC,QAAQ,SAAS,CAAC,MAAM,CAAC,EAAE;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,WAAmB,EACnB,OAAe,EACf,MAAc,EACd,OAAgB;IAEhB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAwB,CAAC;IAC1E,MAAM,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,GAAG,aAAa,CAAC;IAErE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,kBAAM,CAAC,KAAK,CAAC,IAAI,WAAW,4BAA4B,eAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEzF,8DAA8D;IAC9D,MAAM,YAAY,GAAG,IAAI,iCAAY,CAAC,EAAE,GAAG,oBAAoB,EAAE,gBAAgB,EAAE,kCAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7G,MAAM,KAAK,GAAG,IAAI,4BAAO,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,4BAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,4BAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,iDAAiD;IACjD,8BAA8B;IAE9B,IAAI,OAAkB,CAAC;IAEvB,IAAI,CAAC;QACH,8BAA8B;QAC9B,kCAAkC;QAClC,sCAAsC;QACtC,sCAAsC;QACtC,wCAAwC;QACxC,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QAExB,OAAO,GAAG,MAAM,IAAI,4BAAO,EAAE;YAC3B,oBAAoB;YACpB,wBAAwB;YACxB,4BAA4B;YAC5B,4BAA4B;YAC5B,8BAA8B;aAC7B,WAAW,CAAC,OAAO,CAAC;aACpB,gBAAgB,CAAC,YAAY,CAAC;aAC9B,eAAe,CAAC,KAAK,CAAC,CAAC,uBAAuB;aAC9C,KAAK,EAAE,CAAC;QAEX,8CAA8C;QAC9C,uEAAuE;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAM,CAAC,KAAK,CAAC,IAAI,WAAW,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAa,eAAe;IAC1B,eAAe,GAAG,KAAK,CAAC;IACxB,QAAQ,CAAY;IACpB,WAAW,GAAkB,IAAI,CAAC;IAClC,WAAW,CAAS;IACpB,OAAO,CAAgB;IACvB,YAAY,GAAe,eAAI,CAAC;IAChC,kBAAkB,GAA0B,IAAI,CAAC;IACjD,YAAY,OAAkB,EAAE,IAAY,EAAE,MAAqB;QACjE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAA,yBAAW,EAAC,UAAU,EAAE,GAAG,EAAE;YAC/C,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAEjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI;YAAE,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,cAA8B,EAAE,cAAyC;QAC5F,IAAI,UAA2B,CAAC;QAEhC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEnE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAGlE;gBACD,OAAO;oBACL,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,UAAU,IAAI,WAAW,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACpD,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,uBAAuB,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;gBAC1F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAE7C,UAAU,QAAgB;oBAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kEAAkE;oBACzF,kCAAkC;oBAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC/C,IAAI,CAAC,OAAO;wBAAE,OAAO;oBAErB,kCAAkC;oBAClC,IAAI,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;oBAElD,OAAO;wBACL,WAAW,EAAE;4BACX,GAAG,EAAE,WAAW,CAAC,GAAG;4BACpB,IAAI,EAAE,WAAW,CAAC,IAAI;4BACtB,KAAK,EAAE,WAAW,CAAC,KAAK;4BACxB,MAAM,EAAE,WAAW,CAAC,MAAM;yBAC3B;wBACD,2CAA2C;wBAC3C,UAAU,EAAE;4BACV,4DAA4D;4BAC5D,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC;4BACrD,4DAA4D;4BAC5D,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,WAAW,CAAC;4BACtD,KAAK,EAAE,MAAM,CAAC,UAAU;4BACxB,MAAM,EAAE,MAAM,CAAC,WAAW;yBAC3B;qBACF,CAAC;gBACJ,CAAC,EAAE,cAAc,CAAC,CAAC;gBACnB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;gBAEhD,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,cAAc,GAAG,CAAC,CAAC;gBAE7G,MAAM,iBAAiB,GACrB,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK;oBACxD,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;gBAE5D,IAAI,iBAAiB,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,aAAa,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAChG,CAAC;gBACJ,CAAC;;oBACC,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,2CAA2C,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAC9H,CAAC;gBAEJ,qEAAqE;gBACrE,iCAAiC;gBACjC,cAAc;gBACd,sEAAsE;gBACtE,2EAA2E;gBAC3E,qDAAqD;gBACrD,uEAAuE;gBACvE,UAAU,GAAG,iBAAiB;oBAC5B,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,uBAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE;oBAC1E,CAAC,CAAC,8CAA8C;wBAC9C,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;gBAEhE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACzF,CAAC;IAED,eAAe,CAAC,QAAwC;QACtD,KAAK,IAAI,CAAC,QAAQ;aACf,kBAAkB,CAAU,UAAU,QAAwC;YAC7E,KAAK,MAAM,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,YAAY,GAAG,KAAK;QAChD,iHAAiH;QACjH,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mDAAmD,eAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CACnD,UACE,OAAe,EACf,kBAA2B,EAC3B,QAAgF;YAEhF,IAAI,OAAO,MAAM,CAAC,wBAAwB,IAAI,WAAW,EAAE,CAAC;gBAC1D,QAAQ,CAAC;oBACP,+JAA+J;iBAChK,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,CAAC,EACD,EAAE,EACF,YAAY,CACb,CAAC;QAEF,MAAM,CAAC,YAAY,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;QAE7D,IAAI,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAEhD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAiB,EAAE,WAAiB;QACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CACpC,UACE,OAAe,EACf,WAAiB,EACjB,iBAAyB,EACzB,cAAsB,EACtB,QAAoB;YAEpB,MAAM,CAAC,4BAA4B,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,CAAC,4BAA4B,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC1D,OAAO;gBACP,WAAW;aACZ,CAAC,CAAC;QACL,CAAC,EACD,KAAK,CAAC,EAAE,EACR,WAAW,EACX,0BAAe,CAAC,iBAAiB,EACjC,0BAAe,CAAC,cAAc,CAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAyB,UAC7E,QAAmD;YAEnD,KAAK,MAAM,CAAC,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAEtG,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAgB;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,kBAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,oBAAoB,EAAE,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnF,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAChB,YAAY,EACZ,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC3B,cAAc,EACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,wGAAwG,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,WAAmB,EACnB,OAAe,EACf,MAAc,EACd,OAAgB;QAEhB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAwB,CAAC;QAC1E,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;QAC1G,KAAK,KAAK,CAAC;QAEX,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,kBAAM,CAAC,CAAC;QAE3E,IAAI,CAAC;YACH,IAAI,yBAAc,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAExC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC;gBACtC,WAAW;gBACX,OAAO;gBACP,QAAQ;gBACR,YAAY,EAAE,OAAO;gBACrB,gBAAgB,EAAE,iBAAiB;gBACnC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;aAChD,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,KAAK,eAAe,CAAC,YAAY,EAAE,CAAC;YAEpC,MAAM,OAAO,GAAG,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAE,aAAwB,CAAC;YACnG,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,yCAAyC,MAAM,OAAO,CAAC,aAAa,EAAE,KAAK,OAAO,EAAE,CAAC,CAAC;YAC9G,IAAI,aAAa,YAAY,KAAK;gBAAE,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;YAEtE,kBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEpB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,EACjB,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GAQpB;QACC,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7D,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1D,IAAI,OAAO,IAAI,IAAI,QAAQ;gBAAE,WAAW,GAAG,IAAI,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,kBAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3C,gCAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;YACzB,MAAM,CAAC,KAAK;gBACV,MAAM,UAAU,GAAG,kBAAM,CAAC,KAAK,CAAC,WAAW,EAAyB,CAAC,CAAC;gBACtE,OAAO,IAAI,WAAW,IAAI,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7E,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,6BAA6B,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE5E,OAAO,MAAM,IAAA,sBAAW,EACtB;YACE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC5E,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,mBAAmB,CAAC;YAC/D,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;YACnD,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACzC,yFAAyF;YACzF,6FAA6F;YAC7F,iGAAiG;YACjG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YACnC,GAAG,EAAE;gBACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;SACF,EACD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAC5B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,QAAgC;QACpF,IAAI,CAAC,+BAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,+BAAgB,EAAC,YAAY,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAEnE,MAAM,WAAW,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAErC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;gBAE5D,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,+BAAgB,EAAC,WAAW,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,+EAA+E;gBAC/E,MAAM,IAAA,kCAAmB,EAAC,IAAA,+BAAgB,EAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnG,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,uDAAuD;YACvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,eAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,2BAA2B,CAC/B,IAAI,CAAC,QAAQ,EACb,aAAa,EACb,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CACtD,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,eAAK,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAC9C,IAAI,CAAC,QAAQ,EACb,GAAG;YACH,iDAAiD;YACjD,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CACnF,CAAC;YACF,wEAAwE;YACxE,sDAAsD;YACtD,6FAA6F;YAC7F,wDAAwD;YACxD,kCAAkC;YAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,eAAK,CAAC,IAAI,CAAC,IAAI,8BAAe,EAAE,CAAC,iBAAiB,eAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvG,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,8BAAe,GAAG,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAE9F,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACnC,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;gBAC/B,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC,CAAC;YACF,CAAC,KAAK,IAAI,EAAE;gBACV,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,GAAG,CAAC;oBACF,IAAI,CAAC;wBACH,iEAAiE;wBACjE,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAU,UAAU,WAAmB;4BAC7E,iBAAiB;4BACjB,8CAA8C;4BAC9C,sBAAsB;4BACtB,IAAI,OAAO,MAAM,CAAC,4BAA4B,IAAI,WAAW;gCAAE,OAAO,IAAI,CAAC;4BAC3E,IAAI,MAAM,CAAC,4BAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS;gCAAE,OAAO,IAAI,CAAC;4BACpF,OAAO,KAAK,CAAC;wBACf,CAAC,EAAE,0BAAe,CAAC,WAAW,CAAC,CAAC;oBAClC,CAAC;oBAAC,OAAO,CAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC,QAAQ,IAAI,EAAE;gBACf,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,EAAE;SACL,CAAC,CAAC;QAEH,mEAAmE;QACnE,IAAI,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAA0B;QAC7D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,OAAyB;YACnE,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAC;QAEjC,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CACvD,UAAU,KAAe,EAAE,IAAY,EAAE,QAAwC;YAC/E,KAAK,OAAO,CAAC,GAAG,CACd,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI;gBACtB,OAAO,OAAO,CAAC,IAAI,CAAC;oBAClB,qEAAqE;oBACrE,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,QAAQ;wBACpE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACzB,CAAC,CAAC;oBACF,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;wBAC/B,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAC;iBACH,CAAC;qBACC,IAAI,CAAC,UAAU,IAAI;oBAClB,OAAO,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtC,CAAC,CAAC;qBACD,KAAK,CAAC;oBACL,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,UAAU,KAAK;gBACpB,QAAQ,CACN,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI;oBACvB,OAAO,IAAI,IAAI,IAAI,CAAC;gBACtB,CAAC,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,EACD,SAAS,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC7F,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACxC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAC/B,UAAU,QAAgB,EAAE,WAAmB,EAAE,WAAmB;YAClE,MAAM,CAAC,qBAAqB,GAAG,QAAQ,CAAC;YACxC,MAAM,CAAC,uBAAuB,GAAG,WAAW,CAAC;YAC7C,MAAM,CAAC,uBAAuB,GAAG,WAAW,CAAC;QAC/C,CAAC,EACD,OAAO,CAAC,GAAG,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAA4C;QACvE,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QACnE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CACnE;YACE,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,IAAI,WAAW,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAElH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC;QAChD,MAAM,IAAI,CAAC,QAAQ;aAChB,MAAM,EAAE;aACR,MAAM,EAAE;aACR,OAAO,CAAC;YACP,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM;YAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,OAAO;SAClC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;QAC7E,MAAM,CAAC,cAAc,CAAC,GACpB,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC;YACtE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAwB,EAAE,KAAK,CAAC,GAAG,CAAC;YAC1F,EAAE,CAAC;QAEL,4EAA4E;QAC5E,IAAI,WAAW,IAAI,QAAQ,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAc;gBAClF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAEvD,OAAO;oBACL,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,0EAA0E;YAC1E,MAAM,IAAI,CAAC,QAAQ;iBAChB,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBACzB,IAAI,CAAC;gBACJ,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,uBAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI;gBACrC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;aACtC,CAAC;iBACD,OAAO,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,WAAW,IAAI,SAAS,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC9D,uFAAuF;YACvF,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,2BAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,+FAA+F;YAC/F,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,2BAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACxF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,cAAyC;QACxE,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,eAAe,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAE/D,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,eAAyB;YAC1E,OAAO,MAAM,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;QAClE,CAAC,EAAE,eAAe,CAAC,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,UAAuB,EAAE,WAAwB;QACrF,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtD,sDAAsD;QACtD,MAAM,qBAAqB,GAAG;YAC5B,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI;YACxC,KAAK,EAAE,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI;YAC7D,GAAG,EAAE,WAAW,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG;YACrC,MAAM,EAAE,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG;SAC9D,CAAC;QACF,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC;QAC7F,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC;QAC5F,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAChF,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,CACvG,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CACtG,CAAC;QAEF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACvC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CACjB,aAAa,GAAG,GAAG,GAAG,qBAAqB,CAAC,IAAI,EAChD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,KAAK,GAAG,aAAa,CAAC,CACzD,CAAC;gBACF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CACjB,cAAc,GAAG,GAAG,GAAG,qBAAqB,CAAC,GAAG,EAChD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,CAAC,MAAM,GAAG,cAAc,CAAC,CAC3D,CAAC;gBACF,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAC/B,UAAU,CAAS,EAAE,CAAS;oBAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxB,CAAC,EACD,EAAE,EACF,EAAE,CACH,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,IAAI,WAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEjH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC;gBAClC,MAAM,YAAY,GAAG,eAAe,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;gBAC1F,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,CAAC;gBACL,2CAA2C;gBAC3C,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;oBACjF,qCAAqC;oBACrC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9D,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;gBACvC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,WAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,YAA+B;QAC9D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,YAA8B;gBACxE,MAAM,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC;YACxD,CAAC,EAAE,YAAY,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,YAAY;QACxB,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;QAC7E,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEvG,OAAO,CACL,WAAW,IAAI,QAAQ;YACvB,kDAAkD;YAClD,CAAC,CAAC,WAAW,IAAI,SAAS,IAAI,cAAc,IAAI,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAS;YAC/D,kCAAkC;YAClC,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACxC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,qDAAqD;YAC1E,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,kCAAkC;YAClC,IAAI,SAAS,GAAG,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;YAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAE/B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;YACzC,wCAAwC;YACxC,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9C,kBAAM,CAAC,KAAK,CAAC,aAAa,EAAE,eAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAChB,CAAC;CACF;AA/oBD,0CA+oBC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/server/selenium/internal.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ const path_1 = __importDefault(require("path"));
9
9
  const assert_1 = __importDefault(require("assert"));
10
10
  const fs_1 = require("fs");
11
11
  const promises_1 = require("fs/promises");
12
- const shelljs_1 = __importDefault(require("shelljs"));
12
+ const shelljs_1 = require("shelljs");
13
13
  const utils_js_1 = require("../utils.js");
14
14
  const docker_js_1 = require("../docker.js");
15
15
  const messages_js_1 = require("../messages.js");
@@ -19,8 +19,7 @@ async function createSelenoidConfig(browsers, { useDocker }) {
19
19
  (0, assert_1.default)(cacheDir, "Couldn't get cache directory");
20
20
  const selenoidConfigDir = path_1.default.join(cacheDir, 'selenoid');
21
21
  browsers.forEach(({ browserName, seleniumCapabilities: { browserVersion = 'latest' } = {}, dockerImage = `selenoid/${browserName}:${browserVersion}`, webdriverCommand = [], }) => {
22
- if (!selenoidConfig[browserName])
23
- selenoidConfig[browserName] = { default: browserVersion, versions: {} };
22
+ selenoidConfig[browserName] ??= { default: browserVersion, versions: {} };
24
23
  if (!useDocker && webdriverCommand.length == 0)
25
24
  throw new Error('Please specify "webdriverCommand" browser option with path to browser webdriver');
26
25
  selenoidConfig[browserName].versions[browserVersion] = {
@@ -68,12 +67,12 @@ async function startSelenoidStandalone(config, debug) {
68
67
  // TODO Download browser webdrivers
69
68
  try {
70
69
  if (process.platform != 'win32')
71
- shelljs_1.default.chmod('+x', binaryPath);
70
+ (0, shelljs_1.chmod)('+x', binaryPath);
72
71
  }
73
72
  catch {
74
73
  /* noop */
75
74
  }
76
- const selenoidProcess = shelljs_1.default.exec(`${binaryPath} -conf ./browsers.json -disable-docker`, {
75
+ const selenoidProcess = (0, shelljs_1.exec)(`${binaryPath} -conf ./browsers.json -disable-docker`, {
77
76
  async: true,
78
77
  cwd: selenoidConfigDir,
79
78
  });
@@ -81,7 +80,10 @@ async function startSelenoidStandalone(config, debug) {
81
80
  selenoidProcess.stdout?.pipe(process.stdout);
82
81
  selenoidProcess.stderr?.pipe(process.stderr);
83
82
  }
84
- (0, messages_js_1.subscribeOn)('shutdown', () => selenoidProcess.kill());
83
+ (0, messages_js_1.subscribeOn)('shutdown', () => {
84
+ if (selenoidProcess.pid)
85
+ void (0, utils_js_1.killTree)(selenoidProcess.pid);
86
+ });
85
87
  }
86
88
  async function startSelenoidContainer(config, debug) {
87
89
  const browsers = Object.values(config.browsers).filter((browser) => !browser.gridUrl);