@wdio/browserstack-service 0.0.0-canary-20260722132416

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 (331) hide show
  1. package/LICENSE-MIT +20 -0
  2. package/README.md +392 -0
  3. package/browserstack-service.d.ts +43 -0
  4. package/build/Percy/Percy-Handler.d.ts +32 -0
  5. package/build/Percy/Percy-Handler.d.ts.map +1 -0
  6. package/build/Percy/Percy-Handler.js +165 -0
  7. package/build/Percy/Percy-Handler.js.map +1 -0
  8. package/build/Percy/Percy.d.ts +19 -0
  9. package/build/Percy/Percy.d.ts.map +1 -0
  10. package/build/Percy/Percy.js +164 -0
  11. package/build/Percy/Percy.js.map +1 -0
  12. package/build/Percy/PercyBinary.d.ts +10 -0
  13. package/build/Percy/PercyBinary.d.ts.map +1 -0
  14. package/build/Percy/PercyBinary.js +161 -0
  15. package/build/Percy/PercyBinary.js.map +1 -0
  16. package/build/Percy/PercyCaptureMap.d.ts +9 -0
  17. package/build/Percy/PercyCaptureMap.d.ts.map +1 -0
  18. package/build/Percy/PercyCaptureMap.js +36 -0
  19. package/build/Percy/PercyCaptureMap.js.map +1 -0
  20. package/build/Percy/PercyHelper.d.ts +8 -0
  21. package/build/Percy/PercyHelper.d.ts.map +1 -0
  22. package/build/Percy/PercyHelper.js +68 -0
  23. package/build/Percy/PercyHelper.js.map +1 -0
  24. package/build/Percy/PercyLogger.d.ts +15 -0
  25. package/build/Percy/PercyLogger.d.ts.map +1 -0
  26. package/build/Percy/PercyLogger.js +68 -0
  27. package/build/Percy/PercyLogger.js.map +1 -0
  28. package/build/Percy/PercySDK.d.ts +4 -0
  29. package/build/Percy/PercySDK.d.ts.map +1 -0
  30. package/build/Percy/PercySDK.js +86 -0
  31. package/build/Percy/PercySDK.js.map +1 -0
  32. package/build/accessibility-handler.d.ts +52 -0
  33. package/build/accessibility-handler.d.ts.map +1 -0
  34. package/build/accessibility-handler.js +361 -0
  35. package/build/accessibility-handler.js.map +1 -0
  36. package/build/ai-handler.d.ts +23 -0
  37. package/build/ai-handler.d.ts.map +1 -0
  38. package/build/ai-handler.js +184 -0
  39. package/build/ai-handler.js.map +1 -0
  40. package/build/bstackLogger.d.ts +16 -0
  41. package/build/bstackLogger.d.ts.map +1 -0
  42. package/build/bstackLogger.js +71 -0
  43. package/build/bstackLogger.js.map +1 -0
  44. package/build/cleanup.d.ts +9 -0
  45. package/build/cleanup.d.ts.map +1 -0
  46. package/build/cleanup.js +101 -0
  47. package/build/cleanup.js.map +1 -0
  48. package/build/cli/apiUtils.d.ts +14 -0
  49. package/build/cli/apiUtils.d.ts.map +1 -0
  50. package/build/cli/apiUtils.js +25 -0
  51. package/build/cli/apiUtils.js.map +1 -0
  52. package/build/cli/cliLogger.d.ts +17 -0
  53. package/build/cli/cliLogger.d.ts.map +1 -0
  54. package/build/cli/cliLogger.js +82 -0
  55. package/build/cli/cliLogger.js.map +1 -0
  56. package/build/cli/cliUtils.d.ts +64 -0
  57. package/build/cli/cliUtils.d.ts.map +1 -0
  58. package/build/cli/cliUtils.js +461 -0
  59. package/build/cli/cliUtils.js.map +1 -0
  60. package/build/cli/eventDispatcher.d.ts +28 -0
  61. package/build/cli/eventDispatcher.d.ts.map +1 -0
  62. package/build/cli/eventDispatcher.js +49 -0
  63. package/build/cli/eventDispatcher.js.map +1 -0
  64. package/build/cli/frameworks/automationFramework.d.ts +89 -0
  65. package/build/cli/frameworks/automationFramework.d.ts.map +1 -0
  66. package/build/cli/frameworks/automationFramework.js +132 -0
  67. package/build/cli/frameworks/automationFramework.js.map +1 -0
  68. package/build/cli/frameworks/constants/automationFrameworkConstants.d.ts +18 -0
  69. package/build/cli/frameworks/constants/automationFrameworkConstants.d.ts.map +1 -0
  70. package/build/cli/frameworks/constants/automationFrameworkConstants.js +18 -0
  71. package/build/cli/frameworks/constants/automationFrameworkConstants.js.map +1 -0
  72. package/build/cli/frameworks/constants/testFrameworkConstants.d.ts +43 -0
  73. package/build/cli/frameworks/constants/testFrameworkConstants.d.ts.map +1 -0
  74. package/build/cli/frameworks/constants/testFrameworkConstants.js +43 -0
  75. package/build/cli/frameworks/constants/testFrameworkConstants.js.map +1 -0
  76. package/build/cli/frameworks/testFramework.d.ts +89 -0
  77. package/build/cli/frameworks/testFramework.d.ts.map +1 -0
  78. package/build/cli/frameworks/testFramework.js +126 -0
  79. package/build/cli/frameworks/testFramework.js.map +1 -0
  80. package/build/cli/frameworks/wdioAutomationFramework.d.ts +28 -0
  81. package/build/cli/frameworks/wdioAutomationFramework.d.ts.map +1 -0
  82. package/build/cli/frameworks/wdioAutomationFramework.js +67 -0
  83. package/build/cli/frameworks/wdioAutomationFramework.js.map +1 -0
  84. package/build/cli/frameworks/wdioMochaTestFramework.d.ts +82 -0
  85. package/build/cli/frameworks/wdioMochaTestFramework.d.ts.map +1 -0
  86. package/build/cli/frameworks/wdioMochaTestFramework.js +322 -0
  87. package/build/cli/frameworks/wdioMochaTestFramework.js.map +1 -0
  88. package/build/cli/grpcClient.d.ts +86 -0
  89. package/build/cli/grpcClient.d.ts.map +1 -0
  90. package/build/cli/grpcClient.js +532 -0
  91. package/build/cli/grpcClient.js.map +1 -0
  92. package/build/cli/index.d.ts +150 -0
  93. package/build/cli/index.d.ts.map +1 -0
  94. package/build/cli/index.js +464 -0
  95. package/build/cli/index.js.map +1 -0
  96. package/build/cli/instances/automationFrameworkInstance.d.ts +33 -0
  97. package/build/cli/instances/automationFrameworkInstance.d.ts.map +1 -0
  98. package/build/cli/instances/automationFrameworkInstance.js +45 -0
  99. package/build/cli/instances/automationFrameworkInstance.js.map +1 -0
  100. package/build/cli/instances/testFrameworkInstance.d.ts +62 -0
  101. package/build/cli/instances/testFrameworkInstance.d.ts.map +1 -0
  102. package/build/cli/instances/testFrameworkInstance.js +97 -0
  103. package/build/cli/instances/testFrameworkInstance.js.map +1 -0
  104. package/build/cli/instances/trackedContext.d.ts +32 -0
  105. package/build/cli/instances/trackedContext.d.ts.map +1 -0
  106. package/build/cli/instances/trackedContext.js +48 -0
  107. package/build/cli/instances/trackedContext.js.map +1 -0
  108. package/build/cli/instances/trackedInstance.d.ts +40 -0
  109. package/build/cli/instances/trackedInstance.d.ts.map +1 -0
  110. package/build/cli/instances/trackedInstance.js +64 -0
  111. package/build/cli/instances/trackedInstance.js.map +1 -0
  112. package/build/cli/modules/accessibilityModule.d.ts +46 -0
  113. package/build/cli/modules/accessibilityModule.d.ts.map +1 -0
  114. package/build/cli/modules/accessibilityModule.js +447 -0
  115. package/build/cli/modules/accessibilityModule.js.map +1 -0
  116. package/build/cli/modules/automateModule.d.ts +26 -0
  117. package/build/cli/modules/automateModule.d.ts.map +1 -0
  118. package/build/cli/modules/automateModule.js +223 -0
  119. package/build/cli/modules/automateModule.js.map +1 -0
  120. package/build/cli/modules/baseModule.d.ts +33 -0
  121. package/build/cli/modules/baseModule.d.ts.map +1 -0
  122. package/build/cli/modules/baseModule.js +52 -0
  123. package/build/cli/modules/baseModule.js.map +1 -0
  124. package/build/cli/modules/observabilityModule.d.ts +22 -0
  125. package/build/cli/modules/observabilityModule.d.ts.map +1 -0
  126. package/build/cli/modules/observabilityModule.js +46 -0
  127. package/build/cli/modules/observabilityModule.js.map +1 -0
  128. package/build/cli/modules/percyModule.d.ts +19 -0
  129. package/build/cli/modules/percyModule.d.ts.map +1 -0
  130. package/build/cli/modules/percyModule.js +78 -0
  131. package/build/cli/modules/percyModule.js.map +1 -0
  132. package/build/cli/modules/testHubModule.d.ts +30 -0
  133. package/build/cli/modules/testHubModule.d.ts.map +1 -0
  134. package/build/cli/modules/testHubModule.js +233 -0
  135. package/build/cli/modules/testHubModule.js.map +1 -0
  136. package/build/cli/modules/webdriverIOModule.d.ts +29 -0
  137. package/build/cli/modules/webdriverIOModule.d.ts.map +1 -0
  138. package/build/cli/modules/webdriverIOModule.js +129 -0
  139. package/build/cli/modules/webdriverIOModule.js.map +1 -0
  140. package/build/cli/states/automationFrameworkState.d.ts +65 -0
  141. package/build/cli/states/automationFrameworkState.d.ts.map +1 -0
  142. package/build/cli/states/automationFrameworkState.js +62 -0
  143. package/build/cli/states/automationFrameworkState.js.map +1 -0
  144. package/build/cli/states/hookState.d.ts +45 -0
  145. package/build/cli/states/hookState.d.ts.map +1 -0
  146. package/build/cli/states/hookState.js +44 -0
  147. package/build/cli/states/hookState.js.map +1 -0
  148. package/build/cli/states/testFrameworkState.d.ts +125 -0
  149. package/build/cli/states/testFrameworkState.d.ts.map +1 -0
  150. package/build/cli/states/testFrameworkState.js +116 -0
  151. package/build/cli/states/testFrameworkState.js.map +1 -0
  152. package/build/config.d.ts +29 -0
  153. package/build/config.d.ts.map +1 -0
  154. package/build/config.js +52 -0
  155. package/build/config.js.map +1 -0
  156. package/build/constants.d.ts +96 -0
  157. package/build/constants.d.ts.map +1 -0
  158. package/build/constants.js +156 -0
  159. package/build/constants.js.map +1 -0
  160. package/build/crash-reporter.d.ts +18 -0
  161. package/build/crash-reporter.d.ts.map +1 -0
  162. package/build/crash-reporter.js +134 -0
  163. package/build/crash-reporter.js.map +1 -0
  164. package/build/cucumber-types.d.ts +194 -0
  165. package/build/cucumber-types.d.ts.map +1 -0
  166. package/build/cucumber-types.js +2 -0
  167. package/build/cucumber-types.js.map +1 -0
  168. package/build/data-store.d.ts +4 -0
  169. package/build/data-store.d.ts.map +1 -0
  170. package/build/data-store.js +42 -0
  171. package/build/data-store.js.map +1 -0
  172. package/build/exitHandler.d.ts +4 -0
  173. package/build/exitHandler.d.ts.map +1 -0
  174. package/build/exitHandler.js +105 -0
  175. package/build/exitHandler.js.map +1 -0
  176. package/build/fileStream.d.ts +9 -0
  177. package/build/fileStream.d.ts.map +1 -0
  178. package/build/fileStream.js +13 -0
  179. package/build/fileStream.js.map +1 -0
  180. package/build/grpc/generated/sdk-messages-accessibility.d.ts +76 -0
  181. package/build/grpc/generated/sdk-messages-accessibility.d.ts.map +1 -0
  182. package/build/grpc/generated/sdk-messages-accessibility.js +908 -0
  183. package/build/grpc/generated/sdk-messages-accessibility.js.map +1 -0
  184. package/build/grpc/generated/sdk-messages-ai.d.ts +52 -0
  185. package/build/grpc/generated/sdk-messages-ai.d.ts.map +1 -0
  186. package/build/grpc/generated/sdk-messages-ai.js +643 -0
  187. package/build/grpc/generated/sdk-messages-ai.js.map +1 -0
  188. package/build/grpc/generated/sdk-messages-observability.d.ts +44 -0
  189. package/build/grpc/generated/sdk-messages-observability.d.ts.map +1 -0
  190. package/build/grpc/generated/sdk-messages-observability.js +505 -0
  191. package/build/grpc/generated/sdk-messages-observability.js.map +1 -0
  192. package/build/grpc/generated/sdk-messages-percy.d.ts +16 -0
  193. package/build/grpc/generated/sdk-messages-percy.d.ts.map +1 -0
  194. package/build/grpc/generated/sdk-messages-percy.js +111 -0
  195. package/build/grpc/generated/sdk-messages-percy.js.map +1 -0
  196. package/build/grpc/generated/sdk-messages-testhub.d.ts +16 -0
  197. package/build/grpc/generated/sdk-messages-testhub.d.ts.map +1 -0
  198. package/build/grpc/generated/sdk-messages-testhub.js +132 -0
  199. package/build/grpc/generated/sdk-messages-testhub.js.map +1 -0
  200. package/build/grpc/generated/sdk-messages.d.ts +288 -0
  201. package/build/grpc/generated/sdk-messages.d.ts.map +1 -0
  202. package/build/grpc/generated/sdk-messages.js +3958 -0
  203. package/build/grpc/generated/sdk-messages.js.map +1 -0
  204. package/build/grpc/generated/sdk.d.ts +282 -0
  205. package/build/grpc/generated/sdk.d.ts.map +1 -0
  206. package/build/grpc/generated/sdk.js +197 -0
  207. package/build/grpc/generated/sdk.js.map +1 -0
  208. package/build/grpc/index.d.ts +43 -0
  209. package/build/grpc/index.d.ts.map +1 -0
  210. package/build/grpc/index.js +154 -0
  211. package/build/grpc/index.js.map +1 -0
  212. package/build/index.d.ts +20 -0
  213. package/build/index.d.ts.map +1 -0
  214. package/build/index.js +13 -0
  215. package/build/index.js.map +1 -0
  216. package/build/insights-handler.d.ts +76 -0
  217. package/build/insights-handler.d.ts.map +1 -0
  218. package/build/insights-handler.js +855 -0
  219. package/build/insights-handler.js.map +1 -0
  220. package/build/instrumentation/funnelInstrumentation.d.ts +8 -0
  221. package/build/instrumentation/funnelInstrumentation.d.ts.map +1 -0
  222. package/build/instrumentation/funnelInstrumentation.js +235 -0
  223. package/build/instrumentation/funnelInstrumentation.js.map +1 -0
  224. package/build/instrumentation/performance/constants.d.ts +151 -0
  225. package/build/instrumentation/performance/constants.d.ts.map +1 -0
  226. package/build/instrumentation/performance/constants.js +158 -0
  227. package/build/instrumentation/performance/constants.js.map +1 -0
  228. package/build/instrumentation/performance/performance-tester.d.ts +55 -0
  229. package/build/instrumentation/performance/performance-tester.d.ts.map +1 -0
  230. package/build/instrumentation/performance/performance-tester.js +403 -0
  231. package/build/instrumentation/performance/performance-tester.js.map +1 -0
  232. package/build/launcher.d.ts +49 -0
  233. package/build/launcher.d.ts.map +1 -0
  234. package/build/launcher.js +1077 -0
  235. package/build/launcher.js.map +1 -0
  236. package/build/log4jsAppender.d.ts +2 -0
  237. package/build/log4jsAppender.d.ts.map +1 -0
  238. package/build/log4jsAppender.js +20 -0
  239. package/build/log4jsAppender.js.map +1 -0
  240. package/build/logPatcher.d.ts +13 -0
  241. package/build/logPatcher.d.ts.map +1 -0
  242. package/build/logPatcher.js +39 -0
  243. package/build/logPatcher.js.map +1 -0
  244. package/build/logReportingAPI.d.ts +12 -0
  245. package/build/logReportingAPI.d.ts.map +1 -0
  246. package/build/logReportingAPI.js +57 -0
  247. package/build/logReportingAPI.js.map +1 -0
  248. package/build/reporter.d.ts +40 -0
  249. package/build/reporter.d.ts.map +1 -0
  250. package/build/reporter.js +254 -0
  251. package/build/reporter.js.map +1 -0
  252. package/build/request-handler.d.ts +19 -0
  253. package/build/request-handler.d.ts.map +1 -0
  254. package/build/request-handler.js +78 -0
  255. package/build/request-handler.js.map +1 -0
  256. package/build/scripts/accessibility-scripts.d.ts +26 -0
  257. package/build/scripts/accessibility-scripts.d.ts.map +1 -0
  258. package/build/scripts/accessibility-scripts.js +91 -0
  259. package/build/scripts/accessibility-scripts.js.map +1 -0
  260. package/build/service.d.ts +68 -0
  261. package/build/service.d.ts.map +1 -0
  262. package/build/service.js +740 -0
  263. package/build/service.js.map +1 -0
  264. package/build/testHub/utils.d.ts +10 -0
  265. package/build/testHub/utils.d.ts.map +1 -0
  266. package/build/testHub/utils.js +67 -0
  267. package/build/testHub/utils.js.map +1 -0
  268. package/build/testOps/featureStats.d.ts +45 -0
  269. package/build/testOps/featureStats.d.ts.map +1 -0
  270. package/build/testOps/featureStats.js +117 -0
  271. package/build/testOps/featureStats.js.map +1 -0
  272. package/build/testOps/featureUsage.d.ts +22 -0
  273. package/build/testOps/featureUsage.d.ts.map +1 -0
  274. package/build/testOps/featureUsage.js +48 -0
  275. package/build/testOps/featureUsage.js.map +1 -0
  276. package/build/testOps/listener.d.ts +40 -0
  277. package/build/testOps/listener.d.ts.map +1 -0
  278. package/build/testOps/listener.js +269 -0
  279. package/build/testOps/listener.js.map +1 -0
  280. package/build/testOps/requestUtils.d.ts +4 -0
  281. package/build/testOps/requestUtils.d.ts.map +1 -0
  282. package/build/testOps/requestUtils.js +41 -0
  283. package/build/testOps/requestUtils.js.map +1 -0
  284. package/build/testOps/testOpsConfig.d.ts +11 -0
  285. package/build/testOps/testOpsConfig.d.ts.map +1 -0
  286. package/build/testOps/testOpsConfig.js +20 -0
  287. package/build/testOps/testOpsConfig.js.map +1 -0
  288. package/build/testOps/usageStats.d.ts +404 -0
  289. package/build/testOps/usageStats.d.ts.map +1 -0
  290. package/build/testOps/usageStats.js +115 -0
  291. package/build/testOps/usageStats.js.map +1 -0
  292. package/build/testorchestration/apply-orchestration.d.ts +7 -0
  293. package/build/testorchestration/apply-orchestration.d.ts.map +1 -0
  294. package/build/testorchestration/apply-orchestration.js +43 -0
  295. package/build/testorchestration/apply-orchestration.js.map +1 -0
  296. package/build/testorchestration/helpers.d.ts +20 -0
  297. package/build/testorchestration/helpers.d.ts.map +1 -0
  298. package/build/testorchestration/helpers.js +413 -0
  299. package/build/testorchestration/helpers.js.map +1 -0
  300. package/build/testorchestration/request-utils.d.ts +23 -0
  301. package/build/testorchestration/request-utils.d.ts.map +1 -0
  302. package/build/testorchestration/request-utils.js +82 -0
  303. package/build/testorchestration/request-utils.js.map +1 -0
  304. package/build/testorchestration/test-ordering-server.d.ts +33 -0
  305. package/build/testorchestration/test-ordering-server.d.ts.map +1 -0
  306. package/build/testorchestration/test-ordering-server.js +169 -0
  307. package/build/testorchestration/test-ordering-server.js.map +1 -0
  308. package/build/testorchestration/testorcherstrationhandler.d.ts +50 -0
  309. package/build/testorchestration/testorcherstrationhandler.d.ts.map +1 -0
  310. package/build/testorchestration/testorcherstrationhandler.js +134 -0
  311. package/build/testorchestration/testorcherstrationhandler.js.map +1 -0
  312. package/build/testorchestration/testorcherstrationutils.d.ts +86 -0
  313. package/build/testorchestration/testorcherstrationutils.d.ts.map +1 -0
  314. package/build/testorchestration/testorcherstrationutils.js +380 -0
  315. package/build/testorchestration/testorcherstrationutils.js.map +1 -0
  316. package/build/types.d.ts +413 -0
  317. package/build/types.d.ts.map +1 -0
  318. package/build/types.js +2 -0
  319. package/build/types.js.map +1 -0
  320. package/build/util.d.ts +241 -0
  321. package/build/util.d.ts.map +1 -0
  322. package/build/util.js +1665 -0
  323. package/build/util.js.map +1 -0
  324. package/package.json +96 -0
  325. package/src/proto/browserstack/sdk/v1/sdk-messages-accessibility.proto +71 -0
  326. package/src/proto/browserstack/sdk/v1/sdk-messages-ai.proto +48 -0
  327. package/src/proto/browserstack/sdk/v1/sdk-messages-observability.proto +39 -0
  328. package/src/proto/browserstack/sdk/v1/sdk-messages-percy.proto +10 -0
  329. package/src/proto/browserstack/sdk/v1/sdk-messages-testhub.proto +10 -0
  330. package/src/proto/browserstack/sdk/v1/sdk-messages.proto +276 -0
  331. package/src/proto/browserstack/sdk/v1/sdk.proto +41 -0
@@ -0,0 +1,150 @@
1
+ import { BStackLogger } from './cliLogger.js';
2
+ import type { ChildProcess } from 'node:child_process';
3
+ import type { StartBinSessionResponse } from '../grpc/index.js';
4
+ import type BaseModule from './modules/baseModule.js';
5
+ import type { Options } from '@wdio/types';
6
+ import WdioMochaTestFramework from './frameworks/wdioMochaTestFramework.js';
7
+ import WdioAutomationFramework from './frameworks/wdioAutomationFramework.js';
8
+ import type { BrowserstackConfig, BrowserstackOptions } from '../types.js';
9
+ /**
10
+ * BrowserstackCLI - Singleton class for managing CLI operations
11
+ *
12
+ * This class uses the singleton pattern to ensure only one instance exists
13
+ * throughout the application lifecycle.
14
+ */
15
+ export declare class BrowserstackCLI {
16
+ #private;
17
+ static enabled: boolean;
18
+ initialized: boolean;
19
+ config: Record<string, unknown>;
20
+ wdioConfig: string;
21
+ cliArgs: object;
22
+ browserstackConfig: Options.Testrunner | {};
23
+ process: ChildProcess | null;
24
+ isMainConnected: boolean;
25
+ isChildConnected: boolean;
26
+ binSessionId: string | null;
27
+ modules: Record<string, BaseModule>;
28
+ testFramework: WdioMochaTestFramework | null;
29
+ cliParams: Record<string, string> | null;
30
+ automationFramework: WdioAutomationFramework | null;
31
+ SDK_CLI_BIN_PATH: string | null;
32
+ logger: typeof BStackLogger;
33
+ options: BrowserstackConfig & BrowserstackOptions | {};
34
+ constructor();
35
+ /**
36
+ * Get the singleton instance of BrowserstackCLI
37
+ * @returns {BrowserstackCLI} The singleton instance
38
+ */
39
+ static getInstance(): BrowserstackCLI;
40
+ /**
41
+ * Bootstrap the CLI
42
+ * Initializes and starts the CLI based on environment settings
43
+ * @returns {Promise<void>}
44
+ */
45
+ bootstrap(options: BrowserstackConfig & BrowserstackOptions, config?: Options.Testrunner, wdioConfig?: string): Promise<void>;
46
+ /**
47
+ * Start as a main process
48
+ * @returns {Promise<void>}
49
+ */
50
+ startMain(): Promise<void>;
51
+ /**
52
+ * Load modules
53
+ * @param {Object} startBinResponse - StartBinSession response
54
+ */
55
+ loadModules(startBinResponse: StartBinSessionResponse): void;
56
+ private logBuildStartErrors;
57
+ private parseBuildStartErrors;
58
+ /**
59
+ * Configure modules
60
+ * @returns {Promise<void>}
61
+ */
62
+ configureModules(): Promise<void>;
63
+ /**
64
+ * Start the CLI process and return a promise that resolves when it's ready
65
+ * @returns {Promise<void>}
66
+ * @throws {Error} If the process fails to start
67
+ */
68
+ start(): Promise<void>;
69
+ /**
70
+ * Stop the CLI
71
+ * @returns {Promise<void>}
72
+ */
73
+ stop(): Promise<void>;
74
+ /**
75
+ * Unconfigure modules
76
+ * @returns {Promise<void>}
77
+ * @private
78
+ */
79
+ unConfigureModules(): Promise<void>;
80
+ /**
81
+ * Load CLI parameters from the output
82
+ * @param {Object} params - Parameters parsed from CLI output
83
+ * @private
84
+ */
85
+ loadCliParams(params: Record<string, string>): void;
86
+ /**
87
+ * Start as a child process with the specified binSessionId
88
+ * @param {string} binSessionId - session ID to connect to the CLI process
89
+ * @returns {Promise<void>}
90
+ */
91
+ startChild(binSessionId: string): Promise<void>;
92
+ /**
93
+ * Check if the CLI is running
94
+ * @returns {boolean} True if the CLI is running
95
+ */
96
+ isRunning(): boolean;
97
+ /**
98
+ * Get the Browserstack configuration
99
+ * @returns {Object} The Browserstack configuration
100
+ */
101
+ getBrowserstackConfig(): {} | Options.Testrunner;
102
+ /**
103
+ * Set the Browserstack configuration
104
+ * @param {Object}
105
+ * @returns {void}
106
+ */
107
+ setBrowserstackConfig(browserstackConfig: Options.Testrunner): void;
108
+ /**
109
+ * Get the CLI binary path
110
+ * @returns {string} The CLI binary path
111
+ */
112
+ getCliBinPath(): Promise<string>;
113
+ /**
114
+ * Check if the CLI is enabled
115
+ * @returns {boolean} True if the CLI is enabled
116
+ */
117
+ isCliEnabled(): boolean;
118
+ /**
119
+ * Get the configuration
120
+ * @returns {Object} The configuration
121
+ */
122
+ getConfig(): Record<string, unknown>;
123
+ /**
124
+ * Set the configuration
125
+ * @param {Object}
126
+ * @returns {void}
127
+ */
128
+ setConfig(response: StartBinSessionResponse): void;
129
+ /**
130
+ * Setup the test framework
131
+ * @returns {void}
132
+ */
133
+ setupTestFramework(): void;
134
+ /**
135
+ * Setup the automation framework
136
+ * @returns {void}
137
+ */
138
+ setupAutomationFramework(): void;
139
+ /**
140
+ * Get the test framework
141
+ * @returns {Object} The test framework
142
+ */
143
+ getTestFramework(): WdioMochaTestFramework | null;
144
+ /**
145
+ * Get the automation framework
146
+ * @returns {Object} The automation framework
147
+ */
148
+ getAutomationFramework(): WdioAutomationFramework | null;
149
+ }
150
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,sBAAsB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,uBAAuB,MAAM,yCAAyC,CAAA;AAK7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAI1E;;;;;GAKG;AACH,qBAAa,eAAe;;IAExB,MAAM,CAAC,OAAO,UAAQ;IACtB,WAAW,EAAC,OAAO,CAAA;IACnB,MAAM,EAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAC,MAAM,CAAA;IACd,kBAAkB,EAAE,OAAO,CAAC,UAAU,GAAC,EAAE,CAAA;IACzC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAO;IACnC,eAAe,UAAQ;IACvB,gBAAgB,UAAQ;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAO;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAK;IACxC,aAAa,EAAE,sBAAsB,GAAC,IAAI,CAAO;IACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAO;IAC/C,mBAAmB,EAAE,uBAAuB,GAAC,IAAI,CAAO;IACxD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAO;IACtC,MAAM,sBAAe;IACrB,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,GAAG,EAAE,CAAA;;IAWtD;;;OAGG;IACH,MAAM,CAAC,WAAW;IAOlB;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,UAAU,SAAG;IA2B7G;;;OAGG;IACG,SAAS;IAWf;;;OAGG;IACH,WAAW,CAAC,gBAAgB,EAAE,uBAAuB;IAiDrD,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,qBAAqB;IA4B7B;;;OAGG;IACG,gBAAgB;IAUtB;;;;OAIG;IACG,KAAK;IAkEX;;;OAGG;IACG,IAAI;IA8CV;;;;OAIG;IACG,kBAAkB;IASxB;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM5C;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM;IAgBrC;;;OAGG;IACH,SAAS;IAWT;;;OAGG;IACH,qBAAqB;IAIrB;;;;OAIG;IACH,qBAAqB,CAAC,kBAAkB,EAAC,OAAO,CAAC,UAAU;IAI3D;;;OAGG;IACG,aAAa;IAOnB;;;OAGG;IACH,YAAY;IAIZ;;;OAGG;IACH,SAAS;IAIT;;;;MAIE;IACF,SAAS,CAAC,QAAQ,EAAE,uBAAuB;IAS3C;;;OAGG;IACH,kBAAkB;IAOlB;;;OAGG;IACH,wBAAwB;IAOxB;;;OAGG;IACH,gBAAgB;IAIhB;;;OAGG;IACH,sBAAsB;CAGzB"}
@@ -0,0 +1,464 @@
1
+ import util from 'node:util';
2
+ import { spawn } from 'node:child_process';
3
+ import { CLIUtils } from './cliUtils.js';
4
+ import PerformanceTester from '../instrumentation/performance/performance-tester.js';
5
+ import { EVENTS as PerformanceEvents } from '../instrumentation/performance/constants.js';
6
+ import { BStackLogger } from './cliLogger.js';
7
+ import { GrpcClient } from './grpcClient.js';
8
+ import AutomateModule from './modules/automateModule.js';
9
+ import TestHubModule from './modules/testHubModule.js';
10
+ import { BROWSERSTACK_ACCESSIBILITY, BROWSERSTACK_OBSERVABILITY, BROWSERSTACK_TESTHUB_JWT, BROWSERSTACK_TESTHUB_UUID, CLI_STOP_TIMEOUT, TESTOPS_BUILD_COMPLETED_ENV, TESTOPS_SCREENSHOT_ENV } from '../constants.js';
11
+ import TestOpsConfig from '../testOps/testOpsConfig.js';
12
+ import WdioMochaTestFramework from './frameworks/wdioMochaTestFramework.js';
13
+ import WdioAutomationFramework from './frameworks/wdioAutomationFramework.js';
14
+ import WebdriverIOModule from './modules/webdriverIOModule.js';
15
+ import AccessibilityModule from './modules/accessibilityModule.js';
16
+ import { isTurboScale, processAccessibilityResponse, shouldAddServiceVersion } from '../util.js';
17
+ import ObservabilityModule from './modules/observabilityModule.js';
18
+ import PercyModule from './modules/percyModule.js';
19
+ import APIUtils from './apiUtils.js';
20
+ /**
21
+ * BrowserstackCLI - Singleton class for managing CLI operations
22
+ *
23
+ * This class uses the singleton pattern to ensure only one instance exists
24
+ * throughout the application lifecycle.
25
+ */
26
+ export class BrowserstackCLI {
27
+ static #instance = null;
28
+ static enabled = false;
29
+ initialized;
30
+ config;
31
+ wdioConfig;
32
+ cliArgs;
33
+ browserstackConfig;
34
+ process = null;
35
+ isMainConnected = false;
36
+ isChildConnected = false;
37
+ binSessionId = null;
38
+ modules = {};
39
+ testFramework = null;
40
+ cliParams = null;
41
+ automationFramework = null;
42
+ SDK_CLI_BIN_PATH = null;
43
+ logger = BStackLogger;
44
+ options;
45
+ constructor() {
46
+ this.initialized = false;
47
+ this.config = {};
48
+ this.cliArgs = {};
49
+ this.browserstackConfig = {};
50
+ this.wdioConfig = '';
51
+ this.options = {};
52
+ }
53
+ /**
54
+ * Get the singleton instance of BrowserstackCLI
55
+ * @returns {BrowserstackCLI} The singleton instance
56
+ */
57
+ static getInstance() {
58
+ if (!BrowserstackCLI.#instance) {
59
+ BrowserstackCLI.#instance = new BrowserstackCLI();
60
+ }
61
+ return BrowserstackCLI.#instance;
62
+ }
63
+ /**
64
+ * Bootstrap the CLI
65
+ * Initializes and starts the CLI based on environment settings
66
+ * @returns {Promise<void>}
67
+ */
68
+ async bootstrap(options, config, wdioConfig = '') {
69
+ PerformanceTester.start(PerformanceEvents.SDK_CLI_ON_BOOTSTRAP);
70
+ BrowserstackCLI.enabled = true;
71
+ this.options = options;
72
+ if (config) {
73
+ BrowserstackCLI.getInstance().setBrowserstackConfig(config);
74
+ }
75
+ try {
76
+ const binSessionId = process.env.BROWSERSTACK_CLI_BIN_SESSION_ID || null;
77
+ if (binSessionId) {
78
+ await this.startChild(binSessionId);
79
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_ON_BOOTSTRAP);
80
+ return;
81
+ }
82
+ this.wdioConfig = wdioConfig;
83
+ await this.startMain();
84
+ }
85
+ catch (error) {
86
+ const errorMessage = error instanceof Error ? error.stack || error.message : String(error);
87
+ this.logger.error(`bootstrap: failed to bootstrap ${errorMessage}`);
88
+ await this.stop();
89
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_ON_BOOTSTRAP, false, util.format(error));
90
+ }
91
+ }
92
+ /**
93
+ * Start as a main process
94
+ * @returns {Promise<void>}
95
+ */
96
+ async startMain() {
97
+ this.logger.info('startMain: Starting main process');
98
+ await this.start();
99
+ this.logger.debug('startMain: main-process started');
100
+ const response = await GrpcClient.getInstance().startBinSession(this.wdioConfig);
101
+ BStackLogger.debug(`start: startBinSession response=${JSON.stringify(response)}`);
102
+ this.loadModules(response);
103
+ this.isMainConnected = true;
104
+ }
105
+ /**
106
+ * Load modules
107
+ * @param {Object} startBinResponse - StartBinSession response
108
+ */
109
+ loadModules(startBinResponse) {
110
+ // Defer imports to avoid circular dependencies
111
+ this.binSessionId = startBinResponse.binSessionId;
112
+ this.logger.info(`loadModules: binSessionId=${this.binSessionId}`);
113
+ this.setConfig(startBinResponse);
114
+ APIUtils.updateURLSForGRR(this.config.apis);
115
+ this.setupTestFramework();
116
+ this.setupAutomationFramework();
117
+ this.modules[WebdriverIOModule.MODULE_NAME] = new WebdriverIOModule();
118
+ this.modules[AutomateModule.MODULE_NAME] = new AutomateModule(this.browserstackConfig);
119
+ if (startBinResponse.testhub) {
120
+ this.logBuildStartErrors(startBinResponse.testhub);
121
+ process.env[TESTOPS_BUILD_COMPLETED_ENV] = 'true';
122
+ if (startBinResponse.testhub.jwt) {
123
+ process.env[BROWSERSTACK_TESTHUB_JWT] = startBinResponse.testhub.jwt;
124
+ }
125
+ if (startBinResponse.testhub.buildHashedId) {
126
+ process.env[BROWSERSTACK_TESTHUB_UUID] = startBinResponse.testhub.buildHashedId;
127
+ TestOpsConfig.getInstance().buildHashedId = startBinResponse.testhub.buildHashedId;
128
+ }
129
+ if (startBinResponse.observability?.success) {
130
+ process.env[BROWSERSTACK_OBSERVABILITY] = 'true';
131
+ if (startBinResponse.observability.options?.allowScreenshots) {
132
+ process.env[TESTOPS_SCREENSHOT_ENV] = startBinResponse.observability.options.allowScreenshots.toString();
133
+ }
134
+ this.modules[ObservabilityModule.MODULE_NAME] = new ObservabilityModule(startBinResponse.observability);
135
+ }
136
+ this.modules[TestHubModule.MODULE_NAME] = new TestHubModule(startBinResponse.testhub);
137
+ if (startBinResponse.accessibility?.success) {
138
+ process.env[BROWSERSTACK_ACCESSIBILITY] = 'true';
139
+ const options = this.options;
140
+ const isNonBstackA11y = isTurboScale(options) || !shouldAddServiceVersion(this.browserstackConfig, options.testObservability);
141
+ processAccessibilityResponse(startBinResponse, this.options);
142
+ this.modules[AccessibilityModule.MODULE_NAME] = new AccessibilityModule(startBinResponse.accessibility, isNonBstackA11y);
143
+ }
144
+ }
145
+ if (startBinResponse.percy?.success) {
146
+ this.modules[PercyModule.MODULE_NAME] = new PercyModule(startBinResponse.percy);
147
+ }
148
+ this.configureModules();
149
+ }
150
+ logBuildStartErrors(testhub) {
151
+ if (process.env.WDIO_WORKER_ID) {
152
+ return;
153
+ }
154
+ try {
155
+ const rawErrors = testhub?.errors;
156
+ const parsedErrors = this.parseBuildStartErrors(rawErrors);
157
+ for (const [errorKey, errorDetails] of Object.entries(parsedErrors)) {
158
+ const errorMessage = errorDetails?.message;
159
+ if (!errorMessage) {
160
+ continue;
161
+ }
162
+ const formattedMessage = `[Build] ${errorKey}: ${errorMessage}`;
163
+ if (errorDetails.type === 'info') {
164
+ BStackLogger.info(formattedMessage);
165
+ }
166
+ else if (errorDetails.type === 'warn') {
167
+ BStackLogger.warn(formattedMessage);
168
+ }
169
+ else {
170
+ BStackLogger.error(formattedMessage);
171
+ }
172
+ }
173
+ }
174
+ catch (error) {
175
+ BStackLogger.debug(`Failed to log build-start errors: ${util.format(error)}`);
176
+ }
177
+ }
178
+ parseBuildStartErrors(rawErrors) {
179
+ if (!rawErrors) {
180
+ return {};
181
+ }
182
+ try {
183
+ if (typeof rawErrors === 'string') {
184
+ return JSON.parse(rawErrors);
185
+ }
186
+ if (Buffer.isBuffer(rawErrors)) {
187
+ return JSON.parse(rawErrors.toString('utf8'));
188
+ }
189
+ if (rawErrors instanceof Uint8Array) {
190
+ return JSON.parse(Buffer.from(rawErrors).toString('utf8'));
191
+ }
192
+ if (typeof rawErrors === 'object') {
193
+ return rawErrors;
194
+ }
195
+ }
196
+ catch (error) {
197
+ BStackLogger.debug(`Failed to parse build-start errors from CLI response: ${util.format(error)}`);
198
+ }
199
+ return {};
200
+ }
201
+ /**
202
+ * Configure modules
203
+ * @returns {Promise<void>}
204
+ */
205
+ async configureModules() {
206
+ this.logger.debug('configureModules: Configuring modules');
207
+ for (const moduleName in this.modules) {
208
+ const module = this.modules[moduleName];
209
+ const platformIndex = process.env.WDIO_WORKER_ID ? parseInt(process.env.WDIO_WORKER_ID.split('-')[0]) : 0;
210
+ this.logger.debug(`configureModules: Configuring module=${moduleName} platformIndex=${platformIndex}`);
211
+ await module.configure(this.binSessionId, platformIndex, GrpcClient.getInstance().client, this.config);
212
+ }
213
+ }
214
+ /**
215
+ * Start the CLI process and return a promise that resolves when it's ready
216
+ * @returns {Promise<void>}
217
+ * @throws {Error} If the process fails to start
218
+ */
219
+ async start() {
220
+ PerformanceTester.start(PerformanceEvents.SDK_CLI_START);
221
+ if (CLIUtils.isDevelopmentEnv()) {
222
+ this.loadCliParams(CLIUtils.getCLIParamsForDevEnv());
223
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_START);
224
+ return Promise.resolve();
225
+ }
226
+ // Skip if process is already running
227
+ if (this.process && this.process.connected) {
228
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_START);
229
+ return Promise.resolve();
230
+ }
231
+ const SDK_CLI_BIN_PATH = await this.getCliBinPath();
232
+ const cmd = [SDK_CLI_BIN_PATH, 'sdk'];
233
+ this.logger.debug(`spawning command='${cmd}'`);
234
+ // Create a child process
235
+ this.process = spawn(cmd[0], cmd.slice(1), {
236
+ env: process.env
237
+ });
238
+ // Return a promise that resolves when CLI is ready
239
+ return new Promise((resolve, reject) => {
240
+ const cliOut = {};
241
+ this.process.stdout.on('data', (data) => {
242
+ const lines = data.toString().trim().split('\n');
243
+ for (const line of lines) {
244
+ // Parse key=value pairs
245
+ if (/^(id|listen|port)=.*$/.test(line)) {
246
+ const [key, value] = line.split('=', 2);
247
+ if (value !== undefined) {
248
+ cliOut[key] = value;
249
+ }
250
+ }
251
+ // Check for ready message
252
+ if (line.toLowerCase().includes('ready')) {
253
+ this.loadCliParams(cliOut);
254
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_START);
255
+ resolve();
256
+ return;
257
+ }
258
+ }
259
+ });
260
+ this.process.stderr.on('data', (data) => {
261
+ this.logger.error(`CLI stderr: ${data.toString().trim()}`);
262
+ });
263
+ this.process.on('error', (err) => {
264
+ cliOut.error = `Error in start: ${err.message}`;
265
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_START, false, err);
266
+ reject(new Error(`Failed to start CLI process: ${err.message}`));
267
+ });
268
+ this.process.on('close', (code) => {
269
+ if (code !== 0) {
270
+ reject(new Error(`CLI process exited with code ${code}`));
271
+ }
272
+ });
273
+ });
274
+ }
275
+ /**
276
+ * Stop the CLI
277
+ * @returns {Promise<void>}
278
+ */
279
+ async stop() {
280
+ PerformanceTester.start(PerformanceEvents.SDK_CLI_ON_STOP);
281
+ this.logger.debug('stop: CLI stop triggered');
282
+ try {
283
+ if (this.isMainConnected) {
284
+ const response = await GrpcClient.getInstance().stopBinSession();
285
+ BStackLogger.debug(`stop: stopBinSession response=${JSON.stringify(response)}`);
286
+ }
287
+ await this.unConfigureModules();
288
+ if (this.process && this.process.pid) {
289
+ this.logger.debug('stop: shutting down CLI');
290
+ this.process.kill();
291
+ // Wait for process to fully exit
292
+ await new Promise((resolve) => {
293
+ let exited = false;
294
+ // Listen for exit event
295
+ this.process.on('exit', () => {
296
+ this.logger.debug('stop: CLI process exited');
297
+ exited = true;
298
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_ON_STOP);
299
+ resolve();
300
+ });
301
+ // Set a timeout in case process doesn't exit cleanly
302
+ setTimeout(() => {
303
+ if (!exited) {
304
+ this.logger.warn('stop: process exit timeout, forcing kill');
305
+ this.process.kill('SIGKILL');
306
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_ON_STOP);
307
+ resolve();
308
+ }
309
+ }, CLI_STOP_TIMEOUT);
310
+ });
311
+ }
312
+ }
313
+ catch (error) {
314
+ PerformanceTester.end(PerformanceEvents.SDK_CLI_ON_STOP, false, util.format(error));
315
+ const errorMessage = error instanceof Error ? error.stack || error.message : String(error);
316
+ this.logger.error(`stop: error in stop session exception=${errorMessage}`);
317
+ }
318
+ }
319
+ /**
320
+ * Unconfigure modules
321
+ * @returns {Promise<void>}
322
+ * @private
323
+ */
324
+ async unConfigureModules() {
325
+ this.logger.debug('Unconfiguring modules');
326
+ for (const moduleName in this.modules) {
327
+ const module = this.modules[moduleName];
328
+ const platformIndex = process.env.WDIO_WORKER_ID ? parseInt(process.env.WDIO_WORKER_ID.split('-')[0]) : 0;
329
+ await module.configure(null, platformIndex, GrpcClient.getInstance().client);
330
+ }
331
+ }
332
+ /**
333
+ * Load CLI parameters from the output
334
+ * @param {Object} params - Parameters parsed from CLI output
335
+ * @private
336
+ */
337
+ loadCliParams(params) {
338
+ this.logger.debug(`CLI params loaded: ${JSON.stringify(params)}`);
339
+ this.cliParams = params;
340
+ GrpcClient.getInstance().init(params);
341
+ }
342
+ /**
343
+ * Start as a child process with the specified binSessionId
344
+ * @param {string} binSessionId - session ID to connect to the CLI process
345
+ * @returns {Promise<void>}
346
+ */
347
+ async startChild(binSessionId) {
348
+ PerformanceTester.start(PerformanceEvents.SDK_CONNECT_BIN_SESSION);
349
+ try {
350
+ this.logger.info(`Starting as child process with session ID: ${binSessionId}`);
351
+ GrpcClient.getInstance().connect();
352
+ const response = await GrpcClient.getInstance().connectBinSession();
353
+ this.logger.info(`Connected to bin session: ${JSON.stringify(response)}`);
354
+ this.loadModules(response);
355
+ this.isChildConnected = true;
356
+ PerformanceTester.end(PerformanceEvents.SDK_CONNECT_BIN_SESSION);
357
+ }
358
+ catch (error) {
359
+ PerformanceTester.end(PerformanceEvents.SDK_CONNECT_BIN_SESSION, false, util.format(error));
360
+ this.logger.error(`Failed to start as child process: ${util.format(error)}`);
361
+ }
362
+ }
363
+ /**
364
+ * Check if the CLI is running
365
+ * @returns {boolean} True if the CLI is running
366
+ */
367
+ isRunning() {
368
+ return (
369
+ // is Dev mode
370
+ CLIUtils.isDevelopmentEnv() ||
371
+ // Main process connection check
372
+ (this.isMainConnected && this.process !== null && this.process.exitCode === null && GrpcClient.getInstance().getClient() !== null && GrpcClient.getInstance().getChannel().getConnectivityState(false) !== 4) ||
373
+ // Child process connection check
374
+ (this.isChildConnected && GrpcClient.getInstance().getChannel() !== null && GrpcClient.getInstance().getChannel().getConnectivityState(false) !== 4));
375
+ }
376
+ /**
377
+ * Get the Browserstack configuration
378
+ * @returns {Object} The Browserstack configuration
379
+ */
380
+ getBrowserstackConfig() {
381
+ return this.browserstackConfig;
382
+ }
383
+ /**
384
+ * Set the Browserstack configuration
385
+ * @param {Object}
386
+ * @returns {void}
387
+ */
388
+ setBrowserstackConfig(browserstackConfig) {
389
+ this.browserstackConfig = browserstackConfig;
390
+ }
391
+ /**
392
+ * Get the CLI binary path
393
+ * @returns {string} The CLI binary path
394
+ */
395
+ async getCliBinPath() {
396
+ if (!this.SDK_CLI_BIN_PATH) {
397
+ this.SDK_CLI_BIN_PATH = await CLIUtils.setupCliPath(this.browserstackConfig);
398
+ }
399
+ return this.SDK_CLI_BIN_PATH || ''; // TODO: Type hack
400
+ }
401
+ /**
402
+ * Check if the CLI is enabled
403
+ * @returns {boolean} True if the CLI is enabled
404
+ */
405
+ isCliEnabled() {
406
+ return BrowserstackCLI.enabled;
407
+ }
408
+ /**
409
+ * Get the configuration
410
+ * @returns {Object} The configuration
411
+ */
412
+ getConfig() {
413
+ return this.config;
414
+ }
415
+ /**
416
+ * Set the configuration
417
+ * @param {Object}
418
+ * @returns {void}
419
+ */
420
+ setConfig(response) {
421
+ try {
422
+ this.config = JSON.parse(response.config);
423
+ this.logger.debug(`loadModules: config=${JSON.stringify(this.config)}`);
424
+ }
425
+ catch (error) {
426
+ this.logger.error(`setConfig: error=${util.format(error)}`);
427
+ }
428
+ }
429
+ /**
430
+ * Setup the test framework
431
+ * @returns {void}
432
+ */
433
+ setupTestFramework() {
434
+ const testFrameworkDetail = CLIUtils.getTestFrameworkDetail();
435
+ if (testFrameworkDetail.name.toLowerCase() === 'webdriverio-mocha') {
436
+ this.testFramework = new WdioMochaTestFramework([testFrameworkDetail.name], testFrameworkDetail.version, this.binSessionId);
437
+ }
438
+ }
439
+ /**
440
+ * Setup the automation framework
441
+ * @returns {void}
442
+ */
443
+ setupAutomationFramework() {
444
+ const automationFrameworkDetail = CLIUtils.getAutomationFrameworkDetail();
445
+ if (automationFrameworkDetail.name.toLowerCase() === 'webdriverio') {
446
+ this.automationFramework = new WdioAutomationFramework(automationFrameworkDetail.name, automationFrameworkDetail.version);
447
+ }
448
+ }
449
+ /**
450
+ * Get the test framework
451
+ * @returns {Object} The test framework
452
+ */
453
+ getTestFramework() {
454
+ return this.testFramework;
455
+ }
456
+ /**
457
+ * Get the automation framework
458
+ * @returns {Object} The automation framework
459
+ */
460
+ getAutomationFramework() {
461
+ return this.automationFramework;
462
+ }
463
+ }
464
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type TrackedContext from './trackedContext.js';
2
+ import TrackedInstance from './trackedInstance.js';
3
+ /**
4
+ * Class representing an automation framework instance
5
+ * @extends TrackedInstance
6
+ */
7
+ export default class AutomationFrameworkInstance extends TrackedInstance {
8
+ frameworkName: string;
9
+ frameworkVersion: string;
10
+ state: State;
11
+ constructor(context: TrackedContext, frameworkName: string, frameworkVersion: string, state: State);
12
+ /**
13
+ * Get the framework name
14
+ * @returns {string} The name of the automation framework
15
+ */
16
+ getFrameworkName(): string;
17
+ /**
18
+ * Get the framework version
19
+ * @returns {string} The version of the automation framework
20
+ */
21
+ getFrameworkVersion(): string;
22
+ /**
23
+ * Get the current state
24
+ * @returns {AutomationFrameworkState} The current state of the automation framework
25
+ */
26
+ getState(): State;
27
+ /**
28
+ * Set the current state
29
+ * @param {AutomationFrameworkState} state - The new state to set
30
+ */
31
+ setState(state: State): void;
32
+ }
33
+ //# sourceMappingURL=automationFrameworkInstance.d.ts.map