@thisisagile/easy-puppeteer 19.1.4 → 20.0.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/dist/PuppeteerElement.d.ts +13 -10
- package/dist/PuppeteerElement.js +25 -47
- package/dist/PuppeteerElement.js.map +1 -1
- package/dist/PuppeteerTester.d.ts +25 -22
- package/dist/PuppeteerTester.js +76 -99
- package/dist/PuppeteerTester.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -25
- package/package.json +12 -12
- package/dist/PuppeteerElement.mjs +0 -7
- package/dist/PuppeteerElement.mjs.map +0 -1
- package/dist/PuppeteerTester.mjs +0 -8
- package/dist/PuppeteerTester.mjs.map +0 -1
- package/dist/chunk-EESZSFBI.mjs +0 -27
- package/dist/chunk-EESZSFBI.mjs.map +0 -1
- package/dist/chunk-WKW6YDP7.mjs +0 -72
- package/dist/chunk-WKW6YDP7.mjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -11
- package/dist/index.mjs.map +0 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { Json } from "@thisisagile/easy";
|
|
2
|
+
import { ElementHandle } from "puppeteer";
|
|
3
|
+
import { TestElement } from "@thisisagile/easy-test-web";
|
|
4
|
+
//#region src/PuppeteerElement.d.ts
|
|
4
5
|
export declare class PuppeteerElement implements TestElement {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
private readonly handle;
|
|
7
|
+
constructor(handle: Promise<ElementHandle | null>);
|
|
8
|
+
click(): Promise<void>;
|
|
9
|
+
type(text: string): Promise<void>;
|
|
10
|
+
press(key: string): Promise<void>;
|
|
11
|
+
property(property: string): Promise<Json | undefined>;
|
|
12
|
+
exists(): Promise<boolean>;
|
|
12
13
|
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//# sourceMappingURL=PuppeteerElement.d.ts.map
|
package/dist/PuppeteerElement.js
CHANGED
|
@@ -1,49 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { isNotEmpty } from "@thisisagile/easy";
|
|
2
|
+
//#region src/PuppeteerElement.ts
|
|
3
|
+
var PuppeteerElement = class {
|
|
4
|
+
handle;
|
|
5
|
+
constructor(handle) {
|
|
6
|
+
this.handle = handle;
|
|
7
|
+
}
|
|
8
|
+
click() {
|
|
9
|
+
return this.handle.then((h) => h?.click());
|
|
10
|
+
}
|
|
11
|
+
type(text) {
|
|
12
|
+
return this.handle.then((h) => h?.type(text));
|
|
13
|
+
}
|
|
14
|
+
press(key) {
|
|
15
|
+
return this.handle.then((h) => h?.press(key));
|
|
16
|
+
}
|
|
17
|
+
property(property) {
|
|
18
|
+
return this.handle.then((h) => h?.getProperty(property).then((p) => p.jsonValue()));
|
|
19
|
+
}
|
|
20
|
+
exists() {
|
|
21
|
+
return this.handle.then((h) => isNotEmpty(h));
|
|
22
|
+
}
|
|
9
23
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var PuppeteerElement_exports = {};
|
|
20
|
-
__export(PuppeteerElement_exports, {
|
|
21
|
-
PuppeteerElement: () => PuppeteerElement
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(PuppeteerElement_exports);
|
|
24
|
-
var import_easy = require("@thisisagile/easy");
|
|
25
|
-
class PuppeteerElement {
|
|
26
|
-
constructor(handle) {
|
|
27
|
-
this.handle = handle;
|
|
28
|
-
}
|
|
29
|
-
click() {
|
|
30
|
-
return this.handle.then((h) => h?.click());
|
|
31
|
-
}
|
|
32
|
-
type(text) {
|
|
33
|
-
return this.handle.then((h) => h?.type(text));
|
|
34
|
-
}
|
|
35
|
-
press(key) {
|
|
36
|
-
return this.handle.then((h) => h?.press(key));
|
|
37
|
-
}
|
|
38
|
-
property(property) {
|
|
39
|
-
return this.handle.then((h) => h?.getProperty(property).then((p) => p.jsonValue()));
|
|
40
|
-
}
|
|
41
|
-
exists() {
|
|
42
|
-
return this.handle.then((h) => (0, import_easy.isNotEmpty)(h));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
-
0 && (module.exports = {
|
|
47
|
-
PuppeteerElement
|
|
48
|
-
});
|
|
24
|
+
//#endregion
|
|
25
|
+
export { PuppeteerElement };
|
|
26
|
+
|
|
49
27
|
//# sourceMappingURL=PuppeteerElement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/PuppeteerElement.ts"],"sourcesContent":["import { ElementHandle, KeyInput } from 'puppeteer';\nimport { TestElement } from '@thisisagile/easy-test-web';\nimport { isNotEmpty, Json } from '@thisisagile/easy';\n\nexport class PuppeteerElement implements TestElement {\n constructor(private readonly handle: Promise<ElementHandle | null>) {}\n\n click(): Promise<void> {\n return this.handle.then(h => h?.click());\n }\n\n type(text: string): Promise<void> {\n return this.handle.then(h => h?.type(text));\n }\n\n press(key: string): Promise<void> {\n return this.handle.then(h => h?.press(key as KeyInput));\n }\n\n property(property: string): Promise<Json | undefined> {\n return this.handle.then(h => h?.getProperty(property).then(p => p.jsonValue() as Promise<Json>));\n }\n\n exists(): Promise<boolean> {\n return this.handle.then(h => isNotEmpty(h));\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PuppeteerElement.js","names":[],"sources":["../src/PuppeteerElement.ts"],"sourcesContent":["import { ElementHandle, KeyInput } from 'puppeteer';\nimport { TestElement } from '@thisisagile/easy-test-web';\nimport { isNotEmpty, Json } from '@thisisagile/easy';\n\nexport class PuppeteerElement implements TestElement {\n constructor(private readonly handle: Promise<ElementHandle | null>) {}\n\n click(): Promise<void> {\n return this.handle.then(h => h?.click());\n }\n\n type(text: string): Promise<void> {\n return this.handle.then(h => h?.type(text));\n }\n\n press(key: string): Promise<void> {\n return this.handle.then(h => h?.press(key as KeyInput));\n }\n\n property(property: string): Promise<Json | undefined> {\n return this.handle.then(h => h?.getProperty(property).then(p => p.jsonValue() as Promise<Json>));\n }\n\n exists(): Promise<boolean> {\n return this.handle.then(h => isNotEmpty(h));\n }\n}\n"],"mappings":";;AAIA,IAAa,mBAAb,MAAqD;CACtB;CAA7B,YAAY,QAAwD;EAAvC,KAAA,SAAA;CAAwC;CAErE,QAAuB;EACrB,OAAO,KAAK,OAAO,MAAK,MAAK,GAAG,MAAM,CAAC;CACzC;CAEA,KAAK,MAA6B;EAChC,OAAO,KAAK,OAAO,MAAK,MAAK,GAAG,KAAK,IAAI,CAAC;CAC5C;CAEA,MAAM,KAA4B;EAChC,OAAO,KAAK,OAAO,MAAK,MAAK,GAAG,MAAM,GAAe,CAAC;CACxD;CAEA,SAAS,UAA6C;EACpD,OAAO,KAAK,OAAO,MAAK,MAAK,GAAG,YAAY,QAAQ,CAAC,CAAC,MAAK,MAAK,EAAE,UAAU,CAAkB,CAAC;CACjG;CAEA,SAA2B;EACzB,OAAO,KAAK,OAAO,MAAK,MAAK,WAAW,CAAC,CAAC;CAC5C;AACF"}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { TestElement, Tester } from
|
|
1
|
+
import { Id, UseCase } from "@thisisagile/easy";
|
|
2
|
+
import { Browser, Page } from "puppeteer";
|
|
3
|
+
import { TestElement, Tester } from "@thisisagile/easy-test-web";
|
|
4
|
+
//#region src/PuppeteerTester.d.ts
|
|
4
5
|
export declare class PuppeteerTester implements Tester {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
6
|
+
host: string;
|
|
7
|
+
private readonly browser;
|
|
8
|
+
private readonly page;
|
|
9
|
+
constructor(host: string, browser: Browser, page: Page);
|
|
10
|
+
get url(): string;
|
|
11
|
+
static launch: (headless?: boolean, launchProps?: {}) => Promise<Browser>;
|
|
12
|
+
static init(host?: string, headless?: boolean, width?: number, height?: number, launchProps?: {}): Promise<Tester>;
|
|
13
|
+
byClass(c: string): TestElement;
|
|
14
|
+
byId(id: string): TestElement;
|
|
15
|
+
byDataTestId(id: string): TestElement;
|
|
16
|
+
byName(name: string): TestElement;
|
|
17
|
+
by(key: string, value: string): TestElement;
|
|
18
|
+
submit(): TestElement;
|
|
19
|
+
row(contains: string): TestElement;
|
|
20
|
+
redirect(url: string): Promise<boolean>;
|
|
21
|
+
goto(to: UseCase, id?: Id): Promise<boolean>;
|
|
22
|
+
wait(): Promise<boolean>;
|
|
23
|
+
close(): Promise<void>;
|
|
24
|
+
private byXPath;
|
|
24
25
|
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//# sourceMappingURL=PuppeteerTester.d.ts.map
|
package/dist/PuppeteerTester.js
CHANGED
|
@@ -1,101 +1,78 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { PuppeteerElement } from "./PuppeteerElement.js";
|
|
2
|
+
import { ctx } from "@thisisagile/easy";
|
|
3
|
+
import puppeteer from "puppeteer";
|
|
4
|
+
import { toUrl } from "@thisisagile/easy-test-web";
|
|
5
|
+
//#region src/PuppeteerTester.ts
|
|
6
|
+
var PuppeteerTester = class PuppeteerTester {
|
|
7
|
+
host;
|
|
8
|
+
browser;
|
|
9
|
+
page;
|
|
10
|
+
constructor(host, browser, page) {
|
|
11
|
+
this.host = host;
|
|
12
|
+
this.browser = browser;
|
|
13
|
+
this.page = page;
|
|
14
|
+
}
|
|
15
|
+
get url() {
|
|
16
|
+
return this.page.url();
|
|
17
|
+
}
|
|
18
|
+
/* istanbul ignore next */
|
|
19
|
+
static launch = (headless = true, launchProps = {}) => puppeteer.launch({
|
|
20
|
+
headless: headless ? "shell" : false,
|
|
21
|
+
args: ["--no-sandbox", "--start-maximized"],
|
|
22
|
+
...launchProps
|
|
23
|
+
});
|
|
24
|
+
/* istanbul ignore next */
|
|
25
|
+
static async init(host = ctx.env.get("webHost", ""), headless = true, width = 1200, height = 800, launchProps = {}) {
|
|
26
|
+
const browser = await PuppeteerTester.launch(headless, launchProps);
|
|
27
|
+
const page = await browser.newPage();
|
|
28
|
+
await page.setViewport({
|
|
29
|
+
width,
|
|
30
|
+
height
|
|
31
|
+
});
|
|
32
|
+
return new PuppeteerTester(host, browser, page);
|
|
33
|
+
}
|
|
34
|
+
byClass(c) {
|
|
35
|
+
const h = this.page.waitForSelector(`.${c}`);
|
|
36
|
+
return new PuppeteerElement(h);
|
|
37
|
+
}
|
|
38
|
+
byId(id) {
|
|
39
|
+
const h = this.page.waitForSelector(`#${id}`);
|
|
40
|
+
return new PuppeteerElement(h);
|
|
41
|
+
}
|
|
42
|
+
byDataTestId(id) {
|
|
43
|
+
return this.by("data-testid", id);
|
|
44
|
+
}
|
|
45
|
+
byName(name) {
|
|
46
|
+
return this.by("name", name);
|
|
47
|
+
}
|
|
48
|
+
by(key, value) {
|
|
49
|
+
const h = this.page.waitForSelector(`[${key}=${value}]`);
|
|
50
|
+
return new PuppeteerElement(h);
|
|
51
|
+
}
|
|
52
|
+
submit() {
|
|
53
|
+
return this.by("type", "submit");
|
|
54
|
+
}
|
|
55
|
+
row(contains) {
|
|
56
|
+
return this.byXPath(`//tr[contains(., '${contains}')]`);
|
|
57
|
+
}
|
|
58
|
+
redirect(url) {
|
|
59
|
+
return this.page.goto(url).then((r) => r?.ok() ?? false);
|
|
60
|
+
}
|
|
61
|
+
goto(to, id) {
|
|
62
|
+
return this.redirect(toUrl(to, this.host, id));
|
|
63
|
+
}
|
|
64
|
+
wait() {
|
|
65
|
+
return this.page.waitForNavigation().then((r) => r?.ok() || false);
|
|
66
|
+
}
|
|
67
|
+
close() {
|
|
68
|
+
return this.browser.close();
|
|
69
|
+
}
|
|
70
|
+
byXPath(q) {
|
|
71
|
+
const h = this.page.waitForSelector(`xpath/.${q}`);
|
|
72
|
+
return new PuppeteerElement(h);
|
|
73
|
+
}
|
|
11
74
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var PuppeteerTester_exports = {};
|
|
30
|
-
__export(PuppeteerTester_exports, {
|
|
31
|
-
PuppeteerTester: () => PuppeteerTester
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(PuppeteerTester_exports);
|
|
34
|
-
var import_PuppeteerElement = require("./PuppeteerElement");
|
|
35
|
-
var import_puppeteer = __toESM(require("puppeteer"));
|
|
36
|
-
var import_easy = require("@thisisagile/easy");
|
|
37
|
-
var import_easy_test_web = require("@thisisagile/easy-test-web");
|
|
38
|
-
class PuppeteerTester {
|
|
39
|
-
constructor(host, browser, page) {
|
|
40
|
-
this.host = host;
|
|
41
|
-
this.browser = browser;
|
|
42
|
-
this.page = page;
|
|
43
|
-
}
|
|
44
|
-
get url() {
|
|
45
|
-
return this.page.url();
|
|
46
|
-
}
|
|
47
|
-
/* istanbul ignore next */
|
|
48
|
-
static launch = (headless = true, launchProps = {}) => import_puppeteer.default.launch({ headless: headless ? "shell" : false, args: ["--no-sandbox", "--start-maximized"], ...launchProps });
|
|
49
|
-
/* istanbul ignore next */
|
|
50
|
-
static async init(host = import_easy.ctx.env.get("webHost", ""), headless = true, width = 1200, height = 800, launchProps = {}) {
|
|
51
|
-
const browser = await PuppeteerTester.launch(headless, launchProps);
|
|
52
|
-
const page = await browser.newPage();
|
|
53
|
-
await page.setViewport({ width, height });
|
|
54
|
-
return new PuppeteerTester(host, browser, page);
|
|
55
|
-
}
|
|
56
|
-
byClass(c) {
|
|
57
|
-
const h = this.page.waitForSelector(`.${c}`);
|
|
58
|
-
return new import_PuppeteerElement.PuppeteerElement(h);
|
|
59
|
-
}
|
|
60
|
-
byId(id) {
|
|
61
|
-
const h = this.page.waitForSelector(`#${id}`);
|
|
62
|
-
return new import_PuppeteerElement.PuppeteerElement(h);
|
|
63
|
-
}
|
|
64
|
-
byDataTestId(id) {
|
|
65
|
-
return this.by("data-testid", id);
|
|
66
|
-
}
|
|
67
|
-
byName(name) {
|
|
68
|
-
return this.by("name", name);
|
|
69
|
-
}
|
|
70
|
-
by(key, value) {
|
|
71
|
-
const h = this.page.waitForSelector(`[${key}=${value}]`);
|
|
72
|
-
return new import_PuppeteerElement.PuppeteerElement(h);
|
|
73
|
-
}
|
|
74
|
-
submit() {
|
|
75
|
-
return this.by("type", "submit");
|
|
76
|
-
}
|
|
77
|
-
row(contains) {
|
|
78
|
-
return this.byXPath(`//tr[contains(., '${contains}')]`);
|
|
79
|
-
}
|
|
80
|
-
redirect(url) {
|
|
81
|
-
return this.page.goto(url).then((r) => r?.ok() ?? false);
|
|
82
|
-
}
|
|
83
|
-
goto(to, id) {
|
|
84
|
-
return this.redirect((0, import_easy_test_web.toUrl)(to, this.host, id));
|
|
85
|
-
}
|
|
86
|
-
wait() {
|
|
87
|
-
return this.page.waitForNavigation().then((r) => r?.ok() || false);
|
|
88
|
-
}
|
|
89
|
-
close() {
|
|
90
|
-
return this.browser.close();
|
|
91
|
-
}
|
|
92
|
-
byXPath(q) {
|
|
93
|
-
const h = this.page.waitForSelector(`xpath/.${q}`);
|
|
94
|
-
return new import_PuppeteerElement.PuppeteerElement(h);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
98
|
-
0 && (module.exports = {
|
|
99
|
-
PuppeteerTester
|
|
100
|
-
});
|
|
75
|
+
//#endregion
|
|
76
|
+
export { PuppeteerTester };
|
|
77
|
+
|
|
101
78
|
//# sourceMappingURL=PuppeteerTester.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/PuppeteerTester.ts"],"sourcesContent":["import { PuppeteerElement } from './PuppeteerElement';\nimport puppeteer, { Browser, ElementHandle, Page } from 'puppeteer';\nimport { ctx, Id, UseCase } from '@thisisagile/easy';\nimport { TestElement, Tester, toUrl } from '@thisisagile/easy-test-web';\n\nexport class PuppeteerTester implements Tester {\n constructor(public host: string, private readonly browser: Browser, private readonly page: Page) {}\n\n get url(): string {\n return this.page.url();\n }\n\n /* istanbul ignore next */\n static launch = (headless = true, launchProps = {}): Promise<Browser> =>\n puppeteer.launch({ headless: headless ? 'shell' : false, args: ['--no-sandbox', '--start-maximized'], ...launchProps });\n\n /* istanbul ignore next */\n static async init(host: string = ctx.env.get('webHost', '') as string, headless = true, width = 1200, height = 800, launchProps = {}): Promise<Tester> {\n const browser = await PuppeteerTester.launch(headless, launchProps);\n const page = await browser.newPage();\n await page.setViewport({ width, height });\n return new PuppeteerTester(host, browser, page);\n }\n\n byClass(c: string): TestElement {\n const h = this.page.waitForSelector(`.${c}`);\n return new PuppeteerElement(h);\n }\n\n byId(id: string): TestElement {\n const h = this.page.waitForSelector(`#${id}`);\n return new PuppeteerElement(h);\n }\n\n byDataTestId(id: string): TestElement {\n return this.by('data-testid', id);\n }\n\n byName(name: string): TestElement {\n return this.by('name', name);\n }\n\n by(key: string, value: string): TestElement {\n const h = this.page.waitForSelector(`[${key}=${value}]`);\n return new PuppeteerElement(h);\n }\n\n submit(): TestElement {\n return this.by('type', 'submit');\n }\n\n row(contains: string): TestElement {\n // Select the first row that contains the given input. byXPath prefixes the query with a dot,\n // so it must stay relative: '(//tr[...])[1]' would become '.(//tr[...])[1]', which is not\n // valid xpath - it matches nothing and only times out. waitForSelector takes the first match.\n return this.byXPath(`//tr[contains(., '${contains}')]`);\n }\n\n redirect(url: string): Promise<boolean> {\n return this.page.goto(url).then(r => r?.ok() ?? false);\n }\n\n goto(to: UseCase, id?: Id): Promise<boolean> {\n return this.redirect(toUrl(to, this.host, id));\n }\n\n wait(): Promise<boolean> {\n return this.page.waitForNavigation().then(r => r?.ok() || false);\n }\n\n close(): Promise<void> {\n return this.browser.close();\n }\n\n private byXPath(q: string): TestElement {\n const h = this.page.waitForSelector(`xpath/.${q}`);\n return new PuppeteerElement(h as Promise<ElementHandle<Element>>);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PuppeteerTester.js","names":[],"sources":["../src/PuppeteerTester.ts"],"sourcesContent":["import { PuppeteerElement } from './PuppeteerElement';\nimport puppeteer, { Browser, ElementHandle, Page } from 'puppeteer';\nimport { ctx, Id, UseCase } from '@thisisagile/easy';\nimport { TestElement, Tester, toUrl } from '@thisisagile/easy-test-web';\n\nexport class PuppeteerTester implements Tester {\n constructor(public host: string, private readonly browser: Browser, private readonly page: Page) {}\n\n get url(): string {\n return this.page.url();\n }\n\n /* istanbul ignore next */\n static launch = (headless = true, launchProps = {}): Promise<Browser> =>\n puppeteer.launch({ headless: headless ? 'shell' : false, args: ['--no-sandbox', '--start-maximized'], ...launchProps });\n\n /* istanbul ignore next */\n static async init(host: string = ctx.env.get('webHost', '') as string, headless = true, width = 1200, height = 800, launchProps = {}): Promise<Tester> {\n const browser = await PuppeteerTester.launch(headless, launchProps);\n const page = await browser.newPage();\n await page.setViewport({ width, height });\n return new PuppeteerTester(host, browser, page);\n }\n\n byClass(c: string): TestElement {\n const h = this.page.waitForSelector(`.${c}`);\n return new PuppeteerElement(h);\n }\n\n byId(id: string): TestElement {\n const h = this.page.waitForSelector(`#${id}`);\n return new PuppeteerElement(h);\n }\n\n byDataTestId(id: string): TestElement {\n return this.by('data-testid', id);\n }\n\n byName(name: string): TestElement {\n return this.by('name', name);\n }\n\n by(key: string, value: string): TestElement {\n const h = this.page.waitForSelector(`[${key}=${value}]`);\n return new PuppeteerElement(h);\n }\n\n submit(): TestElement {\n return this.by('type', 'submit');\n }\n\n row(contains: string): TestElement {\n // Select the first row that contains the given input. byXPath prefixes the query with a dot,\n // so it must stay relative: '(//tr[...])[1]' would become '.(//tr[...])[1]', which is not\n // valid xpath - it matches nothing and only times out. waitForSelector takes the first match.\n return this.byXPath(`//tr[contains(., '${contains}')]`);\n }\n\n redirect(url: string): Promise<boolean> {\n return this.page.goto(url).then(r => r?.ok() ?? false);\n }\n\n goto(to: UseCase, id?: Id): Promise<boolean> {\n return this.redirect(toUrl(to, this.host, id));\n }\n\n wait(): Promise<boolean> {\n return this.page.waitForNavigation().then(r => r?.ok() || false);\n }\n\n close(): Promise<void> {\n return this.browser.close();\n }\n\n private byXPath(q: string): TestElement {\n const h = this.page.waitForSelector(`xpath/.${q}`);\n return new PuppeteerElement(h as Promise<ElementHandle<Element>>);\n }\n}\n"],"mappings":";;;;;AAKA,IAAa,kBAAb,MAAa,gBAAkC;CAC1B;CAA+B;CAAmC;CAArF,YAAY,MAAqB,SAAmC,MAA6B;EAA9E,KAAA,OAAA;EAA+B,KAAA,UAAA;EAAmC,KAAA,OAAA;CAAa;CAElG,IAAI,MAAc;EAChB,OAAO,KAAK,KAAK,IAAI;CACvB;;CAGA,OAAO,UAAU,WAAW,MAAM,cAAc,CAAC,MAC/C,UAAU,OAAO;EAAE,UAAU,WAAW,UAAU;EAAO,MAAM,CAAC,gBAAgB,mBAAmB;EAAG,GAAG;CAAY,CAAC;;CAGxH,aAAa,KAAK,OAAe,IAAI,IAAI,IAAI,WAAW,EAAE,GAAa,WAAW,MAAM,QAAQ,MAAM,SAAS,KAAK,cAAc,CAAC,GAAoB;EACrJ,MAAM,UAAU,MAAM,gBAAgB,OAAO,UAAU,WAAW;EAClE,MAAM,OAAO,MAAM,QAAQ,QAAQ;EACnC,MAAM,KAAK,YAAY;GAAE;GAAO;EAAO,CAAC;EACxC,OAAO,IAAI,gBAAgB,MAAM,SAAS,IAAI;CAChD;CAEA,QAAQ,GAAwB;EAC9B,MAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,GAAG;EAC3C,OAAO,IAAI,iBAAiB,CAAC;CAC/B;CAEA,KAAK,IAAyB;EAC5B,MAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,IAAI;EAC5C,OAAO,IAAI,iBAAiB,CAAC;CAC/B;CAEA,aAAa,IAAyB;EACpC,OAAO,KAAK,GAAG,eAAe,EAAE;CAClC;CAEA,OAAO,MAA2B;EAChC,OAAO,KAAK,GAAG,QAAQ,IAAI;CAC7B;CAEA,GAAG,KAAa,OAA4B;EAC1C,MAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,IAAI,GAAG,MAAM,EAAE;EACvD,OAAO,IAAI,iBAAiB,CAAC;CAC/B;CAEA,SAAsB;EACpB,OAAO,KAAK,GAAG,QAAQ,QAAQ;CACjC;CAEA,IAAI,UAA+B;EAIjC,OAAO,KAAK,QAAQ,qBAAqB,SAAS,IAAI;CACxD;CAEA,SAAS,KAA+B;EACtC,OAAO,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,MAAK,MAAK,GAAG,GAAG,KAAK,KAAK;CACvD;CAEA,KAAK,IAAa,IAA2B;EAC3C,OAAO,KAAK,SAAS,MAAM,IAAI,KAAK,MAAM,EAAE,CAAC;CAC/C;CAEA,OAAyB;EACvB,OAAO,KAAK,KAAK,kBAAkB,CAAC,CAAC,MAAK,MAAK,GAAG,GAAG,KAAK,KAAK;CACjE;CAEA,QAAuB;EACrB,OAAO,KAAK,QAAQ,MAAM;CAC5B;CAEA,QAAgB,GAAwB;EACtC,MAAM,IAAI,KAAK,KAAK,gBAAgB,UAAU,GAAG;EACjD,OAAO,IAAI,iBAAiB,CAAoC;CAClE;AACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { PuppeteerElement } from "./PuppeteerElement.js";
|
|
2
|
+
import { PuppeteerTester } from "./PuppeteerTester.js";
|
|
3
|
+
export { PuppeteerElement, PuppeteerTester };
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
-
var src_exports = {};
|
|
17
|
-
module.exports = __toCommonJS(src_exports);
|
|
18
|
-
__reExport(src_exports, require("./PuppeteerElement"), module.exports);
|
|
19
|
-
__reExport(src_exports, require("./PuppeteerTester"), module.exports);
|
|
20
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
-
0 && (module.exports = {
|
|
22
|
-
...require("./PuppeteerElement"),
|
|
23
|
-
...require("./PuppeteerTester")
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import { PuppeteerElement } from "./PuppeteerElement.js";
|
|
2
|
+
import { PuppeteerTester } from "./PuppeteerTester.js";
|
|
3
|
+
export { PuppeteerElement, PuppeteerTester };
|
package/package.json
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy-puppeteer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"description": "Straightforward wrapper library for Puppeteer web testing framework",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
7
8
|
"main": "dist/index.js",
|
|
9
|
+
"module": "dist/index.js",
|
|
8
10
|
"types": "dist/index.d.ts",
|
|
9
11
|
"repository": {
|
|
10
12
|
"type": "git",
|
|
@@ -22,8 +24,7 @@
|
|
|
22
24
|
"scripts": {
|
|
23
25
|
"lint": "yarn g:eslint . --ext .js,.jsx,.ts,.tsx --fix",
|
|
24
26
|
"format": "yarn g:prettier --check --write src test *.json",
|
|
25
|
-
"build": "yarn
|
|
26
|
-
"build:tsup": "yarn g:tsup && yarn g:tsc --emitDeclarationOnly --declaration",
|
|
27
|
+
"build": "yarn g:tsdown && yarn g:exports",
|
|
27
28
|
"test": "yarn g:jest --coverage",
|
|
28
29
|
"prepack": "yarn g:copy-readme"
|
|
29
30
|
},
|
|
@@ -34,30 +35,29 @@
|
|
|
34
35
|
"publishConfig": {
|
|
35
36
|
"access": "public"
|
|
36
37
|
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=20.19.0"
|
|
40
|
+
},
|
|
37
41
|
"devDependencies": {
|
|
38
42
|
"@thisisagile/easy-test": "*"
|
|
39
43
|
},
|
|
40
44
|
"dependencies": {
|
|
41
|
-
"@thisisagile/easy": "^
|
|
42
|
-
"@thisisagile/easy-test-web": "^
|
|
45
|
+
"@thisisagile/easy": "^20.0.0",
|
|
46
|
+
"@thisisagile/easy-test-web": "^20.0.0",
|
|
43
47
|
"puppeteer": "^24.43.1"
|
|
44
48
|
},
|
|
45
|
-
"module": "dist/index.mjs",
|
|
46
49
|
"exports": {
|
|
47
50
|
".": {
|
|
48
51
|
"types": "./dist/index.d.ts",
|
|
49
|
-
"
|
|
50
|
-
"require": "./dist/index.js"
|
|
52
|
+
"default": "./dist/index.js"
|
|
51
53
|
},
|
|
52
54
|
"./PuppeteerElement": {
|
|
53
55
|
"types": "./dist/PuppeteerElement.d.ts",
|
|
54
|
-
"
|
|
55
|
-
"require": "./dist/PuppeteerElement.js"
|
|
56
|
+
"default": "./dist/PuppeteerElement.js"
|
|
56
57
|
},
|
|
57
58
|
"./PuppeteerTester": {
|
|
58
59
|
"types": "./dist/PuppeteerTester.d.ts",
|
|
59
|
-
"
|
|
60
|
-
"require": "./dist/PuppeteerTester.js"
|
|
60
|
+
"default": "./dist/PuppeteerTester.js"
|
|
61
61
|
},
|
|
62
62
|
"./src/*": "./src/*",
|
|
63
63
|
"./dist/*": "./dist/*",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/PuppeteerTester.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/chunk-EESZSFBI.mjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// src/PuppeteerElement.ts
|
|
2
|
-
import { isNotEmpty } from "@thisisagile/easy";
|
|
3
|
-
var PuppeteerElement = class {
|
|
4
|
-
constructor(handle) {
|
|
5
|
-
this.handle = handle;
|
|
6
|
-
}
|
|
7
|
-
click() {
|
|
8
|
-
return this.handle.then((h) => h?.click());
|
|
9
|
-
}
|
|
10
|
-
type(text) {
|
|
11
|
-
return this.handle.then((h) => h?.type(text));
|
|
12
|
-
}
|
|
13
|
-
press(key) {
|
|
14
|
-
return this.handle.then((h) => h?.press(key));
|
|
15
|
-
}
|
|
16
|
-
property(property) {
|
|
17
|
-
return this.handle.then((h) => h?.getProperty(property).then((p) => p.jsonValue()));
|
|
18
|
-
}
|
|
19
|
-
exists() {
|
|
20
|
-
return this.handle.then((h) => isNotEmpty(h));
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export {
|
|
25
|
-
PuppeteerElement
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=chunk-EESZSFBI.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/PuppeteerElement.ts"],"sourcesContent":["import { ElementHandle, KeyInput } from 'puppeteer';\nimport { TestElement } from '@thisisagile/easy-test-web';\nimport { isNotEmpty, Json } from '@thisisagile/easy';\n\nexport class PuppeteerElement implements TestElement {\n constructor(private readonly handle: Promise<ElementHandle | null>) {}\n\n click(): Promise<void> {\n return this.handle.then(h => h?.click());\n }\n\n type(text: string): Promise<void> {\n return this.handle.then(h => h?.type(text));\n }\n\n press(key: string): Promise<void> {\n return this.handle.then(h => h?.press(key as KeyInput));\n }\n\n property(property: string): Promise<Json | undefined> {\n return this.handle.then(h => h?.getProperty(property).then(p => p.jsonValue() as Promise<Json>));\n }\n\n exists(): Promise<boolean> {\n return this.handle.then(h => isNotEmpty(h));\n }\n}\n"],"mappings":";AAEA,SAAS,kBAAwB;AAE1B,IAAM,mBAAN,MAA8C;AAAA,EACnD,YAA6B,QAAuC;AAAvC;AAAA,EAAwC;AAAA,EAErE,QAAuB;AACrB,WAAO,KAAK,OAAO,KAAK,OAAK,GAAG,MAAM,CAAC;AAAA,EACzC;AAAA,EAEA,KAAK,MAA6B;AAChC,WAAO,KAAK,OAAO,KAAK,OAAK,GAAG,KAAK,IAAI,CAAC;AAAA,EAC5C;AAAA,EAEA,MAAM,KAA4B;AAChC,WAAO,KAAK,OAAO,KAAK,OAAK,GAAG,MAAM,GAAe,CAAC;AAAA,EACxD;AAAA,EAEA,SAAS,UAA6C;AACpD,WAAO,KAAK,OAAO,KAAK,OAAK,GAAG,YAAY,QAAQ,EAAE,KAAK,OAAK,EAAE,UAAU,CAAkB,CAAC;AAAA,EACjG;AAAA,EAEA,SAA2B;AACzB,WAAO,KAAK,OAAO,KAAK,OAAK,WAAW,CAAC,CAAC;AAAA,EAC5C;AACF;","names":[]}
|
package/dist/chunk-WKW6YDP7.mjs
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PuppeteerElement
|
|
3
|
-
} from "./chunk-EESZSFBI.mjs";
|
|
4
|
-
|
|
5
|
-
// src/PuppeteerTester.ts
|
|
6
|
-
import puppeteer from "puppeteer";
|
|
7
|
-
import { ctx } from "@thisisagile/easy";
|
|
8
|
-
import { toUrl } from "@thisisagile/easy-test-web";
|
|
9
|
-
var PuppeteerTester = class _PuppeteerTester {
|
|
10
|
-
constructor(host, browser, page) {
|
|
11
|
-
this.host = host;
|
|
12
|
-
this.browser = browser;
|
|
13
|
-
this.page = page;
|
|
14
|
-
}
|
|
15
|
-
get url() {
|
|
16
|
-
return this.page.url();
|
|
17
|
-
}
|
|
18
|
-
/* istanbul ignore next */
|
|
19
|
-
static launch = (headless = true, launchProps = {}) => puppeteer.launch({ headless: headless ? "shell" : false, args: ["--no-sandbox", "--start-maximized"], ...launchProps });
|
|
20
|
-
/* istanbul ignore next */
|
|
21
|
-
static async init(host = ctx.env.get("webHost", ""), headless = true, width = 1200, height = 800, launchProps = {}) {
|
|
22
|
-
const browser = await _PuppeteerTester.launch(headless, launchProps);
|
|
23
|
-
const page = await browser.newPage();
|
|
24
|
-
await page.setViewport({ width, height });
|
|
25
|
-
return new _PuppeteerTester(host, browser, page);
|
|
26
|
-
}
|
|
27
|
-
byClass(c) {
|
|
28
|
-
const h = this.page.waitForSelector(`.${c}`);
|
|
29
|
-
return new PuppeteerElement(h);
|
|
30
|
-
}
|
|
31
|
-
byId(id) {
|
|
32
|
-
const h = this.page.waitForSelector(`#${id}`);
|
|
33
|
-
return new PuppeteerElement(h);
|
|
34
|
-
}
|
|
35
|
-
byDataTestId(id) {
|
|
36
|
-
return this.by("data-testid", id);
|
|
37
|
-
}
|
|
38
|
-
byName(name) {
|
|
39
|
-
return this.by("name", name);
|
|
40
|
-
}
|
|
41
|
-
by(key, value) {
|
|
42
|
-
const h = this.page.waitForSelector(`[${key}=${value}]`);
|
|
43
|
-
return new PuppeteerElement(h);
|
|
44
|
-
}
|
|
45
|
-
submit() {
|
|
46
|
-
return this.by("type", "submit");
|
|
47
|
-
}
|
|
48
|
-
row(contains) {
|
|
49
|
-
return this.byXPath(`//tr[contains(., '${contains}')]`);
|
|
50
|
-
}
|
|
51
|
-
redirect(url) {
|
|
52
|
-
return this.page.goto(url).then((r) => r?.ok() ?? false);
|
|
53
|
-
}
|
|
54
|
-
goto(to, id) {
|
|
55
|
-
return this.redirect(toUrl(to, this.host, id));
|
|
56
|
-
}
|
|
57
|
-
wait() {
|
|
58
|
-
return this.page.waitForNavigation().then((r) => r?.ok() || false);
|
|
59
|
-
}
|
|
60
|
-
close() {
|
|
61
|
-
return this.browser.close();
|
|
62
|
-
}
|
|
63
|
-
byXPath(q) {
|
|
64
|
-
const h = this.page.waitForSelector(`xpath/.${q}`);
|
|
65
|
-
return new PuppeteerElement(h);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export {
|
|
70
|
-
PuppeteerTester
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=chunk-WKW6YDP7.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/PuppeteerTester.ts"],"sourcesContent":["import { PuppeteerElement } from './PuppeteerElement';\nimport puppeteer, { Browser, ElementHandle, Page } from 'puppeteer';\nimport { ctx, Id, UseCase } from '@thisisagile/easy';\nimport { TestElement, Tester, toUrl } from '@thisisagile/easy-test-web';\n\nexport class PuppeteerTester implements Tester {\n constructor(public host: string, private readonly browser: Browser, private readonly page: Page) {}\n\n get url(): string {\n return this.page.url();\n }\n\n /* istanbul ignore next */\n static launch = (headless = true, launchProps = {}): Promise<Browser> =>\n puppeteer.launch({ headless: headless ? 'shell' : false, args: ['--no-sandbox', '--start-maximized'], ...launchProps });\n\n /* istanbul ignore next */\n static async init(host: string = ctx.env.get('webHost', '') as string, headless = true, width = 1200, height = 800, launchProps = {}): Promise<Tester> {\n const browser = await PuppeteerTester.launch(headless, launchProps);\n const page = await browser.newPage();\n await page.setViewport({ width, height });\n return new PuppeteerTester(host, browser, page);\n }\n\n byClass(c: string): TestElement {\n const h = this.page.waitForSelector(`.${c}`);\n return new PuppeteerElement(h);\n }\n\n byId(id: string): TestElement {\n const h = this.page.waitForSelector(`#${id}`);\n return new PuppeteerElement(h);\n }\n\n byDataTestId(id: string): TestElement {\n return this.by('data-testid', id);\n }\n\n byName(name: string): TestElement {\n return this.by('name', name);\n }\n\n by(key: string, value: string): TestElement {\n const h = this.page.waitForSelector(`[${key}=${value}]`);\n return new PuppeteerElement(h);\n }\n\n submit(): TestElement {\n return this.by('type', 'submit');\n }\n\n row(contains: string): TestElement {\n // Select the first row that contains the given input. byXPath prefixes the query with a dot,\n // so it must stay relative: '(//tr[...])[1]' would become '.(//tr[...])[1]', which is not\n // valid xpath - it matches nothing and only times out. waitForSelector takes the first match.\n return this.byXPath(`//tr[contains(., '${contains}')]`);\n }\n\n redirect(url: string): Promise<boolean> {\n return this.page.goto(url).then(r => r?.ok() ?? false);\n }\n\n goto(to: UseCase, id?: Id): Promise<boolean> {\n return this.redirect(toUrl(to, this.host, id));\n }\n\n wait(): Promise<boolean> {\n return this.page.waitForNavigation().then(r => r?.ok() || false);\n }\n\n close(): Promise<void> {\n return this.browser.close();\n }\n\n private byXPath(q: string): TestElement {\n const h = this.page.waitForSelector(`xpath/.${q}`);\n return new PuppeteerElement(h as Promise<ElementHandle<Element>>);\n }\n}\n"],"mappings":";;;;;AACA,OAAO,eAAiD;AACxD,SAAS,WAAwB;AACjC,SAA8B,aAAa;AAEpC,IAAM,kBAAN,MAAM,iBAAkC;AAAA,EAC7C,YAAmB,MAA+B,SAAmC,MAAY;AAA9E;AAA+B;AAAmC;AAAA,EAAa;AAAA,EAElG,IAAI,MAAc;AAChB,WAAO,KAAK,KAAK,IAAI;AAAA,EACvB;AAAA;AAAA,EAGA,OAAO,SAAS,CAAC,WAAW,MAAM,cAAc,CAAC,MAC/C,UAAU,OAAO,EAAE,UAAU,WAAW,UAAU,OAAO,MAAM,CAAC,gBAAgB,mBAAmB,GAAG,GAAG,YAAY,CAAC;AAAA;AAAA,EAGxH,aAAa,KAAK,OAAe,IAAI,IAAI,IAAI,WAAW,EAAE,GAAa,WAAW,MAAM,QAAQ,MAAM,SAAS,KAAK,cAAc,CAAC,GAAoB;AACrJ,UAAM,UAAU,MAAM,iBAAgB,OAAO,UAAU,WAAW;AAClE,UAAM,OAAO,MAAM,QAAQ,QAAQ;AACnC,UAAM,KAAK,YAAY,EAAE,OAAO,OAAO,CAAC;AACxC,WAAO,IAAI,iBAAgB,MAAM,SAAS,IAAI;AAAA,EAChD;AAAA,EAEA,QAAQ,GAAwB;AAC9B,UAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,CAAC,EAAE;AAC3C,WAAO,IAAI,iBAAiB,CAAC;AAAA,EAC/B;AAAA,EAEA,KAAK,IAAyB;AAC5B,UAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,EAAE,EAAE;AAC5C,WAAO,IAAI,iBAAiB,CAAC;AAAA,EAC/B;AAAA,EAEA,aAAa,IAAyB;AACpC,WAAO,KAAK,GAAG,eAAe,EAAE;AAAA,EAClC;AAAA,EAEA,OAAO,MAA2B;AAChC,WAAO,KAAK,GAAG,QAAQ,IAAI;AAAA,EAC7B;AAAA,EAEA,GAAG,KAAa,OAA4B;AAC1C,UAAM,IAAI,KAAK,KAAK,gBAAgB,IAAI,GAAG,IAAI,KAAK,GAAG;AACvD,WAAO,IAAI,iBAAiB,CAAC;AAAA,EAC/B;AAAA,EAEA,SAAsB;AACpB,WAAO,KAAK,GAAG,QAAQ,QAAQ;AAAA,EACjC;AAAA,EAEA,IAAI,UAA+B;AAIjC,WAAO,KAAK,QAAQ,qBAAqB,QAAQ,KAAK;AAAA,EACxD;AAAA,EAEA,SAAS,KAA+B;AACtC,WAAO,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,OAAK,GAAG,GAAG,KAAK,KAAK;AAAA,EACvD;AAAA,EAEA,KAAK,IAAa,IAA2B;AAC3C,WAAO,KAAK,SAAS,MAAM,IAAI,KAAK,MAAM,EAAE,CAAC;AAAA,EAC/C;AAAA,EAEA,OAAyB;AACvB,WAAO,KAAK,KAAK,kBAAkB,EAAE,KAAK,OAAK,GAAG,GAAG,KAAK,KAAK;AAAA,EACjE;AAAA,EAEA,QAAuB;AACrB,WAAO,KAAK,QAAQ,MAAM;AAAA,EAC5B;AAAA,EAEQ,QAAQ,GAAwB;AACtC,UAAM,IAAI,KAAK,KAAK,gBAAgB,UAAU,CAAC,EAAE;AACjD,WAAO,IAAI,iBAAiB,CAAoC;AAAA,EAClE;AACF;","names":[]}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './PuppeteerElement';\nexport * from './PuppeteerTester';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,+BAAd;AACA,wBAAc,8BADd;","names":[]}
|
package/dist/index.mjs
DELETED
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|