browser-devtools-mcp 0.1.6 → 0.2.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 (163) hide show
  1. package/LICENSE +93 -21
  2. package/README.md +98 -18
  3. package/dist/cli.js +53 -1721
  4. package/dist/core.js +764 -0
  5. package/dist/daemon-server.js +1 -338
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +210 -80
  8. package/dist/otel/otel-initializer.bundle.js +0 -1
  9. package/dist/tools/a11y/index.d.ts +2 -0
  10. package/dist/tools/content/index.d.ts +2 -0
  11. package/dist/tools/debug/index.d.ts +2 -0
  12. package/dist/tools/figma/compare/index.d.ts +56 -0
  13. package/dist/tools/figma/compare/types.d.ts +15 -0
  14. package/dist/tools/figma/index.d.ts +2 -0
  15. package/dist/tools/index.d.ts +4 -0
  16. package/dist/tools/interaction/index.d.ts +2 -0
  17. package/dist/tools/navigation/index.d.ts +2 -0
  18. package/dist/tools/o11y/index.d.ts +2 -0
  19. package/dist/tools/react/index.d.ts +2 -0
  20. package/dist/tools/run/index.d.ts +2 -0
  21. package/dist/tools/stub/index.d.ts +2 -0
  22. package/dist/tools/sync/index.d.ts +2 -0
  23. package/dist/tools/types.d.ts +21 -0
  24. package/dist/types.d.ts +78 -0
  25. package/package.json +11 -11
  26. package/dist/browser.js +0 -213
  27. package/dist/browser.js.map +0 -1
  28. package/dist/cli.js.map +0 -1
  29. package/dist/config.js +0 -96
  30. package/dist/config.js.map +0 -1
  31. package/dist/context.js +0 -298
  32. package/dist/context.js.map +0 -1
  33. package/dist/daemon-server.js.map +0 -1
  34. package/dist/index.js.map +0 -1
  35. package/dist/logger.js +0 -97
  36. package/dist/logger.js.map +0 -1
  37. package/dist/mcp-server.js +0 -401
  38. package/dist/mcp-server.js.map +0 -1
  39. package/dist/otel/otel-controller.js +0 -323
  40. package/dist/otel/otel-controller.js.map +0 -1
  41. package/dist/otel/otel-initializer.bundle.js.map +0 -7
  42. package/dist/otel/otel-proxy.js +0 -407
  43. package/dist/otel/otel-proxy.js.map +0 -1
  44. package/dist/server-info.js +0 -186
  45. package/dist/server-info.js.map +0 -1
  46. package/dist/tools/a11y/index.js +0 -7
  47. package/dist/tools/a11y/index.js.map +0 -1
  48. package/dist/tools/a11y/take-aria-snapshot.js +0 -54
  49. package/dist/tools/a11y/take-aria-snapshot.js.map +0 -1
  50. package/dist/tools/a11y/take-ax-tree-snapshot.js +0 -850
  51. package/dist/tools/a11y/take-ax-tree-snapshot.js.map +0 -1
  52. package/dist/tools/content/get-as-html.js +0 -164
  53. package/dist/tools/content/get-as-html.js.map +0 -1
  54. package/dist/tools/content/get-as-text.js +0 -76
  55. package/dist/tools/content/get-as-text.js.map +0 -1
  56. package/dist/tools/content/index.js +0 -14
  57. package/dist/tools/content/index.js.map +0 -1
  58. package/dist/tools/content/save-as-pdf.js +0 -119
  59. package/dist/tools/content/save-as-pdf.js.map +0 -1
  60. package/dist/tools/content/take-screenshot.js +0 -272
  61. package/dist/tools/content/take-screenshot.js.map +0 -1
  62. package/dist/tools/figma/compare/compare-image-embedding.js +0 -159
  63. package/dist/tools/figma/compare/compare-image-embedding.js.map +0 -1
  64. package/dist/tools/figma/compare/compare-mssim.js +0 -98
  65. package/dist/tools/figma/compare/compare-mssim.js.map +0 -1
  66. package/dist/tools/figma/compare/compare-text-embedding.js +0 -291
  67. package/dist/tools/figma/compare/compare-text-embedding.js.map +0 -1
  68. package/dist/tools/figma/compare/index.js +0 -139
  69. package/dist/tools/figma/compare/index.js.map +0 -1
  70. package/dist/tools/figma/compare/types.js +0 -3
  71. package/dist/tools/figma/compare/types.js.map +0 -1
  72. package/dist/tools/figma/compare/vector.js +0 -46
  73. package/dist/tools/figma/compare/vector.js.map +0 -1
  74. package/dist/tools/figma/compare-page-with-design.js +0 -240
  75. package/dist/tools/figma/compare-page-with-design.js.map +0 -1
  76. package/dist/tools/figma/figma-service.js +0 -134
  77. package/dist/tools/figma/figma-service.js.map +0 -1
  78. package/dist/tools/figma/index.js +0 -6
  79. package/dist/tools/figma/index.js.map +0 -1
  80. package/dist/tools/index.js +0 -41
  81. package/dist/tools/index.js.map +0 -1
  82. package/dist/tools/interaction/click.js +0 -29
  83. package/dist/tools/interaction/click.js.map +0 -1
  84. package/dist/tools/interaction/drag.js +0 -41
  85. package/dist/tools/interaction/drag.js.map +0 -1
  86. package/dist/tools/interaction/fill.js +0 -28
  87. package/dist/tools/interaction/fill.js.map +0 -1
  88. package/dist/tools/interaction/hover.js +0 -29
  89. package/dist/tools/interaction/hover.js.map +0 -1
  90. package/dist/tools/interaction/index.js +0 -24
  91. package/dist/tools/interaction/index.js.map +0 -1
  92. package/dist/tools/interaction/press-key.js +0 -99
  93. package/dist/tools/interaction/press-key.js.map +0 -1
  94. package/dist/tools/interaction/resize-viewport.js +0 -110
  95. package/dist/tools/interaction/resize-viewport.js.map +0 -1
  96. package/dist/tools/interaction/resize-window.js +0 -261
  97. package/dist/tools/interaction/resize-window.js.map +0 -1
  98. package/dist/tools/interaction/scroll.js +0 -304
  99. package/dist/tools/interaction/scroll.js.map +0 -1
  100. package/dist/tools/interaction/select.js +0 -30
  101. package/dist/tools/interaction/select.js.map +0 -1
  102. package/dist/tools/navigation/go-back.js +0 -76
  103. package/dist/tools/navigation/go-back.js.map +0 -1
  104. package/dist/tools/navigation/go-forward.js +0 -76
  105. package/dist/tools/navigation/go-forward.js.map +0 -1
  106. package/dist/tools/navigation/go-to.js +0 -80
  107. package/dist/tools/navigation/go-to.js.map +0 -1
  108. package/dist/tools/navigation/index.js +0 -14
  109. package/dist/tools/navigation/index.js.map +0 -1
  110. package/dist/tools/navigation/reload.js +0 -76
  111. package/dist/tools/navigation/reload.js.map +0 -1
  112. package/dist/tools/o11y/get-console-messages.js +0 -151
  113. package/dist/tools/o11y/get-console-messages.js.map +0 -1
  114. package/dist/tools/o11y/get-http-requests.js +0 -216
  115. package/dist/tools/o11y/get-http-requests.js.map +0 -1
  116. package/dist/tools/o11y/get-trace-id.js +0 -30
  117. package/dist/tools/o11y/get-trace-id.js.map +0 -1
  118. package/dist/tools/o11y/get-web-vitals.js +0 -595
  119. package/dist/tools/o11y/get-web-vitals.js.map +0 -1
  120. package/dist/tools/o11y/index.js +0 -18
  121. package/dist/tools/o11y/index.js.map +0 -1
  122. package/dist/tools/o11y/new-trace-id.js +0 -32
  123. package/dist/tools/o11y/new-trace-id.js.map +0 -1
  124. package/dist/tools/o11y/set-trace-id.js +0 -28
  125. package/dist/tools/o11y/set-trace-id.js.map +0 -1
  126. package/dist/tools/react/get-component-for-element.js +0 -941
  127. package/dist/tools/react/get-component-for-element.js.map +0 -1
  128. package/dist/tools/react/get-element-for-component.js +0 -1190
  129. package/dist/tools/react/get-element-for-component.js.map +0 -1
  130. package/dist/tools/react/index.js +0 -10
  131. package/dist/tools/react/index.js.map +0 -1
  132. package/dist/tools/run/index.js +0 -7
  133. package/dist/tools/run/index.js.map +0 -1
  134. package/dist/tools/run/js-in-browser.js +0 -51
  135. package/dist/tools/run/js-in-browser.js.map +0 -1
  136. package/dist/tools/run/js-in-sandbox.js +0 -175
  137. package/dist/tools/run/js-in-sandbox.js.map +0 -1
  138. package/dist/tools/stub/clear.js +0 -41
  139. package/dist/tools/stub/clear.js.map +0 -1
  140. package/dist/tools/stub/index.js +0 -14
  141. package/dist/tools/stub/index.js.map +0 -1
  142. package/dist/tools/stub/intercept-http-request.js +0 -112
  143. package/dist/tools/stub/intercept-http-request.js.map +0 -1
  144. package/dist/tools/stub/list.js +0 -75
  145. package/dist/tools/stub/list.js.map +0 -1
  146. package/dist/tools/stub/mock-http-response.js +0 -152
  147. package/dist/tools/stub/mock-http-response.js.map +0 -1
  148. package/dist/tools/stub/stub-controller.js +0 -284
  149. package/dist/tools/stub/stub-controller.js.map +0 -1
  150. package/dist/tools/sync/index.js +0 -6
  151. package/dist/tools/sync/index.js.map +0 -1
  152. package/dist/tools/sync/wait-for-network-idle.js +0 -152
  153. package/dist/tools/sync/wait-for-network-idle.js.map +0 -1
  154. package/dist/tools/tool-executor.js +0 -79
  155. package/dist/tools/tool-executor.js.map +0 -1
  156. package/dist/tools/types.js +0 -3
  157. package/dist/tools/types.js.map +0 -1
  158. package/dist/types.js +0 -55
  159. package/dist/types.js.map +0 -1
  160. package/dist/utils/cli-utils.js +0 -253
  161. package/dist/utils/cli-utils.js.map +0 -1
  162. package/dist/utils.js +0 -85
  163. package/dist/utils.js.map +0 -1
@@ -0,0 +1,56 @@
1
+ import { ScreenshotInfo } from './types';
2
+ import type { CompareOptions as MssimCompareOptions } from './compare-mssim';
3
+ import type { CompareOptions as ImageCompareOptions } from './compare-image-embedding';
4
+ import type { CompareOptions as TextCompareOptions } from './compare-text-embedding';
5
+ /**
6
+ * ------------------------------------------------------------
7
+ * Types
8
+ * ------------------------------------------------------------
9
+ */
10
+ export type CompareAllOptions = {
11
+ /**
12
+ * Relative weights for each signal.
13
+ * Missing / inactive signals are ignored and weights renormalized.
14
+ */
15
+ weights?: {
16
+ mssim?: number;
17
+ vectorEmbedding?: number;
18
+ textEmbedding?: number;
19
+ };
20
+ /**
21
+ * Forwarded directly to compare-mssim
22
+ */
23
+ mssim?: MssimCompareOptions;
24
+ /**
25
+ * Forwarded directly to compare-image-embedding
26
+ */
27
+ imageEmbedding?: ImageCompareOptions;
28
+ /**
29
+ * Forwarded directly to compare-text-embedding
30
+ */
31
+ textEmbedding?: TextCompareOptions;
32
+ };
33
+ export type CompareAllResult = {
34
+ /**
35
+ * Final similarity score in [0..1]
36
+ */
37
+ score: number;
38
+ /**
39
+ * Human-readable explanation of what contributed
40
+ */
41
+ notes: string[];
42
+ };
43
+ /**
44
+ * ------------------------------------------------------------
45
+ * Main combiner
46
+ * ------------------------------------------------------------
47
+ *
48
+ * - MSSIM is assumed to always work
49
+ * - Image / text embedding may return `undefined`
50
+ * - Only successful signals participate in the weighted average
51
+ */
52
+ export declare function compareWithNotes(page: ScreenshotInfo, figma: ScreenshotInfo, options?: CompareAllOptions): Promise<CompareAllResult>;
53
+ export * from './types';
54
+ export type { CompareOptions as MssimCompareOptions } from './compare-mssim';
55
+ export type { CompareOptions as ImageCompareOptions } from './compare-image-embedding';
56
+ export type { CompareOptions as TextCompareOptions } from './compare-text-embedding';
@@ -0,0 +1,15 @@
1
+ export type ImageType = 'png' | 'jpeg';
2
+ export type ScreenshotInfo = {
3
+ /**
4
+ * Raw image bytes.
5
+ */
6
+ image: Buffer;
7
+ /**
8
+ * Best-effort image type (helps with debugging/metadata decisions).
9
+ */
10
+ type: ImageType;
11
+ /**
12
+ * Optional human-friendly label for logs/diagnostics.
13
+ */
14
+ name?: string;
15
+ };
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,4 @@
1
+ import type { Tool, ToolInput, ToolOutput, ToolOutputWithImage } from './types';
2
+ export * from './tool-executor';
3
+ export declare const tools: Tool[];
4
+ export type { Tool, ToolInput, ToolOutput, ToolOutputWithImage };
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,2 @@
1
+ import { Tool } from '../types';
2
+ export declare const tools: Tool[];
@@ -0,0 +1,21 @@
1
+ import { ZodRawShape } from 'zod';
2
+ import { ToolSessionContext } from '../context';
3
+ export type ToolInputSchema = ZodRawShape;
4
+ export type ToolOutputSchema = ZodRawShape;
5
+ export interface ToolInput {
6
+ }
7
+ export interface ToolOutput {
8
+ }
9
+ export interface ToolOutputWithImage extends ToolOutput {
10
+ image?: {
11
+ data: Buffer;
12
+ mimeType: string;
13
+ };
14
+ }
15
+ export interface Tool {
16
+ name(): string;
17
+ description(): string;
18
+ inputSchema(): ToolInputSchema;
19
+ outputSchema(): ToolOutputSchema;
20
+ handle(context: ToolSessionContext, args: ToolInput): Promise<ToolOutput>;
21
+ }
@@ -0,0 +1,78 @@
1
+ export declare enum ConsoleMessageLevelName {
2
+ ALL = "all",
3
+ DEBUG = "debug",
4
+ INFO = "info",
5
+ WARNING = "warning",
6
+ ERROR = "error"
7
+ }
8
+ export declare enum ConsoleMessageLevelCode {
9
+ ALL = -1,
10
+ DEBUG = 0,
11
+ INFO = 1,
12
+ WARNING = 2,
13
+ ERROR = 3
14
+ }
15
+ export declare const ConsoleMessageLevel: Record<ConsoleMessageLevelName, {
16
+ code: ConsoleMessageLevelCode;
17
+ }>;
18
+ export type ConsoleMessage = {
19
+ type: string;
20
+ text: string;
21
+ level: {
22
+ name: ConsoleMessageLevelName;
23
+ code: ConsoleMessageLevelCode;
24
+ };
25
+ location?: {
26
+ url: string;
27
+ lineNumber: number;
28
+ columnNumber: number;
29
+ };
30
+ timestamp: number;
31
+ sequenceNumber: number;
32
+ };
33
+ export declare enum HttpMethod {
34
+ GET = "GET",
35
+ POST = "POST",
36
+ PUT = "PUT",
37
+ PATCH = "PATCH",
38
+ DELETE = "DELETE",
39
+ HEAD = "HEAD",
40
+ OPTIONS = "OPTIONS"
41
+ }
42
+ export declare enum HttpResourceType {
43
+ DOCUMENT = "document",
44
+ STYLESHEET = "stylesheet",
45
+ IMAGE = "image",
46
+ MEDIA = "media",
47
+ FONT = "font",
48
+ SCRIPT = "script",
49
+ TEXTTRACK = "texttrack",
50
+ XHR = "xhr",
51
+ FETCH = "fetch",
52
+ EVENTSOURCE = "eventsource",
53
+ WEBSOCKET = "websocket",
54
+ MANIFEST = "manifest",
55
+ OTHER = "other"
56
+ }
57
+ export type HttpRequest = {
58
+ url: string;
59
+ method: HttpMethod;
60
+ headers: {
61
+ [key: string]: string;
62
+ };
63
+ body?: string;
64
+ resourceType: HttpResourceType;
65
+ failure?: string;
66
+ duration?: number;
67
+ response?: {
68
+ status: number;
69
+ statusText: string;
70
+ headers: {
71
+ [key: string]: string;
72
+ };
73
+ body?: string;
74
+ };
75
+ ok: boolean;
76
+ timestamp: number;
77
+ sequenceNumber: number;
78
+ };
package/package.json CHANGED
@@ -1,24 +1,21 @@
1
1
  {
2
2
  "name": "browser-devtools-mcp",
3
- "version": "0.1.6",
3
+ "version": "0.2.0",
4
4
  "description": "MCP Server for Browser Dev Tools",
5
5
  "private": false,
6
- "type": "commonjs",
6
+ "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "bin": {
9
9
  "browser-devtools-mcp": "./dist/index.js",
10
10
  "browser-devtools-cli": "./dist/cli.js"
11
11
  },
12
- "exports": {
13
- ".": "./dist/server.js"
14
- },
15
12
  "author": "Serkan Ozal <serkanozal86@gmail.com> (https://github.com/serkan-ozal)",
16
13
  "homepage": "https://github.com/serkan-ozal/browser-devtools-mcp",
17
14
  "repository": {
18
15
  "type": "git",
19
16
  "url": "https://github.com/serkan-ozal/browser-devtools-mcp.git"
20
17
  },
21
- "license": "MIT",
18
+ "license": "Elastic-2.0",
22
19
  "keywords": [
23
20
  "ai",
24
21
  "mcp",
@@ -33,11 +30,13 @@
33
30
  "mcpName": "io.github.serkan-ozal/browser-devtools-mcp",
34
31
  "scripts": {
35
32
  "clean": "rimraf dist",
36
- "build:otel": "node scripts/build-otel.mjs",
37
- "build": "tsc && npm run build:otel",
38
- "start": "ts-node ./src/index.ts",
39
- "start:http": "ts-node ./src/index.ts --transport=streamable-http",
40
- "start:daemon": "ts-node ./src/daemon-server.ts",
33
+ "build:tsc": "tsc",
34
+ "build:bundle": "node scripts/build.mjs",
35
+ "build": "node scripts/build.mjs",
36
+ "build:dev": "tsc && node scripts/build-otel.mjs",
37
+ "start": "tsx ./src/index.ts",
38
+ "start:http": "tsx ./src/index.ts --transport=streamable-http",
39
+ "start:daemon": "tsx ./src/daemon-server.ts",
41
40
  "watch": "tsc --watch",
42
41
  "inspector": "npm run build && chmod 755 './dist/index.js' && npx @modelcontextprotocol/inspector dist/index.js",
43
42
  "inspector:http": "npx @modelcontextprotocol/inspector http://localhost:3000/mcp --transport http",
@@ -73,6 +72,7 @@
73
72
  "release-it": "^17.6.0",
74
73
  "rimraf": "^6.1.2",
75
74
  "ts-node": "^10.9.2",
75
+ "tsx": "^4.21.0",
76
76
  "typescript": "^5.8.3"
77
77
  },
78
78
  "dependencies": {
package/dist/browser.js DELETED
@@ -1,213 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_BROWSER_TYPE = exports.BrowserType = void 0;
7
- exports.newBrowserContext = newBrowserContext;
8
- exports.newPage = newPage;
9
- exports.closeBrowserContext = closeBrowserContext;
10
- const config_1 = require("./config");
11
- const fs_1 = __importDefault(require("fs"));
12
- const playwright_1 = require("playwright");
13
- var BrowserType;
14
- (function (BrowserType) {
15
- BrowserType["CHROMIUM"] = "chromium";
16
- BrowserType["FIREFOX"] = "firefox";
17
- BrowserType["WEBKIT"] = "webkit";
18
- })(BrowserType || (exports.BrowserType = BrowserType = {}));
19
- exports.DEFAULT_BROWSER_TYPE = BrowserType.CHROMIUM;
20
- const browsers = new Map();
21
- const persistenceBrowserContexts = new Map();
22
- ////////////////////////////////////////////////////////////////////////////////
23
- function _browserKey(browserOptions) {
24
- return JSON.stringify(browserOptions);
25
- }
26
- function _browserLaunchOptions(browserOptions) {
27
- const launchOptions = {
28
- headless: browserOptions.headless,
29
- executablePath: browserOptions.executablePath,
30
- handleSIGINT: false,
31
- handleSIGTERM: false,
32
- };
33
- if (browserOptions.useInstalledOnSystem) {
34
- switch (browserOptions.browserType) {
35
- case BrowserType.CHROMIUM:
36
- launchOptions.channel = 'chrome';
37
- launchOptions.args = [
38
- '--disable-blink-features=AutomationControlled',
39
- ];
40
- launchOptions.ignoreDefaultArgs = ['--disable-extensions'];
41
- break;
42
- default:
43
- throw new Error(`Browser type ${browserOptions.browserType} is not supported to be used from the one installed on the system`);
44
- }
45
- }
46
- return launchOptions;
47
- }
48
- async function _createBrowser(browserOptions) {
49
- // Use the appropriate browser engine
50
- let browserInstance;
51
- switch (browserOptions.browserType) {
52
- case BrowserType.FIREFOX:
53
- browserInstance = playwright_1.firefox;
54
- break;
55
- case BrowserType.WEBKIT:
56
- browserInstance = playwright_1.webkit;
57
- break;
58
- case BrowserType.CHROMIUM:
59
- default:
60
- browserInstance = playwright_1.chromium;
61
- break;
62
- }
63
- return browserInstance.launch(_browserLaunchOptions(browserOptions));
64
- }
65
- async function _getBrowser(browserOptions) {
66
- const browserKey = _browserKey(browserOptions);
67
- let browserInstance = browsers.get(browserKey);
68
- if (browserInstance && !browserInstance.isConnected()) {
69
- try {
70
- await browserInstance.close().catch(() => { });
71
- }
72
- catch { }
73
- browserInstance = undefined;
74
- }
75
- if (!browserInstance) {
76
- browserInstance = await _createBrowser(browserOptions);
77
- browsers.set(browserKey, browserInstance);
78
- }
79
- return browserInstance;
80
- }
81
- ////////////////////////////////////////////////////////////////////////////////
82
- function _persistentBrowserContextKey(browserContextOptions) {
83
- // There can be one active persistent browser context in a user data directory
84
- return browserContextOptions.persistent.userDataDir;
85
- }
86
- function _persistentBrowserContextLaunchOptions(browserContextOptions) {
87
- const browserOptions = browserContextOptions.browserOptions;
88
- const launchOptions = {
89
- headless: browserOptions.headless,
90
- executablePath: browserOptions.executablePath,
91
- bypassCSP: true,
92
- viewport: browserOptions.headless ? undefined : null,
93
- };
94
- if (browserOptions.useInstalledOnSystem) {
95
- switch (browserOptions.browserType) {
96
- case BrowserType.CHROMIUM:
97
- launchOptions.channel = 'chrome';
98
- launchOptions.args = [
99
- '--disable-blink-features=AutomationControlled',
100
- ];
101
- launchOptions.ignoreDefaultArgs = ['--disable-extensions'];
102
- break;
103
- default:
104
- throw new Error(`Browser type ${browserOptions.browserType} is not supported to be used from the one installed on the system`);
105
- }
106
- }
107
- return launchOptions;
108
- }
109
- async function _createPersistentBrowserContext(browserContextOptions) {
110
- // Use the appropriate browser engine
111
- let browserInstance;
112
- switch (browserContextOptions.browserOptions.browserType) {
113
- case BrowserType.FIREFOX:
114
- browserInstance = playwright_1.firefox;
115
- break;
116
- case BrowserType.WEBKIT:
117
- browserInstance = playwright_1.webkit;
118
- break;
119
- case BrowserType.CHROMIUM:
120
- default:
121
- browserInstance = playwright_1.chromium;
122
- break;
123
- }
124
- const userDataDir = browserContextOptions.persistent.userDataDir;
125
- // Be sure that user data dir is available
126
- fs_1.default.mkdirSync(userDataDir, { recursive: true });
127
- const browserContext = await browserInstance.launchPersistentContext(userDataDir, _persistentBrowserContextLaunchOptions(browserContextOptions));
128
- // Be sure that any restored pages are closed if there is any
129
- for (const p of browserContext.pages()) {
130
- try {
131
- await p.close();
132
- }
133
- catch { }
134
- }
135
- return browserContext;
136
- }
137
- async function _getPersistentBrowserContext(browserContextOptions) {
138
- const persistentBrowserContextKey = _persistentBrowserContextKey(browserContextOptions);
139
- let browserContext = persistenceBrowserContexts.get(persistentBrowserContextKey);
140
- if (browserContext && !browserContext.browser()?.isConnected()) {
141
- try {
142
- await browserContext.close().catch(() => { });
143
- }
144
- catch { }
145
- browserContext = undefined;
146
- }
147
- if (!browserContext) {
148
- browserContext = await _createPersistentBrowserContext(browserContextOptions);
149
- persistenceBrowserContexts.set(persistentBrowserContextKey, browserContext);
150
- }
151
- else {
152
- // There can be one active persistent browser context in a user data directory
153
- throw new Error(`There is already active persistent browser context in the user data directory: ${browserContextOptions.persistent?.userDataDir}`);
154
- }
155
- return browserContext;
156
- }
157
- ////////////////////////////////////////////////////////////////////////////////
158
- async function newBrowserContext(browserContextOptions = {
159
- browserOptions: {
160
- browserType: exports.DEFAULT_BROWSER_TYPE,
161
- headless: config_1.BROWSER_HEADLESS_ENABLE,
162
- executablePath: config_1.BROWSER_EXECUTABLE_PATH,
163
- useInstalledOnSystem: config_1.BROWSER_USE_INSTALLED_ON_SYSTEM,
164
- },
165
- persistent: config_1.BROWSER_PERSISTENT_ENABLE
166
- ? {
167
- userDataDir: config_1.BROWSER_PERSISTENT_USER_DATA_DIR,
168
- }
169
- : undefined,
170
- }) {
171
- if (browserContextOptions.persistent) {
172
- const browserContext = await _getPersistentBrowserContext(browserContextOptions);
173
- return {
174
- browserContext,
175
- };
176
- }
177
- else {
178
- const browser = await _getBrowser(browserContextOptions.browserOptions);
179
- const browserContext = await browser.newContext({
180
- viewport: browserContextOptions.browserOptions.headless
181
- ? undefined
182
- : null,
183
- bypassCSP: true,
184
- });
185
- return {
186
- browserContext,
187
- };
188
- }
189
- }
190
- async function newPage(browserContext, pageOptions = {}) {
191
- // TODO Design page options and take care of it here for the newly created page
192
- return await browserContext.newPage();
193
- }
194
- async function closeBrowserContext(browserContext) {
195
- await browserContext.close();
196
- let deleted = false;
197
- for (const [key, val] of persistenceBrowserContexts.entries()) {
198
- if (browserContext === val) {
199
- persistenceBrowserContexts.delete(key);
200
- deleted = true;
201
- }
202
- }
203
- return deleted;
204
- }
205
- ////////////////////////////////////////////////////////////////////////////////
206
- async function getElementFailFast(page, selector) {
207
- const element = page.locator(selector);
208
- if ((await element.count()) === 0) {
209
- throw new Error(`Could not find element with selector "${selector}"`);
210
- }
211
- return element;
212
- }
213
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}