@wdio/browserstack-service 9.23.0 → 9.23.2

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 (30) hide show
  1. package/build/Percy/PercySDK.d.ts.map +1 -1
  2. package/build/accessibility-handler.d.ts.map +1 -1
  3. package/build/cleanup.js +419 -19
  4. package/build/cli/grpcClient.d.ts +4 -0
  5. package/build/cli/grpcClient.d.ts.map +1 -1
  6. package/build/cli/index.d.ts.map +1 -1
  7. package/build/cli/modules/accessibilityModule.d.ts.map +1 -1
  8. package/build/constants.d.ts +2 -0
  9. package/build/constants.d.ts.map +1 -1
  10. package/build/index.js +9130 -7433
  11. package/build/insights-handler.d.ts.map +1 -1
  12. package/build/launcher.d.ts.map +1 -1
  13. package/build/service.d.ts.map +1 -1
  14. package/build/testorchestration/apply-orchestration.d.ts +7 -0
  15. package/build/testorchestration/apply-orchestration.d.ts.map +1 -0
  16. package/build/testorchestration/helpers.d.ts +53 -0
  17. package/build/testorchestration/helpers.d.ts.map +1 -0
  18. package/build/testorchestration/request-utils.d.ts +23 -0
  19. package/build/testorchestration/request-utils.d.ts.map +1 -0
  20. package/build/testorchestration/test-ordering-server.d.ts +34 -0
  21. package/build/testorchestration/test-ordering-server.d.ts.map +1 -0
  22. package/build/testorchestration/testorcherstrationhandler.d.ts +56 -0
  23. package/build/testorchestration/testorcherstrationhandler.d.ts.map +1 -0
  24. package/build/testorchestration/testorcherstrationutils.d.ts +101 -0
  25. package/build/testorchestration/testorcherstrationutils.d.ts.map +1 -0
  26. package/build/types.d.ts +13 -0
  27. package/build/types.d.ts.map +1 -1
  28. package/build/util.d.ts +5 -0
  29. package/build/util.d.ts.map +1 -1
  30. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"PercySDK.d.ts","sourceRoot":"","sources":["../../src/Percy/PercySDK.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,QAAQ,YAnBW,OAAO,EAAE,SAmBF,CAAA;AAyCvC,eAAO,MAAM,UAAU,YARiB,OAAO,EAAE,kBAQN,CAAA;AAW3C,eAAO,MAAM,aAAa,YARiB,OAAO,EAAE,kBAQH,CAAA"}
1
+ {"version":3,"file":"PercySDK.d.ts","sourceRoot":"","sources":["../../src/Percy/PercySDK.ts"],"names":[],"mappings":"AA4CA,eAAO,MAAM,QAAQ,YAnBW,OAAO,EAAE,SAmBF,CAAA;AAyCvC,eAAO,MAAM,UAAU,YARiB,OAAO,EAAE,kBAQN,CAAA;AAW3C,eAAO,MAAM,aAAa,YARiB,OAAO,EAAE,kBAQH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility-handler.d.ts","sourceRoot":"","sources":["../src/accessibility-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAajE,UAAU,oBAAoB;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAsDD,cAAM,qBAAqB;IAiBnB,OAAO,CAAC,QAAQ;IAGhB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU,CAAC;IArBvB,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAyB;IAC3D,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,QAAQ,CAAyB;gBAG7B,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EACtE,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,QAAQ,EAAE,kBAAkB,GAAG,mBAAmB,EAC1C,aAAa,EAAE,OAAO,EAC9B,OAAO,EAAE,OAAO,CAAC,UAAU,EACnB,UAAU,CAAC,EAAE,MAAM,YAAA,EAC3B,wBAAwB,CAAC,EAAE,OAAO,GAAG,MAAM,EAC3C,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAC9B,kBAAkB,CAAC,EAAE,oBAAoB;IAuB7C,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,8BAA8B,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IA6BvG,MAAM,CAAC,SAAS,EAAE,MAAM;IA2GxB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAuChE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAoCrE;;MAEE;IACI,cAAc,CAAC,KAAK,EAAE,sBAAsB;IAqC5C,aAAa,CAAC,KAAK,EAAE,sBAAsB;YAsCnC,cAAc;YAcd,iBAAiB;IAuB/B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;YAOZ,iBAAiB;IAkB/B,OAAO,CAAC,MAAM,CAAC,wBAAwB;YAWzB,cAAc;CAiB/B;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":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAajE,UAAU,oBAAoB;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAsDD,cAAM,qBAAqB;IAiBnB,OAAO,CAAC,QAAQ;IAGhB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU,CAAC;IArBvB,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,qBAAqB,CAAC,CAAsB;IACpD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAyB;IAC3D,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,QAAQ,CAAyB;gBAG7B,QAAQ,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,EACtE,aAAa,EAAE,YAAY,CAAC,8BAA8B,EAC1D,QAAQ,EAAG,kBAAkB,GAAG,mBAAmB,EAC3C,aAAa,EAAE,OAAO,EAC9B,OAAO,EAAG,OAAO,CAAC,UAAU,EACpB,UAAU,CAAC,EAAE,MAAM,YAAA,EAC3B,wBAAwB,CAAC,EAAE,OAAO,GAAG,MAAM,EAC3C,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAC9B,kBAAkB,CAAC,EAAE,oBAAoB;IAuB7C,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;IA6GzB,UAAU,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAuCjE,SAAS,CAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI;IAoCtE;;MAEE;IACI,cAAc,CAAE,KAAK,EAAE,sBAAsB;IAqC7C,aAAa,CAAE,KAAK,EAAE,sBAAsB;YAsCpC,cAAc;YAed,iBAAiB;IAuB/B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;YAOZ,iBAAiB;IAkB/B,OAAO,CAAC,MAAM,CAAC,wBAAwB;YAWzB,cAAc;CAW/B;AAGD,QAAA,MAAM,oBAAoB,EAAE,OAAO,qBAAoE,CAAA;AACvG,KAAK,oBAAoB,GAAG,qBAAqB,CAAA;AAEjD,eAAe,oBAAoB,CAAA"}
package/build/cleanup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/util.ts
2
2
  import { hostname as hostname2, platform as platform2, type as type2, version as version2, arch as arch2, tmpdir } from "node:os";
3
3
  import crypto from "node:crypto";
4
- import fs4 from "node:fs";
4
+ import fs5 from "node:fs";
5
5
  import zlib from "node:zlib";
6
6
  import { format, promisify } from "node:util";
7
7
  import path4 from "node:path";
@@ -71,7 +71,7 @@ import logger from "@wdio/logger";
71
71
  // package.json
72
72
  var package_default = {
73
73
  name: "@wdio/browserstack-service",
74
- version: "9.22.0",
74
+ version: "9.23.1",
75
75
  description: "WebdriverIO service for better Browserstack integration",
76
76
  author: "Adam Bjerstedt <abjerstedt@gmail.com>",
77
77
  homepage: "https://github.com/webdriverio/webdriverio/tree/main/packages/wdio-browserstack-service",
@@ -108,7 +108,7 @@ var package_default = {
108
108
  typeScriptVersion: "3.8.3",
109
109
  dependencies: {
110
110
  "@browserstack/ai-sdk-node": "1.5.17",
111
- "@browserstack/wdio-browserstack-service": "^2.0.0",
111
+ "@browserstack/wdio-browserstack-service": "^2.0.2",
112
112
  "@percy/appium-app": "^2.0.9",
113
113
  "@percy/selenium-webdriver": "^2.2.2",
114
114
  "@types/gitconfiglocal": "^2.0.1",
@@ -121,6 +121,7 @@ var package_default = {
121
121
  "formdata-node": "5.0.1",
122
122
  "git-repo-info": "^2.1.1",
123
123
  gitconfiglocal: "^2.1.0",
124
+ glob: "^11.0.0",
124
125
  tar: "^6.1.15",
125
126
  undici: "^6.21.3",
126
127
  uuid: "^11.1.0",
@@ -149,6 +150,8 @@ var APP_ALLY_ISSUES_ENDPOINT = "api/v1/issues";
149
150
  var APP_ALLY_ISSUES_SUMMARY_ENDPOINT = "api/v1/issues-summary";
150
151
  var BSTACK_SERVICE_VERSION = bstackServiceVersion;
151
152
  var LOGS_FILE = "logs/bstack-wdio-service.log";
153
+ var SMART_SELECTION_MODE_RELEVANT_FIRST = "relevantFirst";
154
+ var SMART_SELECTION_MODE_RELEVANT_ONLY = "relevantOnly";
152
155
  var BROWSERSTACK_TESTHUB_JWT = "BROWSERSTACK_TESTHUB_JWT";
153
156
  var TESTOPS_SCREENSHOT_ENV = "BS_TESTOPS_ALLOW_SCREENSHOTS";
154
157
  var BROWSERSTACK_TESTHUB_UUID = "BROWSERSTACK_TESTHUB_UUID";
@@ -676,6 +679,384 @@ var getProductMapForBuildStartCall = (config, accessibilityAutomation) => {
676
679
  };
677
680
  };
678
681
 
682
+ // src/testorchestration/testorcherstrationutils.ts
683
+ import fs3 from "node:fs";
684
+ var RUN_SMART_SELECTION = "runSmartSelection";
685
+ var ALLOWED_ORCHESTRATION_KEYS = [
686
+ RUN_SMART_SELECTION
687
+ ];
688
+ var isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
689
+ var asString = (value) => {
690
+ if (typeof value === "string") {
691
+ return value;
692
+ }
693
+ if (typeof value === "number") {
694
+ return value.toString();
695
+ }
696
+ return void 0;
697
+ };
698
+ var TestOrdering = class {
699
+ enabled;
700
+ name;
701
+ constructor() {
702
+ this.enabled = false;
703
+ this.name = null;
704
+ }
705
+ enable(name) {
706
+ this.enabled = true;
707
+ this.name = name;
708
+ }
709
+ disable() {
710
+ this.enabled = false;
711
+ this.name = null;
712
+ }
713
+ getEnabled() {
714
+ return this.enabled;
715
+ }
716
+ getName() {
717
+ return this.name;
718
+ }
719
+ };
720
+ var OrchestrationUtils = class _OrchestrationUtils {
721
+ static _instance = null;
722
+ runSmartSelection;
723
+ smartSelectionMode;
724
+ testOrdering;
725
+ smartSelectionSource;
726
+ projectName;
727
+ buildName;
728
+ buildIdentifier;
729
+ /**
730
+ * @param config Configuration object
731
+ */
732
+ constructor(config) {
733
+ this.runSmartSelection = false;
734
+ this.smartSelectionMode = SMART_SELECTION_MODE_RELEVANT_FIRST;
735
+ this.testOrdering = new TestOrdering();
736
+ this.smartSelectionSource = null;
737
+ const configRecord = isPlainObject(config) ? config : {};
738
+ let testOrchOptions = isPlainObject(configRecord.testOrchestrationOptions) ? configRecord.testOrchestrationOptions : {};
739
+ const services = Array.isArray(configRecord.services) ? configRecord.services : void 0;
740
+ if (Object.keys(testOrchOptions).length === 0 && Array.isArray(services)) {
741
+ for (const service of services) {
742
+ if (Array.isArray(service) && service[0] === "browserstack" && isPlainObject(service[1]) && isPlainObject(service[1].testOrchestrationOptions)) {
743
+ testOrchOptions = service[1].testOrchestrationOptions;
744
+ BStackLogger.debug("[constructor] Found testOrchestrationOptions in browserstack service config");
745
+ break;
746
+ }
747
+ }
748
+ }
749
+ const runSmartSelectionOpts = isPlainObject(testOrchOptions[RUN_SMART_SELECTION]) ? testOrchOptions[RUN_SMART_SELECTION] : {};
750
+ this._setRunSmartSelection(
751
+ runSmartSelectionOpts.enabled ?? false,
752
+ runSmartSelectionOpts.mode || SMART_SELECTION_MODE_RELEVANT_FIRST,
753
+ runSmartSelectionOpts.source ?? null
754
+ );
755
+ this._extractBuildDetails(config);
756
+ }
757
+ /**
758
+ * Extract build details from capabilities
759
+ */
760
+ _extractBuildDetails(config) {
761
+ try {
762
+ const configRecord = isPlainObject(config) ? config : {};
763
+ const capabilities = configRecord.capabilities;
764
+ if (Array.isArray(capabilities)) {
765
+ capabilities.forEach((capability) => this._parseCapability(capability));
766
+ } else if (isPlainObject(capabilities)) {
767
+ Object.values(capabilities).forEach((caps) => {
768
+ if (isPlainObject(caps) && "capabilities" in caps && isPlainObject(caps.capabilities)) {
769
+ this._parseCapability(caps.capabilities);
770
+ }
771
+ });
772
+ }
773
+ BStackLogger.debug(`[_extractBuildDetails] Extracted - projectName: ${this.projectName}, buildName: ${this.buildName}, buildIdentifier: ${this.buildIdentifier}`);
774
+ } catch (error) {
775
+ BStackLogger.error(`[_extractBuildDetails] ${error}`);
776
+ }
777
+ }
778
+ _parseCapability(capability) {
779
+ if (!isPlainObject(capability)) {
780
+ return;
781
+ }
782
+ const bstackOptionsRaw = capability["bstack:options"];
783
+ if (isPlainObject(bstackOptionsRaw)) {
784
+ const buildName = asString(bstackOptionsRaw.buildName);
785
+ const projectName = asString(bstackOptionsRaw.projectName);
786
+ const buildIdentifier = asString(bstackOptionsRaw.buildIdentifier);
787
+ if (buildName) {
788
+ this.buildName = buildName;
789
+ }
790
+ if (projectName) {
791
+ this.projectName = projectName;
792
+ }
793
+ if (buildIdentifier) {
794
+ this.buildIdentifier = buildIdentifier;
795
+ }
796
+ } else {
797
+ const legacyBuildIdentifier = asString(capability["browserstack.buildIdentifier"]);
798
+ const legacyBuildName = asString(capability.build);
799
+ if (legacyBuildIdentifier) {
800
+ this.buildIdentifier = legacyBuildIdentifier;
801
+ }
802
+ if (legacyBuildName) {
803
+ this.buildName = legacyBuildName;
804
+ }
805
+ }
806
+ }
807
+ /**
808
+ * Get or create an instance of OrchestrationUtils
809
+ */
810
+ static getInstance(config) {
811
+ if (!_OrchestrationUtils._instance && config) {
812
+ _OrchestrationUtils._instance = new _OrchestrationUtils(config);
813
+ }
814
+ return _OrchestrationUtils._instance;
815
+ }
816
+ /**
817
+ * Get orchestration data from config
818
+ */
819
+ static getOrchestrationData(config) {
820
+ const configRecord = isPlainObject(config) ? config : {};
821
+ const orchestrationData = isPlainObject(configRecord.testOrchestrationOptions) ? configRecord.testOrchestrationOptions : {};
822
+ const result = {};
823
+ Object.entries(orchestrationData).forEach(([key, value]) => {
824
+ if (ALLOWED_ORCHESTRATION_KEYS.includes(key)) {
825
+ result[key] = value;
826
+ }
827
+ });
828
+ return result;
829
+ }
830
+ /**
831
+ * Get run smart selection setting
832
+ */
833
+ getRunSmartSelection() {
834
+ return this.runSmartSelection;
835
+ }
836
+ /**
837
+ * Get smart selection mode
838
+ */
839
+ getSmartSelectionMode() {
840
+ return this.smartSelectionMode;
841
+ }
842
+ /**
843
+ * Get smart selection source
844
+ */
845
+ getSmartSelectionSource() {
846
+ return this.smartSelectionSource;
847
+ }
848
+ /**
849
+ * Get project name
850
+ */
851
+ getProjectName() {
852
+ return this.projectName;
853
+ }
854
+ /**
855
+ * Get build name
856
+ */
857
+ getBuildName() {
858
+ return this.buildName;
859
+ }
860
+ /**
861
+ * Get build identifier
862
+ */
863
+ getBuildIdentifier() {
864
+ return this.buildIdentifier;
865
+ }
866
+ /**
867
+ * Set build details
868
+ */
869
+ setBuildDetails(projectName, buildName, buildIdentifier) {
870
+ this.projectName = projectName;
871
+ this.buildName = buildName;
872
+ this.buildIdentifier = buildIdentifier;
873
+ BStackLogger.debug(`[setBuildDetails] Set - projectName: ${this.projectName}, buildName: ${this.buildName}, buildIdentifier: ${this.buildIdentifier}`);
874
+ }
875
+ /**
876
+ * Set run smart selection
877
+ */
878
+ _setRunSmartSelection(enabled, mode, source = null) {
879
+ try {
880
+ this.runSmartSelection = isValidEnabledValue(enabled);
881
+ this.smartSelectionMode = mode;
882
+ this.smartSelectionSource = [];
883
+ BStackLogger.debug(`Setting runSmartSelection: enabled=${this.runSmartSelection}, mode=${this.smartSelectionMode}`);
884
+ if (this.runSmartSelection) {
885
+ const validModes = [SMART_SELECTION_MODE_RELEVANT_FIRST, SMART_SELECTION_MODE_RELEVANT_ONLY];
886
+ if (!validModes.includes(this.smartSelectionMode)) {
887
+ BStackLogger.warn(`Invalid smart selection mode '${this.smartSelectionMode}' provided. Defaulting to '${SMART_SELECTION_MODE_RELEVANT_FIRST}'.`);
888
+ this.smartSelectionMode = SMART_SELECTION_MODE_RELEVANT_FIRST;
889
+ }
890
+ if (source === null) {
891
+ this.smartSelectionSource = null;
892
+ BStackLogger.debug("No source provided for smart selection; defaulting to null.");
893
+ } else if (Array.isArray(source)) {
894
+ this.smartSelectionSource = source;
895
+ BStackLogger.debug(`Smart selection source set to array: ${JSON.stringify(source)}`);
896
+ } else if (typeof source === "string" && source.endsWith(".json")) {
897
+ this.smartSelectionSource = this._loadSourceFromFile(source) || [];
898
+ BStackLogger.debug(`Smart selection source loaded from file: ${source}`);
899
+ }
900
+ this._setTestOrdering();
901
+ }
902
+ } catch (e) {
903
+ BStackLogger.error(`[_setRunSmartSelection] ${e}`);
904
+ }
905
+ }
906
+ /**
907
+ * Parse JSON source configuration file and format it for smart selection.
908
+ *
909
+ * @param filePath - Path to the JSON configuration file
910
+ * @returns Formatted list of repository configurations
911
+ */
912
+ _loadSourceFromFile(filePath) {
913
+ if (!fs3.existsSync(filePath)) {
914
+ BStackLogger.error(`Source file '${filePath}' does not exist.`);
915
+ return [];
916
+ }
917
+ let data = null;
918
+ try {
919
+ const fileContent = fs3.readFileSync(filePath, "utf8");
920
+ data = JSON.parse(fileContent);
921
+ } catch (error) {
922
+ const message = error instanceof Error ? error.message : String(error);
923
+ BStackLogger.error(`Error parsing JSON from source file '${filePath}': ${message}`);
924
+ return [];
925
+ }
926
+ let featureBranchEnvMap = null;
927
+ const loadFeatureBranchMaps = () => {
928
+ const envVar = process.env.BROWSERSTACK_ORCHESTRATION_SMART_SELECTION_FEATURE_BRANCHES || "";
929
+ let envMap = {};
930
+ try {
931
+ envMap = envVar.startsWith("{") && envVar.endsWith("}") ? JSON.parse(envVar) : envVar.split(",").filter((item) => item.includes(":")).reduce((acc, item) => {
932
+ const [key, value] = item.split(":");
933
+ if (key && value) {
934
+ acc[key.trim()] = value.trim();
935
+ }
936
+ return acc;
937
+ }, {});
938
+ } catch (error) {
939
+ BStackLogger.error(`Error parsing feature branch mappings: ${error}`);
940
+ }
941
+ BStackLogger.debug(`Feature branch mappings from env: ${JSON.stringify(envMap)}`);
942
+ return envMap;
943
+ };
944
+ featureBranchEnvMap = loadFeatureBranchMaps();
945
+ const getFeatureBranch = (name, repoInfo) => {
946
+ if (featureBranchEnvMap && featureBranchEnvMap[name]) {
947
+ return featureBranchEnvMap[name];
948
+ }
949
+ if (repoInfo.featureBranch) {
950
+ return repoInfo.featureBranch;
951
+ }
952
+ return null;
953
+ };
954
+ if (typeof data === "object" && data !== null && !Array.isArray(data)) {
955
+ const formattedData = [];
956
+ const namePattern = /^[A-Z0-9_]+$/;
957
+ for (const [name, repoInfo] of Object.entries(data)) {
958
+ if (!isPlainObject(repoInfo)) {
959
+ continue;
960
+ }
961
+ const typedRepoInfo = repoInfo;
962
+ if (!typedRepoInfo.url || typeof typedRepoInfo.url !== "string") {
963
+ BStackLogger.warn(`Repository URL is missing or invalid for source '${name}': ${JSON.stringify(repoInfo)}`);
964
+ continue;
965
+ }
966
+ if (typedRepoInfo.baseBranch !== void 0 && typeof typedRepoInfo.baseBranch !== "string") {
967
+ BStackLogger.warn(`Base branch must be a string for source '${name}': ${JSON.stringify(repoInfo)}`);
968
+ continue;
969
+ }
970
+ if (typedRepoInfo.featureBranch !== void 0 && typeof typedRepoInfo.featureBranch !== "string") {
971
+ BStackLogger.warn(`Feature branch must be a string for source '${name}': ${JSON.stringify(repoInfo)}`);
972
+ continue;
973
+ }
974
+ if (!namePattern.test(name)) {
975
+ BStackLogger.warn(`Invalid source identifier format for '${name}': ${JSON.stringify(repoInfo)}`);
976
+ continue;
977
+ }
978
+ if (name.length > 30 || name.length < 1) {
979
+ BStackLogger.warn(`Source identifier '${name}' must have a length between 1 and 30 characters.`);
980
+ continue;
981
+ }
982
+ const featureBranch = getFeatureBranch(name, typedRepoInfo);
983
+ const filteredRepoInfo = {
984
+ name,
985
+ url: typedRepoInfo.url,
986
+ featureBranch: featureBranch ?? void 0
987
+ };
988
+ if (typedRepoInfo.baseBranch) {
989
+ filteredRepoInfo.baseBranch = typedRepoInfo.baseBranch;
990
+ }
991
+ if (!filteredRepoInfo.featureBranch || filteredRepoInfo.featureBranch === "") {
992
+ BStackLogger.warn(`Feature branch not specified for source '${name}': ${JSON.stringify(repoInfo)}`);
993
+ continue;
994
+ }
995
+ if (filteredRepoInfo.baseBranch && filteredRepoInfo.baseBranch === filteredRepoInfo.featureBranch) {
996
+ BStackLogger.warn(`Feature branch and base branch cannot be the same for source '${name}': ${JSON.stringify(repoInfo)}`);
997
+ continue;
998
+ }
999
+ formattedData.push(filteredRepoInfo);
1000
+ }
1001
+ return formattedData;
1002
+ }
1003
+ if (Array.isArray(data)) {
1004
+ return data.filter(isPlainObject);
1005
+ }
1006
+ return [];
1007
+ }
1008
+ /**
1009
+ * Set test ordering based on priorities
1010
+ */
1011
+ _setTestOrdering() {
1012
+ if (this.runSmartSelection) {
1013
+ this.testOrdering.enable(RUN_SMART_SELECTION);
1014
+ } else {
1015
+ this.testOrdering.disable();
1016
+ }
1017
+ }
1018
+ /**
1019
+ * Check if test ordering is enabled
1020
+ */
1021
+ testOrderingEnabled() {
1022
+ return this.testOrdering.getEnabled();
1023
+ }
1024
+ /**
1025
+ * Get test ordering name
1026
+ */
1027
+ getTestOrderingName() {
1028
+ if (this.testOrdering.getEnabled()) {
1029
+ return this.testOrdering.getName();
1030
+ }
1031
+ return null;
1032
+ }
1033
+ /**
1034
+ * Get test orchestration metadata
1035
+ */
1036
+ getTestOrchestrationMetadata() {
1037
+ const data = {
1038
+ "run_smart_selection": {
1039
+ "enabled": this.getRunSmartSelection(),
1040
+ "mode": this.getSmartSelectionMode(),
1041
+ "source": this.getSmartSelectionSource()
1042
+ }
1043
+ };
1044
+ return data;
1045
+ }
1046
+ /**
1047
+ * Get build start data
1048
+ */
1049
+ getBuildStartData() {
1050
+ return {
1051
+ run_smart_selection: {
1052
+ enabled: this.getRunSmartSelection(),
1053
+ mode: this.getSmartSelectionMode()
1054
+ // Not sending "source" to TH builds
1055
+ }
1056
+ };
1057
+ }
1058
+ };
1059
+
679
1060
  // src/crash-reporter.ts
680
1061
  var CrashReporter = class {
681
1062
  /* User test config for build run minus PII */
@@ -1113,7 +1494,7 @@ import { fileFromPath } from "formdata-node/file-from-path";
1113
1494
 
1114
1495
  // src/scripts/accessibility-scripts.ts
1115
1496
  import path3 from "node:path";
1116
- import fs3 from "node:fs";
1497
+ import fs4 from "node:fs";
1117
1498
  import os from "node:os";
1118
1499
  var AccessibilityScripts = class _AccessibilityScripts {
1119
1500
  static instance = null;
@@ -1146,11 +1527,11 @@ var AccessibilityScripts = class _AccessibilityScripts {
1146
1527
  ];
1147
1528
  for (const orderedPath of orderedPaths) {
1148
1529
  try {
1149
- if (fs3.existsSync(orderedPath)) {
1150
- fs3.accessSync(orderedPath);
1530
+ if (fs4.existsSync(orderedPath)) {
1531
+ fs4.accessSync(orderedPath);
1151
1532
  return orderedPath;
1152
1533
  }
1153
- fs3.mkdirSync(orderedPath, { recursive: true });
1534
+ fs4.mkdirSync(orderedPath, { recursive: true });
1154
1535
  return orderedPath;
1155
1536
  } catch (error) {
1156
1537
  }
@@ -1159,8 +1540,8 @@ var AccessibilityScripts = class _AccessibilityScripts {
1159
1540
  }
1160
1541
  readFromExistingFile() {
1161
1542
  try {
1162
- if (fs3.existsSync(this.commandsPath)) {
1163
- const data = fs3.readFileSync(this.commandsPath, "utf8");
1543
+ if (fs4.existsSync(this.commandsPath)) {
1544
+ const data = fs4.readFileSync(this.commandsPath, "utf8");
1164
1545
  if (data) {
1165
1546
  this.update(JSON.parse(data));
1166
1547
  }
@@ -1183,10 +1564,10 @@ var AccessibilityScripts = class _AccessibilityScripts {
1183
1564
  }
1184
1565
  }
1185
1566
  store() {
1186
- if (!fs3.existsSync(this.browserstackFolderPath)) {
1187
- fs3.mkdirSync(this.browserstackFolderPath);
1567
+ if (!fs4.existsSync(this.browserstackFolderPath)) {
1568
+ fs4.mkdirSync(this.browserstackFolderPath);
1188
1569
  }
1189
- fs3.writeFileSync(this.commandsPath, JSON.stringify({
1570
+ fs4.writeFileSync(this.commandsPath, JSON.stringify({
1190
1571
  commands: this.commandsToWrap,
1191
1572
  scripts: {
1192
1573
  scan: this.performScan,
@@ -1342,7 +1723,8 @@ var launchTestSession = PerformanceTester.measureWrapper(TESTHUB_EVENTS.START, o
1342
1723
  }
1343
1724
  },
1344
1725
  product_map: getProductMapForBuildStartCall(bStackConfig, accessibilityAutomation),
1345
- config: {}
1726
+ config: {},
1727
+ test_orchestration: OrchestrationUtils.getInstance(config)?.getBuildStartData() || {}
1346
1728
  };
1347
1729
  if (accessibilityAutomation && (isTurboScale(options) || data.browserstackAutomation === false)) {
1348
1730
  data.accessibility.settings ??= {};
@@ -2072,20 +2454,38 @@ async function executeAccessibilityScript(browser, fnBody, arg) {
2072
2454
  })(${arg ? JSON.stringify(arg) : ""})`
2073
2455
  );
2074
2456
  }
2457
+ function getBooleanValueFromString(value) {
2458
+ if (!value) {
2459
+ return false;
2460
+ }
2461
+ return ["true"].includes(value.trim().toLowerCase());
2462
+ }
2463
+ function isValidEnabledValue(value) {
2464
+ if (value === void 0 || value === null) {
2465
+ return false;
2466
+ }
2467
+ if (typeof value === "boolean") {
2468
+ return value === true;
2469
+ }
2470
+ if (typeof value === "string") {
2471
+ return getBooleanValueFromString(value);
2472
+ }
2473
+ return false;
2474
+ }
2075
2475
 
2076
2476
  // src/cleanup.ts
2077
- import fs7 from "node:fs";
2477
+ import fs8 from "node:fs";
2078
2478
  import util4 from "node:util";
2079
2479
 
2080
2480
  // src/instrumentation/funnelInstrumentation.ts
2081
2481
  import os2 from "node:os";
2082
2482
  import util3, { format as format2 } from "node:util";
2083
2483
  import path6 from "node:path";
2084
- import fs6 from "node:fs";
2484
+ import fs7 from "node:fs";
2085
2485
 
2086
2486
  // src/data-store.ts
2087
2487
  import path5 from "node:path";
2088
- import fs5 from "node:fs";
2488
+ import fs6 from "node:fs";
2089
2489
  var workersDataDirPath = path5.join(process.cwd(), "logs", "worker_data");
2090
2490
 
2091
2491
  // src/instrumentation/funnelInstrumentation.ts
@@ -2192,7 +2592,7 @@ Visit https://automation.browserstack.com/builds/${process.env[BROWSERSTACK_TEST
2192
2592
  if (!filePath) {
2193
2593
  return null;
2194
2594
  }
2195
- const content = fs7.readFileSync(filePath, "utf8");
2595
+ const content = fs8.readFileSync(filePath, "utf8");
2196
2596
  const data = JSON.parse(content);
2197
2597
  this.removeFunnelDataFile(filePath);
2198
2598
  return data;
@@ -2201,10 +2601,10 @@ Visit https://automation.browserstack.com/builds/${process.env[BROWSERSTACK_TEST
2201
2601
  if (!filePath) {
2202
2602
  return;
2203
2603
  }
2204
- fs7.rmSync(filePath, { force: true });
2604
+ fs8.rmSync(filePath, { force: true });
2205
2605
  }
2206
2606
  };
2207
- await BStackCleanup.startCleanup();
2607
+ void BStackCleanup.startCleanup();
2208
2608
  export {
2209
2609
  BStackCleanup as default
2210
2610
  };
@@ -56,6 +56,10 @@ export declare class GrpcClient {
56
56
  driverInitEvent(data: Omit<DriverInitRequest, 'binSessionId'>): Promise<DriverInitResponse>;
57
57
  logCreatedEvent(data: Omit<LogCreatedEventRequest, 'binSessionId'>): Promise<LogCreatedEventResponse>;
58
58
  fetchDriverExecuteParamsEvent(data: Omit<FetchDriverExecuteParamsEventRequest, 'binSessionId'>): Promise<FetchDriverExecuteParamsEventResponse>;
59
+ /**
60
+ * Request ordered test files from the BrowserStack CLI via gRPC
61
+ */
62
+ testOrchestrationSession(testFiles: string[], orchestrationStrategy: string, orchestrationMetadata: string): Promise<string[] | null>;
59
63
  /**
60
64
  * Get the gRPC channel
61
65
  * @returns {grpc.Channel} The gRPC channel
@@ -1 +1 @@
1
- {"version":3,"file":"grpcClient.d.ts","sourceRoot":"","sources":["../../src/cli/grpcClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,SAAS,EAET,WAAW,EAad,MAAM,yCAAyC,CAAA;AAGhD,OAAO,KAAK,EAGR,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EAEtB,iBAAiB,EACjB,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qCAAqC,EACxC,MAAM,yCAAyC,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;;;;GAKG;AACH,qBAAa,UAAU;;IAGnB,YAAY,EAAE,MAAM,GAAC,SAAS,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAC,SAAS,CAAA;IAC/B,OAAO,EAAE,WAAW,GAAC,IAAI,CAAO;IAChC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAO;IAC/B,MAAM,sBAAe;;IAIrB;;;OAGG;IACH,MAAM,CAAC,WAAW;IAOlB;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAcnC;;;OAGG;IACH,OAAO;IAkCD,eAAe,CAAC,UAAU,EAAE,MAAM;IAkDxC;;;OAGG;IACG,iBAAiB;IAgCvB;;;;OAIG;IACG,cAAc;IAoCd,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC;IAoD1E;;;OAGG;IAEG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,cAAc,CAAC;IA0C9E;;;OAGG;IAEG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC;IA8B7D,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAoDlE,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,oCAAoC,EAAE,cAAc,CAAC;IA6BpG;;;OAGG;IACH,SAAS;IAIT;;;OAGG;IACH,UAAU;CAGb"}
1
+ {"version":3,"file":"grpcClient.d.ts","sourceRoot":"","sources":["../../src/cli/grpcClient.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,SAAS,EAET,WAAW,EAad,MAAM,yCAAyC,CAAA;AAGhD,OAAO,KAAK,EAGR,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EAEtB,iBAAiB,EACjB,oCAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,qCAAqC,EAGxC,MAAM,yCAAyC,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C;;;;;GAKG;AACH,qBAAa,UAAU;;IAGnB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAO;IAClC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAO;IAC/B,MAAM,sBAAe;;IAIrB;;;OAGG;IACH,MAAM,CAAC,WAAW;IAOlB;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAcnC;;;OAGG;IACH,OAAO;IAkCD,eAAe,CAAC,UAAU,EAAE,MAAM;IAkDxC;;;OAGG;IACG,iBAAiB;IAgCvB;;;;OAIG;IACG,cAAc;IAoCd,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC;IAoD1E;;;OAGG;IAEG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,cAAc,CAAC;IA0C9E;;;OAGG;IAEG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC;IA8B7D,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC;IAoDlE,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,oCAAoC,EAAE,cAAc,CAAC;IA6BpG;;OAEG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IA4C3I;;;OAGG;IACH,SAAS;IAIT;;;OAGG;IACH,UAAU;CAGb"}
@@ -1 +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,yCAAyC,CAAA;AACtF,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,EAAkB,MAAM,aAAa,CAAA;AAI1F;;;;;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;IAgDrD;;;OAGG;IACG,gBAAgB;IAUtB;;;;OAIG;IACG,KAAK;IAuEX;;;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"}
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,yCAAyC,CAAA;AACtF,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,EAAkB,MAAM,aAAa,CAAA;AAI1F;;;;;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;IAgDrD;;;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"accessibilityModule.d.ts","sourceRoot":"","sources":["../../../src/cli/modules/accessibilityModule.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAS9C,OAAO,oBAAoB,MAAM,wCAAwC,CAAA;AAIzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAM5E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU;IAEvD,MAAM,sBAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,OAAO,oBAAoB,CAAA;IAC3C,aAAa,EAAE,OAAO,CAAQ;IAC9B,YAAY,EAAE,OAAO,CAAO;IAC5B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,aAAa,CAAA;IAClC,MAAM,CAAC,WAAW,SAAwB;IAC1C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAAE,CAAC,CAAK;gBAElD,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;IAiBlE,eAAe;YAoGP,cAAc;IAkCtB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA+E1C,WAAW;IA6DjB,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,aAAa;YAuBP,cAAc;YAkCd,iBAAiB;IA2BzB,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAsBrF,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAqBrF,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAanD,cAAc,CAAC,OAAO,EAAE,MAAM;CAqB9C"}
1
+ {"version":3,"file":"accessibilityModule.d.ts","sourceRoot":"","sources":["../../../src/cli/modules/accessibilityModule.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAS9C,OAAO,oBAAoB,MAAM,wCAAwC,CAAA;AAIzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAM5E,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU;IAEvD,MAAM,sBAAe;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,OAAO,oBAAoB,CAAA;IAC3C,aAAa,EAAE,OAAO,CAAQ;IAC9B,YAAY,EAAE,OAAO,CAAO;IAC5B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,aAAa,CAAA;IAClC,MAAM,CAAC,WAAW,SAAwB;IAC1C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAAE,CAAC,CAAK;gBAElD,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;IAiBlE,eAAe;YAoGP,cAAc;IAkCtB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA+E1C,WAAW;IA6DjB,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,aAAa;YAuBP,cAAc;YAkCd,iBAAiB;IA2BzB,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAsBrF,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAqBrF,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAanD,cAAc,CAAC,OAAO,EAAE,MAAM;CAe9C"}
@@ -38,6 +38,8 @@ export declare const TCG_INFO: {
38
38
  tcgRegion: string;
39
39
  tcgUrl: string;
40
40
  };
41
+ export declare const SMART_SELECTION_MODE_RELEVANT_FIRST = "relevantFirst";
42
+ export declare const SMART_SELECTION_MODE_RELEVANT_ONLY = "relevantOnly";
41
43
  export declare const BROWSERSTACK_TESTHUB_JWT = "BROWSERSTACK_TESTHUB_JWT";
42
44
  export declare const BSTACK_TCG_AUTH_RESULT = "BSTACK_TCG_AUTH_RESULT";
43
45
  export declare const TESTOPS_SCREENSHOT_ENV = "BS_TESTOPS_ALLOW_SCREENSHOTS";
@@ -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,iBAAiB,wDAAwD,CAAA;AACtF,eAAO,MAAM,wBAAwB,kBAAkB,CAAA;AACvD,eAAO,MAAM,gCAAgC,0BAA0B,CAAA;AACvE,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,wBAAwB,UAA6D,CAAA;AAElG,eAAO,MAAM,SAAS,iCAAiC,CAAA;AACvD,eAAO,MAAM,mBAAmB,0BAA0B,CAAA;AAC1D,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,OAAO,iCAAiC,CAAA;AAErD,eAAO,MAAM,yBAAyB,UAAyC,CAAA;AAE/E,eAAO,MAAM,OAAO,iCAAiC,CAAA;AAErD,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAKD,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAGlE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAG9D,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AAGpE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAGpD,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,kBAAkB,uBAAuB,CAAA;AAGtD,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AACxE,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AACpF,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AACxE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,+BAA+B,QAAY,CAAA;AAIxD,eAAO,MAAM,uBAAuB,mBAAmB,CAAA;AAGvD,eAAO,MAAM,gBAAgB,OAAO,CAAA;AACpC,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAChD,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAG1C,eAAO,MAAM,oBAAoB,sBAAsB,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,iBAAiB,wDAAwD,CAAA;AACtF,eAAO,MAAM,wBAAwB,kBAAkB,CAAA;AACvD,eAAO,MAAM,gCAAgC,0BAA0B,CAAA;AACvE,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,wBAAwB,UAA6D,CAAA;AAElG,eAAO,MAAM,SAAS,iCAAiC,CAAA;AACvD,eAAO,MAAM,mBAAmB,0BAA0B,CAAA;AAC1D,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,OAAO,iCAAiC,CAAA;AAErD,eAAO,MAAM,yBAAyB,UAAyC,CAAA;AAE/E,eAAO,MAAM,OAAO,iCAAiC,CAAA;AAErD,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAGD,eAAO,MAAM,mCAAmC,kBAAkB,CAAA;AAClE,eAAO,MAAM,kCAAkC,iBAAiB,CAAA;AAKhE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAGlE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAG9D,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AAGpE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAGpD,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,kBAAkB,uBAAuB,CAAA;AAGtD,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAGtE,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AACxE,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AACpF,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AACxE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AAGpE,eAAO,MAAM,+BAA+B,QAAY,CAAA;AAIxD,eAAO,MAAM,uBAAuB,mBAAmB,CAAA;AAGvD,eAAO,MAAM,gBAAgB,OAAO,CAAA;AACpC,eAAO,MAAM,kBAAkB,iBAAiB,CAAA;AAChD,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAG1C,eAAO,MAAM,oBAAoB,sBAAsB,CAAA"}