@d-zero/puppeteer-screenshot 1.2.0 → 3.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/get-binary.d.ts +6 -2
- package/dist/get-binary.js +4 -0
- package/dist/screenshot-listener.d.ts +2 -2
- package/dist/screenshot-listener.js +16 -41
- package/dist/screenshot.d.ts +4 -4
- package/dist/screenshot.js +3 -1
- package/dist/types.d.ts +7 -3
- package/package.json +7 -7
- package/dist/before-page-scan.d.ts +0 -9
- package/dist/before-page-scan.js +0 -33
package/dist/get-binary.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
import type { Page } from 'puppeteer';
|
|
2
|
-
|
|
1
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param page
|
|
5
|
+
*/
|
|
6
|
+
export declare function getBinary(page: Page): Promise<Uint8Array<ArrayBufferLike>>;
|
package/dist/get-binary.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare
|
|
1
|
+
import type { ScreenshotPhase } from './types.js';
|
|
2
|
+
export declare const screenshotListener: (log: (log: string) => void) => import("@d-zero/puppeteer-general-actions").Listener<ScreenshotPhase>;
|
|
@@ -1,43 +1,18 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
case 'hook': {
|
|
18
|
-
const { message } = data;
|
|
19
|
-
update(`${sizeLabel} ${message}`);
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
case 'scroll': {
|
|
23
|
-
update(`${sizeLabel} %propeller% Scroll the page`);
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
case 'screenshotStart': {
|
|
27
|
-
update(`${sizeLabel} 📸 Take a screenshot`);
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
case 'screenshotSaving': {
|
|
31
|
-
const { path: filePath } = data;
|
|
32
|
-
const name = path.basename(filePath);
|
|
33
|
-
update(`${sizeLabel} 🖼 Save a file ${name}`);
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
case 'screenshotError': {
|
|
37
|
-
const { error } = data;
|
|
38
|
-
update(`${sizeLabel} ❌️ ${error.message}`);
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
2
|
+
import { createListener } from '@d-zero/puppeteer-general-actions';
|
|
3
|
+
import { pageScanLoggers } from '@d-zero/puppeteer-page-scan';
|
|
4
|
+
export const screenshotListener = createListener((log) => {
|
|
5
|
+
return {
|
|
6
|
+
...pageScanLoggers(log),
|
|
7
|
+
screenshotStart() {
|
|
8
|
+
log(`📸 Take a screenshot`);
|
|
9
|
+
},
|
|
10
|
+
screenshotSaving({ path: filePath }) {
|
|
11
|
+
const name = path.basename(filePath);
|
|
12
|
+
log(`🖼 Save a file ${name}`);
|
|
13
|
+
},
|
|
14
|
+
screenshotError({ error }) {
|
|
15
|
+
log(`❌️ ${error.message}`);
|
|
16
|
+
},
|
|
42
17
|
};
|
|
43
|
-
}
|
|
18
|
+
});
|
package/dist/screenshot.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import type { Screenshot,
|
|
1
|
+
import type { Screenshot, ScreenshotPhase } from './types.js';
|
|
2
|
+
import type { Listener } from '@d-zero/puppeteer-general-actions';
|
|
3
|
+
import type { Page } from '@d-zero/puppeteer-page';
|
|
2
4
|
import type { PageHook, Sizes } from '@d-zero/puppeteer-page-scan';
|
|
3
|
-
import type { Page } from 'puppeteer';
|
|
4
5
|
type Options = {
|
|
5
6
|
id?: string;
|
|
6
7
|
sizes?: Sizes;
|
|
7
8
|
hooks?: readonly PageHook[];
|
|
8
|
-
listener?:
|
|
9
|
+
listener?: Listener<ScreenshotPhase>;
|
|
9
10
|
domOnly?: boolean;
|
|
10
11
|
path?: string;
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
14
|
* Takes screenshots of a web page at different sizes and resolutions.
|
|
14
|
-
*
|
|
15
15
|
* @param page - The Puppeteer page object.
|
|
16
16
|
* @param url - The URL of the web page to take screenshots of.
|
|
17
17
|
* @param options - Optional settings for the screenshot process.
|
package/dist/screenshot.js
CHANGED
|
@@ -3,7 +3,6 @@ import { urlToFileName } from '@d-zero/shared/url-to-file-name';
|
|
|
3
3
|
import { getBinary } from './get-binary.js';
|
|
4
4
|
/**
|
|
5
5
|
* Takes screenshots of a web page at different sizes and resolutions.
|
|
6
|
-
*
|
|
7
6
|
* @param page - The Puppeteer page object.
|
|
8
7
|
* @param url - The URL of the web page to take screenshots of.
|
|
9
8
|
* @param options - Optional settings for the screenshot process.
|
|
@@ -21,6 +20,9 @@ export async function screenshot(page, url, options) {
|
|
|
21
20
|
name,
|
|
22
21
|
width,
|
|
23
22
|
resolution,
|
|
23
|
+
listener(phase, data) {
|
|
24
|
+
listener?.(phase, data);
|
|
25
|
+
},
|
|
24
26
|
});
|
|
25
27
|
let binary = null;
|
|
26
28
|
const filePath = options?.path?.replace(/\.png$/i, `@${name}.png`) ?? null;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { PageHook } from '@d-zero/puppeteer-page-scan';
|
|
2
|
-
import type { Listener as
|
|
2
|
+
import type { Listener as GeneralListener } from '@d-zero/puppeteer-general-actions';
|
|
3
|
+
import type { PageScanPhase, Size } from '@d-zero/puppeteer-page-scan';
|
|
3
4
|
export type Screenshot = {
|
|
4
5
|
id: string;
|
|
5
6
|
filePath: string | null;
|
|
@@ -31,8 +32,11 @@ export type ScreenshotPhase = {
|
|
|
31
32
|
name: string;
|
|
32
33
|
dom: string;
|
|
33
34
|
};
|
|
34
|
-
} &
|
|
35
|
-
|
|
35
|
+
} & PageScanPhase;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated
|
|
38
|
+
*/
|
|
39
|
+
export type ScreenshotListener = GeneralListener<ScreenshotPhase>;
|
|
36
40
|
/**
|
|
37
41
|
* @deprecated
|
|
38
42
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d-zero/puppeteer-screenshot",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Screenshot utility for puppeteer",
|
|
5
5
|
"author": "D-ZERO",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,16 +20,16 @@
|
|
|
20
20
|
],
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "tsc",
|
|
23
|
+
"watch": "tsc --watch",
|
|
23
24
|
"clean": "tsc --build --clean"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
|
-
"@d-zero/puppeteer-
|
|
27
|
-
"@d-zero/puppeteer-
|
|
28
|
-
"@d-zero/shared": "0.
|
|
29
|
-
"ansi-colors": "4.1.3"
|
|
27
|
+
"@d-zero/puppeteer-general-actions": "1.2.0",
|
|
28
|
+
"@d-zero/puppeteer-page-scan": "3.0.0",
|
|
29
|
+
"@d-zero/shared": "0.7.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"puppeteer": "
|
|
32
|
+
"@d-zero/puppeteer-page": "0.3.0"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "e4fd17857e31022d121527b00fd7f009dbdb2142"
|
|
35
35
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { Listener, PageHook, Size } from './types.js';
|
|
2
|
-
import type { Page } from 'puppeteer';
|
|
3
|
-
type Options = {
|
|
4
|
-
name: string;
|
|
5
|
-
hooks?: readonly PageHook[];
|
|
6
|
-
listener?: Listener;
|
|
7
|
-
} & Size;
|
|
8
|
-
export declare function beforePageScan(page: Page, url: string, options?: Options): Promise<void>;
|
|
9
|
-
export {};
|
package/dist/before-page-scan.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { scrollAllOver } from '@d-zero/puppeteer-scroll';
|
|
2
|
-
export async function beforePageScan(page, url, options) {
|
|
3
|
-
const listener = options?.listener;
|
|
4
|
-
const name = options?.name ?? 'default';
|
|
5
|
-
const width = options?.width ?? 1400;
|
|
6
|
-
const resolution = options?.resolution;
|
|
7
|
-
listener?.('setViewport', { name, width, resolution });
|
|
8
|
-
await page.setViewport({
|
|
9
|
-
width,
|
|
10
|
-
height:
|
|
11
|
-
// Landscape or portrait
|
|
12
|
-
width > 1000 ? Math.floor(width * 0.75) : Math.floor(width * 1.5),
|
|
13
|
-
deviceScaleFactor: resolution ?? 1,
|
|
14
|
-
});
|
|
15
|
-
if (page.url() === url) {
|
|
16
|
-
listener?.('load', { name, type: 'reaload' });
|
|
17
|
-
await page.reload({ waitUntil: 'networkidle0' });
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
listener?.('load', { name, type: 'open' });
|
|
21
|
-
await page.goto(url, { waitUntil: 'networkidle0' });
|
|
22
|
-
}
|
|
23
|
-
for (const hook of options?.hooks ?? []) {
|
|
24
|
-
await hook(page, {
|
|
25
|
-
name,
|
|
26
|
-
width,
|
|
27
|
-
resolution,
|
|
28
|
-
log: (message) => listener?.('hook', { name, message }),
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
listener?.('scroll', { name });
|
|
32
|
-
await scrollAllOver(page);
|
|
33
|
-
}
|