@wdio/browserstack-service 9.0.0-alpha.9 → 9.0.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 (72) hide show
  1. package/README.md +9 -6
  2. package/build/Percy/Percy-Handler.d.ts +1 -1
  3. package/build/Percy/Percy-Handler.d.ts.map +1 -1
  4. package/build/Percy/PercyHelper.d.ts +1 -1
  5. package/build/Percy/PercyHelper.d.ts.map +1 -1
  6. package/build/accessibility-handler.d.ts +2 -2
  7. package/build/accessibility-handler.d.ts.map +1 -1
  8. package/build/ai-handler.d.ts +23 -0
  9. package/build/ai-handler.d.ts.map +1 -0
  10. package/build/constants.d.ts +10 -1
  11. package/build/constants.d.ts.map +1 -1
  12. package/build/crash-reporter.d.ts +2 -2
  13. package/build/crash-reporter.d.ts.map +1 -1
  14. package/build/fileStream.d.ts +0 -2
  15. package/build/fileStream.d.ts.map +1 -1
  16. package/build/index.js +5822 -12
  17. package/build/insights-handler.d.ts +5 -1
  18. package/build/insights-handler.d.ts.map +1 -1
  19. package/build/instrumentation/funnelInstrumentation.d.ts +2 -0
  20. package/build/instrumentation/funnelInstrumentation.d.ts.map +1 -1
  21. package/build/launcher.d.ts +6 -6
  22. package/build/launcher.d.ts.map +1 -1
  23. package/build/performance-tester.d.ts +0 -1
  24. package/build/performance-tester.d.ts.map +1 -1
  25. package/build/reporter.d.ts.map +1 -1
  26. package/build/service.d.ts +4 -4
  27. package/build/service.d.ts.map +1 -1
  28. package/build/testOps/listener.d.ts +1 -0
  29. package/build/testOps/listener.d.ts.map +1 -1
  30. package/build/types.d.ts +9 -3
  31. package/build/types.d.ts.map +1 -1
  32. package/build/util.d.ts +43 -30
  33. package/build/util.d.ts.map +1 -1
  34. package/package.json +13 -10
  35. package/build/Percy/Percy-Handler.js +0 -156
  36. package/build/Percy/Percy.js +0 -123
  37. package/build/Percy/PercyBinary.js +0 -142
  38. package/build/Percy/PercyCaptureMap.js +0 -35
  39. package/build/Percy/PercyHelper.js +0 -67
  40. package/build/Percy/PercyLogger.js +0 -67
  41. package/build/Percy/PercySDK.js +0 -39
  42. package/build/accessibility-handler.js +0 -287
  43. package/build/bstackLogger.js +0 -70
  44. package/build/cleanup.js +0 -89
  45. package/build/config.js +0 -39
  46. package/build/constants.js +0 -73
  47. package/build/crash-reporter.js +0 -138
  48. package/build/cucumber-types.js +0 -1
  49. package/build/data-store.js +0 -41
  50. package/build/exitHandler.js +0 -29
  51. package/build/fetchWrapper.js +0 -14
  52. package/build/fileStream.js +0 -12
  53. package/build/insights-handler.js +0 -719
  54. package/build/instrumentation/funnelInstrumentation.js +0 -120
  55. package/build/launcher.js +0 -741
  56. package/build/log4jsAppender.js +0 -19
  57. package/build/logPatcher.js +0 -38
  58. package/build/logReportingAPI.js +0 -56
  59. package/build/performance-tester.js +0 -94
  60. package/build/reporter.js +0 -251
  61. package/build/request-handler.js +0 -74
  62. package/build/scripts/accessibility-scripts.js +0 -61
  63. package/build/service.js +0 -428
  64. package/build/testOps/featureStats.js +0 -116
  65. package/build/testOps/featureUsage.js +0 -47
  66. package/build/testOps/listener.js +0 -222
  67. package/build/testOps/requestUtils.js +0 -39
  68. package/build/testOps/testOpsConfig.js +0 -19
  69. package/build/testOps/usageStats.js +0 -114
  70. package/build/types.js +0 -1
  71. package/build/util.js +0 -1132
  72. /package/{LICENSE-MIT → LICENSE} +0 -0
package/README.md CHANGED
@@ -17,7 +17,7 @@ Instructions on how to install `WebdriverIO` can be found [here.](https://webdri
17
17
 
18
18
  ## Configuration
19
19
 
20
- WebdriverIO has BrowserStack support out of the box. You should set `user` and `key` in your `wdio.conf.js` file. This service plugin provides support for [BrowserStack](https://www.browserstack.com/docs/automate/selenium/getting-started/nodejs/local-testing) Tunnel](https://www.browserstack.com/docs/automate/selenium/getting-started/nodejs/local-testing). Set `browserstackLocal: true` also to activate this feature.
20
+ WebdriverIO has BrowserStack support out of the box. You should set `user` and `key` in your `wdio.conf.js` file. This service plugin provides support for [BrowserStack Tunnel](https://www.browserstack.com/docs/automate/selenium/getting-started/nodejs/local-testing). Set `browserstackLocal: true` also to activate this feature.
21
21
  Reporting of session status on BrowserStack will respect `strict` setting of Cucumber options.
22
22
 
23
23
  ```js
@@ -46,11 +46,14 @@ In order to authorize to the BrowserStack service your config needs to contain a
46
46
 
47
47
  ### testObservability
48
48
 
49
- By default, [`testObservability`](https://observability.browserstack.com/) is also enabled when you use the browserstack-service. You can read more about the advanced reporting and analytics functionalities of [`Test Observability`](https://browserstack.com/docs/test-observability) and also read about [`how it works`](https://browserstack.com/docs/test-observability/references/terms-and-conditions). You can visit the Test Observability dashboard after running your tests and also choose to disable it by setting the key to `false`.
49
+ Test Observability is an advanced test reporting tool that gives insights to improve your automation tests and helps you debug faster. It’s enabled by default by setting the `testObservability`​ flag as `true` for all users of browserstack-service. You can disable this by setting the `testObservability`​ flag to `false`.
50
50
 
51
- You can use Test Observability even if you do not want to run your tests on the BrowserStack infrastructure. You could be running your tests on CI or on your laptop or even on other cloud service providers like Sauce Labs, Test Observability could still work and give you all the intelligent test reports and advanced analytics.
51
+ Once your tests finish running, you can visit [Test Observability](https://observability.browserstack.com/) to debug your builds with additional insights like Unique Error Analysis, Automatic Flaky Test Detection, and more.
52
+
53
+ You can use Test Observability even if you don’t run your tests on the BrowserStack infrastructure. Even if you run your tests on a CI, a local machine, or even on other cloud service providers, Test Observability can still generate intelligent test reports and advanced analytics on your tests.
54
+
55
+ If you want to use Test Observability without running your tests on BrowserStack infrastructure, you can set your config as follows:
52
56
 
53
- You can set your config in the following manner if you do not want to run tests on BrowserStack Automate or App Automate (infrastructure) but still want to use Test Observability (note that `user` and `key` are now defined under the scope of the `browserstack` service):
54
57
 
55
58
  ```js
56
59
  // wdio.conf.js
@@ -71,7 +74,7 @@ export const config = {
71
74
  };
72
75
  ```
73
76
 
74
- [`Read more`](https://www.browserstack.com/docs/test-observability/quick-start/webdriverio#Tests_running_locally_or_elsewhere) in BrowserStack documentation about how to get started with Test Observability.
77
+ You can explore all the features of Test Observability in [this sandbox](https://observability-demo.browserstack.com/) or read more about it [here](https://www.browserstack.com/docs/test-observability/overview/what-is-test-observability).
75
78
 
76
79
  ### browserstackLocal
77
80
  Set this to true to enable routing connections from BrowserStack cloud through your computer.
@@ -80,7 +83,7 @@ Type: `Boolean`<br />
80
83
  Default: `false`
81
84
 
82
85
  ### forcedStop
83
- Set this to true to kill the BrowserStack Local process on complete, without waiting for the BrowserStack Local stop callback to be called. This is experimental and should not be used by all. Mostly necessary as a workaraound for [this issue](https://github.com/browserstack/browserstack-local-nodejs/issues/41).
86
+ Set this to true to kill the BrowserStack Local process on complete, without waiting for the BrowserStack Local stop callback to be called. This is experimental and should not be used by all. Mostly necessary as a workaround for [this issue](https://github.com/browserstack/browserstack-local-nodejs/issues/41).
84
87
 
85
88
  Type: `Boolean`<br />
86
89
  Default: `false`
@@ -13,7 +13,7 @@ declare class _PercyHandler {
13
13
  private _percyDeferredScreenshots;
14
14
  private _percyScreenshotInterval;
15
15
  private _percyCaptureMap?;
16
- constructor(_percyAutoCaptureMode: string | undefined, _browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, _capabilities: Capabilities.RemoteCapability, _isAppAutomate?: boolean | undefined, _framework?: string | undefined);
16
+ constructor(_percyAutoCaptureMode: string | undefined, _browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, _capabilities: Capabilities.ResolvedTestrunnerCapabilities, _isAppAutomate?: boolean | undefined, _framework?: string | undefined);
17
17
  _setSessionName(name: string): void;
18
18
  teardown(): Promise<void>;
19
19
  percyAutoCapture(eventName: string | null, sessionName: string | null): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Percy-Handler.d.ts","sourceRoot":"","sources":["../../src/Percy/Percy-Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAazE,cAAM,aAAa;IAUX,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,UAAU,CAAC;IAbvB,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,iCAAiC,CAAC,CAAiB;IAC3D,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,yBAAyB,CAAU;IAC3C,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAiB;gBAG9B,qBAAqB,EAAE,MAAM,GAAG,SAAS,EACzC,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC9D,aAAa,EAAE,YAAY,CAAC,gBAAgB,EAC5C,cAAc,CAAC,qBAAS,EACxB,UAAU,CAAC,oBAAQ;IAO/B,eAAe,CAAC,IAAI,EAAE,MAAM;IAItB,QAAQ;IAUR,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAmBrE,MAAM;IAIZ,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM1D,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IA+BhD,0BAA0B;IAS1B,oBAAoB,CAAE,IAAI,EAAE,iBAAiB;IAoB7C,mBAAmB,CAAE,IAAI,EAAE,iBAAiB,GAAG,gBAAgB;IA0B/D,SAAS;IAMT,aAAa;CAKtB;AAGD,QAAA,MAAM,YAAY,EAAE,OAAO,aAAoD,CAAA;AAC/E,KAAK,YAAY,GAAG,aAAa,CAAA;AAEjC,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"Percy-Handler.d.ts","sourceRoot":"","sources":["../../src/Percy/Percy-Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAazE,cAAM,aAAa;IAUX,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,UAAU,CAAC;IAbvB,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,iCAAiC,CAAC,CAAiB;IAC3D,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,yBAAyB,CAAU;IAC3C,OAAO,CAAC,wBAAwB,CAAY;IAC5C,OAAO,CAAC,gBAAgB,CAAC,CAAiB;gBAG9B,qBAAqB,EAAE,MAAM,GAAG,SAAS,EACzC,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC9D,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,cAAc,CAAC,EAAE,OAAO,YAAA,EACxB,UAAU,CAAC,EAAE,MAAM,YAAA;IAO/B,eAAe,CAAC,IAAI,EAAE,MAAM;IAItB,QAAQ;IAUR,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAmBrE,MAAM;IAIZ,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM1D,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IA+BhD,0BAA0B;IAS1B,oBAAoB,CAAE,IAAI,EAAE,iBAAiB;IAoB7C,mBAAmB,CAAE,IAAI,EAAE,iBAAiB,GAAG,gBAAgB;IA0B/D,SAAS;IAMT,aAAa;CAKtB;AAGD,QAAA,MAAM,YAAY,EAAE,OAAO,aAAoD,CAAA;AAC/E,KAAK,YAAY,GAAG,aAAa,CAAA;AAEjC,eAAe,YAAY,CAAA"}
@@ -4,5 +4,5 @@ import type { Options } from '@wdio/types';
4
4
  import Percy from './Percy.js';
5
5
  export declare const startPercy: (options: BrowserstackConfig & Options.Testrunner, config: Options.Testrunner, bsConfig: UserConfig) => Promise<Percy>;
6
6
  export declare const stopPercy: (percy: Percy) => Promise<unknown>;
7
- export declare const getBestPlatformForPercySnapshot: (capabilities?: Capabilities.RemoteCapabilities) => any;
7
+ export declare const getBestPlatformForPercySnapshot: (capabilities?: Capabilities.TestrunnerCapabilities) => any;
8
8
  //# sourceMappingURL=PercyHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PercyHelper.d.ts","sourceRoot":"","sources":["../../src/Percy/PercyHelper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,eAAO,MAAM,UAAU,YAAmB,kBAAkB,GAAG,QAAQ,UAAU,UAAU,QAAQ,UAAU,YAAY,UAAU,KAAG,QAAQ,KAAK,CAQlJ,CAAA;AAED,eAAO,MAAM,SAAS,UAAiB,KAAK,qBAG3C,CAAA;AAED,eAAO,MAAM,+BAA+B,kBAAmB,aAAa,kBAAkB,KAAI,GAgDjG,CAAA"}
1
+ {"version":3,"file":"PercyHelper.d.ts","sourceRoot":"","sources":["../../src/Percy/PercyHelper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,eAAO,MAAM,UAAU,YAAmB,kBAAkB,GAAG,OAAO,CAAC,UAAU,UAAU,OAAO,CAAC,UAAU,YAAY,UAAU,KAAG,OAAO,CAAC,KAAK,CAQlJ,CAAA;AAED,eAAO,MAAM,SAAS,UAAiB,KAAK,qBAG3C,CAAA;AAED,eAAO,MAAM,+BAA+B,kBAAmB,YAAY,CAAC,sBAAsB,KAAI,GAoDrG,CAAA"}
@@ -14,11 +14,11 @@ declare class _AccessibilityHandler {
14
14
  private _testMetadata;
15
15
  private static _a11yScanSessionMap;
16
16
  private _sessionId;
17
- constructor(_browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, _capabilities: Capabilities.RemoteCapability, isAppAutomate?: boolean, _framework?: string | undefined, _accessibilityAutomation?: string | boolean | undefined, _accessibilityOpts?: {
17
+ constructor(_browser: WebdriverIO.Browser | WebdriverIO.MultiRemoteBrowser, _capabilities: Capabilities.ResolvedTestrunnerCapabilities, isAppAutomate?: boolean, _framework?: string | undefined, _accessibilityAutomation?: (boolean | string) | undefined, _accessibilityOpts?: {
18
18
  [key: string]: any;
19
19
  } | undefined);
20
20
  setSuiteFile(filename: string): void;
21
- _getCapabilityValue(caps: Capabilities.RemoteCapability, capType: string, legacyCapType: string): WebdriverIO.SafaridriverOptions | undefined;
21
+ _getCapabilityValue(caps: Capabilities.ResolvedTestrunnerCapabilities, capType: string, legacyCapType: string): unknown;
22
22
  before(sessionId: string): Promise<void>;
23
23
  beforeTest(suiteTitle: string | undefined, test: Frameworks.Test): Promise<void>;
24
24
  afterTest(suiteTitle: string | undefined, test: Frameworks.Test): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility-handler.d.ts","sourceRoot":"","sources":["../src/accessibility-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAmBjE,cAAM,qBAAqB;IAWnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,wBAAwB,CAAC;IACjC,OAAO,CAAC,kBAAkB,CAAC;IAf/B,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,qBAAqB,CAAC,CAAyB;IACvD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA8B;IAChE,OAAO,CAAC,UAAU,CAAsB;gBAG5B,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC9D,aAAa,EAAE,YAAY,CAAC,gBAAgB,EACpD,aAAa,CAAC,EAAE,OAAO,EACf,UAAU,CAAC,oBAAQ,EACnB,wBAAwB,CAAC,8BAAkB,EAC3C,kBAAkB,CAAC;;iBAAyB;IAgBxD,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IA6BzF,MAAM,CAAE,SAAS,EAAE,MAAM;IAsCzB,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAgCjE,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IA2CtE;;MAEE;IACI,cAAc,CAAE,KAAK,EAAE,sBAAsB;IAgC7C,aAAa,CAAE,KAAK,EAAE,sBAAsB;YA+CpC,cAAc;YAcd,iBAAiB;IAO/B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;YAOZ,iBAAiB;IAkB/B,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAU1C;AAGD,QAAA,MAAM,oBAAoB,EAAE,OAAO,qBAAoE,CAAA;AACvG,KAAK,oBAAoB,GAAG,qBAAqB,CAAA;AAEjD,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"accessibility-handler.d.ts","sourceRoot":"","sources":["../src/accessibility-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAmBjE,cAAM,qBAAqB;IAWnB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU,CAAC;IACnB,OAAO,CAAC,wBAAwB,CAAC;IACjC,OAAO,CAAC,kBAAkB,CAAC;IAf/B,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,qBAAqB,CAAC,CAAyB;IACvD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA8B;IAChE,OAAO,CAAC,UAAU,CAAsB;gBAG5B,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EAC9D,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAClE,aAAa,CAAC,EAAE,OAAO,EACf,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,wBAAwB,CAAC,GAAE,OAAO,GAAG,MAAM,aAAA,EAC3C,kBAAkB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE,YAAA;IAiBxD,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,8BAA8B,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IA6BvG,MAAM,CAAE,SAAS,EAAE,MAAM;IAsCzB,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAgCjE,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IA2CtE;;MAEE;IACI,cAAc,CAAE,KAAK,EAAE,sBAAsB;IAgC7C,aAAa,CAAE,KAAK,EAAE,sBAAsB;YA+CpC,cAAc;YAcd,iBAAiB;IAO/B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;YAOZ,iBAAiB;IAkB/B,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAU1C;AAGD,QAAA,MAAM,oBAAoB,EAAE,OAAO,qBAAoE,CAAA;AACvG,KAAK,oBAAoB,GAAG,qBAAqB,CAAA;AAEjD,eAAe,oBAAoB,CAAA"}
@@ -0,0 +1,23 @@
1
+ import type { Capabilities } from '@wdio/types';
2
+ import type BrowserStackConfig from './config.js';
3
+ import type { Options } from '@wdio/types';
4
+ import type { BrowserstackHealing } from '@browserstack/ai-sdk-node';
5
+ import type { BrowserstackOptions } from './types.js';
6
+ declare class AiHandler {
7
+ authResult: BrowserstackHealing.InitSuccessResponse | BrowserstackHealing.InitErrorResponse;
8
+ wdioBstackVersion: string;
9
+ constructor();
10
+ authenticateUser(user: string, key: string): Promise<BrowserstackHealing.InitErrorResponse | BrowserstackHealing.InitSuccessResponse>;
11
+ updateCaps(authResult: BrowserstackHealing.InitSuccessResponse | BrowserstackHealing.InitErrorResponse, options: BrowserstackOptions, caps: Array<Capabilities.ResolvedTestrunnerCapabilities> | Capabilities.ResolvedTestrunnerCapabilities): Capabilities.ResolvedTestrunnerCapabilities | Capabilities.ResolvedTestrunnerCapabilities[];
12
+ setToken(sessionId: string, sessionToken: string): Promise<void>;
13
+ installFirefoxExtension(browser: WebdriverIO.Browser): Promise<void>;
14
+ handleHealing(orginalFunc: (arg0: string, arg1: string) => any, using: string, value: string, browser: WebdriverIO.Browser, options: BrowserstackOptions): Promise<any>;
15
+ addMultiRemoteCaps(authResult: BrowserstackHealing.InitSuccessResponse | BrowserstackHealing.InitErrorResponse, config: Options.Testrunner, browserStackConfig: BrowserStackConfig, options: BrowserstackOptions, caps: any, browser: string): void;
16
+ handleMultiRemoteSetup(authResult: BrowserstackHealing.InitSuccessResponse | BrowserstackHealing.InitErrorResponse, config: Options.Testrunner, browserStackConfig: BrowserStackConfig, options: BrowserstackOptions, caps: any): void;
17
+ setup(config: Options.Testrunner, browserStackConfig: BrowserStackConfig, options: BrowserstackOptions, caps: any, isMultiremote: boolean): Promise<any>;
18
+ handleSelfHeal(options: BrowserstackOptions, browser: WebdriverIO.Browser): Promise<void>;
19
+ selfHeal(options: BrowserstackOptions, caps: Capabilities.ResolvedTestrunnerCapabilities, browser: WebdriverIO.Browser): Promise<void>;
20
+ }
21
+ declare const _default: AiHandler;
22
+ export default _default;
23
+ //# sourceMappingURL=ai-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-handler.d.ts","sourceRoot":"","sources":["../src/ai-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,kBAAkB,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,cAAM,SAAS;IACX,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,CAAA;IAC3F,iBAAiB,EAAE,MAAM,CAAA;;IAMnB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAIhD,UAAU,CACN,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,EAC3F,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,8BAA8B,CAAC,GAAG,YAAY,CAAC,8BAA8B;IAkBpG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAIhD,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO;IAOpD,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB;IAoD9J,kBAAkB,CACd,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,EAC3F,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,MAAM;IAcnB,sBAAsB,CAClB,UAAU,EAAE,mBAAmB,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,iBAAiB,EAC3F,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,GAAG;IASP,KAAK,CACP,MAAM,EAAE,OAAO,CAAC,UAAU,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,GAAG,EACT,aAAa,EAAE,OAAO;IA0BpB,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;IA0BzE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,CAAC,8BAA8B,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;CAmB/H;;AAED,wBAA8B"}
@@ -12,7 +12,7 @@ export declare const DATA_BATCH_INTERVAL = 2000;
12
12
  export declare const BATCH_EVENT_TYPES: string[];
13
13
  export declare const DEFAULT_WAIT_TIMEOUT_FOR_PENDING_UPLOADS = 5000;
14
14
  export declare const DEFAULT_WAIT_INTERVAL_FOR_PENDING_UPLOADS = 100;
15
- export declare const BSTACK_SERVICE_VERSION: any;
15
+ export declare const BSTACK_SERVICE_VERSION: string;
16
16
  export declare const ACCESSIBILITY_API_URL = "https://accessibility.browserstack.com/api";
17
17
  export declare const NOT_ALLOWED_KEYS_IN_CAPS: string[];
18
18
  export declare const LOGS_FILE = "logs/bstack-wdio-service.log";
@@ -28,11 +28,20 @@ export declare const LOG_KIND_USAGE_MAP: {
28
28
  HTTP: string;
29
29
  };
30
30
  export declare const FUNNEL_INSTRUMENTATION_URL = "https://api.browserstack.com/sdk/v1/event";
31
+ export declare const SUPPORTED_BROWSERS_FOR_AI: string[];
32
+ export declare const TCG_URL = "https://tcg.browserstack.com";
33
+ export declare const TCG_INFO: {
34
+ tcgRegion: string;
35
+ tcgUrl: string;
36
+ };
31
37
  export declare const TESTOPS_JWT_ENV = "BS_TESTOPS_JWT";
38
+ export declare const BSTACK_TCG_AUTH_RESULT = "BSTACK_TCG_AUTH_RESULT";
32
39
  export declare const TESTOPS_SCREENSHOT_ENV = "BS_TESTOPS_ALLOW_SCREENSHOTS";
33
40
  export declare const TESTOPS_BUILD_ID_ENV = "BS_TESTOPS_BUILD_HASHED_ID";
34
41
  export declare const PERF_MEASUREMENT_ENV = "BROWSERSTACK_O11Y_PERF_MEASUREMENT";
35
42
  export declare const RERUN_TESTS_ENV = "BROWSERSTACK_RERUN_TESTS";
36
43
  export declare const RERUN_ENV = "BROWSERSTACK_RERUN";
37
44
  export declare const TESTOPS_BUILD_COMPLETED_ENV = "BS_TESTOPS_BUILD_COMPLETED";
45
+ export declare const MAX_GIT_META_DATA_SIZE_IN_BYTES: number;
46
+ export declare const GIT_META_DATA_TRUNCATED = "...[TRUNCATED]";
38
47
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAKpD,eAAO,MAAM,mBAAmB,qHAStB,CAAA;AAEV,eAAO,MAAM,mBAAmB,UAI/B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAKvD,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,OAAO,OAAoC,CAAA;AAEvE,eAAO,MAAM,aAAa,qDAAqD,CAAA;AAC/E,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AACjD,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AACjD,eAAO,MAAM,wBAAwB,uBAAuB,CAAA;AAC5D,eAAO,MAAM,eAAe,OAAO,CAAA;AACnC,eAAO,MAAM,mBAAmB,OAAO,CAAA;AACvC,eAAO,MAAM,iBAAiB,UAAgH,CAAA;AAC9I,eAAO,MAAM,wCAAwC,OAAO,CAAA;AAC5D,eAAO,MAAM,yCAAyC,MAAM,CAAA;AAC5D,eAAO,MAAM,sBAAsB,KAAuB,CAAA;AAE1D,eAAO,MAAM,qBAAqB,+CAA+C,CAAA;AACjF,eAAO,MAAM,wBAAwB,UAA6D,CAAA;AAElG,eAAO,MAAM,SAAS,iCAAiC,CAAA;AACvD,eAAO,MAAM,mBAAmB,kDAAkD,CAAA;AAClF,eAAO,MAAM,oBAAoB,uBAAuB,CAAA;AAExD,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,eAAO,MAAM,qCAAqC,UAQjD,CAAA;AAED,eAAO,MAAM,aAAa,UAAwD,CAAA;AAClF,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAA;AAED,eAAO,MAAM,0BAA0B,8CAA8C,CAAA;AAKrF,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAG/C,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AAGpE,eAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAGhE,eAAO,MAAM,oBAAoB,uCAAuC,CAAA;AAGxE,eAAO,MAAM,eAAe,6BAA6B,CAAA;AAGzD,eAAO,MAAM,SAAS,uBAAuB,CAAA;AAG7C,eAAO,MAAM,2BAA2B,+BAA+B,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAKpD,eAAO,MAAM,mBAAmB,qHAStB,CAAA;AAEV,eAAO,MAAM,mBAAmB,UAI/B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAKvD,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,OAAO,OAAoC,CAAA;AAEvE,eAAO,MAAM,aAAa,qDAAqD,CAAA;AAC/E,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AACjD,eAAO,MAAM,mBAAmB,iBAAiB,CAAA;AACjD,eAAO,MAAM,wBAAwB,uBAAuB,CAAA;AAC5D,eAAO,MAAM,eAAe,OAAO,CAAA;AACnC,eAAO,MAAM,mBAAmB,OAAO,CAAA;AACvC,eAAO,MAAM,iBAAiB,UAAgH,CAAA;AAC9I,eAAO,MAAM,wCAAwC,OAAO,CAAA;AAC5D,eAAO,MAAM,yCAAyC,MAAM,CAAA;AAC5D,eAAO,MAAM,sBAAsB,QAAuB,CAAA;AAE1D,eAAO,MAAM,qBAAqB,+CAA+C,CAAA;AACjF,eAAO,MAAM,wBAAwB,UAA6D,CAAA;AAElG,eAAO,MAAM,SAAS,iCAAiC,CAAA;AACvD,eAAO,MAAM,mBAAmB,kDAAkD,CAAA;AAClF,eAAO,MAAM,oBAAoB,uBAAuB,CAAA;AAExD,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAE/C,eAAO,MAAM,qCAAqC,UAQjD,CAAA;AAED,eAAO,MAAM,aAAa,UAAwD,CAAA;AAClF,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAA;AAED,eAAO,MAAM,0BAA0B,8CAA8C,CAAA;AAErF,eAAO,MAAM,yBAAyB,UAAyC,CAAA;AAE/E,eAAO,MAAM,OAAO,iCAAiC,CAAA;AAErD,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAKD,eAAO,MAAM,eAAe,mBAAmB,CAAA;AAG/C,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAG9D,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AAGpE,eAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAGhE,eAAO,MAAM,oBAAoB,uCAAuC,CAAA;AAGxE,eAAO,MAAM,eAAe,6BAA6B,CAAA;AAGzD,eAAO,MAAM,SAAS,uBAAuB,CAAA;AAG7C,eAAO,MAAM,2BAA2B,+BAA+B,CAAA;AAGvE,eAAO,MAAM,+BAA+B,QAAY,CAAA;AAIxD,eAAO,MAAM,uBAAuB,mBAAmB,CAAA"}
@@ -5,13 +5,13 @@ export default class CrashReporter {
5
5
  static userConfigForReporting: UserConfigforReporting;
6
6
  private static credentialsForCrashReportUpload;
7
7
  static setCredentialsForCrashReportUpload(options: BrowserstackConfig & Options.Testrunner, config: Options.Testrunner): void;
8
- static setConfigDetails(userConfig: Options.Testrunner, capabilities: Capabilities.RemoteCapability, options: BrowserstackConfig & Options.Testrunner): void;
8
+ static setConfigDetails(userConfig: Options.Testrunner, capabilities: Capabilities.TestrunnerCapabilities, options: BrowserstackConfig & Options.Testrunner): void;
9
9
  static uploadCrashReport(exception: any, stackTrace: string): Promise<void>;
10
10
  static recursivelyRedactKeysFromObject(obj: Dict | Array<Dict>, keys: string[]): void;
11
11
  static deletePIIKeysFromObject(obj: {
12
12
  [key: string]: any;
13
13
  }): void;
14
- static filterCapabilities(capabilities: Capabilities.RemoteCapability): any;
14
+ static filterCapabilities(capabilities: Capabilities.TestrunnerCapabilities): any;
15
15
  static filterPII(userConfig: Options.Testrunner): any;
16
16
  }
17
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"crash-reporter.d.ts","sourceRoot":"","sources":["../src/crash-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,kBAAkB,EAAmC,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAI7G,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE/B,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAc,sBAAsB,EAAE,sBAAsB,CAAK;IAEjE,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAsC;IAEpF,MAAM,CAAC,kCAAkC,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAQtH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU;WAiBxI,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM;IAsDjE,MAAM,CAAC,+BAA+B,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAiB9E,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IAOxD,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,gBAAgB;IAMrE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU;CAyBlD"}
1
+ {"version":3,"file":"crash-reporter.d.ts","sourceRoot":"","sources":["../src/crash-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,kBAAkB,EAAmC,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAI7G,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE/B,MAAM,CAAC,OAAO,OAAO,aAAa;IAE9B,OAAc,sBAAsB,EAAE,sBAAsB,CAAK;IAEjE,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAsC;IAEpF,MAAM,CAAC,kCAAkC,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU;IAQtH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,sBAAsB,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU;WAiB9I,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM;IAsDjE,MAAM,CAAC,+BAA+B,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAiB9E,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC;IAOxD,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,CAAC,sBAAsB;IAM3E,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU;CAyBlD"}
@@ -1,5 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import type fs from 'node:fs';
4
2
  import type zlib from 'node:zlib';
5
3
  export declare class FileStream {
@@ -1 +1 @@
1
- {"version":3,"file":"fileStream.d.ts","sourceRoot":"","sources":["../src/fileStream.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,qBAAa,UAAU;IACnB,cAAc,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAA;gBAC7B,cAAc,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;IAIrD,MAAM;IAIN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;CACJ"}
1
+ {"version":3,"file":"fileStream.d.ts","sourceRoot":"","sources":["../src/fileStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,qBAAa,UAAU;IACnB,cAAc,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAA;gBAC7B,cAAc,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;IAIrD,MAAM;IAIN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;CACJ"}