@applitools/eyes-puppeteer 1.8.5 → 1.9.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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  ## Unreleased
4
4
 
5
5
 
6
+ ## 1.9.0 - 2021/11/10
7
+
8
+ - support cookies
9
+ - updated to @applitools/eyes-api@1.1.5 (from 1.0.12)
10
+ - updated to @applitools/eyes-sdk-core@12.23.24 (from 12.22.6)
11
+ - updated to @applitools/visual-grid-client@15.8.43 (from 15.8.20)
12
+ - updated to @applitools/eyes-api@1.1.6 (from 1.1.5)
13
+ - updated to @applitools/eyes-sdk-core@12.24.0 (from 12.23.24)
14
+ - updated to @applitools/visual-grid-client@15.8.44 (from 15.8.43)
15
+
6
16
  ## 1.8.5 - 2021/10/30
7
17
 
8
18
  - updated to @applitools/eyes-sdk-core@12.23.22 (from 12.23.18)
package/dist/api.js CHANGED
@@ -25,8 +25,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.BatchClose = exports.Target = exports.CheckSettings = exports.Configuration = exports.Eyes = void 0;
26
26
  const eyes_sdk_core_1 = require("@applitools/eyes-sdk-core");
27
27
  const api = __importStar(require("@applitools/eyes-api"));
28
- const spec = __importStar(require("./spec-driver"));
29
- const sdk = eyes_sdk_core_1.makeSDK({
28
+ const spec = __importStar(require("@applitools/spec-driver-puppeteer"));
29
+ const sdk = (0, eyes_sdk_core_1.makeSDK)({
30
30
  name: 'eyes.puppeteer',
31
31
  version: require('../package.json').version,
32
32
  spec,
@@ -6,227 +6,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
6
6
  if (k2 === undefined) k2 = k;
7
7
  o[k2] = m[k];
8
8
  }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
11
  };
21
12
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.build = exports.waitUntilDisplayed = exports.scrollIntoView = exports.hover = exports.type = exports.click = exports.takeScreenshot = exports.visit = exports.getUrl = exports.getTitle = exports.setViewportSize = exports.getViewportSize = exports.findElements = exports.findElement = exports.childContext = exports.parentContext = exports.mainContext = exports.executeScript = exports.isStaleElementError = exports.extractContext = exports.transformSelector = exports.isSelector = exports.isElement = exports.isContext = exports.isDriver = void 0;
23
- const utils = __importStar(require("@applitools/utils"));
24
- async function handleToObject(handle) {
25
- const [, type] = handle.toString().split('@');
26
- if (type === 'array') {
27
- const map = await handle.getProperties();
28
- return Promise.all(Array.from(map.values(), handleToObject));
29
- }
30
- else if (type === 'object') {
31
- const map = await handle.getProperties();
32
- const chunks = await Promise.all(Array.from(map, async ([key, handle]) => ({ [key]: await handleToObject(handle) })));
33
- return chunks.length > 0 ? Object.assign(...chunks) : {};
34
- }
35
- else if (type === 'node') {
36
- return handle.asElement();
37
- }
38
- else {
39
- return handle.jsonValue();
40
- }
41
- }
42
- function transformArgument(arg) {
43
- const elements = [];
44
- const argWithElementMarkers = transform(arg);
45
- return [argWithElementMarkers, ...elements];
46
- function transform(arg) {
47
- if (isElement(arg)) {
48
- elements.push(arg);
49
- return { isElement: true };
50
- }
51
- else if (utils.types.isArray(arg)) {
52
- return arg.map(transform);
53
- }
54
- else if (utils.types.isObject(arg)) {
55
- return Object.entries(arg).reduce((object, [key, value]) => {
56
- return Object.assign(object, { [key]: transform(value) });
57
- }, {});
58
- }
59
- else {
60
- return arg;
61
- }
62
- }
63
- }
64
- function scriptRunner(script, arg, ...elements) {
65
- const func = new Function(script.startsWith('function') ? `return (${script}).apply(null, arguments)` : script);
66
- return func(transform(arg));
67
- function transform(arg) {
68
- if (!arg) {
69
- return arg;
70
- }
71
- else if (arg.isElement) {
72
- return elements.shift();
73
- }
74
- else if (Array.isArray(arg)) {
75
- return arg.map(transform);
76
- }
77
- else if (typeof arg === 'object') {
78
- return Object.entries(arg).reduce((object, [key, value]) => {
79
- return Object.assign(object, { [key]: transform(value) });
80
- }, {});
81
- }
82
- else {
83
- return arg;
84
- }
85
- }
86
- }
87
- function isXpath(selector) {
88
- return selector.startsWith('//') || selector.startsWith('..');
89
- }
90
- function isDriver(page) {
91
- if (!page)
92
- return false;
93
- return utils.types.instanceOf(page, 'Page');
94
- }
95
- exports.isDriver = isDriver;
96
- function isContext(frame) {
97
- if (!frame)
98
- return false;
99
- return utils.types.instanceOf(frame, 'Frame');
100
- }
101
- exports.isContext = isContext;
102
- function isElement(element) {
103
- if (!element)
104
- return false;
105
- return utils.types.instanceOf(element, 'ElementHandle');
106
- }
107
- exports.isElement = isElement;
108
- function isSelector(selector) {
109
- return utils.types.isString(selector);
110
- }
111
- exports.isSelector = isSelector;
112
- function transformSelector(selector) {
113
- if (utils.types.has(selector, 'selector'))
114
- return selector.selector;
115
- return selector;
116
- }
117
- exports.transformSelector = transformSelector;
118
- function extractContext(page) {
119
- return isDriver(page) ? page.mainFrame() : page;
120
- }
121
- exports.extractContext = extractContext;
122
- function isStaleElementError(err) {
123
- return (err &&
124
- err.message &&
125
- (err.message.includes('Execution context was destroyed') ||
126
- err.message.includes('JSHandles can be evaluated only in the context they were created')));
127
- }
128
- exports.isStaleElementError = isStaleElementError;
129
- async function executeScript(frame, script, arg) {
130
- script = utils.types.isString(script) ? script : `function() {return (${script.toString()}).apply(null, arguments)}`;
131
- const result = await frame.evaluateHandle(scriptRunner, script, ...transformArgument(arg));
132
- return handleToObject(result);
133
- }
134
- exports.executeScript = executeScript;
135
- async function mainContext(frame) {
136
- frame = extractContext(frame);
137
- let mainFrame = frame;
138
- while (mainFrame.parentFrame()) {
139
- mainFrame = mainFrame.parentFrame();
140
- }
141
- return mainFrame;
142
- }
143
- exports.mainContext = mainContext;
144
- async function parentContext(frame) {
145
- frame = extractContext(frame);
146
- return frame.parentFrame();
147
- }
148
- exports.parentContext = parentContext;
149
- async function childContext(_frame, element) {
150
- return element.contentFrame();
151
- }
152
- exports.childContext = childContext;
153
- async function findElement(frame, selector, parent) {
154
- const root = parent !== null && parent !== void 0 ? parent : frame;
155
- return isXpath(selector) ? root.$x(selector).then(elements => elements[0]) : root.$(selector);
156
- }
157
- exports.findElement = findElement;
158
- async function findElements(frame, selector, parent) {
159
- const root = parent !== null && parent !== void 0 ? parent : frame;
160
- return isXpath(selector) ? root.$x(selector) : root.$$(selector);
161
- }
162
- exports.findElements = findElements;
163
- async function getViewportSize(page) {
164
- return page.viewport();
165
- }
166
- exports.getViewportSize = getViewportSize;
167
- async function setViewportSize(page, size) {
168
- await page.setViewport(size);
169
- await new Promise(res => setTimeout(res, 100));
170
- }
171
- exports.setViewportSize = setViewportSize;
172
- async function getTitle(page) {
173
- return page.title();
174
- }
175
- exports.getTitle = getTitle;
176
- async function getUrl(page) {
177
- return page.url();
178
- }
179
- exports.getUrl = getUrl;
180
- async function visit(page, url) {
181
- await page.goto(url);
182
- }
183
- exports.visit = visit;
184
- async function takeScreenshot(page) {
185
- const scr = await page._client.send('Page.captureScreenshot');
186
- return scr.data;
187
- }
188
- exports.takeScreenshot = takeScreenshot;
189
- async function click(frame, element) {
190
- if (isSelector(element))
191
- element = await findElement(frame, element);
192
- await element.click();
193
- }
194
- exports.click = click;
195
- async function type(frame, element, keys) {
196
- if (isSelector(element))
197
- element = await findElement(frame, element);
198
- return element.type(keys);
199
- }
200
- exports.type = type;
201
- async function hover(frame, element) {
202
- if (isSelector(element))
203
- element = await findElement(frame, element);
204
- await element.hover();
205
- }
206
- exports.hover = hover;
207
- async function scrollIntoView(frame, element, align = false) {
208
- if (isSelector(element))
209
- element = await findElement(frame, element);
210
- await frame.evaluate((element, align) => element.scrollIntoView(align), element, align);
211
- }
212
- exports.scrollIntoView = scrollIntoView;
213
- async function waitUntilDisplayed(frame, selector) {
214
- await frame.waitForSelector(selector);
215
- }
216
- exports.waitUntilDisplayed = waitUntilDisplayed;
217
- async function build(env) {
218
- const puppeteer = require('puppeteer');
219
- env = Object.assign(Object.assign({}, env), { ignoreDefaultArgs: ['--hide-scrollbars'], executablePath: 'google-chrome-stable', args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-gpu'] });
220
- delete env.headless;
221
- if (process.env.APPLITOOLS_DEBUG) {
222
- env.headless = false;
223
- env.devtools = true;
224
- delete env.executablePath;
225
- }
226
- if (process.platform !== 'linux')
227
- delete env.executablePath;
228
- const driver = await puppeteer.launch(env);
229
- const page = await driver.newPage();
230
- return [page, () => driver.close()];
231
- }
232
- exports.build = build;
13
+ __exportStar(require("@applitools/spec-driver-puppeteer"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/eyes-puppeteer",
3
- "version": "1.8.5",
3
+ "version": "1.9.0",
4
4
  "description": "Applitools Eyes SDK for Puppeteer",
5
5
  "keywords": [
6
6
  "eyes-puppeteer",
@@ -40,19 +40,16 @@
40
40
  ],
41
41
  "scripts": {
42
42
  "lint": "eslint '**/*.ts'",
43
- "build": "yarn build:dist && yarn build:types",
44
- "build:dist": "tsc",
45
- "build:types": "api-extractor ./src/index.ts --out ./types/index.d.ts --external-modules puppeteer",
43
+ "build": "ttsc",
46
44
  "generate:tests": "coverage-tests generate https://raw.githubusercontent.com/applitools/sdk.coverage.tests/master/js/config.js --name 'eyes-puppeteer'",
47
- "test": "yarn test:it && yarn test:coverage",
48
- "test:it": "mocha --exit --no-timeouts -r ts-node/register ./test/it/*.spec.ts",
49
- "test:coverage": "yarn build:dist && yarn generate:tests && APPLITOOLS_BATCH_NAME='JS Coverage Tests: eyes-puppeteer' APPLITOOLS_BATCH_ID=$(uuidgen) XUNIT_FILE=coverage-test-report.xml mocha --exit --config .mocharc.cvg.js",
45
+ "test": "yarn test:coverage",
46
+ "test:coverage": "yarn generate:tests && APPLITOOLS_BATCH_NAME='JS Coverage Tests: eyes-puppeteer' APPLITOOLS_BATCH_ID=$(uuidgen) XUNIT_FILE=coverage-test-report.xml mocha --exit --config .mocharc.cvg.js",
50
47
  "report": "coverage-tests report https://raw.githubusercontent.com/applitools/sdk.coverage.tests/master/js/config.js --name 'eyes-puppeteer'",
51
48
  "docker:build": "docker build -t applitools/puppeteer-chrome .",
52
49
  "docker:rebuild": "docker build --no-cache -t applitools/puppeteer-chrome .",
53
50
  "docker:run": "yarn docker:build && docker run -e NODE_AUTH_TOKEN --env APPLITOOLS_API_KEY=$APPLITOOLS_API_KEY_SDK --env APPLITOOLS_BATCH_NAME='JS Coverage Tests: eyes-puppeteer' --env APPLITOOLS_BATCH_ID=$(uuidgen) --env XUNIT_FILE=coverage-test-report.xml -it --init --rm -v $(pwd):/sandbox applitools/puppeteer-chrome",
54
51
  "deps": "bongo deps",
55
- "gh:test": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='puppeteer' -f links='eyes-sdk-core eyes-api types test-utils utils driver snippets screenshoter sdk-shared visual-grid-client' -f linking-depth=3",
52
+ "gh:test": "gh workflow run test.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='puppeteer' -f links='types test-utils sdk-shared eyes-sdk-core visual-grid-client eyes-api spec-driver-puppeteer utils driver snippets screenshoter' -f linking-depth=3",
56
53
  "gh:publish": "gh workflow run publish.yml --ref $(git rev-parse --abbrev-ref HEAD) -f packages='puppeteer'",
57
54
  "preversion": "bongo preversion && yarn build",
58
55
  "version": "bongo version",
@@ -64,17 +61,17 @@
64
61
  }
65
62
  },
66
63
  "dependencies": {
67
- "@applitools/eyes-api": "1.1.5",
68
- "@applitools/eyes-sdk-core": "12.23.24",
69
- "@applitools/utils": "1.2.4",
70
- "@applitools/visual-grid-client": "15.8.43"
64
+ "@applitools/eyes-api": "1.1.6",
65
+ "@applitools/eyes-sdk-core": "12.24.0",
66
+ "@applitools/spec-driver-puppeteer": "1.1.0",
67
+ "@applitools/visual-grid-client": "15.8.44"
71
68
  },
72
69
  "devDependencies": {
73
- "@applitools/api-extractor": "1.1.3",
70
+ "@applitools/api-extractor": "1.2.2",
74
71
  "@applitools/scripts": "1.0.1",
75
- "@applitools/sdk-coverage-tests": "2.3.15",
72
+ "@applitools/sdk-coverage-tests": "2.3.16",
76
73
  "@applitools/sdk-release-kit": "0.13.4",
77
- "@applitools/sdk-shared": "0.9.7",
74
+ "@applitools/sdk-shared": "0.9.8",
78
75
  "@applitools/test-utils": "1.0.9",
79
76
  "@types/mocha": "^9.0.0",
80
77
  "@typescript-eslint/eslint-plugin": "^4.15.1",
@@ -87,9 +84,11 @@
87
84
  "husky": "^4.3.8",
88
85
  "mocha": "^8.0.1",
89
86
  "prettier": "^2.1.2",
90
- "puppeteer": "^9.0.0",
87
+ "puppeteer": "^11.0.0",
91
88
  "spec-xunit-file": "0.0.1-3",
92
- "ts-node": "^10.2.1"
89
+ "ts-node": "^10.2.1",
90
+ "ttypescript": "^1.5.12",
91
+ "typescript": "^4.5.0-beta"
93
92
  },
94
93
  "peerDependencies": {
95
94
  "puppeteer": ">=5.3.0"