@browserstack/mcp-server 1.2.2-beta.1 → 1.2.3-beta.1

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 (122) hide show
  1. package/dist/lib/inmemory-store.d.ts +0 -1
  2. package/dist/lib/inmemory-store.js +0 -1
  3. package/dist/server-factory.js +0 -2
  4. package/dist/tools/appautomate-utils/appium-sdk/config-generator.d.ts +1 -0
  5. package/dist/tools/appautomate-utils/appium-sdk/config-generator.js +50 -0
  6. package/dist/tools/appautomate-utils/appium-sdk/constants.d.ts +23 -0
  7. package/dist/tools/appautomate-utils/appium-sdk/constants.js +43 -0
  8. package/dist/tools/appautomate-utils/appium-sdk/formatter.d.ts +8 -0
  9. package/dist/tools/appautomate-utils/appium-sdk/formatter.js +59 -0
  10. package/dist/tools/appautomate-utils/appium-sdk/handler.d.ts +3 -0
  11. package/dist/tools/appautomate-utils/appium-sdk/handler.js +52 -0
  12. package/dist/tools/appautomate-utils/appium-sdk/index.d.ts +7 -0
  13. package/dist/tools/appautomate-utils/appium-sdk/index.js +8 -0
  14. package/dist/tools/appautomate-utils/appium-sdk/instructions.d.ts +3 -0
  15. package/dist/tools/appautomate-utils/appium-sdk/instructions.js +47 -0
  16. package/dist/tools/appautomate-utils/appium-sdk/languages/csharp.d.ts +2 -0
  17. package/dist/tools/appautomate-utils/appium-sdk/languages/csharp.js +78 -0
  18. package/dist/tools/appautomate-utils/appium-sdk/languages/java.d.ts +8 -0
  19. package/dist/tools/appautomate-utils/appium-sdk/languages/java.js +87 -0
  20. package/dist/tools/appautomate-utils/appium-sdk/languages/nodejs.d.ts +3 -0
  21. package/dist/tools/appautomate-utils/appium-sdk/languages/nodejs.js +194 -0
  22. package/dist/tools/appautomate-utils/appium-sdk/languages/python.d.ts +3 -0
  23. package/dist/tools/appautomate-utils/appium-sdk/languages/python.js +76 -0
  24. package/dist/tools/appautomate-utils/appium-sdk/languages/ruby.d.ts +2 -0
  25. package/dist/tools/appautomate-utils/appium-sdk/languages/ruby.js +85 -0
  26. package/dist/tools/appautomate-utils/appium-sdk/types.d.ts +57 -0
  27. package/dist/tools/appautomate-utils/appium-sdk/types.js +61 -0
  28. package/dist/tools/appautomate-utils/appium-sdk/utils.d.ts +17 -0
  29. package/dist/tools/appautomate-utils/appium-sdk/utils.js +61 -0
  30. package/dist/tools/appautomate-utils/{appautomate.d.ts → native-execution/appautomate.d.ts} +1 -1
  31. package/dist/tools/appautomate-utils/{appautomate.js → native-execution/appautomate.js} +2 -2
  32. package/dist/tools/appautomate-utils/native-execution/constants.d.ts +10 -0
  33. package/dist/tools/appautomate-utils/native-execution/constants.js +36 -0
  34. package/dist/tools/appautomate-utils/native-execution/types.d.ts +19 -0
  35. package/dist/tools/appautomate-utils/{types.js → native-execution/types.js} +5 -1
  36. package/dist/tools/appautomate.js +25 -40
  37. package/dist/tools/bstack-sdk.d.ts +15 -2
  38. package/dist/tools/bstack-sdk.js +124 -7
  39. package/dist/tools/sdk-utils/{bstack/commands.d.ts → commands.d.ts} +1 -1
  40. package/dist/tools/sdk-utils/commands.js +65 -0
  41. package/dist/tools/sdk-utils/{bstack/frameworks.d.ts → constants.d.ts} +1 -1
  42. package/dist/tools/sdk-utils/{bstack/constants.js → constants.js} +78 -117
  43. package/dist/tools/sdk-utils/instructions.d.ts +6 -0
  44. package/dist/tools/sdk-utils/instructions.js +99 -0
  45. package/dist/tools/sdk-utils/percy/constants.d.ts +3 -0
  46. package/dist/tools/sdk-utils/{percy-bstack → percy}/constants.js +39 -13
  47. package/dist/tools/sdk-utils/percy/instructions.d.ts +10 -0
  48. package/dist/tools/sdk-utils/{percy-bstack → percy}/instructions.js +9 -5
  49. package/dist/tools/sdk-utils/percy/types.d.ts +5 -0
  50. package/package.json +1 -1
  51. package/dist/tools/add-percy-snapshots.d.ts +0 -5
  52. package/dist/tools/add-percy-snapshots.js +0 -17
  53. package/dist/tools/appautomate-utils/types.d.ts +0 -5
  54. package/dist/tools/list-test-files.d.ts +0 -2
  55. package/dist/tools/list-test-files.js +0 -33
  56. package/dist/tools/percy-sdk.d.ts +0 -4
  57. package/dist/tools/percy-sdk.js +0 -88
  58. package/dist/tools/percy-snapshot-utils/constants.d.ts +0 -16
  59. package/dist/tools/percy-snapshot-utils/constants.js +0 -500
  60. package/dist/tools/percy-snapshot-utils/detect-test-files.d.ts +0 -10
  61. package/dist/tools/percy-snapshot-utils/detect-test-files.js +0 -194
  62. package/dist/tools/percy-snapshot-utils/types.d.ts +0 -15
  63. package/dist/tools/percy-snapshot-utils/utils.d.ts +0 -4
  64. package/dist/tools/percy-snapshot-utils/utils.js +0 -30
  65. package/dist/tools/sdk-utils/bstack/commands.js +0 -88
  66. package/dist/tools/sdk-utils/bstack/configUtils.d.ts +0 -4
  67. package/dist/tools/sdk-utils/bstack/configUtils.js +0 -66
  68. package/dist/tools/sdk-utils/bstack/constants.d.ts +0 -58
  69. package/dist/tools/sdk-utils/bstack/frameworks.js +0 -57
  70. package/dist/tools/sdk-utils/bstack/index.d.ts +0 -4
  71. package/dist/tools/sdk-utils/bstack/index.js +0 -5
  72. package/dist/tools/sdk-utils/bstack/sdkHandler.d.ts +0 -4
  73. package/dist/tools/sdk-utils/bstack/sdkHandler.js +0 -74
  74. package/dist/tools/sdk-utils/common/constants.d.ts +0 -10
  75. package/dist/tools/sdk-utils/common/constants.js +0 -86
  76. package/dist/tools/sdk-utils/common/formatUtils.d.ts +0 -5
  77. package/dist/tools/sdk-utils/common/formatUtils.js +0 -27
  78. package/dist/tools/sdk-utils/common/index.d.ts +0 -3
  79. package/dist/tools/sdk-utils/common/index.js +0 -4
  80. package/dist/tools/sdk-utils/common/instructionUtils.d.ts +0 -8
  81. package/dist/tools/sdk-utils/common/instructionUtils.js +0 -20
  82. package/dist/tools/sdk-utils/common/schema.d.ts +0 -61
  83. package/dist/tools/sdk-utils/common/schema.js +0 -28
  84. package/dist/tools/sdk-utils/common/types.d.ts +0 -66
  85. package/dist/tools/sdk-utils/common/types.js +0 -50
  86. package/dist/tools/sdk-utils/common/utils.d.ts +0 -25
  87. package/dist/tools/sdk-utils/common/utils.js +0 -84
  88. package/dist/tools/sdk-utils/handler.d.ts +0 -5
  89. package/dist/tools/sdk-utils/handler.js +0 -144
  90. package/dist/tools/sdk-utils/percy-automate/constants.d.ts +0 -11
  91. package/dist/tools/sdk-utils/percy-automate/constants.js +0 -365
  92. package/dist/tools/sdk-utils/percy-automate/frameworks.d.ts +0 -8
  93. package/dist/tools/sdk-utils/percy-automate/frameworks.js +0 -50
  94. package/dist/tools/sdk-utils/percy-automate/handler.d.ts +0 -3
  95. package/dist/tools/sdk-utils/percy-automate/handler.js +0 -30
  96. package/dist/tools/sdk-utils/percy-automate/index.d.ts +0 -1
  97. package/dist/tools/sdk-utils/percy-automate/index.js +0 -2
  98. package/dist/tools/sdk-utils/percy-automate/types.d.ts +0 -13
  99. package/dist/tools/sdk-utils/percy-automate/types.js +0 -1
  100. package/dist/tools/sdk-utils/percy-bstack/constants.d.ts +0 -4
  101. package/dist/tools/sdk-utils/percy-bstack/frameworks.d.ts +0 -2
  102. package/dist/tools/sdk-utils/percy-bstack/frameworks.js +0 -27
  103. package/dist/tools/sdk-utils/percy-bstack/handler.d.ts +0 -4
  104. package/dist/tools/sdk-utils/percy-bstack/handler.js +0 -99
  105. package/dist/tools/sdk-utils/percy-bstack/index.d.ts +0 -4
  106. package/dist/tools/sdk-utils/percy-bstack/index.js +0 -4
  107. package/dist/tools/sdk-utils/percy-bstack/instructions.d.ts +0 -7
  108. package/dist/tools/sdk-utils/percy-bstack/types.d.ts +0 -13
  109. package/dist/tools/sdk-utils/percy-bstack/types.js +0 -5
  110. package/dist/tools/sdk-utils/percy-web/constants.d.ts +0 -41
  111. package/dist/tools/sdk-utils/percy-web/constants.js +0 -941
  112. package/dist/tools/sdk-utils/percy-web/fetchPercyToken.d.ts +0 -4
  113. package/dist/tools/sdk-utils/percy-web/fetchPercyToken.js +0 -28
  114. package/dist/tools/sdk-utils/percy-web/frameworks.d.ts +0 -7
  115. package/dist/tools/sdk-utils/percy-web/frameworks.js +0 -103
  116. package/dist/tools/sdk-utils/percy-web/handler.d.ts +0 -4
  117. package/dist/tools/sdk-utils/percy-web/handler.js +0 -27
  118. package/dist/tools/sdk-utils/percy-web/index.d.ts +0 -4
  119. package/dist/tools/sdk-utils/percy-web/index.js +0 -4
  120. package/dist/tools/sdk-utils/percy-web/types.d.ts +0 -12
  121. package/dist/tools/sdk-utils/percy-web/types.js +0 -1
  122. /package/dist/tools/{percy-snapshot-utils → sdk-utils/percy}/types.js +0 -0
@@ -1,4 +0,0 @@
1
- import { PercyIntegrationTypeEnum } from "../common/types.js";
2
- export declare function fetchPercyToken(projectName: string, authorization: string, options?: {
3
- type?: PercyIntegrationTypeEnum;
4
- }): Promise<string>;
@@ -1,28 +0,0 @@
1
- export async function fetchPercyToken(projectName, authorization, options = {}) {
2
- try {
3
- const authHeader = `Basic ${Buffer.from(authorization).toString("base64")}`;
4
- const baseUrl = "https://api.browserstack.com/api/app_percy/get_project_token";
5
- const params = new URLSearchParams({ name: projectName });
6
- if (options.type) {
7
- params.append("type", options.type);
8
- }
9
- const url = `${baseUrl}?${params.toString()}`;
10
- const response = await fetch(url, {
11
- headers: {
12
- Authorization: authHeader,
13
- },
14
- });
15
- if (!response.ok) {
16
- throw new Error(`Failed to fetch Percy token (status: ${response.status})`);
17
- }
18
- const data = await response.json();
19
- if (!data?.token || !data?.success) {
20
- throw new Error("Project exists but is likely set up for Automate. Please use a different project name.");
21
- }
22
- return data.token;
23
- }
24
- catch (err) {
25
- const message = err instanceof Error ? err.message : "Unknown error";
26
- throw new Error(`Error retrieving Percy token: ${message}`);
27
- }
28
- }
@@ -1,7 +0,0 @@
1
- import { ConfigMapping } from "./types.js";
2
- export declare const SUPPORTED_CONFIGURATIONS: ConfigMapping;
3
- /**
4
- * Utility function to check if a given language and testing framework
5
- * are supported by Percy Web.
6
- */
7
- export declare function isPercyWebFrameworkSupported(language: string, framework: string): boolean;
@@ -1,103 +0,0 @@
1
- import * as constants from "./constants.js";
2
- export const SUPPORTED_CONFIGURATIONS = {
3
- python: {
4
- selenium: {
5
- instructions: constants.pythonInstructions,
6
- snapshotInstruction: constants.pythonInstructionsSnapshot,
7
- },
8
- playwright: {
9
- instructions: constants.pythonPlaywrightInstructions,
10
- snapshotInstruction: constants.pythonPlaywrightInstructionsSnapshot,
11
- },
12
- },
13
- nodejs: {
14
- selenium: {
15
- instructions: constants.nodejsInstructions,
16
- snapshotInstruction: constants.nodejsInstructionsSnapshot,
17
- },
18
- playwright: {
19
- instructions: constants.nodejsPlaywrightInstructions,
20
- snapshotInstruction: constants.nodejsPlaywrightInstructionsSnapshot,
21
- },
22
- webdriverio: {
23
- instructions: constants.nodejsWebdriverioInstructions,
24
- snapshotInstruction: constants.nodejsWebdriverioInstructionsSnapshot,
25
- },
26
- ember: {
27
- instructions: constants.nodejsEmberInstructions,
28
- snapshotInstruction: constants.nodejsEmberInstructionsSnapshot,
29
- },
30
- cypress: {
31
- instructions: constants.nodejsCypressInstructions,
32
- snapshotInstruction: constants.nodejsCypressInstructionsSnapshot,
33
- },
34
- puppeteer: {
35
- instructions: constants.nodejsPuppeteerInstructions,
36
- snapshotInstruction: constants.nodejsPuppeteerInstructionsSnapshot,
37
- },
38
- nightmare: {
39
- instructions: constants.nodejsNightmareInstructions,
40
- snapshotInstruction: constants.nodejsNightmareInstructionsSnapshot,
41
- },
42
- nightwatch: {
43
- instructions: constants.nodejsNightwatchInstructions,
44
- snapshotInstruction: constants.nodejsNightwatchInstructionsSnapshot,
45
- },
46
- protractor: {
47
- instructions: constants.nodejsProtractorInstructions,
48
- snapshotInstruction: constants.nodejsProtractorInstructionsSnapshot,
49
- },
50
- testcafe: {
51
- instructions: constants.nodejsTestcafeInstructions,
52
- snapshotInstruction: constants.nodejsTestcafeInstructionsSnapshot,
53
- },
54
- gatsby: {
55
- instructions: constants.nodejsGatsbyInstructions,
56
- snapshotInstruction: constants.nodejsGatsbyInstructionsSnapshot,
57
- },
58
- storybook: {
59
- instructions: constants.nodejsStorybookInstructions,
60
- snapshotInstruction: constants.nodejsStorybookInstructionsSnapshot,
61
- },
62
- },
63
- java: {
64
- selenium: {
65
- instructions: constants.javaInstructions,
66
- snapshotInstruction: constants.javaInstructionsSnapshot,
67
- },
68
- playwright: {
69
- instructions: constants.javaPlaywrightInstructions,
70
- snapshotInstruction: constants.javaPlaywrightInstructionsSnapshot,
71
- },
72
- },
73
- ruby: {
74
- selenium: {
75
- instructions: constants.rubyInstructions,
76
- snapshotInstruction: constants.rubyInstructionsSnapshot,
77
- },
78
- capybara: {
79
- instructions: constants.rubyCapybaraInstructions,
80
- snapshotInstruction: constants.rubyCapybaraInstructionsSnapshot,
81
- },
82
- },
83
- csharp: {
84
- selenium: {
85
- instructions: constants.csharpInstructions,
86
- snapshotInstruction: constants.csharpInstructionsSnapshot,
87
- },
88
- playwright: {
89
- instructions: constants.csharpPlaywrightInstructions,
90
- snapshotInstruction: constants.csharpPlaywrightInstructionsSnapshot,
91
- },
92
- },
93
- };
94
- /**
95
- * Utility function to check if a given language and testing framework
96
- * are supported by Percy Web.
97
- */
98
- export function isPercyWebFrameworkSupported(language, framework) {
99
- const languageConfig = SUPPORTED_CONFIGURATIONS[language];
100
- if (!languageConfig)
101
- return false;
102
- return !!languageConfig[framework];
103
- }
@@ -1,4 +0,0 @@
1
- import { RunTestsInstructionResult } from "../common/types.js";
2
- import { SetUpPercyInput } from "../common/schema.js";
3
- export declare let percyWebSetupInstructions: string;
4
- export declare function runPercyWeb(input: SetUpPercyInput, percyToken: string): RunTestsInstructionResult;
@@ -1,27 +0,0 @@
1
- import { SUPPORTED_CONFIGURATIONS } from "./frameworks.js";
2
- export let percyWebSetupInstructions = "";
3
- export function runPercyWeb(input, percyToken) {
4
- const steps = [];
5
- // Assume configuration is supported due to guardrails at orchestration layer
6
- const languageConfig = SUPPORTED_CONFIGURATIONS[input.detectedLanguage];
7
- const frameworkConfig = languageConfig[input.detectedBrowserAutomationFramework];
8
- // Generate instructions for the supported configuration
9
- const instructions = frameworkConfig.instructions;
10
- percyWebSetupInstructions = frameworkConfig.snapshotInstruction;
11
- // Prepend a step to set the Percy token in the environment
12
- steps.push({
13
- type: "instruction",
14
- title: "Set Percy Token in Environment",
15
- content: `---STEP---Set the environment variable generated for your project before running your tests:\n\nexport PERCY_TOKEN="${percyToken}"\n\n(For Windows, use 'setx PERCY_TOKEN "${percyToken}"' or 'set PERCY_TOKEN=${percyToken}' as appropriate.)---STEP---`,
16
- });
17
- steps.push({
18
- type: "instruction",
19
- title: `Percy Web Setup Instructions`,
20
- content: instructions,
21
- });
22
- return {
23
- steps,
24
- requiresPercy: true,
25
- missingDependencies: [],
26
- };
27
- }
@@ -1,4 +0,0 @@
1
- export { runPercyWeb } from "./handler.js";
2
- export { SUPPORTED_CONFIGURATIONS } from "./frameworks.js";
3
- export * as constants from "./constants.js";
4
- export type { ConfigMapping } from "./types.js";
@@ -1,4 +0,0 @@
1
- // Percy Web utilities
2
- export { runPercyWeb } from "./handler.js";
3
- export { SUPPORTED_CONFIGURATIONS } from "./frameworks.js";
4
- export * as constants from "./constants.js";
@@ -1,12 +0,0 @@
1
- /**
2
- * Type for Percy Web configuration mapping.
3
- * Structure: language -> automationFramework -> { instructions: string }
4
- */
5
- export type ConfigMapping = {
6
- [language: string]: {
7
- [automationFramework: string]: {
8
- instructions: string;
9
- snapshotInstruction: string;
10
- };
11
- };
12
- };
@@ -1 +0,0 @@
1
- export {};