testplane 8.25.1 → 8.25.3
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/build/package.json +4 -3
- package/build/src/browser/browser.d.ts +4 -2
- package/build/src/browser/browser.js +29 -2
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/calibrator.d.ts +18 -16
- package/build/src/browser/calibrator.js +43 -50
- package/build/src/browser/calibrator.js.map +1 -1
- package/build/src/browser/camera/index.d.ts +29 -13
- package/build/src/browser/camera/index.js +37 -8
- package/build/src/browser/camera/index.js.map +1 -1
- package/build/src/browser/camera/utils.d.ts +2 -1
- package/build/src/browser/camera/utils.js +4 -11
- package/build/src/browser/camera/utils.js.map +1 -1
- package/build/src/browser/client-bridge/client-bridge.d.ts +11 -11
- package/build/src/browser/client-bridge/client-bridge.js +21 -16
- package/build/src/browser/client-bridge/client-bridge.js.map +1 -1
- package/build/src/browser/client-bridge/index.d.ts +7 -2
- package/build/src/browser/client-bridge/index.js +16 -10
- package/build/src/browser/client-bridge/index.js.map +1 -1
- package/build/src/browser/commands/assert-view/errors/image-diff-error.js +2 -5
- package/build/src/browser/commands/assert-view/errors/image-diff-error.js.map +1 -1
- package/build/src/browser/commands/assert-view/index.js +1 -1
- package/build/src/browser/commands/assert-view/index.js.map +1 -1
- package/build/src/browser/commands/clearSession.js +24 -4
- package/build/src/browser/commands/clearSession.js.map +1 -1
- package/build/src/browser/commands/index.d.ts +1 -2
- package/build/src/browser/commands/index.js +3 -1
- package/build/src/browser/commands/index.js.map +1 -1
- package/build/src/browser/commands/switchToRepl.js +26 -3
- package/build/src/browser/commands/switchToRepl.js.map +1 -1
- package/build/src/browser/existing-browser.d.ts +61 -159
- package/build/src/browser/existing-browser.js +114 -74
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/history/callstack.d.ts +9 -8
- package/build/src/browser/history/callstack.js +28 -17
- package/build/src/browser/history/callstack.js.map +1 -1
- package/build/src/browser/history/index.d.ts +5 -4
- package/build/src/browser/history/index.js +102 -64
- package/build/src/browser/history/index.js.map +1 -1
- package/build/src/browser/history/utils.d.ts +11 -8
- package/build/src/browser/history/utils.js +23 -14
- package/build/src/browser/history/utils.js.map +1 -1
- package/build/src/browser/stacktrace/index.js +1 -1
- package/build/src/browser/stacktrace/index.js.map +1 -1
- package/build/src/browser/stacktrace/utils.d.ts +1 -1
- package/build/src/browser/stacktrace/utils.js +27 -4
- package/build/src/browser/stacktrace/utils.js.map +1 -1
- package/build/src/browser/types.d.ts +1 -1
- package/build/src/browser-installer/registry/index.js +4 -4
- package/build/src/browser-installer/registry/index.js.map +1 -1
- package/build/src/browser-installer/ubuntu-packages/index.js +25 -2
- package/build/src/browser-installer/ubuntu-packages/index.js.map +1 -1
- package/build/src/browser-pool/basic-pool.js +1 -1
- package/build/src/browser-pool/basic-pool.js.map +1 -1
- package/build/src/bundle/@wdio-utils.d.ts +1 -1
- package/build/src/cli/commands/config/index.js +24 -4
- package/build/src/cli/commands/config/index.js.map +1 -1
- package/build/src/cli/commands/install-deps/index.js +25 -5
- package/build/src/cli/commands/install-deps/index.js.map +1 -1
- package/build/src/cli/commands/list-browsers/index.js +25 -2
- package/build/src/cli/commands/list-browsers/index.js.map +1 -1
- package/build/src/cli/commands/list-tests/index.js +30 -6
- package/build/src/cli/commands/list-tests/index.js.map +1 -1
- package/build/src/cli/index.js +28 -5
- package/build/src/cli/index.js.map +1 -1
- package/build/src/config/browser-options.js +9 -5
- package/build/src/config/browser-options.js.map +1 -1
- package/build/src/config/index.js +2 -2
- package/build/src/config/index.js.map +1 -1
- package/build/src/config/types.d.ts +1 -1
- package/build/src/constants/help.d.ts +1 -0
- package/build/src/constants/help.js +5 -0
- package/build/src/constants/help.js.map +1 -0
- package/build/src/dev-server/index.js +24 -1
- package/build/src/dev-server/index.js.map +1 -1
- package/build/src/dev-server/utils.js +30 -7
- package/build/src/dev-server/utils.js.map +1 -1
- package/build/src/error-snippets/frames.js +25 -2
- package/build/src/error-snippets/frames.js.map +1 -1
- package/build/src/image.d.ts +52 -53
- package/build/src/image.js +29 -23
- package/build/src/image.js.map +1 -1
- package/build/src/runner/browser-env/vite/plugins/generate-index-html.js +25 -2
- package/build/src/runner/browser-env/vite/plugins/generate-index-html.js.map +1 -1
- package/build/src/runner/browser-env/vite/plugins/mock.js +26 -3
- package/build/src/runner/browser-env/vite/plugins/mock.js.map +1 -1
- package/build/src/runner/browser-env/vite/server.js +2 -2
- package/build/src/runner/browser-env/vite/server.js.map +1 -1
- package/build/src/test-reader/test-parser.js +25 -2
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/testplane.js +26 -3
- package/build/src/testplane.js.map +1 -1
- package/build/src/types/index.d.ts +2 -1
- package/build/src/types/index.js.map +1 -1
- package/build/src/utils/cli.js +25 -2
- package/build/src/utils/cli.js.map +1 -1
- package/build/src/utils/logger.d.ts +3 -3
- package/build/src/utils/logger.js +11 -8
- package/build/src/utils/logger.js.map +1 -1
- package/build/src/utils/page-loader.js +27 -4
- package/build/src/utils/page-loader.js.map +1 -1
- package/build/src/utils/typescript.js +27 -4
- package/build/src/utils/typescript.js.map +1 -1
- package/build/src/validators.js +25 -2
- package/build/src/validators.js.map +1 -1
- package/build/src/worker/browser-env/runner/test-runner/index.js +2 -2
- package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/runner/browser-agent.d.ts +1 -1
- package/build/src/worker/runner/browser-pool.d.ts +3 -2
- package/build/src/worker/runner/browser-pool.js +3 -3
- package/build/src/worker/runner/browser-pool.js.map +1 -1
- package/build/src/worker/runner/test-runner/one-time-screenshooter.d.ts +1 -4
- package/build/src/worker/runner/test-runner/one-time-screenshooter.js +1 -1
- package/build/src/worker/runner/test-runner/one-time-screenshooter.js.map +1 -1
- package/package.json +4 -3
package/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "testplane",
|
|
3
|
-
"version": "8.25.
|
|
3
|
+
"version": "8.25.3",
|
|
4
4
|
"description": "Tests framework based on mocha and wdio",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@babel/code-frame": "7.24.2",
|
|
56
56
|
"@gemini-testing/commander": "2.15.4",
|
|
57
57
|
"@jspm/core": "2.0.1",
|
|
58
|
-
"@puppeteer/browsers": "2.
|
|
58
|
+
"@puppeteer/browsers": "2.7.1",
|
|
59
59
|
"@vitest/spy": "2.1.4",
|
|
60
60
|
"@wdio/protocols": "8.38.0",
|
|
61
61
|
"@wdio/utils": "8.39.0",
|
|
@@ -132,6 +132,7 @@
|
|
|
132
132
|
"@types/sharp": "0.31.1",
|
|
133
133
|
"@types/sinon": "17.0.1",
|
|
134
134
|
"@types/sinonjs__fake-timers": "8.1.2",
|
|
135
|
+
"@types/strftime": "0.9.8",
|
|
135
136
|
"@types/urijs": "1.19.25",
|
|
136
137
|
"@types/url-join": "4.0.3",
|
|
137
138
|
"@types/yallist": "4.0.4",
|
|
@@ -151,8 +152,8 @@
|
|
|
151
152
|
"eslint": "8.25.0",
|
|
152
153
|
"eslint-config-gemini-testing": "2.8.0",
|
|
153
154
|
"eslint-config-prettier": "8.7.0",
|
|
154
|
-
"glob-extra": "5.0.2",
|
|
155
155
|
"execa": "5.1.1",
|
|
156
|
+
"glob-extra": "5.0.2",
|
|
156
157
|
"husky": "0.11.4",
|
|
157
158
|
"js-levenshtein": "1.1.6",
|
|
158
159
|
"jsdom": "^24.0.0",
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Config } from "../config";
|
|
2
2
|
import { AsyncEmitter } from "../events";
|
|
3
3
|
import { BrowserConfig } from "../config/browser-config";
|
|
4
|
-
import Callstack from "./history/callstack";
|
|
4
|
+
import type { Callstack } from "./history/callstack";
|
|
5
5
|
import type { WdProcess, WebdriverPool } from "../browser-pool/webdriver-pool";
|
|
6
6
|
import type { Capabilities } from "@wdio/types";
|
|
7
7
|
export type BrowserOpts = {
|
|
8
8
|
id: string;
|
|
9
9
|
version?: string;
|
|
10
10
|
state?: Record<string, unknown>;
|
|
11
|
-
emitter
|
|
11
|
+
emitter: AsyncEmitter;
|
|
12
12
|
wdPool?: WebdriverPool;
|
|
13
13
|
};
|
|
14
14
|
export type BrowserState = {
|
|
@@ -21,6 +21,7 @@ export type CustomCommend = {
|
|
|
21
21
|
elementScope: boolean;
|
|
22
22
|
};
|
|
23
23
|
export declare class Browser {
|
|
24
|
+
protected _emitter: AsyncEmitter;
|
|
24
25
|
protected _config: BrowserConfig;
|
|
25
26
|
protected _debug: boolean;
|
|
26
27
|
protected _session: WebdriverIO.Browser | null;
|
|
@@ -51,4 +52,5 @@ export declare class Browser {
|
|
|
51
52
|
get capabilities(): Capabilities.RemoteCapability;
|
|
52
53
|
get callstackHistory(): Callstack;
|
|
53
54
|
get customCommands(): CustomCommend[];
|
|
55
|
+
get emitter(): AsyncEmitter;
|
|
54
56
|
}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
@@ -8,7 +31,7 @@ const crypto_1 = __importDefault(require("crypto"));
|
|
|
8
31
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
32
|
const config_1 = require("../constants/config");
|
|
10
33
|
const browser_1 = require("../constants/browser");
|
|
11
|
-
const
|
|
34
|
+
const history = __importStar(require("./history"));
|
|
12
35
|
const stacktrace_1 = require("./stacktrace");
|
|
13
36
|
const commands_1 = require("./history/commands");
|
|
14
37
|
const runStep_1 = __importDefault(require("./commands/runStep"));
|
|
@@ -42,6 +65,7 @@ class Browser {
|
|
|
42
65
|
};
|
|
43
66
|
this._customCommands = new Set();
|
|
44
67
|
this._wdPool = opts.wdPool;
|
|
68
|
+
this._emitter = opts.emitter;
|
|
45
69
|
}
|
|
46
70
|
setHttpTimeout(timeout) {
|
|
47
71
|
if (timeout === null) {
|
|
@@ -66,7 +90,7 @@ class Browser {
|
|
|
66
90
|
}
|
|
67
91
|
_addHistory() {
|
|
68
92
|
if (this._config.saveHistoryMode !== config_1.SAVE_HISTORY_MODE.NONE) {
|
|
69
|
-
this._callstackHistory =
|
|
93
|
+
this._callstackHistory = history.initCommandHistory(this._session);
|
|
70
94
|
}
|
|
71
95
|
}
|
|
72
96
|
_addExtendOptionsMethod(session) {
|
|
@@ -132,6 +156,9 @@ class Browser {
|
|
|
132
156
|
const allCustomCommands = Array.from(this._customCommands);
|
|
133
157
|
return lodash_1.default.uniqWith(allCustomCommands, lodash_1.default.isEqual);
|
|
134
158
|
}
|
|
159
|
+
get emitter() {
|
|
160
|
+
return this._emitter;
|
|
161
|
+
}
|
|
135
162
|
}
|
|
136
163
|
exports.Browser = Browser;
|
|
137
164
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../src/browser/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* @param {Browser} browser
|
|
7
|
-
* @returns {Promise.<CalibrationResult>}
|
|
8
|
-
*/
|
|
9
|
-
calibrate(browser: Browser): Promise<CalibrationResult>;
|
|
10
|
-
_analyzeImage(image: any, params: any): globalThis.Promise<{
|
|
11
|
-
viewportStart: {
|
|
12
|
-
x: number;
|
|
13
|
-
y: any;
|
|
14
|
-
};
|
|
15
|
-
} | null>;
|
|
1
|
+
import { ExistingBrowser } from "./existing-browser";
|
|
2
|
+
interface BrowserFeatures {
|
|
3
|
+
needsCompatLib: boolean;
|
|
4
|
+
pixelRatio: number;
|
|
5
|
+
innerWidth: number;
|
|
16
6
|
}
|
|
17
|
-
|
|
7
|
+
export interface CalibrationResult extends BrowserFeatures {
|
|
8
|
+
top: number;
|
|
9
|
+
left: number;
|
|
10
|
+
usePixelRatio: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class Calibrator {
|
|
13
|
+
private _cache;
|
|
14
|
+
private _script;
|
|
15
|
+
constructor();
|
|
16
|
+
calibrate(browser: ExistingBrowser): Promise<CalibrationResult>;
|
|
17
|
+
private _analyzeImage;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -1,54 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
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.Calibrator = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const looks_same_1 = __importDefault(require("looks-same"));
|
|
10
|
+
const core_error_1 = require("./core-error");
|
|
8
11
|
const DIRECTION = { FORWARD: "forward", REVERSE: "reverse" };
|
|
9
|
-
|
|
12
|
+
class Calibrator {
|
|
10
13
|
constructor() {
|
|
11
14
|
this._cache = {};
|
|
12
|
-
this._script =
|
|
15
|
+
this._script = fs_1.default.readFileSync(path_1.default.join(__dirname, "client-scripts", "calibrate.js"), "utf8");
|
|
13
16
|
}
|
|
14
|
-
|
|
15
|
-
* @param {Browser} browser
|
|
16
|
-
* @returns {Promise.<CalibrationResult>}
|
|
17
|
-
*/
|
|
18
|
-
calibrate(browser) {
|
|
17
|
+
async calibrate(browser) {
|
|
19
18
|
if (this._cache[browser.id]) {
|
|
20
|
-
return
|
|
19
|
+
return this._cache[browser.id];
|
|
21
20
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
features
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
21
|
+
await browser.open("about:blank");
|
|
22
|
+
const features = await browser.evalScript(this._script);
|
|
23
|
+
const image = await browser.captureViewportImage();
|
|
24
|
+
const { innerWidth, pixelRatio } = features;
|
|
25
|
+
const hasPixelRatio = Boolean(pixelRatio && pixelRatio > 1.0);
|
|
26
|
+
const imageFeatures = await this._analyzeImage(image, { calculateColorLength: hasPixelRatio });
|
|
27
|
+
if (!imageFeatures) {
|
|
28
|
+
throw new core_error_1.CoreError("Could not calibrate. This could be due to calibration page has failed to open properly");
|
|
29
|
+
}
|
|
30
|
+
const calibratedFeatures = {
|
|
31
|
+
...features,
|
|
32
|
+
top: imageFeatures.viewportStart.y,
|
|
33
|
+
left: imageFeatures.viewportStart.x,
|
|
34
|
+
usePixelRatio: hasPixelRatio && imageFeatures.colorLength > innerWidth,
|
|
35
|
+
};
|
|
36
|
+
this._cache[browser.id] = calibratedFeatures;
|
|
37
|
+
return calibratedFeatures;
|
|
40
38
|
}
|
|
41
39
|
async _analyzeImage(image, params) {
|
|
42
40
|
const imageHeight = (await image.getSize()).height;
|
|
43
|
-
for (
|
|
44
|
-
|
|
41
|
+
for (let y = 0; y < imageHeight; y++) {
|
|
42
|
+
const result = await analyzeRow(y, image, params);
|
|
45
43
|
if (result) {
|
|
46
44
|
return result;
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
47
|
return null;
|
|
50
48
|
}
|
|
51
|
-
}
|
|
49
|
+
}
|
|
50
|
+
exports.Calibrator = Calibrator;
|
|
52
51
|
async function analyzeRow(row, image, params = {}) {
|
|
53
52
|
const markerStart = await findMarkerInRow(row, image, DIRECTION.FORWARD);
|
|
54
53
|
if (markerStart === -1) {
|
|
@@ -60,7 +59,7 @@ async function analyzeRow(row, image, params = {}) {
|
|
|
60
59
|
}
|
|
61
60
|
const markerEnd = await findMarkerInRow(row, image, DIRECTION.REVERSE);
|
|
62
61
|
const colorLength = markerEnd - markerStart + 1;
|
|
63
|
-
return
|
|
62
|
+
return { ...result, colorLength };
|
|
64
63
|
}
|
|
65
64
|
async function findMarkerInRow(row, image, searchDirection) {
|
|
66
65
|
const imageWidth = (await image.getSize()).width;
|
|
@@ -72,34 +71,28 @@ async function findMarkerInRow(row, image, searchDirection) {
|
|
|
72
71
|
return searchForward_();
|
|
73
72
|
}
|
|
74
73
|
async function searchForward_() {
|
|
75
|
-
for (
|
|
76
|
-
|
|
77
|
-
if (isSame) {
|
|
74
|
+
for (let x = 0; x < imageWidth; x++) {
|
|
75
|
+
if (await compare_(x)) {
|
|
78
76
|
return x;
|
|
79
77
|
}
|
|
80
78
|
}
|
|
81
79
|
return -1;
|
|
82
80
|
}
|
|
83
81
|
async function searchReverse_() {
|
|
84
|
-
for (
|
|
85
|
-
|
|
86
|
-
if (isSame) {
|
|
82
|
+
for (let x = imageWidth - 1; x >= 0; x--) {
|
|
83
|
+
if (await compare_(x)) {
|
|
87
84
|
return x;
|
|
88
85
|
}
|
|
89
86
|
}
|
|
90
87
|
return -1;
|
|
91
88
|
}
|
|
92
89
|
async function compare_(x) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return
|
|
90
|
+
const pixel = await image.getRGBA(x, row);
|
|
91
|
+
const color = pickRGB(pixel);
|
|
92
|
+
return looks_same_1.default.colors(color, searchColor);
|
|
96
93
|
}
|
|
97
94
|
}
|
|
98
95
|
function pickRGB(rgba) {
|
|
99
|
-
return {
|
|
100
|
-
R: rgba.r,
|
|
101
|
-
G: rgba.g,
|
|
102
|
-
B: rgba.b,
|
|
103
|
-
};
|
|
96
|
+
return { R: rgba.r, G: rgba.g, B: rgba.b };
|
|
104
97
|
}
|
|
105
98
|
//# sourceMappingURL=calibrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calibrator.js","sourceRoot":"","sources":["../../../src/browser/calibrator.
|
|
1
|
+
{"version":3,"file":"calibrator.js","sourceRoot":"","sources":["../../../src/browser/calibrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { Image } from "../../image";
|
|
2
|
+
export interface ImageArea {
|
|
3
|
+
left: number;
|
|
4
|
+
top: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export type ScreenshotMode = "fullpage" | "viewport" | "auto";
|
|
9
|
+
export interface PageMeta {
|
|
10
|
+
viewport: ImageArea;
|
|
11
|
+
documentHeight: number;
|
|
12
|
+
documentWidth: number;
|
|
13
|
+
}
|
|
14
|
+
interface Calibration {
|
|
15
|
+
left: number;
|
|
16
|
+
top: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class Camera {
|
|
19
|
+
private _screenshotMode;
|
|
20
|
+
private _takeScreenshot;
|
|
21
|
+
private _calibration;
|
|
22
|
+
static create(screenshotMode: ScreenshotMode, takeScreenshot: () => Promise<string>): Camera;
|
|
23
|
+
constructor(screenshotMode: ScreenshotMode, takeScreenshot: () => Promise<string>);
|
|
24
|
+
calibrate(calibration: Calibration): void;
|
|
25
|
+
captureViewportImage(page?: PageMeta): Promise<Image>;
|
|
26
|
+
private _calibrateArea;
|
|
27
|
+
private _cropAreaToViewport;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Camera = void 0;
|
|
30
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
31
|
+
const image_1 = require("../../image");
|
|
32
|
+
const utils = __importStar(require("./utils"));
|
|
33
|
+
class Camera {
|
|
6
34
|
static create(screenshotMode, takeScreenshot) {
|
|
7
35
|
return new this(screenshotMode, takeScreenshot);
|
|
8
36
|
}
|
|
@@ -16,7 +44,7 @@ module.exports = class Camera {
|
|
|
16
44
|
}
|
|
17
45
|
async captureViewportImage(page) {
|
|
18
46
|
const base64 = await this._takeScreenshot();
|
|
19
|
-
const image = Image.fromBase64(base64);
|
|
47
|
+
const image = image_1.Image.fromBase64(base64);
|
|
20
48
|
const { width, height } = await image.getSize();
|
|
21
49
|
const imageArea = { left: 0, top: 0, width, height };
|
|
22
50
|
const calibratedArea = this._calibrateArea(imageArea);
|
|
@@ -38,9 +66,9 @@ module.exports = class Camera {
|
|
|
38
66
|
return imageArea;
|
|
39
67
|
}
|
|
40
68
|
const isFullPage = utils.isFullPage(imageArea, page, this._screenshotMode);
|
|
41
|
-
const cropArea =
|
|
69
|
+
const cropArea = lodash_1.default.clone(page.viewport);
|
|
42
70
|
if (!isFullPage) {
|
|
43
|
-
|
|
71
|
+
lodash_1.default.extend(cropArea, { top: 0, left: 0 });
|
|
44
72
|
}
|
|
45
73
|
return {
|
|
46
74
|
left: imageArea.left + cropArea.left,
|
|
@@ -49,5 +77,6 @@ module.exports = class Camera {
|
|
|
49
77
|
height: Math.min(imageArea.height - cropArea.top, cropArea.height),
|
|
50
78
|
};
|
|
51
79
|
}
|
|
52
|
-
}
|
|
80
|
+
}
|
|
81
|
+
exports.Camera = Camera;
|
|
53
82
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/camera/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/camera/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ImageArea, PageMeta, ScreenshotMode } from ".";
|
|
2
|
+
export declare const isFullPage: (imageArea: ImageArea, page: PageMeta, screenshotMode: ScreenshotMode) => boolean;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isFullPage = void 0;
|
|
4
|
+
const isFullPage = (imageArea, page, screenshotMode) => {
|
|
3
5
|
switch (screenshotMode) {
|
|
4
6
|
case "fullpage":
|
|
5
7
|
return true;
|
|
@@ -9,16 +11,7 @@ exports.isFullPage = (imageArea, page, screenshotMode) => {
|
|
|
9
11
|
return compareDimensions(imageArea, page);
|
|
10
12
|
}
|
|
11
13
|
};
|
|
12
|
-
|
|
13
|
-
* @param {Object} imageArea - area
|
|
14
|
-
* @param {number} imageArea.left - left offset
|
|
15
|
-
* @param {number} imageArea.top - top offset
|
|
16
|
-
* @param {number} imageArea.width - area width
|
|
17
|
-
* @param {number} imageArea.height - area height
|
|
18
|
-
* @param {Object} page - capture meta information object
|
|
19
|
-
* @returns {boolean}
|
|
20
|
-
* @private
|
|
21
|
-
*/
|
|
14
|
+
exports.isFullPage = isFullPage;
|
|
22
15
|
function compareDimensions(imageArea, page) {
|
|
23
16
|
return imageArea.height >= page.documentHeight && imageArea.width >= page.documentWidth;
|
|
24
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/browser/camera/utils.
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/browser/camera/utils.ts"],"names":[],"mappings":";;;AAEO,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAE,IAAc,EAAE,cAA8B,EAAW,EAAE;IACxG,QAAQ,cAAc,EAAE,CAAC;QACrB,KAAK,UAAU;YACX,OAAO,IAAI,CAAC;QAChB,KAAK,UAAU;YACX,OAAO,KAAK,CAAC;QACjB,KAAK,MAAM;YACP,OAAO,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;AACL,CAAC,CAAC;AATW,QAAA,UAAU,cASrB;AAEF,SAAS,iBAAiB,CAAC,SAAoB,EAAE,IAAc;IAC3D,OAAO,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;AAC5F,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
declare class ClientBridge {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
call(name:
|
|
8
|
-
_callCommand
|
|
9
|
-
_clientMethodCommand
|
|
10
|
-
_guardClientCall
|
|
11
|
-
_inject
|
|
1
|
+
import { ExistingBrowser } from "../existing-browser";
|
|
2
|
+
export declare class ClientBridge {
|
|
3
|
+
private _browser;
|
|
4
|
+
private _script;
|
|
5
|
+
static create(browser: ExistingBrowser, script: string): ClientBridge;
|
|
6
|
+
constructor(browser: ExistingBrowser, script: string);
|
|
7
|
+
call<T>(name: string, args?: unknown[]): Promise<T>;
|
|
8
|
+
private _callCommand;
|
|
9
|
+
private _clientMethodCommand;
|
|
10
|
+
private _guardClientCall;
|
|
11
|
+
private _inject;
|
|
12
12
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientBridge = void 0;
|
|
4
|
+
const error_1 = require("./error");
|
|
5
|
+
class ClientBridge {
|
|
4
6
|
static create(browser, script) {
|
|
5
7
|
return new ClientBridge(browser, script);
|
|
6
8
|
}
|
|
@@ -8,33 +10,36 @@ module.exports = class ClientBridge {
|
|
|
8
10
|
this._browser = browser;
|
|
9
11
|
this._script = script;
|
|
10
12
|
}
|
|
11
|
-
call(name, args = []) {
|
|
13
|
+
async call(name, args = []) {
|
|
12
14
|
return this._callCommand(this._clientMethodCommand(name, args), true);
|
|
13
15
|
}
|
|
14
|
-
_callCommand(command, injectAllowed) {
|
|
15
|
-
|
|
16
|
-
.evalScript(command)
|
|
17
|
-
.then(result => {
|
|
16
|
+
async _callCommand(command, injectAllowed) {
|
|
17
|
+
try {
|
|
18
|
+
const result = await this._browser.evalScript(command);
|
|
18
19
|
if (!result || !result.isClientScriptNotInjected) {
|
|
19
|
-
return
|
|
20
|
+
return result;
|
|
20
21
|
}
|
|
21
22
|
if (injectAllowed) {
|
|
22
|
-
|
|
23
|
+
await this._inject();
|
|
24
|
+
return this._callCommand(command, false);
|
|
23
25
|
}
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
26
|
+
throw new error_1.ClientBridgeError("Unable to inject client script");
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
throw new error_1.ClientBridgeError(e.message);
|
|
30
|
+
}
|
|
27
31
|
}
|
|
28
32
|
_clientMethodCommand(name, args) {
|
|
29
|
-
const params = args.map(JSON.stringify).join(", ");
|
|
33
|
+
const params = args.map(arg => JSON.stringify(arg)).join(", ");
|
|
30
34
|
const call = `__geminiCore.${name}(${params})`;
|
|
31
35
|
return this._guardClientCall(call);
|
|
32
36
|
}
|
|
33
37
|
_guardClientCall(call) {
|
|
34
38
|
return `typeof __geminiCore !== "undefined" ? ${call} : {isClientScriptNotInjected: true}`;
|
|
35
39
|
}
|
|
36
|
-
_inject() {
|
|
37
|
-
|
|
40
|
+
async _inject() {
|
|
41
|
+
await this._browser.injectScript(this._script);
|
|
38
42
|
}
|
|
39
|
-
}
|
|
43
|
+
}
|
|
44
|
+
exports.ClientBridge = ClientBridge;
|
|
40
45
|
//# sourceMappingURL=client-bridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-bridge.js","sourceRoot":"","sources":["../../../../src/browser/client-bridge/client-bridge.
|
|
1
|
+
{"version":3,"file":"client-bridge.js","sourceRoot":"","sources":["../../../../src/browser/client-bridge/client-bridge.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAG5C,MAAa,YAAY;IAIrB,MAAM,CAAC,MAAM,CAAC,OAAwB,EAAE,MAAc;QAClD,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,OAAwB,EAAE,MAAc;QAChD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,OAAkB,EAAE;QAC5C,OAAO,IAAI,CAAC,YAAY,CAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,YAAY,CAAI,OAAe,EAAE,aAAsB;QACjE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAA0C,OAAO,CAAC,CAAC;YAEhG,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;gBAC/C,OAAO,MAAW,CAAC;YACvB,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,YAAY,CAAI,OAAO,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,IAAI,yBAAiB,CAAC,gCAAgC,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,yBAAiB,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,IAAY,EAAE,IAAe;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,gBAAgB,IAAI,IAAI,MAAM,GAAG,CAAC;QAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACjC,OAAO,yCAAyC,IAAI,sCAAsC,CAAC;IAC/F,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACJ;AAjDD,oCAiDC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { ClientBridge } from "./client-bridge";
|
|
2
|
+
import { ExistingBrowser } from "../existing-browser";
|
|
1
3
|
export { ClientBridge };
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
+
export declare const build: (browser: ExistingBrowser, opts?: {
|
|
5
|
+
calibration?: {
|
|
6
|
+
needsCompatLib?: boolean;
|
|
7
|
+
};
|
|
8
|
+
}) => Promise<ClientBridge>;
|