@push.rocks/smartbrowser 2.0.5

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.
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export declare const commitinfo: {
5
+ name: string;
6
+ version: string;
7
+ description: string;
8
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@pushrocks/smartbrowser',
6
+ version: '2.0.5',
7
+ description: 'simplified puppeteer'
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHNCQUFzQjtDQUNwQyxDQUFBIn0=
@@ -0,0 +1,33 @@
1
+ import * as plugins from './smartbrowser.plugins.js';
2
+ import * as interfaces from './interfaces/index.js';
3
+ /**
4
+ * SmartBrowser
5
+ */
6
+ export declare class SmartBrowser {
7
+ headlessBrowser: plugins.smartpuppeteer.puppeteer.Browser;
8
+ smartpdf: plugins.smartpdf.SmartPdf;
9
+ /**
10
+ * start the SmartBrowser instance
11
+ */
12
+ start(): Promise<void>;
13
+ /**
14
+ * stop the SmartBrowser instance
15
+ */
16
+ stop(): Promise<void>;
17
+ /**
18
+ * create a pdf from page
19
+ * @param urlArg
20
+ */
21
+ pdfFromPage(urlArg: string): Promise<plugins.smartpdf.IPdf>;
22
+ /**
23
+ * make a screenshot from a page
24
+ * @param urlArg
25
+ */
26
+ screenshotFromPage(urlArg: string): Promise<interfaces.IScreenShotResult>;
27
+ /**
28
+ * evalutes an expression on a page
29
+ * @param urlArg
30
+ * @param funcArg
31
+ */
32
+ evaluateOnPage<T>(urlArg: string, funcArg: () => Promise<T>): Promise<T>;
33
+ }
@@ -0,0 +1,65 @@
1
+ import * as plugins from './smartbrowser.plugins.js';
2
+ import './interfaces/index.js';
3
+ /**
4
+ * SmartBrowser
5
+ */
6
+ export class SmartBrowser {
7
+ /**
8
+ * start the SmartBrowser instance
9
+ */
10
+ async start() {
11
+ this.headlessBrowser = await plugins.smartpuppeteer.getEnvAwareBrowserInstance();
12
+ this.smartpdf = new plugins.smartpdf.SmartPdf();
13
+ await this.smartpdf.start(this.headlessBrowser);
14
+ }
15
+ /**
16
+ * stop the SmartBrowser instance
17
+ */
18
+ async stop() {
19
+ await this.headlessBrowser.close();
20
+ await this.smartpdf.stop();
21
+ }
22
+ /**
23
+ * create a pdf from page
24
+ * @param urlArg
25
+ */
26
+ async pdfFromPage(urlArg) {
27
+ const result = await this.smartpdf.getFullWebsiteAsSinglePdf(urlArg);
28
+ return result;
29
+ }
30
+ /**
31
+ * make a screenshot from a page
32
+ * @param urlArg
33
+ */
34
+ async screenshotFromPage(urlArg) {
35
+ const pageId = plugins.smartunique.shortId();
36
+ const page = await this.headlessBrowser.newPage();
37
+ await page.goto(urlArg, {
38
+ waitUntil: 'networkidle2',
39
+ });
40
+ const screenshotBuffer = await page.screenshot({
41
+ encoding: 'binary',
42
+ });
43
+ await page.close();
44
+ return {
45
+ name: pageId,
46
+ id: `${pageId}.js`,
47
+ buffer: screenshotBuffer,
48
+ };
49
+ }
50
+ /**
51
+ * evalutes an expression on a page
52
+ * @param urlArg
53
+ * @param funcArg
54
+ */
55
+ async evaluateOnPage(urlArg, funcArg) {
56
+ const page = await this.headlessBrowser.newPage();
57
+ await page.goto(urlArg, {
58
+ waitUntil: 'networkidle2',
59
+ });
60
+ const result = await page.evaluate(funcArg);
61
+ await page.close();
62
+ return result;
63
+ }
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBRXJELE9BQTRCLHVCQUF1QixDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFJdkI7O09BRUc7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQWM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM3QyxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFXLENBQUM7UUFDYixNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixFQUFFLEVBQUUsR0FBRyxNQUFNLEtBQUs7WUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFJLE1BQWMsRUFBRSxPQUF5QjtRQUN0RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ export * from './interfaces.screenshotresult.js';
@@ -0,0 +1,2 @@
1
+ export * from './interfaces.screenshotresult.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUMifQ==
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ export interface IScreenShotResult {
3
+ name: string;
4
+ id: string;
5
+ buffer: Buffer;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5zY3JlZW5zaG90cmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvaW50ZXJmYWNlcy9pbnRlcmZhY2VzLnNjcmVlbnNob3RyZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,4 @@
1
+ import * as smartpdf from '@pushrocks/smartpdf';
2
+ import * as smartpuppeteer from '@pushrocks/smartpuppeteer';
3
+ import * as smartunique from '@pushrocks/smartunique';
4
+ export { smartpdf, smartpuppeteer, smartunique };
@@ -0,0 +1,7 @@
1
+ // pushrocks scope
2
+ import * as smartpdf from '@pushrocks/smartpdf';
3
+ import * as smartpuppeteer from '@pushrocks/smartpuppeteer';
4
+ import * as smartunique from '@pushrocks/smartunique';
5
+ export { smartpdf, smartpuppeteer, smartunique };
6
+ // third party
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRicm93c2VyLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGJyb3dzZXIucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFFBQVEsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssY0FBYyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sS0FBSyxXQUFXLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFFakQsY0FBYyJ9
package/npmextra.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "npmci": {
3
+ "npmAccessLevel": "public"
4
+ },
5
+ "gitzone": {
6
+ "projectType": "npm",
7
+ "module": {
8
+ "githost": "gitlab.com",
9
+ "gitscope": "pushrocks",
10
+ "gitrepo": "smartbrowser",
11
+ "shortDescription": "puppeteer wrapper for easy tasks",
12
+ "npmPackagename": "@pushrocks/smartbrowser",
13
+ "license": "MIT"
14
+ }
15
+ }
16
+ }
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@push.rocks/smartbrowser",
3
+ "version": "2.0.5",
4
+ "description": "simplified puppeteer",
5
+ "main": "dist_ts/index.js",
6
+ "typings": "dist_ts/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "test": "(tstest test/ --web)",
10
+ "build": "(tsbuild --web --allowimplicitany)"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+ssh://git@gitlab.com/pushrocks/smartbrowser.git"
15
+ },
16
+ "author": "Lossless GmbH",
17
+ "license": "MIT",
18
+ "bugs": {
19
+ "url": "https://gitlab.com/pushrocks/smartbrowser/issues"
20
+ },
21
+ "homepage": "https://gitlab.com/pushrocks/smartbrowser#README",
22
+ "dependencies": {
23
+ "@pushrocks/smartdelay": "^2.0.13",
24
+ "@pushrocks/smartpdf": "^3.0.15",
25
+ "@pushrocks/smartpuppeteer": "^2.0.0",
26
+ "@pushrocks/smartunique": "^3.0.3"
27
+ },
28
+ "devDependencies": {
29
+ "@gitzone/tsbuild": "^2.1.61",
30
+ "@gitzone/tsrun": "^1.2.39",
31
+ "@gitzone/tstest": "^1.0.69",
32
+ "@pushrocks/tapbundle": "^5.0.3",
33
+ "@types/node": "^18.11.9"
34
+ },
35
+ "private": false,
36
+ "files": [
37
+ "ts/**/*",
38
+ "ts_web/**/*",
39
+ "dist/**/*",
40
+ "dist_*/**/*",
41
+ "dist_ts/**/*",
42
+ "dist_ts_web/**/*",
43
+ "assets/**/*",
44
+ "cli.js",
45
+ "npmextra.json",
46
+ "readme.md"
47
+ ],
48
+ "browserslist": [
49
+ "last 1 chrome versions"
50
+ ]
51
+ }
package/readme.md ADDED
@@ -0,0 +1,39 @@
1
+ # @pushrocks/smartbrowser
2
+ puppeteer wrapper for easy tasks
3
+
4
+ ## Availabililty and Links
5
+ * [npmjs.org (npm package)](https://www.npmjs.com/package/@pushrocks/smartbrowser)
6
+ * [gitlab.com (source)](https://gitlab.com/pushrocks/smartbrowser)
7
+ * [github.com (source mirror)](https://github.com/pushrocks/smartbrowser)
8
+ * [docs (typedoc)](https://pushrocks.gitlab.io/smartbrowser/)
9
+
10
+ ## Status for master
11
+
12
+ Status Category | Status Badge
13
+ -- | --
14
+ GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/smartbrowser/badges/master/pipeline.svg)](https://lossless.cloud)
15
+ GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/smartbrowser/badges/master/coverage.svg)](https://lossless.cloud)
16
+ npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/smartbrowser)](https://lossless.cloud)
17
+ Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/smartbrowser)](https://lossless.cloud)
18
+ TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
19
+ node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
20
+ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
21
+ PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartbrowser)](https://lossless.cloud)
22
+ PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartbrowser)](https://lossless.cloud)
23
+ BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartbrowser)](https://lossless.cloud)
24
+ Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
25
+
26
+ ## Usage
27
+
28
+ Use TypeScript for best in class instellisense.
29
+
30
+ ## Contribution
31
+
32
+ We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
33
+
34
+ For further information read the linked docs at the top of this readme.
35
+
36
+ > MIT licensed | **&copy;** [Lossless GmbH](https://lossless.gmbh)
37
+ | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
38
+
39
+ [![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @pushrocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@pushrocks/smartbrowser',
6
+ version: '2.0.5',
7
+ description: 'simplified puppeteer'
8
+ }
package/ts/index.ts ADDED
@@ -0,0 +1,73 @@
1
+ import * as plugins from './smartbrowser.plugins.js';
2
+
3
+ import * as interfaces from './interfaces/index.js';
4
+
5
+ /**
6
+ * SmartBrowser
7
+ */
8
+ export class SmartBrowser {
9
+ public headlessBrowser: plugins.smartpuppeteer.puppeteer.Browser;
10
+ public smartpdf: plugins.smartpdf.SmartPdf;
11
+
12
+ /**
13
+ * start the SmartBrowser instance
14
+ */
15
+ public async start() {
16
+ this.headlessBrowser = await plugins.smartpuppeteer.getEnvAwareBrowserInstance();
17
+ this.smartpdf = new plugins.smartpdf.SmartPdf();
18
+ await this.smartpdf.start(this.headlessBrowser);
19
+ }
20
+
21
+ /**
22
+ * stop the SmartBrowser instance
23
+ */
24
+ public async stop() {
25
+ await this.headlessBrowser.close();
26
+ await this.smartpdf.stop();
27
+ }
28
+
29
+ /**
30
+ * create a pdf from page
31
+ * @param urlArg
32
+ */
33
+ public async pdfFromPage(urlArg: string): Promise<plugins.smartpdf.IPdf> {
34
+ const result = await this.smartpdf.getFullWebsiteAsSinglePdf(urlArg);
35
+ return result;
36
+ }
37
+
38
+ /**
39
+ * make a screenshot from a page
40
+ * @param urlArg
41
+ */
42
+ public async screenshotFromPage(urlArg: string): Promise<interfaces.IScreenShotResult> {
43
+ const pageId = plugins.smartunique.shortId();
44
+ const page = await this.headlessBrowser.newPage();
45
+ await page.goto(urlArg, {
46
+ waitUntil: 'networkidle2',
47
+ });
48
+ const screenshotBuffer = await page.screenshot({
49
+ encoding: 'binary',
50
+ }) as Buffer;
51
+ await page.close();
52
+ return {
53
+ name: pageId,
54
+ id: `${pageId}.js`,
55
+ buffer: screenshotBuffer,
56
+ };
57
+ }
58
+
59
+ /**
60
+ * evalutes an expression on a page
61
+ * @param urlArg
62
+ * @param funcArg
63
+ */
64
+ public async evaluateOnPage<T>(urlArg: string, funcArg: () => Promise<T>) {
65
+ const page = await this.headlessBrowser.newPage();
66
+ await page.goto(urlArg, {
67
+ waitUntil: 'networkidle2',
68
+ });
69
+ const result = await page.evaluate(funcArg);
70
+ await page.close();
71
+ return result;
72
+ }
73
+ }
@@ -0,0 +1 @@
1
+ export * from './interfaces.screenshotresult.js';
@@ -0,0 +1,5 @@
1
+ export interface IScreenShotResult {
2
+ name: string;
3
+ id: string;
4
+ buffer: Buffer;
5
+ }
@@ -0,0 +1,8 @@
1
+ // pushrocks scope
2
+ import * as smartpdf from '@pushrocks/smartpdf';
3
+ import * as smartpuppeteer from '@pushrocks/smartpuppeteer';
4
+ import * as smartunique from '@pushrocks/smartunique';
5
+
6
+ export { smartpdf, smartpuppeteer, smartunique };
7
+
8
+ // third party