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.
- package/LICENSE +93 -21
- package/README.md +98 -18
- package/dist/cli.js +53 -1721
- package/dist/core.js +764 -0
- package/dist/daemon-server.js +1 -338
- package/dist/index.d.ts +2 -0
- package/dist/index.js +210 -80
- package/dist/otel/otel-initializer.bundle.js +0 -1
- package/dist/tools/a11y/index.d.ts +2 -0
- package/dist/tools/content/index.d.ts +2 -0
- package/dist/tools/debug/index.d.ts +2 -0
- package/dist/tools/figma/compare/index.d.ts +56 -0
- package/dist/tools/figma/compare/types.d.ts +15 -0
- package/dist/tools/figma/index.d.ts +2 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/interaction/index.d.ts +2 -0
- package/dist/tools/navigation/index.d.ts +2 -0
- package/dist/tools/o11y/index.d.ts +2 -0
- package/dist/tools/react/index.d.ts +2 -0
- package/dist/tools/run/index.d.ts +2 -0
- package/dist/tools/stub/index.d.ts +2 -0
- package/dist/tools/sync/index.d.ts +2 -0
- package/dist/tools/types.d.ts +21 -0
- package/dist/types.d.ts +78 -0
- package/package.json +11 -11
- package/dist/browser.js +0 -213
- package/dist/browser.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/config.js +0 -96
- package/dist/config.js.map +0 -1
- package/dist/context.js +0 -298
- package/dist/context.js.map +0 -1
- package/dist/daemon-server.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/logger.js +0 -97
- package/dist/logger.js.map +0 -1
- package/dist/mcp-server.js +0 -401
- package/dist/mcp-server.js.map +0 -1
- package/dist/otel/otel-controller.js +0 -323
- package/dist/otel/otel-controller.js.map +0 -1
- package/dist/otel/otel-initializer.bundle.js.map +0 -7
- package/dist/otel/otel-proxy.js +0 -407
- package/dist/otel/otel-proxy.js.map +0 -1
- package/dist/server-info.js +0 -186
- package/dist/server-info.js.map +0 -1
- package/dist/tools/a11y/index.js +0 -7
- package/dist/tools/a11y/index.js.map +0 -1
- package/dist/tools/a11y/take-aria-snapshot.js +0 -54
- package/dist/tools/a11y/take-aria-snapshot.js.map +0 -1
- package/dist/tools/a11y/take-ax-tree-snapshot.js +0 -850
- package/dist/tools/a11y/take-ax-tree-snapshot.js.map +0 -1
- package/dist/tools/content/get-as-html.js +0 -164
- package/dist/tools/content/get-as-html.js.map +0 -1
- package/dist/tools/content/get-as-text.js +0 -76
- package/dist/tools/content/get-as-text.js.map +0 -1
- package/dist/tools/content/index.js +0 -14
- package/dist/tools/content/index.js.map +0 -1
- package/dist/tools/content/save-as-pdf.js +0 -119
- package/dist/tools/content/save-as-pdf.js.map +0 -1
- package/dist/tools/content/take-screenshot.js +0 -272
- package/dist/tools/content/take-screenshot.js.map +0 -1
- package/dist/tools/figma/compare/compare-image-embedding.js +0 -159
- package/dist/tools/figma/compare/compare-image-embedding.js.map +0 -1
- package/dist/tools/figma/compare/compare-mssim.js +0 -98
- package/dist/tools/figma/compare/compare-mssim.js.map +0 -1
- package/dist/tools/figma/compare/compare-text-embedding.js +0 -291
- package/dist/tools/figma/compare/compare-text-embedding.js.map +0 -1
- package/dist/tools/figma/compare/index.js +0 -139
- package/dist/tools/figma/compare/index.js.map +0 -1
- package/dist/tools/figma/compare/types.js +0 -3
- package/dist/tools/figma/compare/types.js.map +0 -1
- package/dist/tools/figma/compare/vector.js +0 -46
- package/dist/tools/figma/compare/vector.js.map +0 -1
- package/dist/tools/figma/compare-page-with-design.js +0 -240
- package/dist/tools/figma/compare-page-with-design.js.map +0 -1
- package/dist/tools/figma/figma-service.js +0 -134
- package/dist/tools/figma/figma-service.js.map +0 -1
- package/dist/tools/figma/index.js +0 -6
- package/dist/tools/figma/index.js.map +0 -1
- package/dist/tools/index.js +0 -41
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/interaction/click.js +0 -29
- package/dist/tools/interaction/click.js.map +0 -1
- package/dist/tools/interaction/drag.js +0 -41
- package/dist/tools/interaction/drag.js.map +0 -1
- package/dist/tools/interaction/fill.js +0 -28
- package/dist/tools/interaction/fill.js.map +0 -1
- package/dist/tools/interaction/hover.js +0 -29
- package/dist/tools/interaction/hover.js.map +0 -1
- package/dist/tools/interaction/index.js +0 -24
- package/dist/tools/interaction/index.js.map +0 -1
- package/dist/tools/interaction/press-key.js +0 -99
- package/dist/tools/interaction/press-key.js.map +0 -1
- package/dist/tools/interaction/resize-viewport.js +0 -110
- package/dist/tools/interaction/resize-viewport.js.map +0 -1
- package/dist/tools/interaction/resize-window.js +0 -261
- package/dist/tools/interaction/resize-window.js.map +0 -1
- package/dist/tools/interaction/scroll.js +0 -304
- package/dist/tools/interaction/scroll.js.map +0 -1
- package/dist/tools/interaction/select.js +0 -30
- package/dist/tools/interaction/select.js.map +0 -1
- package/dist/tools/navigation/go-back.js +0 -76
- package/dist/tools/navigation/go-back.js.map +0 -1
- package/dist/tools/navigation/go-forward.js +0 -76
- package/dist/tools/navigation/go-forward.js.map +0 -1
- package/dist/tools/navigation/go-to.js +0 -80
- package/dist/tools/navigation/go-to.js.map +0 -1
- package/dist/tools/navigation/index.js +0 -14
- package/dist/tools/navigation/index.js.map +0 -1
- package/dist/tools/navigation/reload.js +0 -76
- package/dist/tools/navigation/reload.js.map +0 -1
- package/dist/tools/o11y/get-console-messages.js +0 -151
- package/dist/tools/o11y/get-console-messages.js.map +0 -1
- package/dist/tools/o11y/get-http-requests.js +0 -216
- package/dist/tools/o11y/get-http-requests.js.map +0 -1
- package/dist/tools/o11y/get-trace-id.js +0 -30
- package/dist/tools/o11y/get-trace-id.js.map +0 -1
- package/dist/tools/o11y/get-web-vitals.js +0 -595
- package/dist/tools/o11y/get-web-vitals.js.map +0 -1
- package/dist/tools/o11y/index.js +0 -18
- package/dist/tools/o11y/index.js.map +0 -1
- package/dist/tools/o11y/new-trace-id.js +0 -32
- package/dist/tools/o11y/new-trace-id.js.map +0 -1
- package/dist/tools/o11y/set-trace-id.js +0 -28
- package/dist/tools/o11y/set-trace-id.js.map +0 -1
- package/dist/tools/react/get-component-for-element.js +0 -941
- package/dist/tools/react/get-component-for-element.js.map +0 -1
- package/dist/tools/react/get-element-for-component.js +0 -1190
- package/dist/tools/react/get-element-for-component.js.map +0 -1
- package/dist/tools/react/index.js +0 -10
- package/dist/tools/react/index.js.map +0 -1
- package/dist/tools/run/index.js +0 -7
- package/dist/tools/run/index.js.map +0 -1
- package/dist/tools/run/js-in-browser.js +0 -51
- package/dist/tools/run/js-in-browser.js.map +0 -1
- package/dist/tools/run/js-in-sandbox.js +0 -175
- package/dist/tools/run/js-in-sandbox.js.map +0 -1
- package/dist/tools/stub/clear.js +0 -41
- package/dist/tools/stub/clear.js.map +0 -1
- package/dist/tools/stub/index.js +0 -14
- package/dist/tools/stub/index.js.map +0 -1
- package/dist/tools/stub/intercept-http-request.js +0 -112
- package/dist/tools/stub/intercept-http-request.js.map +0 -1
- package/dist/tools/stub/list.js +0 -75
- package/dist/tools/stub/list.js.map +0 -1
- package/dist/tools/stub/mock-http-response.js +0 -152
- package/dist/tools/stub/mock-http-response.js.map +0 -1
- package/dist/tools/stub/stub-controller.js +0 -284
- package/dist/tools/stub/stub-controller.js.map +0 -1
- package/dist/tools/sync/index.js +0 -6
- package/dist/tools/sync/index.js.map +0 -1
- package/dist/tools/sync/wait-for-network-idle.js +0 -152
- package/dist/tools/sync/wait-for-network-idle.js.map +0 -1
- package/dist/tools/tool-executor.js +0 -79
- package/dist/tools/tool-executor.js.map +0 -1
- package/dist/tools/types.js +0 -3
- package/dist/tools/types.js.map +0 -1
- package/dist/types.js +0 -55
- package/dist/types.js.map +0 -1
- package/dist/utils/cli-utils.js +0 -253
- package/dist/utils/cli-utils.js.map +0 -1
- package/dist/utils.js +0 -85
- 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,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
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -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.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "MCP Server for Browser Dev Tools",
|
|
5
5
|
"private": false,
|
|
6
|
-
"type": "
|
|
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": "
|
|
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:
|
|
37
|
-
"build": "
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"start
|
|
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
|
package/dist/browser.js.map
DELETED
|
@@ -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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"}
|