@qualweb/core 0.8.13 → 0.9.1
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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/ErrorManager.object.d.ts +2 -2
- package/dist/lib/ErrorManager.object.d.ts.map +1 -1
- package/dist/lib/ErrorManager.object.js +2 -2
- package/dist/lib/ErrorManager.object.js.map +1 -1
- package/dist/lib/PluginManager.object.d.ts +3 -3
- package/dist/lib/PluginManager.object.d.ts.map +1 -1
- package/dist/lib/PluginManager.object.js.map +1 -1
- package/dist/lib/QualwebOptions.d.ts +4 -3
- package/dist/lib/QualwebOptions.d.ts.map +1 -1
- package/dist/lib/QualwebPage.object.d.ts +5 -8
- package/dist/lib/QualwebPage.object.d.ts.map +1 -1
- package/dist/lib/QualwebPage.object.js +6 -22
- package/dist/lib/QualwebPage.object.js.map +1 -1
- package/dist/lib/QualwebPlugin.d.ts +2 -2
- package/dist/lib/QualwebPlugin.d.ts.map +1 -1
- package/dist/lib/driver/index.d.ts +4 -0
- package/dist/lib/driver/index.d.ts.map +1 -0
- package/dist/lib/driver/index.js +20 -0
- package/dist/lib/driver/index.js.map +1 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriver.d.ts +15 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriver.d.ts.map +1 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriver.js +72 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriver.js.map +1 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriverPage.d.ts +27 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriverPage.d.ts.map +1 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriverPage.js +75 -0
- package/dist/lib/driver/puppeteer/PuppeteerDriverPage.js.map +1 -0
- package/dist/lib/driver/types.d.ts +69 -0
- package/dist/lib/driver/types.d.ts.map +1 -0
- package/dist/lib/driver/types.js +3 -0
- package/dist/lib/driver/types.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/qualweb.d.ts +8 -6
- package/dist/qualweb.d.ts.map +1 -1
- package/dist/qualweb.js +17 -35
- package/dist/qualweb.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './qualweb';
|
|
2
2
|
export * from './lib/evaluation';
|
|
3
3
|
export * from './lib/i18n';
|
|
4
|
-
export { QualwebOptions, PuppeteerLifeCycleEvent } from './lib/QualwebOptions';
|
|
4
|
+
export { QualwebOptions, LoadEvent, PuppeteerLifeCycleEvent } from './lib/QualwebOptions';
|
|
5
|
+
export * from './lib/driver';
|
|
5
6
|
export { CounterReport } from './lib/evaluation/CounterReport';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./qualweb"), exports);
|
|
18
18
|
__exportStar(require("./lib/evaluation"), exports);
|
|
19
19
|
__exportStar(require("./lib/i18n"), exports);
|
|
20
|
+
__exportStar(require("./lib/driver"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,mDAAiC;AACjC,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,mDAAiC;AACjC,6CAA2B;AAG3B,+CAA6B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DriverPool } from './driver/types';
|
|
2
2
|
import type { LogOptions } from './LogOptions';
|
|
3
3
|
export declare class ErrorManager {
|
|
4
4
|
private readonly logOptions?;
|
|
@@ -6,7 +6,7 @@ export declare class ErrorManager {
|
|
|
6
6
|
private readonly fileName;
|
|
7
7
|
private error;
|
|
8
8
|
constructor(logOptions?: LogOptions);
|
|
9
|
-
handle(
|
|
9
|
+
handle(pool?: DriverPool): void;
|
|
10
10
|
private writeErrorToFile;
|
|
11
11
|
showErrorsIfAny(): void;
|
|
12
12
|
private deleteErrorLogFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorManager.object.d.ts","sourceRoot":"","sources":["../../src/lib/ErrorManager.object.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ErrorManager.object.d.ts","sourceRoot":"","sources":["../../src/lib/ErrorManager.object.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,KAAK,CAAS;gBAEV,UAAU,CAAC,EAAE,UAAU;IAM5B,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAatC,OAAO,CAAC,gBAAgB;IAiBjB,eAAe,IAAI,IAAI;IAa9B,OAAO,CAAC,kBAAkB;CAO3B"}
|
|
@@ -16,8 +16,8 @@ class ErrorManager {
|
|
|
16
16
|
const formattedDate = new Date(this.timestamp).toISOString().replace(/T/, ' ').replace(/\..+/, '');
|
|
17
17
|
this.writeErrorToFile('Evaluation errors', `${formattedDate}\n-----------`);
|
|
18
18
|
}
|
|
19
|
-
handle(
|
|
20
|
-
|
|
19
|
+
handle(pool) {
|
|
20
|
+
pool?.onTaskError((err, data) => {
|
|
21
21
|
this.error = true;
|
|
22
22
|
this.writeErrorToFile(data.url, `${err.message}\n-----------`);
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorManager.object.js","sourceRoot":"","sources":["../../src/lib/ErrorManager.object.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,2BAAuC;AAIvC,MAAa,YAAY;IACN,UAAU,CAAc;IACxB,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjC,QAAQ,GAAG,kBAAkB,IAAI,CAAC,SAAS,MAAM,CAAC;IAC3D,KAAK,GAAG,KAAK,CAAC;IAEtB,YAAY,UAAuB;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,aAAa,eAAe,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ErrorManager.object.js","sourceRoot":"","sources":["../../src/lib/ErrorManager.object.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,2BAAuC;AAIvC,MAAa,YAAY;IACN,UAAU,CAAc;IACxB,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACjC,QAAQ,GAAG,kBAAkB,IAAI,CAAC,SAAS,MAAM,CAAC;IAC3D,KAAK,GAAG,KAAK,CAAC;IAEtB,YAAY,UAAuB;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,GAAG,aAAa,eAAe,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CAAC,IAAiB;QAC7B,IAAI,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAQO,gBAAgB,CAAC,GAAuB,EAAE,OAAe;QAC/D,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;YAC1C,IAAA,cAAS,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/D,IAAI,GAAG;oBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAMM,eAAe;QACpB,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,MAAM,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAKO,kBAAkB;QACxB,IAAA,WAAM,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACzD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9DD,oCA8DC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { QualwebPlugin } from '.';
|
|
2
|
-
import type {
|
|
2
|
+
import type { DriverPage } from './driver/types';
|
|
3
3
|
export declare class PluginManager {
|
|
4
4
|
private readonly plugins;
|
|
5
5
|
use(plugin: QualwebPlugin): void;
|
|
6
|
-
executeBeforePageLoad(page:
|
|
7
|
-
executeAfterPageLoad(page:
|
|
6
|
+
executeBeforePageLoad(page: DriverPage, url?: string): Promise<void>;
|
|
7
|
+
executeAfterPageLoad(page: DriverPage): Promise<void>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=PluginManager.object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.object.d.ts","sourceRoot":"","sources":["../../src/lib/PluginManager.object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AACvC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"PluginManager.object.d.ts","sourceRoot":"","sources":["../../src/lib/PluginManager.object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,qBAAa,aAAa;IAIxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAQxC,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAc1B,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpE,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.object.js","sourceRoot":"","sources":["../../src/lib/PluginManager.object.ts"],"names":[],"mappings":";;;AAGA,MAAa,aAAa;IAIP,OAAO,GAAoB,EAAE,CAAC;IAQxC,GAAG,CAAC,MAAqB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAYM,KAAK,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"PluginManager.object.js","sourceRoot":"","sources":["../../src/lib/PluginManager.object.ts"],"names":[],"mappings":";;;AAGA,MAAa,aAAa;IAIP,OAAO,GAAoB,EAAE,CAAC;IAQxC,GAAG,CAAC,MAAqB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAYM,KAAK,CAAC,qBAAqB,CAAC,IAAgB,EAAE,GAAY;QAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;IACnG,CAAC;IAQM,KAAK,CAAC,oBAAoB,CAAC,IAAgB;QAChD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;IACzG,CAAC;CACF;AAvCD,sCAuCC"}
|
|
@@ -2,9 +2,10 @@ import { CrawlOptions } from '@qualweb/crawler';
|
|
|
2
2
|
import { LogOptions } from './LogOptions';
|
|
3
3
|
import { PageOptions } from './PageOptions';
|
|
4
4
|
import { TranslationOptions } from '@qualweb/locale';
|
|
5
|
-
import {
|
|
5
|
+
import { LoadEvent } from './driver/types';
|
|
6
6
|
import { ExecutableModuleContext } from './evaluation';
|
|
7
|
-
export {
|
|
7
|
+
export { LoadEvent };
|
|
8
|
+
export type PuppeteerLifeCycleEvent = LoadEvent;
|
|
8
9
|
export type QualwebOptions = {
|
|
9
10
|
url?: string;
|
|
10
11
|
urls?: string[];
|
|
@@ -15,7 +16,7 @@ export type QualwebOptions = {
|
|
|
15
16
|
timeout?: number;
|
|
16
17
|
maxParallelEvaluations?: number;
|
|
17
18
|
log?: LogOptions;
|
|
18
|
-
waitUntil?:
|
|
19
|
+
waitUntil?: LoadEvent | LoadEvent[];
|
|
19
20
|
viewport?: PageOptions;
|
|
20
21
|
validator?: string;
|
|
21
22
|
report?: 'earl' | 'earl-a';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualwebOptions.d.ts","sourceRoot":"","sources":["../../src/lib/QualwebOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"QualwebOptions.d.ts","sourceRoot":"","sources":["../../src/lib/QualwebOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAKvD,OAAO,EAAE,SAAS,EAAE,CAAC;AAOrB,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG;IAI3B,GAAG,CAAC,EAAE,MAAM,CAAC;IAKb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAKhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd,KAAK,CAAC,EAAE,MAAM,CAAC;IAMf,YAAY,CAAC,EAAE,YAAY,CAAC;IAK5B,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAKhC,GAAG,CAAC,EAAE,UAAU,CAAC;IAMjB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAKpC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAOvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAO3B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAG/B,WAAW,CAAC,EAAE,MAAM,CAAC;IAOrB,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACpC,CAAC"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import type { Page, Viewport, Awaitable, InnerParams } from 'puppeteer';
|
|
2
1
|
import type { TestingData } from '../lib/evaluation';
|
|
3
2
|
import type { QualwebOptions } from './QualwebOptions';
|
|
3
|
+
import type { DriverPage, DriverViewport, EvaluateFunction } from './driver/types';
|
|
4
4
|
import { PageOptions } from './PageOptions';
|
|
5
5
|
import { PluginManager } from './PluginManager.object';
|
|
6
|
-
type EvaluateFunc<T extends unknown[]> = (...params: InnerParams<T>) => Awaitable<unknown>;
|
|
7
6
|
export declare class QualwebPage {
|
|
8
7
|
private readonly pluginManager;
|
|
9
|
-
readonly page:
|
|
8
|
+
readonly page: DriverPage;
|
|
10
9
|
private readonly url?;
|
|
11
10
|
private readonly html?;
|
|
12
|
-
constructor(pluginManager: PluginManager, page:
|
|
11
|
+
constructor(pluginManager: PluginManager, page: DriverPage, url?: string, html?: string);
|
|
13
12
|
getInputUrl(): string | undefined;
|
|
14
13
|
getFinalUrl(): string;
|
|
15
14
|
getTitle(): Promise<string>;
|
|
@@ -19,15 +18,13 @@ export declare class QualwebPage {
|
|
|
19
18
|
getTestingData(options: QualwebOptions): Promise<TestingData>;
|
|
20
19
|
private addNecessaryScripts;
|
|
21
20
|
addEvaluationScript(module: string): Promise<void>;
|
|
22
|
-
evaluate<Params extends unknown[], Func extends
|
|
21
|
+
evaluate<Params extends unknown[], Func extends EvaluateFunction<Params> = EvaluateFunction<Params>>(pageFunction: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>;
|
|
23
22
|
private navigateToPage;
|
|
24
|
-
getViewport():
|
|
23
|
+
getViewport(): DriverViewport | null;
|
|
25
24
|
setViewport(options?: PageOptions): Promise<void>;
|
|
26
25
|
private createViewportObject;
|
|
27
|
-
private extraTabOpened;
|
|
28
26
|
private getSourceHtml;
|
|
29
27
|
private getValidatorResult;
|
|
30
28
|
private isHtmlDocument;
|
|
31
29
|
}
|
|
32
|
-
export {};
|
|
33
30
|
//# sourceMappingURL=QualwebPage.object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualwebPage.object.d.ts","sourceRoot":"","sources":["../../src/lib/QualwebPage.object.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"QualwebPage.object.d.ts","sourceRoot":"","sources":["../../src/lib/QualwebPage.object.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAkB,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAS;gBAEnB,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAUhF,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,IAAI,MAAM;IAIrB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3B,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;YA4C5D,mBAAmB;IAepB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,QAAQ,CAAC,MAAM,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,EACxG,YAAY,EAAE,IAAI,GAAG,MAAM,EAC3B,GAAG,IAAI,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAIrC,OAAO,CAAC,cAAc;IASf,WAAW,IAAI,cAAc,GAAG,IAAI;IAI9B,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB9D,OAAO,CAAC,oBAAoB;YAoBd,aAAa;YAoBb,kBAAkB;IAgBhC,OAAO,CAAC,cAAc;CAUvB"}
|
|
@@ -29,14 +29,14 @@ class QualwebPage {
|
|
|
29
29
|
getTitle() {
|
|
30
30
|
return this.page.title();
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
return
|
|
32
|
+
getNumberOfHTMLElements() {
|
|
33
|
+
return this.page.countElements('*');
|
|
34
34
|
}
|
|
35
35
|
getOuterHTML() {
|
|
36
36
|
return this.page.evaluate(() => document.documentElement.outerHTML);
|
|
37
37
|
}
|
|
38
38
|
getUserAgent() {
|
|
39
|
-
return this.page.
|
|
39
|
+
return this.page.getBrowserUserAgent();
|
|
40
40
|
}
|
|
41
41
|
async getTestingData(options) {
|
|
42
42
|
await this.page.setBypassCSP(true);
|
|
@@ -66,7 +66,7 @@ class QualwebPage {
|
|
|
66
66
|
});
|
|
67
67
|
testingData.sourceHtml = await this.page.content();
|
|
68
68
|
}
|
|
69
|
-
testingData.newTabWasOpen = await this.
|
|
69
|
+
testingData.newTabWasOpen = await this.page.closeExtraTabs();
|
|
70
70
|
await this.pluginManager.executeAfterPageLoad(this.page);
|
|
71
71
|
this.addNecessaryScripts();
|
|
72
72
|
return testingData;
|
|
@@ -94,8 +94,8 @@ class QualwebPage {
|
|
|
94
94
|
evaluate(pageFunction, ...args) {
|
|
95
95
|
return this.page.evaluate(pageFunction, ...args);
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
this.page.
|
|
97
|
+
navigateToPage(options) {
|
|
98
|
+
this.page.dismissDialogs();
|
|
99
99
|
return this.page.goto(this.url ?? '', {
|
|
100
100
|
timeout: options.timeout ?? 240 * 1000,
|
|
101
101
|
waitUntil: options.waitUntil ?? 'load'
|
|
@@ -143,22 +143,6 @@ class QualwebPage {
|
|
|
143
143
|
viewport.hasTouch = !!options.mobile;
|
|
144
144
|
return viewport;
|
|
145
145
|
}
|
|
146
|
-
async extraTabOpened() {
|
|
147
|
-
const tabs = await this.page.browser().pages();
|
|
148
|
-
let extraTabOpened = false;
|
|
149
|
-
for (const tab of tabs ?? []) {
|
|
150
|
-
const target = tab.target();
|
|
151
|
-
const opener = target.opener();
|
|
152
|
-
if (opener) {
|
|
153
|
-
const openerPage = await opener.page();
|
|
154
|
-
if (openerPage && openerPage.url() === this.page.url()) {
|
|
155
|
-
extraTabOpened = true;
|
|
156
|
-
await tab.close();
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return extraTabOpened;
|
|
161
|
-
}
|
|
162
146
|
async getSourceHtml(options) {
|
|
163
147
|
try {
|
|
164
148
|
const fetchOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualwebPage.object.js","sourceRoot":"","sources":["../../src/lib/QualwebPage.object.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAM1B,2CAOqB;
|
|
1
|
+
{"version":3,"file":"QualwebPage.object.js","sourceRoot":"","sources":["../../src/lib/QualwebPage.object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type PageCallback = (page:
|
|
1
|
+
import type { DriverPage } from './driver/types';
|
|
2
|
+
export type PageCallback = (page: DriverPage, url: string) => Promise<void> | void;
|
|
3
3
|
export interface QualwebPlugin {
|
|
4
4
|
beforePageLoad?: PageCallback;
|
|
5
5
|
afterPageLoad?: PageCallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualwebPlugin.d.ts","sourceRoot":"","sources":["../../src/lib/QualwebPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"QualwebPlugin.d.ts","sourceRoot":"","sources":["../../src/lib/QualwebPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQjD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAMnF,MAAM,WAAW,aAAa;IAQ5B,cAAc,CAAC,EAAE,YAAY,CAAC;IAS9B,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/driver/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types"), exports);
|
|
18
|
+
__exportStar(require("./puppeteer/PuppeteerDriver"), exports);
|
|
19
|
+
__exportStar(require("./puppeteer/PuppeteerDriverPage"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/driver/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8DAA4C;AAC5C,kEAAgD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { LaunchOptions, BrowserLaunchArgumentOptions, BrowserConnectOptions } from 'puppeteer';
|
|
2
|
+
import type { ClusterOptions } from '../../ClusterOptions';
|
|
3
|
+
import type { PuppeteerPlugins } from '../../PuppeteerPlugins';
|
|
4
|
+
import type { Driver, DriverContext, DriverPool } from '../types';
|
|
5
|
+
export type PuppeteerLaunchOptions = LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions;
|
|
6
|
+
export declare class PuppeteerDriver implements Driver {
|
|
7
|
+
private readonly options?;
|
|
8
|
+
constructor(options?: {
|
|
9
|
+
plugins?: PuppeteerPlugins;
|
|
10
|
+
launchOptions?: PuppeteerLaunchOptions;
|
|
11
|
+
} | undefined);
|
|
12
|
+
launchPool(clusterOptions?: ClusterOptions, browserOptions?: unknown): Promise<DriverPool>;
|
|
13
|
+
launchContext(): Promise<DriverContext>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=PuppeteerDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PuppeteerDriver.d.ts","sourceRoot":"","sources":["../../../../src/lib/driver/puppeteer/PuppeteerDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAKpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EAEb,UAAU,EAEX,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,4BAA4B,GAAG,qBAAqB,CAAC;AAmC1G,qBAAa,eAAgB,YAAW,MAAM;IAO1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,EAAE;QACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC;QAC3B,aAAa,CAAC,EAAE,sBAAsB,CAAC;KACxC,YAAA;IAUU,UAAU,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAa1F,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;CAgBrD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
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.PuppeteerDriver = void 0;
|
|
7
|
+
const puppeteer_extra_1 = __importDefault(require("puppeteer-extra"));
|
|
8
|
+
const puppeteer_cluster_1 = require("puppeteer-cluster");
|
|
9
|
+
const puppeteer_extra_plugin_stealth_1 = __importDefault(require("puppeteer-extra-plugin-stealth"));
|
|
10
|
+
const puppeteer_extra_plugin_adblocker_1 = __importDefault(require("puppeteer-extra-plugin-adblocker"));
|
|
11
|
+
const PuppeteerDriverPage_1 = require("./PuppeteerDriverPage");
|
|
12
|
+
class PuppeteerDriverPool {
|
|
13
|
+
cluster;
|
|
14
|
+
constructor(cluster) {
|
|
15
|
+
this.cluster = cluster;
|
|
16
|
+
}
|
|
17
|
+
async task(handler) {
|
|
18
|
+
await this.cluster.task(async ({ page, data }) => {
|
|
19
|
+
await handler(new PuppeteerDriverPage_1.PuppeteerDriverPage(page), data ?? {});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
queue(data) {
|
|
23
|
+
this.cluster.queue(data);
|
|
24
|
+
}
|
|
25
|
+
idle() {
|
|
26
|
+
return this.cluster.idle();
|
|
27
|
+
}
|
|
28
|
+
close() {
|
|
29
|
+
return this.cluster.close();
|
|
30
|
+
}
|
|
31
|
+
onTaskError(handler) {
|
|
32
|
+
this.cluster.on('taskerror', handler);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
class PuppeteerDriver {
|
|
36
|
+
options;
|
|
37
|
+
constructor(options) {
|
|
38
|
+
this.options = options;
|
|
39
|
+
if (options?.plugins?.stealth) {
|
|
40
|
+
puppeteer_extra_1.default.use((0, puppeteer_extra_plugin_stealth_1.default)());
|
|
41
|
+
}
|
|
42
|
+
if (options?.plugins?.adBlock) {
|
|
43
|
+
puppeteer_extra_1.default.use((0, puppeteer_extra_plugin_adblocker_1.default)({ blockTrackersAndAnnoyances: true }));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async launchPool(clusterOptions, browserOptions) {
|
|
47
|
+
const cluster = await puppeteer_cluster_1.Cluster.launch({
|
|
48
|
+
concurrency: puppeteer_cluster_1.Cluster.CONCURRENCY_CONTEXT,
|
|
49
|
+
maxConcurrency: clusterOptions?.maxConcurrency ?? 1,
|
|
50
|
+
puppeteerOptions: browserOptions ?? this.options?.launchOptions,
|
|
51
|
+
puppeteer: puppeteer_extra_1.default,
|
|
52
|
+
timeout: clusterOptions?.timeout ?? 60 * 1000,
|
|
53
|
+
monitor: clusterOptions?.monitor ?? false
|
|
54
|
+
});
|
|
55
|
+
return new PuppeteerDriverPool(cluster);
|
|
56
|
+
}
|
|
57
|
+
async launchContext() {
|
|
58
|
+
const browser = await puppeteer_extra_1.default.launch(this.options?.launchOptions);
|
|
59
|
+
const incognito = await browser.createBrowserContext();
|
|
60
|
+
return {
|
|
61
|
+
newPage: async () => {
|
|
62
|
+
return (await incognito.newPage());
|
|
63
|
+
},
|
|
64
|
+
close: async () => {
|
|
65
|
+
await incognito.close();
|
|
66
|
+
await browser.close();
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.PuppeteerDriver = PuppeteerDriver;
|
|
72
|
+
//# sourceMappingURL=PuppeteerDriver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PuppeteerDriver.js","sourceRoot":"","sources":["../../../../src/lib/driver/puppeteer/PuppeteerDriver.ts"],"names":[],"mappings":";;;;;;AACA,sEAAwC;AACxC,yDAA4C;AAC5C,oGAA2D;AAC3D,wGAAyD;AAUzD,+DAA4D;AAO5D,MAAM,mBAAmB;IACM;IAA7B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAE1C,KAAK,CAAC,IAAI,CAAC,OAA8E;QAC9F,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/C,MAAM,OAAO,CAAC,IAAI,yCAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAuB;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEM,WAAW,CAAC,OAAwD;QACzE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF;AAMD,MAAa,eAAe;IAOP;IADnB,YACmB,OAGhB;QAHgB,YAAO,GAAP,OAAO,CAGvB;QAED,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC9B,yBAAS,CAAC,GAAG,CAAC,IAAA,wCAAa,GAAE,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC9B,yBAAS,CAAC,GAAG,CAAC,IAAA,0CAAS,EAAC,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,cAA+B,EAAE,cAAwB;QAC/E,MAAM,OAAO,GAAG,MAAM,2BAAO,CAAC,MAAM,CAAC;YACnC,WAAW,EAAE,2BAAO,CAAC,mBAAmB;YACxC,cAAc,EAAE,cAAc,EAAE,cAAc,IAAI,CAAC;YACnD,gBAAgB,EAAG,cAAyC,IAAI,IAAI,CAAC,OAAO,EAAE,aAAa;YAC3F,SAAS,EAAE,yBAAS;YACpB,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,EAAE,GAAG,IAAI;YAC7C,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,KAAK;SAC1C,CAAC,CAAC;QAEH,OAAO,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,MAAM,OAAO,GAAG,MAAM,yBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAEvD,OAAO;YACL,OAAO,EAAE,KAAK,IAAgC,EAAE;gBAG9C,OAAO,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,CAAiC,CAAC;YACrE,CAAC;YACD,KAAK,EAAE,KAAK,IAAmB,EAAE;gBAC/B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;CACF;AAjDD,0CAiDC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Page } from 'puppeteer';
|
|
2
|
+
import type { DriverPage, DriverResponse, DriverViewport, EvaluateFunction, NavigationOptions } from '../types';
|
|
3
|
+
export declare class PuppeteerDriverPage implements DriverPage {
|
|
4
|
+
private readonly page;
|
|
5
|
+
constructor(page: Page);
|
|
6
|
+
get nativePage(): unknown;
|
|
7
|
+
url(): string;
|
|
8
|
+
title(): Promise<string>;
|
|
9
|
+
countElements(selector: string): Promise<number>;
|
|
10
|
+
evaluate<Params extends unknown[], Func extends EvaluateFunction<Params> = EvaluateFunction<Params>>(pageFunction: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>;
|
|
11
|
+
setBypassCSP(enabled: boolean): Promise<void>;
|
|
12
|
+
goBack(): Promise<void>;
|
|
13
|
+
setContent(html: string, options?: NavigationOptions): Promise<void>;
|
|
14
|
+
content(): Promise<string>;
|
|
15
|
+
addScriptTag(options: {
|
|
16
|
+
path: string;
|
|
17
|
+
type?: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
dismissDialogs(): void;
|
|
20
|
+
goto(url: string, options?: NavigationOptions): Promise<DriverResponse | null>;
|
|
21
|
+
viewport(): DriverViewport | null;
|
|
22
|
+
setViewport(viewport: DriverViewport): Promise<void>;
|
|
23
|
+
setUserAgent(userAgent: string): Promise<void>;
|
|
24
|
+
getBrowserUserAgent(): Promise<string>;
|
|
25
|
+
closeExtraTabs(): Promise<boolean>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=PuppeteerDriverPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PuppeteerDriverPage.d.ts","sourceRoot":"","sources":["../../../../src/lib/driver/puppeteer/PuppeteerDriverPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAKlB,qBAAa,mBAAoB,YAAW,UAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAEvC,IAAW,UAAU,IAAI,OAAO,CAE/B;IAEM,GAAG,IAAI,MAAM;IAIb,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD,QAAQ,CAAC,MAAM,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,EACxG,YAAY,EAAE,IAAI,GAAG,MAAM,EAC3B,GAAG,IAAI,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IASxB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpB,YAAY,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,cAAc,IAAI,IAAI;IAItB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAI9E,QAAQ,IAAI,cAAc,GAAG,IAAI;IAI3B,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAoBhD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PuppeteerDriverPage = void 0;
|
|
4
|
+
class PuppeteerDriverPage {
|
|
5
|
+
page;
|
|
6
|
+
constructor(page) {
|
|
7
|
+
this.page = page;
|
|
8
|
+
}
|
|
9
|
+
get nativePage() {
|
|
10
|
+
return this.page;
|
|
11
|
+
}
|
|
12
|
+
url() {
|
|
13
|
+
return this.page.url();
|
|
14
|
+
}
|
|
15
|
+
title() {
|
|
16
|
+
return this.page.title();
|
|
17
|
+
}
|
|
18
|
+
async countElements(selector) {
|
|
19
|
+
return (await this.page.$$(selector)).length;
|
|
20
|
+
}
|
|
21
|
+
evaluate(pageFunction, ...args) {
|
|
22
|
+
return this.page.evaluate(pageFunction, ...args);
|
|
23
|
+
}
|
|
24
|
+
async setBypassCSP(enabled) {
|
|
25
|
+
await this.page.setBypassCSP(enabled);
|
|
26
|
+
}
|
|
27
|
+
async goBack() {
|
|
28
|
+
await this.page.goBack();
|
|
29
|
+
}
|
|
30
|
+
async setContent(html, options) {
|
|
31
|
+
await this.page.setContent(html, options);
|
|
32
|
+
}
|
|
33
|
+
content() {
|
|
34
|
+
return this.page.content();
|
|
35
|
+
}
|
|
36
|
+
async addScriptTag(options) {
|
|
37
|
+
await this.page.addScriptTag(options);
|
|
38
|
+
}
|
|
39
|
+
dismissDialogs() {
|
|
40
|
+
this.page.on('dialog', (dialog) => dialog.dismiss());
|
|
41
|
+
}
|
|
42
|
+
goto(url, options) {
|
|
43
|
+
return this.page.goto(url, options);
|
|
44
|
+
}
|
|
45
|
+
viewport() {
|
|
46
|
+
return this.page.viewport();
|
|
47
|
+
}
|
|
48
|
+
async setViewport(viewport) {
|
|
49
|
+
await this.page.setViewport(viewport);
|
|
50
|
+
}
|
|
51
|
+
async setUserAgent(userAgent) {
|
|
52
|
+
await this.page.setUserAgent(userAgent);
|
|
53
|
+
}
|
|
54
|
+
getBrowserUserAgent() {
|
|
55
|
+
return this.page.browser().userAgent();
|
|
56
|
+
}
|
|
57
|
+
async closeExtraTabs() {
|
|
58
|
+
const tabs = await this.page.browser().pages();
|
|
59
|
+
let extraTabOpened = false;
|
|
60
|
+
for (const tab of tabs ?? []) {
|
|
61
|
+
const target = tab.target();
|
|
62
|
+
const opener = target.opener();
|
|
63
|
+
if (opener) {
|
|
64
|
+
const openerPage = await opener.page();
|
|
65
|
+
if (openerPage && openerPage.url() === this.page.url()) {
|
|
66
|
+
extraTabOpened = true;
|
|
67
|
+
await tab.close();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return extraTabOpened;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.PuppeteerDriverPage = PuppeteerDriverPage;
|
|
75
|
+
//# sourceMappingURL=PuppeteerDriverPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PuppeteerDriverPage.js","sourceRoot":"","sources":["../../../../src/lib/driver/puppeteer/PuppeteerDriverPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { ClusterOptions } from '../ClusterOptions';
|
|
2
|
+
export type LoadEvent = 'load' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
|
|
3
|
+
export type DriverViewport = {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
deviceScaleFactor?: number;
|
|
7
|
+
isMobile?: boolean;
|
|
8
|
+
isLandscape?: boolean;
|
|
9
|
+
hasTouch?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type Awaitable<T> = T | PromiseLike<T>;
|
|
12
|
+
export type EvaluateFunction<Params extends unknown[]> = (...params: Params) => Awaitable<unknown>;
|
|
13
|
+
export type NavigationOptions = {
|
|
14
|
+
timeout?: number;
|
|
15
|
+
waitUntil?: LoadEvent | LoadEvent[];
|
|
16
|
+
};
|
|
17
|
+
export interface DriverResponse {
|
|
18
|
+
text(): Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
export interface DriverPage {
|
|
21
|
+
readonly nativePage: unknown;
|
|
22
|
+
url(): string;
|
|
23
|
+
title(): Promise<string>;
|
|
24
|
+
countElements(selector: string): Promise<number>;
|
|
25
|
+
evaluate<Params extends unknown[], Func extends EvaluateFunction<Params> = EvaluateFunction<Params>>(pageFunction: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>;
|
|
26
|
+
setBypassCSP(enabled: boolean): Promise<void>;
|
|
27
|
+
goBack(): Promise<void>;
|
|
28
|
+
setContent(html: string, options?: NavigationOptions): Promise<void>;
|
|
29
|
+
content(): Promise<string>;
|
|
30
|
+
addScriptTag(options: {
|
|
31
|
+
path: string;
|
|
32
|
+
type?: string;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
dismissDialogs(): void;
|
|
35
|
+
goto(url: string, options?: NavigationOptions): Promise<DriverResponse | null>;
|
|
36
|
+
viewport(): DriverViewport | null;
|
|
37
|
+
setViewport(viewport: DriverViewport): Promise<void>;
|
|
38
|
+
setUserAgent(userAgent: string): Promise<void>;
|
|
39
|
+
getBrowserUserAgent(): Promise<string>;
|
|
40
|
+
closeExtraTabs(): Promise<boolean>;
|
|
41
|
+
}
|
|
42
|
+
export type EvaluationJobData = {
|
|
43
|
+
url?: string;
|
|
44
|
+
html?: string;
|
|
45
|
+
};
|
|
46
|
+
export interface DriverPool {
|
|
47
|
+
task(handler: (page: DriverPage, data: EvaluationJobData) => Promise<void>): Promise<void>;
|
|
48
|
+
queue(data: EvaluationJobData): void;
|
|
49
|
+
idle(): Promise<void>;
|
|
50
|
+
close(): Promise<void>;
|
|
51
|
+
onTaskError(handler: (error: Error, data: EvaluationJobData) => void): void;
|
|
52
|
+
}
|
|
53
|
+
export interface DriverContextPage {
|
|
54
|
+
setViewport(viewport: DriverViewport): Promise<void>;
|
|
55
|
+
goto(url: string, options?: {
|
|
56
|
+
waitUntil?: LoadEvent | LoadEvent[];
|
|
57
|
+
}): Promise<unknown>;
|
|
58
|
+
evaluate(pageFunction: ((...args: any[]) => any) | string, ...args: any[]): Promise<any>;
|
|
59
|
+
close(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
export interface DriverContext {
|
|
62
|
+
newPage(): Promise<DriverContextPage>;
|
|
63
|
+
close(): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
export interface Driver {
|
|
66
|
+
launchPool(clusterOptions?: ClusterOptions, browserOptions?: unknown): Promise<DriverPool>;
|
|
67
|
+
launchContext(): Promise<DriverContext>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/driver/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAAC;AAQtF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;AAMnG,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;CACrC,CAAC;AAKF,MAAM,WAAW,cAAc;IAC7B,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAOD,MAAM,WAAW,UAAU;IAQzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,GAAG,IAAI,MAAM,CAAC;IAEd,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAKzB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjD,QAAQ,CAAC,MAAM,SAAS,OAAO,EAAE,EAAE,IAAI,SAAS,gBAAgB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,EACjG,YAAY,EAAE,IAAI,GAAG,MAAM,EAC3B,GAAG,IAAI,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAK3B,YAAY,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAKtE,cAAc,IAAI,IAAI,CAAC;IAEvB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAE/E,QAAQ,IAAI,cAAc,GAAG,IAAI,CAAC;IAElC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK/C,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAOvC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC;AAMD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAOF,MAAM,WAAW,UAAU;IAKzB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3F,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAKrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAKvB,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI,CAAC;CAC7E;AAOD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAQvF,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAMD,MAAM,WAAW,aAAa;IAC5B,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAOD,MAAM,WAAW,MAAM;IAUrB,UAAU,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAK3F,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/driver/types.ts"],"names":[],"mappings":""}
|
package/dist/lib/index.d.ts
CHANGED
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./ClusterOptions"), exports);
|
|
18
|
+
__exportStar(require("./driver"), exports);
|
|
18
19
|
__exportStar(require("./constants"), exports);
|
|
19
20
|
__exportStar(require("./ErrorManager.object"), exports);
|
|
20
21
|
__exportStar(require("./EvaluationManager.object"), exports);
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,8CAA4B;AAC5B,wDAAsC;AACtC,6DAA2C;AAC3C,+CAA6B;AAC7B,gDAA8B;AAC9B,yDAAuC;AACvC,qDAAmC;AACnC,mDAAiC;AACjC,uDAAqC;AACrC,kDAAgC;AAChC,kDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,2CAAyB;AACzB,8CAA4B;AAC5B,wDAAsC;AACtC,6DAA2C;AAC3C,+CAA6B;AAC7B,gDAA8B;AAC9B,yDAAuC;AACvC,qDAAmC;AACnC,mDAAiC;AACjC,uDAAqC;AACrC,kDAAgC;AAChC,kDAAgC"}
|
package/dist/qualweb.d.ts
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
|
-
import type { Page
|
|
1
|
+
import type { Page } from 'puppeteer';
|
|
2
2
|
import 'colors';
|
|
3
3
|
import type { QualwebReport } from './lib/evaluation/QualwebReport';
|
|
4
|
-
import { PuppeteerLifeCycleEvent as LoadEvent } from 'puppeteer';
|
|
5
4
|
import { CrawlOptions } from '@qualweb/crawler';
|
|
6
5
|
import { QualwebPage, QualwebOptions, QualwebPlugin, PuppeteerPlugins, ClusterOptions } from './lib';
|
|
6
|
+
import type { Driver, DriverViewport, LoadEvent } from './lib/driver/types';
|
|
7
|
+
import { PuppeteerLaunchOptions } from './lib/driver/puppeteer/PuppeteerDriver';
|
|
7
8
|
export declare class QualWeb {
|
|
8
|
-
private
|
|
9
|
+
private readonly driver;
|
|
10
|
+
private pool?;
|
|
9
11
|
private readonly pluginManager;
|
|
10
|
-
constructor(plugins?: PuppeteerPlugins);
|
|
11
|
-
start(clusterOptions?: ClusterOptions, puppeteerOptions?:
|
|
12
|
+
constructor(plugins?: PuppeteerPlugins, driver?: Driver);
|
|
13
|
+
start(clusterOptions?: ClusterOptions, puppeteerOptions?: PuppeteerLaunchOptions): Promise<void>;
|
|
12
14
|
use(plugin: QualwebPlugin): this;
|
|
13
15
|
stop(): Promise<void>;
|
|
14
16
|
evaluate(options: QualwebOptions): Promise<Record<string, QualwebReport>>;
|
|
15
17
|
private handlePageEvaluations;
|
|
16
18
|
private addUrlsToEvaluate;
|
|
17
19
|
private addHtmlCodeToEvaluate;
|
|
18
|
-
crawl(domain: string, options?: CrawlOptions, viewport?:
|
|
20
|
+
crawl(domain: string, options?: CrawlOptions, viewport?: DriverViewport, waitUntil?: LoadEvent | LoadEvent[]): Promise<string[]>;
|
|
19
21
|
private checkUrls;
|
|
20
22
|
static createPage(page: Page): QualwebPage;
|
|
21
23
|
}
|
package/dist/qualweb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualweb.d.ts","sourceRoot":"","sources":["../src/qualweb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"qualweb.d.ts","sourceRoot":"","sources":["../src/qualweb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,QAAQ,CAAC;AAChB,OAAO,KAAK,EACV,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAW,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAEL,WAAW,EAGX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,MAAM,EAAc,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAmB,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AASjG,qBAAa,OAAO;IAIlB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAKhC,OAAO,CAAC,IAAI,CAAC,CAAa;IAK1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;gBAWzC,OAAO,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,MAAM;IAa1C,KAAK,CAChB,cAAc,CAAC,EAAE,cAAc,EAC/B,gBAAgB,CAAC,EAAE,sBAAsB,GACxC,OAAO,CAAC,IAAI,CAAC;IAWT,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAQ1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YA2BxE,qBAAqB;IAQnC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAahB,KAAK,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC;YAuBN,SAAS;WAgDT,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW;CAGlD;AAQD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAY5E"}
|
package/dist/qualweb.js
CHANGED
|
@@ -1,45 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.QualWeb = void 0;
|
|
7
4
|
exports.getFileParsedUrls = getFileParsedUrls;
|
|
8
|
-
const puppeteer_extra_1 = __importDefault(require("puppeteer-extra"));
|
|
9
|
-
const puppeteer_cluster_1 = require("puppeteer-cluster");
|
|
10
|
-
const puppeteer_extra_plugin_stealth_1 = __importDefault(require("puppeteer-extra-plugin-stealth"));
|
|
11
|
-
const puppeteer_extra_plugin_adblocker_1 = __importDefault(require("puppeteer-extra-plugin-adblocker"));
|
|
12
5
|
const fs_1 = require("fs");
|
|
13
6
|
require("colors");
|
|
14
7
|
const crawler_1 = require("@qualweb/crawler");
|
|
15
8
|
const lib_1 = require("./lib");
|
|
9
|
+
const PuppeteerDriver_1 = require("./lib/driver/puppeteer/PuppeteerDriver");
|
|
10
|
+
const PuppeteerDriverPage_1 = require("./lib/driver/puppeteer/PuppeteerDriverPage");
|
|
16
11
|
class QualWeb {
|
|
17
|
-
|
|
12
|
+
driver;
|
|
13
|
+
pool;
|
|
18
14
|
pluginManager = new lib_1.PluginManager();
|
|
19
|
-
constructor(plugins) {
|
|
20
|
-
|
|
21
|
-
puppeteer_extra_1.default.use((0, puppeteer_extra_plugin_stealth_1.default)());
|
|
22
|
-
}
|
|
23
|
-
if (plugins?.adBlock) {
|
|
24
|
-
puppeteer_extra_1.default.use((0, puppeteer_extra_plugin_adblocker_1.default)({ blockTrackersAndAnnoyances: true }));
|
|
25
|
-
}
|
|
15
|
+
constructor(plugins, driver) {
|
|
16
|
+
this.driver = driver ?? new PuppeteerDriver_1.PuppeteerDriver({ plugins });
|
|
26
17
|
}
|
|
27
18
|
async start(clusterOptions, puppeteerOptions) {
|
|
28
|
-
this.
|
|
29
|
-
concurrency: puppeteer_cluster_1.Cluster.CONCURRENCY_CONTEXT,
|
|
30
|
-
maxConcurrency: clusterOptions?.maxConcurrency ?? 1,
|
|
31
|
-
puppeteerOptions,
|
|
32
|
-
puppeteer: puppeteer_extra_1.default,
|
|
33
|
-
timeout: clusterOptions?.timeout ?? 60 * 1000,
|
|
34
|
-
monitor: clusterOptions?.monitor ?? false
|
|
35
|
-
});
|
|
19
|
+
this.pool = await this.driver.launchPool(clusterOptions, puppeteerOptions);
|
|
36
20
|
}
|
|
37
21
|
use(plugin) {
|
|
38
22
|
this.pluginManager.use(plugin);
|
|
39
23
|
return this;
|
|
40
24
|
}
|
|
41
25
|
async stop() {
|
|
42
|
-
await this.
|
|
26
|
+
await this.pool?.close();
|
|
43
27
|
}
|
|
44
28
|
async evaluate(options) {
|
|
45
29
|
const urls = await this.checkUrls(options);
|
|
@@ -47,38 +31,36 @@ class QualWeb {
|
|
|
47
31
|
options.translate = 'en';
|
|
48
32
|
}
|
|
49
33
|
const errorManager = new lib_1.ErrorManager(options.log);
|
|
50
|
-
errorManager.handle(this.
|
|
34
|
+
errorManager.handle(this.pool);
|
|
51
35
|
const reports = {};
|
|
52
36
|
await this.handlePageEvaluations(reports, options);
|
|
53
37
|
this.addUrlsToEvaluate(urls);
|
|
54
38
|
if (options.html) {
|
|
55
39
|
this.addHtmlCodeToEvaluate(options.html);
|
|
56
40
|
}
|
|
57
|
-
await this.
|
|
41
|
+
await this.pool?.idle();
|
|
58
42
|
errorManager.showErrorsIfAny();
|
|
59
43
|
return reports;
|
|
60
44
|
}
|
|
61
45
|
async handlePageEvaluations(reports, options) {
|
|
62
|
-
await this.
|
|
46
|
+
await this.pool?.task(async (page, { url, html }) => {
|
|
63
47
|
const qwPage = new lib_1.QualwebPage(this.pluginManager, page, url, html);
|
|
64
48
|
const evaluationManager = new lib_1.EvaluationManager(qwPage);
|
|
65
49
|
reports[url ?? 'customHtml'] = await evaluationManager.evaluate(options);
|
|
66
50
|
});
|
|
67
51
|
}
|
|
68
52
|
addUrlsToEvaluate(urls) {
|
|
69
|
-
urls.forEach((url) => this.
|
|
53
|
+
urls.forEach((url) => this.pool?.queue({ url }));
|
|
70
54
|
}
|
|
71
55
|
addHtmlCodeToEvaluate(html) {
|
|
72
|
-
this.
|
|
56
|
+
this.pool?.queue({ html });
|
|
73
57
|
}
|
|
74
58
|
async crawl(domain, options, viewport, waitUntil) {
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const crawler = new crawler_1.Crawler(incognito, domain, viewport, waitUntil);
|
|
59
|
+
const context = await this.driver.launchContext();
|
|
60
|
+
const crawler = new crawler_1.Crawler(context, domain, viewport, waitUntil);
|
|
78
61
|
await crawler.crawl(options);
|
|
79
62
|
const results = crawler.getResults();
|
|
80
|
-
await
|
|
81
|
-
await browser.close();
|
|
63
|
+
await context.close();
|
|
82
64
|
return results;
|
|
83
65
|
}
|
|
84
66
|
async checkUrls(options) {
|
|
@@ -113,7 +95,7 @@ class QualWeb {
|
|
|
113
95
|
return urls;
|
|
114
96
|
}
|
|
115
97
|
static createPage(page) {
|
|
116
|
-
return new lib_1.QualwebPage(new lib_1.PluginManager(), page);
|
|
98
|
+
return new lib_1.QualwebPage(new lib_1.PluginManager(), new PuppeteerDriverPage_1.PuppeteerDriverPage(page));
|
|
117
99
|
}
|
|
118
100
|
}
|
|
119
101
|
exports.QualWeb = QualWeb;
|
package/dist/qualweb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualweb.js","sourceRoot":"","sources":["../src/qualweb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"qualweb.js","sourceRoot":"","sources":["../src/qualweb.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qualweb/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "QualWeb evaluator core engine",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -94,11 +94,11 @@
|
|
|
94
94
|
},
|
|
95
95
|
"license": "ISC",
|
|
96
96
|
"dependencies": {
|
|
97
|
-
"@qualweb/crawler": "0.
|
|
97
|
+
"@qualweb/crawler": "0.5.0",
|
|
98
98
|
"@qualweb/locale": "0.2.2",
|
|
99
99
|
"@qualweb/qw-element": "0.3.6",
|
|
100
100
|
"@qualweb/qw-page": "0.3.7",
|
|
101
|
-
"@qualweb/util": "0.7.
|
|
101
|
+
"@qualweb/util": "0.7.2",
|
|
102
102
|
"axios": "^1.7.2",
|
|
103
103
|
"colors": "1.4.0",
|
|
104
104
|
"puppeteer": "^22.12.1",
|