@wdio/browserstack-service 8.48.0 → 8.49.0

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 (238) hide show
  1. package/build/Percy/Percy-Handler.js +1 -0
  2. package/build/Percy/Percy-Handler.js.map +1 -0
  3. package/build/Percy/Percy.js +1 -0
  4. package/build/Percy/Percy.js.map +1 -0
  5. package/build/Percy/PercyBinary.js +1 -0
  6. package/build/Percy/PercyBinary.js.map +1 -0
  7. package/build/Percy/PercyCaptureMap.js +1 -0
  8. package/build/Percy/PercyCaptureMap.js.map +1 -0
  9. package/build/Percy/PercyHelper.d.ts.map +1 -1
  10. package/build/Percy/PercyHelper.js +1 -0
  11. package/build/Percy/PercyHelper.js.map +1 -0
  12. package/build/Percy/PercyLogger.js +1 -0
  13. package/build/Percy/PercyLogger.js.map +1 -0
  14. package/build/Percy/PercySDK.js +1 -0
  15. package/build/Percy/PercySDK.js.map +1 -0
  16. package/build/accessibility-handler.d.ts +1 -1
  17. package/build/accessibility-handler.d.ts.map +1 -1
  18. package/build/accessibility-handler.js +14 -11
  19. package/build/accessibility-handler.js.map +1 -0
  20. package/build/ai-handler.d.ts.map +1 -1
  21. package/build/ai-handler.js +12 -0
  22. package/build/ai-handler.js.map +1 -0
  23. package/build/bstackLogger.js +1 -0
  24. package/build/bstackLogger.js.map +1 -0
  25. package/build/cleanup.js +1 -0
  26. package/build/cleanup.js.map +1 -0
  27. package/build/cli/apiUtils.js +1 -0
  28. package/build/cli/apiUtils.js.map +1 -0
  29. package/build/cli/cliLogger.d.ts +1 -0
  30. package/build/cli/cliLogger.d.ts.map +1 -1
  31. package/build/cli/cliLogger.js +24 -12
  32. package/build/cli/cliLogger.js.map +1 -0
  33. package/build/cli/cliUtils.d.ts +18 -0
  34. package/build/cli/cliUtils.d.ts.map +1 -1
  35. package/build/cli/cliUtils.js +30 -0
  36. package/build/cli/cliUtils.js.map +1 -0
  37. package/build/cli/eventDispatcher.js +1 -0
  38. package/build/cli/eventDispatcher.js.map +1 -0
  39. package/build/cli/frameworks/automationFramework.js +1 -0
  40. package/build/cli/frameworks/automationFramework.js.map +1 -0
  41. package/build/cli/frameworks/constants/automationFrameworkConstants.js +1 -0
  42. package/build/cli/frameworks/constants/automationFrameworkConstants.js.map +1 -0
  43. package/build/cli/frameworks/constants/testFrameworkConstants.js +1 -0
  44. package/build/cli/frameworks/constants/testFrameworkConstants.js.map +1 -0
  45. package/build/cli/frameworks/testFramework.js +1 -0
  46. package/build/cli/frameworks/testFramework.js.map +1 -0
  47. package/build/cli/frameworks/wdioAutomationFramework.js +1 -0
  48. package/build/cli/frameworks/wdioAutomationFramework.js.map +1 -0
  49. package/build/cli/frameworks/wdioMochaTestFramework.d.ts.map +1 -1
  50. package/build/cli/frameworks/wdioMochaTestFramework.js +5 -2
  51. package/build/cli/frameworks/wdioMochaTestFramework.js.map +1 -0
  52. package/build/cli/grpcClient.d.ts +21 -5
  53. package/build/cli/grpcClient.d.ts.map +1 -1
  54. package/build/cli/grpcClient.js +135 -22
  55. package/build/cli/grpcClient.js.map +1 -0
  56. package/build/cli/index.d.ts +3 -1
  57. package/build/cli/index.d.ts.map +1 -1
  58. package/build/cli/index.js +53 -4
  59. package/build/cli/index.js.map +1 -0
  60. package/build/cli/instances/automationFrameworkInstance.js +1 -0
  61. package/build/cli/instances/automationFrameworkInstance.js.map +1 -0
  62. package/build/cli/instances/testFrameworkInstance.js +1 -0
  63. package/build/cli/instances/testFrameworkInstance.js.map +1 -0
  64. package/build/cli/instances/trackedContext.js +1 -0
  65. package/build/cli/instances/trackedContext.js.map +1 -0
  66. package/build/cli/instances/trackedInstance.js +1 -0
  67. package/build/cli/instances/trackedInstance.js.map +1 -0
  68. package/build/cli/modules/accessibilityModule.d.ts +4 -1
  69. package/build/cli/modules/accessibilityModule.d.ts.map +1 -1
  70. package/build/cli/modules/accessibilityModule.js +76 -10
  71. package/build/cli/modules/accessibilityModule.js.map +1 -0
  72. package/build/cli/modules/automateModule.js +1 -0
  73. package/build/cli/modules/automateModule.js.map +1 -0
  74. package/build/cli/modules/baseModule.js +1 -0
  75. package/build/cli/modules/baseModule.js.map +1 -0
  76. package/build/cli/modules/observabilityModule.js +1 -0
  77. package/build/cli/modules/observabilityModule.js.map +1 -0
  78. package/build/cli/modules/percyModule.js +1 -0
  79. package/build/cli/modules/percyModule.js.map +1 -0
  80. package/build/cli/modules/testHubModule.js +1 -0
  81. package/build/cli/modules/testHubModule.js.map +1 -0
  82. package/build/cli/modules/webdriverIOModule.js +1 -0
  83. package/build/cli/modules/webdriverIOModule.js.map +1 -0
  84. package/build/cli/states/automationFrameworkState.d.ts.map +1 -1
  85. package/build/cli/states/automationFrameworkState.js +1 -0
  86. package/build/cli/states/automationFrameworkState.js.map +1 -0
  87. package/build/cli/states/hookState.d.ts.map +1 -1
  88. package/build/cli/states/hookState.js +1 -0
  89. package/build/cli/states/hookState.js.map +1 -0
  90. package/build/cli/states/testFrameworkState.d.ts.map +1 -1
  91. package/build/cli/states/testFrameworkState.js +1 -0
  92. package/build/cli/states/testFrameworkState.js.map +1 -0
  93. package/build/config.js +1 -0
  94. package/build/config.js.map +1 -0
  95. package/build/constants.d.ts +28 -0
  96. package/build/constants.d.ts.map +1 -1
  97. package/build/constants.js +38 -1
  98. package/build/constants.js.map +1 -0
  99. package/build/crash-reporter.js +1 -0
  100. package/build/crash-reporter.js.map +1 -0
  101. package/build/cucumber-types.js +1 -0
  102. package/build/cucumber-types.js.map +1 -0
  103. package/build/data-store.js +1 -0
  104. package/build/data-store.js.map +1 -0
  105. package/build/exitHandler.d.ts +1 -1
  106. package/build/exitHandler.d.ts.map +1 -1
  107. package/build/exitHandler.js +7 -5
  108. package/build/exitHandler.js.map +1 -0
  109. package/build/fileStream.js +1 -0
  110. package/build/fileStream.js.map +1 -0
  111. package/build/grpc/generated/sdk-messages-accessibility.d.ts +76 -0
  112. package/build/grpc/generated/sdk-messages-accessibility.d.ts.map +1 -0
  113. package/build/grpc/generated/sdk-messages-accessibility.js +908 -0
  114. package/build/grpc/generated/sdk-messages-accessibility.js.map +1 -0
  115. package/build/grpc/generated/sdk-messages-ai.d.ts +52 -0
  116. package/build/grpc/generated/sdk-messages-ai.d.ts.map +1 -0
  117. package/build/grpc/generated/sdk-messages-ai.js +643 -0
  118. package/build/grpc/generated/sdk-messages-ai.js.map +1 -0
  119. package/build/grpc/generated/sdk-messages-observability.d.ts +44 -0
  120. package/build/grpc/generated/sdk-messages-observability.d.ts.map +1 -0
  121. package/build/grpc/generated/sdk-messages-observability.js +505 -0
  122. package/build/grpc/generated/sdk-messages-observability.js.map +1 -0
  123. package/build/grpc/generated/sdk-messages-percy.d.ts +16 -0
  124. package/build/grpc/generated/sdk-messages-percy.d.ts.map +1 -0
  125. package/build/grpc/generated/sdk-messages-percy.js +111 -0
  126. package/build/grpc/generated/sdk-messages-percy.js.map +1 -0
  127. package/build/grpc/generated/sdk-messages-testhub.d.ts +16 -0
  128. package/build/grpc/generated/sdk-messages-testhub.d.ts.map +1 -0
  129. package/build/grpc/generated/sdk-messages-testhub.js +132 -0
  130. package/build/grpc/generated/sdk-messages-testhub.js.map +1 -0
  131. package/build/grpc/generated/sdk-messages.d.ts +288 -0
  132. package/build/grpc/generated/sdk-messages.d.ts.map +1 -0
  133. package/build/grpc/generated/sdk-messages.js +3958 -0
  134. package/build/grpc/generated/sdk-messages.js.map +1 -0
  135. package/build/grpc/generated/sdk.d.ts +282 -0
  136. package/build/grpc/generated/sdk.d.ts.map +1 -0
  137. package/build/grpc/generated/sdk.js +197 -0
  138. package/build/grpc/generated/sdk.js.map +1 -0
  139. package/build/grpc/index.d.ts +43 -0
  140. package/build/grpc/index.d.ts.map +1 -0
  141. package/build/grpc/index.js +154 -0
  142. package/build/grpc/index.js.map +1 -0
  143. package/build/index.js +1 -0
  144. package/build/index.js.map +1 -0
  145. package/build/insights-handler.d.ts.map +1 -1
  146. package/build/insights-handler.js +38 -8
  147. package/build/insights-handler.js.map +1 -0
  148. package/build/instrumentation/funnelInstrumentation.d.ts +2 -2
  149. package/build/instrumentation/funnelInstrumentation.d.ts.map +1 -1
  150. package/build/instrumentation/funnelInstrumentation.js +31 -8
  151. package/build/instrumentation/funnelInstrumentation.js.map +1 -0
  152. package/build/instrumentation/performance/constants.d.ts +64 -0
  153. package/build/instrumentation/performance/constants.d.ts.map +1 -1
  154. package/build/instrumentation/performance/constants.js +74 -2
  155. package/build/instrumentation/performance/constants.js.map +1 -0
  156. package/build/instrumentation/performance/performance-tester.d.ts +11 -0
  157. package/build/instrumentation/performance/performance-tester.d.ts.map +1 -1
  158. package/build/instrumentation/performance/performance-tester.js +136 -15
  159. package/build/instrumentation/performance/performance-tester.js.map +1 -0
  160. package/build/launcher.d.ts +1 -0
  161. package/build/launcher.d.ts.map +1 -1
  162. package/build/launcher.js +152 -6
  163. package/build/launcher.js.map +1 -0
  164. package/build/log4jsAppender.d.ts.map +1 -1
  165. package/build/log4jsAppender.js +1 -0
  166. package/build/log4jsAppender.js.map +1 -0
  167. package/build/logPatcher.d.ts.map +1 -1
  168. package/build/logPatcher.js +1 -0
  169. package/build/logPatcher.js.map +1 -0
  170. package/build/logReportingAPI.d.ts.map +1 -1
  171. package/build/logReportingAPI.js +1 -0
  172. package/build/logReportingAPI.js.map +1 -0
  173. package/build/reporter.js +1 -0
  174. package/build/reporter.js.map +1 -0
  175. package/build/request-handler.d.ts.map +1 -1
  176. package/build/request-handler.js +4 -0
  177. package/build/request-handler.js.map +1 -0
  178. package/build/scripts/accessibility-scripts.js +1 -0
  179. package/build/scripts/accessibility-scripts.js.map +1 -0
  180. package/build/service.d.ts.map +1 -1
  181. package/build/service.js +78 -5
  182. package/build/service.js.map +1 -0
  183. package/build/testHub/utils.d.ts.map +1 -1
  184. package/build/testHub/utils.js +1 -0
  185. package/build/testHub/utils.js.map +1 -0
  186. package/build/testOps/featureStats.js +1 -0
  187. package/build/testOps/featureStats.js.map +1 -0
  188. package/build/testOps/featureUsage.js +1 -0
  189. package/build/testOps/featureUsage.js.map +1 -0
  190. package/build/testOps/listener.js +1 -0
  191. package/build/testOps/listener.js.map +1 -0
  192. package/build/testOps/requestUtils.js +1 -0
  193. package/build/testOps/requestUtils.js.map +1 -0
  194. package/build/testOps/testOpsConfig.js +1 -0
  195. package/build/testOps/testOpsConfig.js.map +1 -0
  196. package/build/testOps/usageStats.js +1 -0
  197. package/build/testOps/usageStats.js.map +1 -0
  198. package/build/testorchestration/apply-orchestration.d.ts +7 -0
  199. package/build/testorchestration/apply-orchestration.d.ts.map +1 -0
  200. package/build/testorchestration/apply-orchestration.js +43 -0
  201. package/build/testorchestration/apply-orchestration.js.map +1 -0
  202. package/build/testorchestration/helpers.d.ts +20 -0
  203. package/build/testorchestration/helpers.d.ts.map +1 -0
  204. package/build/testorchestration/helpers.js +413 -0
  205. package/build/testorchestration/helpers.js.map +1 -0
  206. package/build/testorchestration/request-utils.d.ts +23 -0
  207. package/build/testorchestration/request-utils.d.ts.map +1 -0
  208. package/build/testorchestration/request-utils.js +82 -0
  209. package/build/testorchestration/request-utils.js.map +1 -0
  210. package/build/testorchestration/test-ordering-server.d.ts +33 -0
  211. package/build/testorchestration/test-ordering-server.d.ts.map +1 -0
  212. package/build/testorchestration/test-ordering-server.js +169 -0
  213. package/build/testorchestration/test-ordering-server.js.map +1 -0
  214. package/build/testorchestration/testorcherstrationhandler.d.ts +50 -0
  215. package/build/testorchestration/testorcherstrationhandler.d.ts.map +1 -0
  216. package/build/testorchestration/testorcherstrationhandler.js +134 -0
  217. package/build/testorchestration/testorcherstrationhandler.js.map +1 -0
  218. package/build/testorchestration/testorcherstrationutils.d.ts +86 -0
  219. package/build/testorchestration/testorcherstrationutils.d.ts.map +1 -0
  220. package/build/testorchestration/testorcherstrationutils.js +380 -0
  221. package/build/testorchestration/testorcherstrationutils.js.map +1 -0
  222. package/build/types.d.ts +21 -0
  223. package/build/types.d.ts.map +1 -1
  224. package/build/types.js +1 -0
  225. package/build/types.js.map +1 -0
  226. package/build/util.d.ts +30 -1
  227. package/build/util.d.ts.map +1 -1
  228. package/build/util.js +103 -4
  229. package/build/util.js.map +1 -0
  230. package/package.json +46 -16
  231. package/src/proto/browserstack/sdk/v1/sdk-messages-accessibility.proto +71 -0
  232. package/src/proto/browserstack/sdk/v1/sdk-messages-ai.proto +48 -0
  233. package/src/proto/browserstack/sdk/v1/sdk-messages-observability.proto +39 -0
  234. package/src/proto/browserstack/sdk/v1/sdk-messages-percy.proto +10 -0
  235. package/src/proto/browserstack/sdk/v1/sdk-messages-testhub.proto +10 -0
  236. package/src/proto/browserstack/sdk/v1/sdk-messages.proto +276 -0
  237. package/src/proto/browserstack/sdk/v1/sdk.proto +41 -0
  238. package/tsconfig.prod.tsbuildinfo +0 -1
@@ -112,3 +112,4 @@ class UsageStats {
112
112
  }
113
113
  }
114
114
  export default UsageStats;
115
+ //# sourceMappingURL=usageStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usageStats.js","sourceRoot":"","sources":["../../src/testOps/usageStats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Applies test orchestration to the WebdriverIO test run
3
+ * This function is the main entry point for the orchestration integration
4
+ */
5
+ export declare function applyOrchestrationIfEnabled(specs: string[], config: Record<string, any>): Promise<string[]>;
6
+ export default applyOrchestrationIfEnabled;
7
+ //# sourceMappingURL=apply-orchestration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-orchestration.d.ts","sourceRoot":"","sources":["../../src/testorchestration/apply-orchestration.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,2BAA2B,CAC7C,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC,CA4CnB;AAED,eAAe,2BAA2B,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { performance } from 'node:perf_hooks';
2
+ import { TestOrchestrationHandler } from './testorcherstrationhandler.js';
3
+ import { BStackLogger } from '../bstackLogger.js';
4
+ import { isValidEnabledValue } from '../util.js';
5
+ /**
6
+ * Applies test orchestration to the WebdriverIO test run
7
+ * This function is the main entry point for the orchestration integration
8
+ */
9
+ export async function applyOrchestrationIfEnabled(specs, config) {
10
+ // Initialize orchestration handler
11
+ const orchestrationHandler = TestOrchestrationHandler.getInstance(config);
12
+ if (!orchestrationHandler) {
13
+ BStackLogger.debug('Orchestration handler is not initialized. Skipping orchestration.');
14
+ return specs;
15
+ }
16
+ // Check if runSmartSelection is enabled in config
17
+ const runSmartSelectionEnabled = isValidEnabledValue(config?.testOrchestrationOptions?.runSmartSelection?.enabled);
18
+ if (!runSmartSelectionEnabled) {
19
+ BStackLogger.info('runSmartSelection is not enabled in config. Skipping orchestration.');
20
+ return specs;
21
+ }
22
+ const startTime = performance.now();
23
+ // if (orchestrationHandler.testOrderingEnabled()) {
24
+ BStackLogger.info('Test orchestration is enabled. Attempting to reorder test files.');
25
+ // Get the test files from the specs - pass them as received
26
+ const testFiles = specs;
27
+ BStackLogger.info(`Test files to be reordered: ${testFiles.join(', ')}`);
28
+ // Reorder the test files
29
+ const orderedFiles = await orchestrationHandler.reorderTestFiles(testFiles);
30
+ if (orderedFiles && orderedFiles.length > 0) {
31
+ BStackLogger.info(`Tests reordered using orchestration: ${orderedFiles.join(', ')}`);
32
+ // Return the ordered files as the new specs
33
+ orchestrationHandler.addToOrderingInstrumentationData('timeTakenToApply', Math.floor(performance.now() - startTime) // Time in milliseconds
34
+ );
35
+ return orderedFiles;
36
+ }
37
+ BStackLogger.info('No test files were reordered by orchestration.');
38
+ orchestrationHandler.addToOrderingInstrumentationData('timeTakenToApply', Math.floor(performance.now() - startTime) // Time in milliseconds
39
+ );
40
+ return specs;
41
+ }
42
+ export default applyOrchestrationIfEnabled;
43
+ //# sourceMappingURL=apply-orchestration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-orchestration.js","sourceRoot":"","sources":["../../src/testorchestration/apply-orchestration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,KAAe,EACf,MAA2B;IAE3B,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACzE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACxB,YAAY,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;QACvF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,kDAAkD;IAClD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAClH,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;QACxF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IAEnC,oDAAoD;IACpD,YAAY,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;IAErF,4DAA4D;IAC5D,MAAM,SAAS,GAAG,KAAK,CAAA;IACvB,YAAY,CAAC,IAAI,CAAC,+BAA+B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAExE,yBAAyB;IACzB,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAE3E,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,YAAY,CAAC,IAAI,CAAC,wCAAwC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEpF,4CAA4C;QAC5C,oBAAoB,CAAC,gCAAgC,CACjD,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,uBAAuB;SACpE,CAAA;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IACnE,oBAAoB,CAAC,gCAAgC,CACjD,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,uBAAuB;KACpE,CAAA;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,eAAe,2BAA2B,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Get host information for the test orchestration
3
+ */
4
+ export declare function getHostInfo(): {
5
+ hostname: string;
6
+ platform: NodeJS.Platform;
7
+ architecture: NodeJS.Architecture;
8
+ release: string;
9
+ username: string;
10
+ };
11
+ /**
12
+ * Get git metadata
13
+ */
14
+ export declare function getGitMetadata(): Record<string, any>;
15
+ /**
16
+ * Get Git metadata for AI selection
17
+ * @param multiRepoSource Array of repository paths for multi-repo setup
18
+ */
19
+ export declare function getGitMetadataForAISelection(folders?: string[]): any[];
20
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/testorchestration/helpers.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,wBAAgB,WAAW;;;;;;EAQ1B;AA0ED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyFpD;AA8FD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,GAAE,MAAM,EAAO,GAAG,GAAG,EAAE,CA4K1E"}
@@ -0,0 +1,413 @@
1
+ import os from 'node:os';
2
+ import path from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ import logger from '@wdio/logger';
5
+ const log = logger('wdio-browserstack-service:helpers');
6
+ // Constants
7
+ const MAX_GIT_META_DATA_SIZE_IN_BYTES = 512 * 1024; // 512 KB
8
+ /**
9
+ * Get host information for the test orchestration
10
+ */
11
+ export function getHostInfo() {
12
+ return {
13
+ hostname: os.hostname(),
14
+ platform: process.platform,
15
+ architecture: process.arch,
16
+ release: os.release(),
17
+ username: os.userInfo().username
18
+ };
19
+ }
20
+ /**
21
+ * Format git author information
22
+ */
23
+ function gitAuthor(name, email) {
24
+ if (!name && !email) {
25
+ return '';
26
+ }
27
+ return `${name} (${email})`;
28
+ }
29
+ /**
30
+ * Get the size of a JSON object in bytes
31
+ */
32
+ function getSizeOfJsonObjectInBytes(obj) {
33
+ try {
34
+ const jsonString = JSON.stringify(obj);
35
+ return Buffer.byteLength(jsonString, 'utf8');
36
+ }
37
+ catch (e) {
38
+ log.error(`Error calculating object size: ${e}`);
39
+ return 0;
40
+ }
41
+ }
42
+ /**
43
+ * Truncate a string to reduce its size by the specified number of bytes
44
+ */
45
+ function truncateString(str, bytesToTruncate) {
46
+ if (!str || bytesToTruncate <= 0) {
47
+ return str;
48
+ }
49
+ const originalBytes = Buffer.byteLength(str, 'utf8');
50
+ const targetBytes = Math.max(0, originalBytes - bytesToTruncate);
51
+ if (targetBytes >= originalBytes) {
52
+ return str;
53
+ }
54
+ // Perform binary search to find the right truncation point
55
+ let left = 0;
56
+ let right = str.length;
57
+ while (left < right) {
58
+ const mid = Math.floor((left + right) / 2);
59
+ const truncated = str.substring(0, mid);
60
+ const bytes = Buffer.byteLength(truncated, 'utf8');
61
+ if (bytes <= targetBytes) {
62
+ left = mid + 1;
63
+ }
64
+ else {
65
+ right = mid;
66
+ }
67
+ }
68
+ return str.substring(0, left - 1) + '...';
69
+ }
70
+ /**
71
+ * Check and truncate VCS info if needed
72
+ */
73
+ function checkAndTruncateVcsInfo(gitMetaData) {
74
+ const gitMetaDataSizeInBytes = getSizeOfJsonObjectInBytes(gitMetaData);
75
+ if (gitMetaDataSizeInBytes && gitMetaDataSizeInBytes > MAX_GIT_META_DATA_SIZE_IN_BYTES) {
76
+ const truncateSize = gitMetaDataSizeInBytes - MAX_GIT_META_DATA_SIZE_IN_BYTES;
77
+ const truncatedCommitMessage = truncateString(gitMetaData.commit_message, truncateSize);
78
+ gitMetaData.commit_message = truncatedCommitMessage;
79
+ log.info(`The commit has been truncated. Size of commit after truncation is ${getSizeOfJsonObjectInBytes(gitMetaData) / 1024} KB`);
80
+ }
81
+ return gitMetaData;
82
+ }
83
+ /**
84
+ * Get git metadata
85
+ */
86
+ export function getGitMetadata() {
87
+ try {
88
+ // Find git repo root
89
+ const rootOutput = execSync('git rev-parse --show-toplevel').toString().trim();
90
+ const commonDirOutput = execSync('git rev-parse --git-common-dir').toString().trim();
91
+ // Get basic git info
92
+ const sha = execSync('git rev-parse HEAD').toString().trim();
93
+ const shortSha = execSync('git rev-parse --short HEAD').toString().trim();
94
+ const branch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
95
+ let tag = '';
96
+ try {
97
+ tag = execSync('git describe --all --tags --exact-match').toString().trim();
98
+ }
99
+ catch (e) {
100
+ // Tag might not exist
101
+ }
102
+ // Get commit info
103
+ const commitAuthorName = execSync('git log -1 --pretty=%an').toString().trim();
104
+ const commitAuthorEmail = execSync('git log -1 --pretty=%ae').toString().trim();
105
+ const commitAuthorDate = execSync('git log -1 --pretty=%aI').toString().trim();
106
+ const committerName = execSync('git log -1 --pretty=%cn').toString().trim();
107
+ const committerEmail = execSync('git log -1 --pretty=%ce').toString().trim();
108
+ const committerDate = execSync('git log -1 --pretty=%cI').toString().trim();
109
+ const commitMessage = execSync('git log -1 --pretty=%B').toString().trim();
110
+ // Get last tag and commits since
111
+ let lastTag = '';
112
+ let commitsSinceLastTag = '';
113
+ try {
114
+ lastTag = execSync('git describe --tags --abbrev=0 --always').toString().trim();
115
+ commitsSinceLastTag = execSync(`git rev-list ${sha}..${lastTag} --count`).toString().trim();
116
+ }
117
+ catch (e) {
118
+ // Last tag might not exist
119
+ }
120
+ // Get remotes
121
+ const remotesOutput = execSync('git remote -v').toString().trim();
122
+ const remoteLines = remotesOutput.split('\n');
123
+ const remotes = [];
124
+ const processedRemotes = new Set();
125
+ for (const line of remoteLines) {
126
+ const parts = line.split(/\s+/);
127
+ if (parts.length >= 2) {
128
+ const remoteName = parts[0];
129
+ const remoteUrl = parts[1];
130
+ // Only process each remote once (git remote -v shows fetch and push)
131
+ const key = `${remoteName}:${remoteUrl}`;
132
+ if (!processedRemotes.has(key)) {
133
+ processedRemotes.add(key);
134
+ remotes.push({
135
+ name: remoteName,
136
+ url: remoteUrl
137
+ });
138
+ }
139
+ }
140
+ }
141
+ const info = {
142
+ sha,
143
+ short_sha: shortSha,
144
+ branch,
145
+ tag,
146
+ committer: gitAuthor(committerName, committerEmail),
147
+ committer_date: committerDate,
148
+ author: gitAuthor(commitAuthorName, commitAuthorEmail),
149
+ author_date: commitAuthorDate,
150
+ commit_message: commitMessage,
151
+ root: rootOutput,
152
+ common_git_dir: commonDirOutput,
153
+ worktree_git_dir: commonDirOutput,
154
+ last_tag: lastTag,
155
+ commits_since_last_tag: commitsSinceLastTag
156
+ };
157
+ const gitMetaData = {
158
+ name: 'git',
159
+ ...info,
160
+ remotes
161
+ };
162
+ return checkAndTruncateVcsInfo(gitMetaData);
163
+ }
164
+ catch (e) {
165
+ log.error(`Error getting git metadata: ${e}`);
166
+ return {};
167
+ }
168
+ }
169
+ /**
170
+ * Check if a git metadata result is valid
171
+ */
172
+ function isValidGitResult(result) {
173
+ return (Array.isArray(result.filesChanged) &&
174
+ result.filesChanged.length > 0 &&
175
+ Array.isArray(result.authors) &&
176
+ result.authors.length > 0);
177
+ }
178
+ /**
179
+ * Get base branch from repository
180
+ */
181
+ function getBaseBranch() {
182
+ try {
183
+ // Try to get the default branch from origin/HEAD symbolic ref (works for most providers)
184
+ try {
185
+ const originHeadOutput = execSync('git symbolic-ref refs/remotes/origin/HEAD').toString().trim();
186
+ if (originHeadOutput.startsWith('refs/remotes/origin/')) {
187
+ return originHeadOutput.replace('refs/remotes/', '');
188
+ }
189
+ }
190
+ catch (e) {
191
+ // Symbolic ref might not exist
192
+ }
193
+ // Fallback: use the first branch in local heads
194
+ try {
195
+ const branchesOutput = execSync('git branch').toString().trim();
196
+ const branches = branchesOutput.split('\n').filter(Boolean);
197
+ if (branches.length > 0) {
198
+ // Remove the '* ' from current branch if present and return first branch
199
+ const firstBranch = branches[0].replace(/^\*\s+/, '').trim();
200
+ return firstBranch;
201
+ }
202
+ }
203
+ catch (e) {
204
+ // Branches might not exist
205
+ }
206
+ // Fallback: use the first remote branch if available
207
+ try {
208
+ const remoteBranchesOutput = execSync('git branch -r').toString().trim();
209
+ const remoteBranches = remoteBranchesOutput.split('\n').filter(Boolean);
210
+ for (const branch of remoteBranches) {
211
+ const cleanBranch = branch.trim();
212
+ if (cleanBranch.startsWith('origin/') && !cleanBranch.includes('HEAD')) {
213
+ return cleanBranch;
214
+ }
215
+ }
216
+ }
217
+ catch (e) {
218
+ // Remote branches might not exist
219
+ }
220
+ }
221
+ catch (e) {
222
+ log.debug(`Error finding base branch: ${e}`);
223
+ }
224
+ return null;
225
+ }
226
+ /**
227
+ * Get changed files from commits
228
+ */
229
+ function getChangedFilesFromCommits(commitHashes) {
230
+ const changedFiles = new Set();
231
+ try {
232
+ for (const commit of commitHashes) {
233
+ try {
234
+ // Check if commit has parents
235
+ const parentsOutput = execSync(`git log -1 --pretty=%P ${commit}`).toString().trim();
236
+ const parents = parentsOutput.split(' ').filter(Boolean);
237
+ for (const parent of parents) {
238
+ const diffOutput = execSync(`git diff --name-only ${parent} ${commit}`).toString().trim();
239
+ const files = diffOutput.split('\n').filter(Boolean);
240
+ for (const file of files) {
241
+ changedFiles.add(file);
242
+ }
243
+ }
244
+ }
245
+ catch (e) {
246
+ log.debug(`Error processing commit ${commit}: ${e}`);
247
+ }
248
+ }
249
+ }
250
+ catch (e) {
251
+ log.debug(`Error getting changed files from commits: ${e}`);
252
+ }
253
+ return Array.from(changedFiles);
254
+ }
255
+ /**
256
+ * Get Git metadata for AI selection
257
+ * @param multiRepoSource Array of repository paths for multi-repo setup
258
+ */
259
+ export function getGitMetadataForAISelection(folders = []) {
260
+ if (folders && folders.length === 0) {
261
+ return [];
262
+ }
263
+ if (folders === null) {
264
+ folders = [process.cwd()];
265
+ }
266
+ // Deduplicate folders to avoid calculating PR diff multiple times for the same source
267
+ // Normalize paths using path.resolve to handle relative paths, trailing slashes, etc.
268
+ const uniqueFolders = [...new Set(folders.map(f => path.resolve(f)))];
269
+ log.debug(`Processing ${uniqueFolders.length} unique folders out of ${folders.length} total`);
270
+ const results = [];
271
+ for (const folder of uniqueFolders) {
272
+ const originalDir = process.cwd();
273
+ try {
274
+ // Initialize the result structure
275
+ const result = {
276
+ prId: '',
277
+ filesChanged: [],
278
+ authors: [],
279
+ prDate: '',
280
+ commitMessages: [],
281
+ prTitle: '',
282
+ prDescription: '',
283
+ prRawDiff: ''
284
+ };
285
+ // Change directory to the folder
286
+ process.chdir(folder);
287
+ // Get current branch and latest commit
288
+ const currentBranch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
289
+ const latestCommit = execSync('git rev-parse HEAD').toString().trim();
290
+ result.prId = latestCommit;
291
+ // Find base branch
292
+ const baseBranch = getBaseBranch();
293
+ log.debug(`Base branch for comparison: ${baseBranch}`);
294
+ let commits = [];
295
+ if (baseBranch) {
296
+ try {
297
+ // Get changed files between base branch and current branch
298
+ const changedFilesOutput = execSync(`git diff --name-only ${baseBranch}..${currentBranch}`).toString().trim();
299
+ log.debug(`Changed files between ${baseBranch} and ${currentBranch}: ${changedFilesOutput}`);
300
+ result.filesChanged = changedFilesOutput.split('\n').filter(f => f.trim());
301
+ // Get commits between base branch and current branch
302
+ const commitsOutput = execSync(`git log ${baseBranch}..${currentBranch} --pretty=%H`).toString().trim();
303
+ commits = commitsOutput.split('\n').filter(Boolean);
304
+ }
305
+ catch (e) {
306
+ log.debug('Failed to get changed files from branch comparison. Falling back to recent commits.');
307
+ // Fallback to recent commits
308
+ const recentCommitsOutput = execSync('git log -10 --pretty=%H').toString().trim();
309
+ commits = recentCommitsOutput.split('\n').filter(Boolean);
310
+ if (commits.length > 0) {
311
+ result.filesChanged = getChangedFilesFromCommits(commits.slice(0, 5));
312
+ }
313
+ }
314
+ }
315
+ else {
316
+ // Fallback to recent commits
317
+ const recentCommitsOutput = execSync('git log -10 --pretty=%H').toString().trim();
318
+ commits = recentCommitsOutput.split('\n').filter(Boolean);
319
+ if (commits.length > 0) {
320
+ result.filesChanged = getChangedFilesFromCommits(commits.slice(0, 5));
321
+ }
322
+ }
323
+ // Process commit authors and messages
324
+ const authorsSet = new Set();
325
+ const commitMessages = [];
326
+ // Only process commits if we have them
327
+ if (commits.length > 0) {
328
+ for (const commit of commits) {
329
+ try {
330
+ const commitMessage = execSync(`git log -1 --pretty=%B ${commit}`).toString().trim();
331
+ log.debug(`Processing commit: ${commitMessage}`);
332
+ const authorName = execSync(`git log -1 --pretty=%an ${commit}`).toString().trim();
333
+ authorsSet.add(authorName || 'Unknown');
334
+ commitMessages.push({
335
+ message: commitMessage.trim(),
336
+ user: authorName || 'Unknown'
337
+ });
338
+ }
339
+ catch (e) {
340
+ log.debug(`Error processing commit ${commit}: ${e}`);
341
+ }
342
+ }
343
+ }
344
+ // If we have no commits but have changed files, add a fallback author
345
+ if (commits.length === 0 && result.filesChanged.length > 0) {
346
+ try {
347
+ // Try to get current git user as fallback
348
+ const fallbackAuthor = execSync('git config user.name').toString().trim() || 'Unknown';
349
+ authorsSet.add(fallbackAuthor);
350
+ log.debug(`Added fallback author: ${fallbackAuthor}`);
351
+ }
352
+ catch (e) {
353
+ authorsSet.add('Unknown');
354
+ log.debug('Added Unknown as fallback author');
355
+ }
356
+ }
357
+ result.authors = Array.from(authorsSet);
358
+ result.commitMessages = commitMessages;
359
+ // Get commit date
360
+ if (latestCommit) {
361
+ const commitDate = execSync(`git log -1 --pretty=%cd --date=format:'%Y-%m-%d' ${latestCommit}`).toString().trim();
362
+ result.prDate = commitDate.replace(/'/g, '');
363
+ }
364
+ // Set PR title and description from latest commit if not already set
365
+ if ((!result.prTitle || result.prTitle.trim() === '') && latestCommit) {
366
+ try {
367
+ const latestCommitMessage = execSync(`git log -1 --pretty=%B ${latestCommit}`).toString().trim();
368
+ const messageLines = latestCommitMessage.trim().split('\n');
369
+ result.prTitle = messageLines[0] || '';
370
+ if (messageLines.length > 2) {
371
+ result.prDescription = messageLines.slice(2).join('\n').trim();
372
+ }
373
+ }
374
+ catch (e) {
375
+ log.debug(`Error extracting commit message for PR title: ${e}`);
376
+ }
377
+ }
378
+ // Reset directory
379
+ process.chdir(originalDir);
380
+ results.push(result);
381
+ }
382
+ catch (e) {
383
+ log.error(`Exception in populating Git metadata for AI selection (folder: ${folder}): ${e}`);
384
+ // Reset directory if needed
385
+ try {
386
+ process.chdir(originalDir);
387
+ }
388
+ catch (dirError) {
389
+ log.error(`Error resetting directory: ${dirError}`);
390
+ }
391
+ }
392
+ }
393
+ // Filter out results with empty filesChanged
394
+ const filteredResults = results.filter(isValidGitResult);
395
+ // Map to required output format
396
+ const formattedResults = filteredResults.map((result) => ({
397
+ prId: result.prId || '',
398
+ filesChanged: Array.isArray(result.filesChanged) ? result.filesChanged : [],
399
+ authors: Array.isArray(result.authors) ? result.authors : [],
400
+ prDate: result.prDate || '',
401
+ commitMessages: Array.isArray(result.commitMessages)
402
+ ? result.commitMessages.map((cm) => ({
403
+ message: cm.message || '',
404
+ user: cm.user || ''
405
+ }))
406
+ : [],
407
+ prTitle: result.prTitle || '',
408
+ prDescription: result.prDescription || '',
409
+ prRawDiff: result.prRawDiff || ''
410
+ }));
411
+ return formattedResults;
412
+ }
413
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testorchestration/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Utility class for making API requests to the BrowserStack orchestration API
3
+ */
4
+ export declare class RequestUtils {
5
+ /**
6
+ * Makes a request to the test orchestration split tests endpoint
7
+ */
8
+ static testOrchestrationSplitTests(reqEndpoint: string, data: any): Promise<any>;
9
+ /**
10
+ * Gets ordered tests from the test orchestration
11
+ */
12
+ static getTestOrchestrationOrderedTests(reqEndpoint: string): Promise<any>;
13
+ /**
14
+ * Makes an orchestration request with the given method and data
15
+ */
16
+ static makeOrchestrationRequest(method: 'GET' | 'POST' | 'PUT', reqEndpoint: string, options: {
17
+ data?: any;
18
+ params?: Record<string, any>;
19
+ extraHeaders?: Record<string, string>;
20
+ }): Promise<any>;
21
+ }
22
+ export default RequestUtils;
23
+ //# sourceMappingURL=request-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-utils.d.ts","sourceRoot":"","sources":["../../src/testorchestration/request-utils.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,YAAY;IACrB;;OAEG;WACU,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAKvE;;OAEG;WACU,gCAAgC,CAAC,WAAW,EAAE,MAAM;IAKjE;;OAEG;WACU,wBAAwB,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE;QAChG,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACxC;CA4DJ;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,82 @@
1
+ import got from 'got';
2
+ import { BStackLogger } from '../bstackLogger.js';
3
+ import APIUtils from '../cli/apiUtils.js';
4
+ /**
5
+ * Utility class for making API requests to the BrowserStack orchestration API
6
+ */
7
+ export class RequestUtils {
8
+ /**
9
+ * Makes a request to the test orchestration split tests endpoint
10
+ */
11
+ static async testOrchestrationSplitTests(reqEndpoint, data) {
12
+ BStackLogger.debug('Processing Request for testOrchestrationSplitTests');
13
+ return RequestUtils.makeOrchestrationRequest('POST', reqEndpoint, { data });
14
+ }
15
+ /**
16
+ * Gets ordered tests from the test orchestration
17
+ */
18
+ static async getTestOrchestrationOrderedTests(reqEndpoint) {
19
+ BStackLogger.debug('Processing Request for getTestOrchestrationOrderedTests');
20
+ return RequestUtils.makeOrchestrationRequest('GET', reqEndpoint, {});
21
+ }
22
+ /**
23
+ * Makes an orchestration request with the given method and data
24
+ */
25
+ static async makeOrchestrationRequest(method, reqEndpoint, options) {
26
+ const jwtToken = process.env.BROWSERSTACK_TESTHUB_JWT || '';
27
+ const headers = {
28
+ 'authorization': `Bearer ${jwtToken}`,
29
+ 'Content-Type': 'application/json',
30
+ 'Accept': 'application/json'
31
+ };
32
+ if (options.extraHeaders) {
33
+ Object.assign(headers, options.extraHeaders);
34
+ }
35
+ const url = `${APIUtils.DATA_ENDPOINT}/${reqEndpoint.replace(/^\//, '')}`;
36
+ try {
37
+ let response;
38
+ const requestOptions = {
39
+ headers,
40
+ responseType: 'json'
41
+ };
42
+ if (options.data) {
43
+ requestOptions.json = options.data;
44
+ }
45
+ if (options.params) {
46
+ requestOptions.searchParams = options.params;
47
+ }
48
+ if (method === 'GET') {
49
+ response = await got.get(url, requestOptions);
50
+ }
51
+ else if (method === 'POST') {
52
+ response = await got.post(url, requestOptions);
53
+ }
54
+ else if (method === 'PUT') {
55
+ response = await got.put(url, requestOptions);
56
+ }
57
+ else {
58
+ throw new Error(`Unsupported HTTP method: ${method}`);
59
+ }
60
+ BStackLogger.debug(`Orchestration request made to URL: ${url} with method: ${method}`);
61
+ let responseObj = {};
62
+ try {
63
+ responseObj = response.body;
64
+ }
65
+ catch (e) {
66
+ BStackLogger.debug(`Failed to parse JSON response: ${e} - ${response.body}`);
67
+ }
68
+ if (responseObj) {
69
+ responseObj.next_poll_time = response.headers.next_poll_time ||
70
+ String(Date.now());
71
+ responseObj.status = response.statusCode;
72
+ }
73
+ return responseObj;
74
+ }
75
+ catch (e) {
76
+ BStackLogger.error(`Orchestration request failed: ${e} - ${url}`);
77
+ return null;
78
+ }
79
+ }
80
+ }
81
+ export default RequestUtils;
82
+ //# sourceMappingURL=request-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-utils.js","sourceRoot":"","sources":["../../src/testorchestration/request-utils.ts"],"names":[],"mappings":"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"}