@rafikidota/scoutee 0.3.0 → 0.5.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/index.d.ts +12 -2
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/camoufox/camoufox.module.js +0 -3
- package/dist/modules/camoufox/camoufox.module.js.map +1 -1
- package/dist/modules/camoufox/camoufox.service.d.ts +3 -1
- package/dist/modules/camoufox/camoufox.service.js +13 -2
- package/dist/modules/camoufox/camoufox.service.js.map +1 -1
- package/dist/modules/cheerio/cheerio.module.js +0 -3
- package/dist/modules/cheerio/cheerio.module.js.map +1 -1
- package/dist/modules/cheerio/services/cheerio.hook.service.d.ts +3 -2
- package/dist/modules/cheerio/services/cheerio.hook.service.js.map +1 -1
- package/dist/modules/http/constant/http.env.constant.d.ts +6 -0
- package/dist/modules/http/constant/http.env.constant.js +10 -0
- package/dist/modules/http/constant/http.env.constant.js.map +1 -0
- package/dist/modules/http/env/http.env.config.d.ts +8 -0
- package/dist/modules/http/env/http.env.config.js +48 -0
- package/dist/modules/http/env/http.env.config.js.map +1 -0
- package/dist/modules/http/env/http.env.validation.d.ts +2 -0
- package/dist/modules/http/env/http.env.validation.js +46 -0
- package/dist/modules/http/env/http.env.validation.js.map +1 -0
- package/dist/modules/http/http.module.d.ts +2 -0
- package/dist/modules/http/http.module.js +23 -0
- package/dist/modules/http/http.module.js.map +1 -0
- package/dist/modules/http/http.service.d.ts +16 -0
- package/dist/modules/http/http.service.js +61 -0
- package/dist/modules/http/http.service.js.map +1 -0
- package/dist/modules/http/services/http.hook.service.d.ts +8 -0
- package/dist/modules/http/services/http.hook.service.js +78 -0
- package/dist/modules/http/services/http.hook.service.js.map +1 -0
- package/dist/modules/http/services/http.logger.service.d.ts +11 -0
- package/dist/modules/http/services/http.logger.service.js +44 -0
- package/dist/modules/http/services/http.logger.service.js.map +1 -0
- package/dist/modules/playwright/playwright.module.js +0 -3
- package/dist/modules/playwright/playwright.module.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
export * from './modules/camoufox/camoufox.module';
|
|
2
|
+
export * from './modules/camoufox/camoufox.service';
|
|
3
|
+
export * from './modules/camoufox/env/camoufox.env.config';
|
|
4
|
+
export * from './modules/camoufox/env/camoufox.env.validation';
|
|
1
5
|
export * from './modules/cheerio/cheerio.module';
|
|
2
6
|
export * from './modules/cheerio/cheerio.service';
|
|
7
|
+
export * from './modules/cheerio/env/cheerio.env.config';
|
|
8
|
+
export * from './modules/cheerio/env/cheerio.env.validation';
|
|
9
|
+
export * from './modules/http/http.module';
|
|
10
|
+
export * from './modules/http/http.service';
|
|
11
|
+
export * from './modules/http/env/http.env.config';
|
|
12
|
+
export * from './modules/http/env/http.env.validation';
|
|
3
13
|
export * from './modules/playwright/playwright.module';
|
|
4
14
|
export * from './modules/playwright/playwright.service';
|
|
5
|
-
export * from './modules/
|
|
6
|
-
export * from './modules/
|
|
15
|
+
export * from './modules/playwright/env/playwright.env.config';
|
|
16
|
+
export * from './modules/playwright/env/playwright.env.validation';
|
package/dist/index.js
CHANGED
|
@@ -14,10 +14,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./modules/camoufox/camoufox.module"), exports);
|
|
18
|
+
__exportStar(require("./modules/camoufox/camoufox.service"), exports);
|
|
19
|
+
__exportStar(require("./modules/camoufox/env/camoufox.env.config"), exports);
|
|
20
|
+
__exportStar(require("./modules/camoufox/env/camoufox.env.validation"), exports);
|
|
17
21
|
__exportStar(require("./modules/cheerio/cheerio.module"), exports);
|
|
18
22
|
__exportStar(require("./modules/cheerio/cheerio.service"), exports);
|
|
23
|
+
__exportStar(require("./modules/cheerio/env/cheerio.env.config"), exports);
|
|
24
|
+
__exportStar(require("./modules/cheerio/env/cheerio.env.validation"), exports);
|
|
25
|
+
__exportStar(require("./modules/http/http.module"), exports);
|
|
26
|
+
__exportStar(require("./modules/http/http.service"), exports);
|
|
27
|
+
__exportStar(require("./modules/http/env/http.env.config"), exports);
|
|
28
|
+
__exportStar(require("./modules/http/env/http.env.validation"), exports);
|
|
19
29
|
__exportStar(require("./modules/playwright/playwright.module"), exports);
|
|
20
30
|
__exportStar(require("./modules/playwright/playwright.service"), exports);
|
|
21
|
-
__exportStar(require("./modules/
|
|
22
|
-
__exportStar(require("./modules/
|
|
31
|
+
__exportStar(require("./modules/playwright/env/playwright.env.config"), exports);
|
|
32
|
+
__exportStar(require("./modules/playwright/env/playwright.env.validation"), exports);
|
|
23
33
|
//# 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,mEAAiD;AACjD,oEAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,sEAAoD;AACpD,6EAA2D;AAC3D,iFAA+D;AAE/D,mEAAiD;AACjD,oEAAkD;AAClD,2EAAyD;AACzD,+EAA6D;AAE7D,6DAA2C;AAC3C,8DAA4C;AAC5C,qEAAmD;AACnD,yEAAuD;AAEvD,yEAAuD;AACvD,0EAAwD;AACxD,iFAA+D;AAC/D,qFAAmE"}
|
|
@@ -8,9 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.CamoufoxModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const config_1 = require("@nestjs/config");
|
|
12
11
|
const camoufox_service_1 = require("./camoufox.service");
|
|
13
|
-
const camoufox_env_config_1 = require("./env/camoufox.env.config");
|
|
14
12
|
const camoufox_logger_service_1 = require("./services/camoufox.logger.service");
|
|
15
13
|
const camoufox_hook_service_1 = require("./services/camoufox.hook.service");
|
|
16
14
|
const camoufox_browser_service_1 = require("./services/camoufox.browser.service");
|
|
@@ -19,7 +17,6 @@ let CamoufoxModule = class CamoufoxModule {
|
|
|
19
17
|
exports.CamoufoxModule = CamoufoxModule;
|
|
20
18
|
exports.CamoufoxModule = CamoufoxModule = __decorate([
|
|
21
19
|
(0, common_1.Module)({
|
|
22
|
-
imports: [config_1.ConfigModule.forFeature(camoufox_env_config_1.CamoufoxEnvConfig)],
|
|
23
20
|
providers: [
|
|
24
21
|
camoufox_service_1.CamoufoxService,
|
|
25
22
|
camoufox_logger_service_1.CamoufoxLoggerService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camoufox.module.js","sourceRoot":"","sources":["../../../src/modules/camoufox/camoufox.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;
|
|
1
|
+
{"version":3,"file":"camoufox.module.js","sourceRoot":"","sources":["../../../src/modules/camoufox/camoufox.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,yDAAqD;AACrD,gFAA2E;AAC3E,4EAAuE;AACvE,kFAA6E;AAWtE,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAT1B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,kCAAe;YACf,+CAAqB;YACrB,2CAAmB;YACnB,iDAAsB;SACvB;QACD,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -2,10 +2,12 @@ import { ConfigService } from '@nestjs/config';
|
|
|
2
2
|
import { PlaywrightCrawler } from '@crawlee/playwright';
|
|
3
3
|
import { PlaywrightCrawlerOptions } from '@crawlee/playwright';
|
|
4
4
|
import { CamoufoxLoggerService } from './services/camoufox.logger.service';
|
|
5
|
+
import { CamoufoxHookService } from './services/camoufox.hook.service';
|
|
5
6
|
import { CamoufoxBrowserService } from './services/camoufox.browser.service';
|
|
6
7
|
export declare class CamoufoxService {
|
|
7
8
|
private readonly config;
|
|
8
9
|
private readonly logger;
|
|
10
|
+
private readonly hook;
|
|
9
11
|
private readonly browser;
|
|
10
12
|
private readonly maxRequests;
|
|
11
13
|
private readonly timeoutSecs;
|
|
@@ -13,7 +15,7 @@ export declare class CamoufoxService {
|
|
|
13
15
|
private readonly minConcurrency;
|
|
14
16
|
private readonly maxRequestRetries;
|
|
15
17
|
private readonly headless;
|
|
16
|
-
constructor(config: ConfigService, logger: CamoufoxLoggerService, browser: CamoufoxBrowserService);
|
|
18
|
+
constructor(config: ConfigService, logger: CamoufoxLoggerService, hook: CamoufoxHookService, browser: CamoufoxBrowserService);
|
|
17
19
|
create(options: PlaywrightCrawlerOptions): Promise<PlaywrightCrawler>;
|
|
18
20
|
getBrowser(): Promise<import("playwright").Browser>;
|
|
19
21
|
}
|
|
@@ -16,6 +16,7 @@ const playwright_1 = require("@crawlee/playwright");
|
|
|
16
16
|
const camoufox_js_1 = require("camoufox-js");
|
|
17
17
|
const playwright_2 = require("playwright");
|
|
18
18
|
const camoufox_logger_service_1 = require("./services/camoufox.logger.service");
|
|
19
|
+
const camoufox_hook_service_1 = require("./services/camoufox.hook.service");
|
|
19
20
|
const camoufox_browser_service_1 = require("./services/camoufox.browser.service");
|
|
20
21
|
const camoufox_env_constant_1 = require("./constant/camoufox.env.constant");
|
|
21
22
|
const camoufox_env_constant_2 = require("./constant/camoufox.env.constant");
|
|
@@ -24,9 +25,10 @@ const camoufox_env_constant_4 = require("./constant/camoufox.env.constant");
|
|
|
24
25
|
const camoufox_env_constant_5 = require("./constant/camoufox.env.constant");
|
|
25
26
|
const camoufox_env_constant_6 = require("./constant/camoufox.env.constant");
|
|
26
27
|
let CamoufoxService = class CamoufoxService {
|
|
27
|
-
constructor(config, logger, browser) {
|
|
28
|
+
constructor(config, logger, hook, browser) {
|
|
28
29
|
this.config = config;
|
|
29
30
|
this.logger = logger;
|
|
31
|
+
this.hook = hook;
|
|
30
32
|
this.browser = browser;
|
|
31
33
|
this.maxConcurrency = this.config.get(camoufox_env_constant_1.MAX_CONCURRENCY);
|
|
32
34
|
this.minConcurrency = this.config.get(camoufox_env_constant_2.MIN_CONCURRENCY);
|
|
@@ -37,6 +39,9 @@ let CamoufoxService = class CamoufoxService {
|
|
|
37
39
|
}
|
|
38
40
|
async create(options) {
|
|
39
41
|
this.logger.log('🚀 Creating Camoufox Crawler instance');
|
|
42
|
+
const { preNavigationHooks = [], postNavigationHooks = [] } = options;
|
|
43
|
+
const defaultPreNavHooks = this.hook.getPreNavigationHooks();
|
|
44
|
+
const defaultPostNavHooks = this.hook.getPostNavigationHooks();
|
|
40
45
|
const defaultOptions = {
|
|
41
46
|
maxRequestsPerCrawl: this.maxRequests,
|
|
42
47
|
requestHandlerTimeoutSecs: this.timeoutSecs,
|
|
@@ -56,7 +61,12 @@ let CamoufoxService = class CamoufoxService {
|
|
|
56
61
|
useFingerprints: false,
|
|
57
62
|
},
|
|
58
63
|
};
|
|
59
|
-
const crawler = new playwright_1.PlaywrightCrawler({
|
|
64
|
+
const crawler = new playwright_1.PlaywrightCrawler({
|
|
65
|
+
...defaultOptions,
|
|
66
|
+
...options,
|
|
67
|
+
preNavigationHooks: [...defaultPreNavHooks, ...preNavigationHooks],
|
|
68
|
+
postNavigationHooks: [...defaultPostNavHooks, ...postNavigationHooks],
|
|
69
|
+
});
|
|
60
70
|
this.logger.log('✅ Camoufox Crawler instance created successfully');
|
|
61
71
|
return crawler;
|
|
62
72
|
}
|
|
@@ -69,6 +79,7 @@ exports.CamoufoxService = CamoufoxService = __decorate([
|
|
|
69
79
|
(0, common_1.Injectable)(),
|
|
70
80
|
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
71
81
|
camoufox_logger_service_1.CamoufoxLoggerService,
|
|
82
|
+
camoufox_hook_service_1.CamoufoxHookService,
|
|
72
83
|
camoufox_browser_service_1.CamoufoxBrowserService])
|
|
73
84
|
], CamoufoxService);
|
|
74
85
|
//# sourceMappingURL=camoufox.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camoufox.service.js","sourceRoot":"","sources":["../../../src/modules/camoufox/camoufox.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAE/C,oDAAwD;AAExD,6CAA4C;AAC5C,2CAAqC;AAErC,gFAA2E;AAC3E,kFAA6E;AAE7E,4EAAmE;AACnE,4EAAmE;AACnE,4EAAuE;AACvE,4EAAgE;AAChE,4EAAgE;AAChE,4EAA4D;AAGrD,IAAM,eAAe,GAArB,MAAM,eAAe;IAQ1B,YACmB,MAAqB,EACrB,MAA6B,EAC7B,OAA+B;
|
|
1
|
+
{"version":3,"file":"camoufox.service.js","sourceRoot":"","sources":["../../../src/modules/camoufox/camoufox.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.CheerioModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const config_1 = require("@nestjs/config");
|
|
12
11
|
const cheerio_service_1 = require("./cheerio.service");
|
|
13
|
-
const cheerio_env_config_1 = require("./env/cheerio.env.config");
|
|
14
12
|
const cheerio_logger_service_1 = require("./services/cheerio.logger.service");
|
|
15
13
|
const cheerio_hook_service_1 = require("./services/cheerio.hook.service");
|
|
16
14
|
let CheerioModule = class CheerioModule {
|
|
@@ -18,7 +16,6 @@ let CheerioModule = class CheerioModule {
|
|
|
18
16
|
exports.CheerioModule = CheerioModule;
|
|
19
17
|
exports.CheerioModule = CheerioModule = __decorate([
|
|
20
18
|
(0, common_1.Module)({
|
|
21
|
-
imports: [config_1.ConfigModule.forFeature(cheerio_env_config_1.CheerioEnvConfig)],
|
|
22
19
|
providers: [cheerio_service_1.CheerioService, cheerio_logger_service_1.CheerioLoggerService, cheerio_hook_service_1.CheerioHookService],
|
|
23
20
|
exports: [cheerio_service_1.CheerioService],
|
|
24
21
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cheerio.module.js","sourceRoot":"","sources":["../../../src/modules/cheerio/cheerio.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;
|
|
1
|
+
{"version":3,"file":"cheerio.module.js","sourceRoot":"","sources":["../../../src/modules/cheerio/cheerio.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,uDAAmD;AACnD,8EAAyE;AACzE,0EAAqE;AAM9D,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAJzB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,gCAAc,EAAE,6CAAoB,EAAE,yCAAkB,CAAC;QACrE,OAAO,EAAE,CAAC,gCAAc,CAAC;KAC1B,CAAC;GACW,aAAa,CAAG"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { CheerioHook } from 'crawlee';
|
|
1
2
|
import { CheerioLoggerService } from './cheerio.logger.service';
|
|
2
3
|
export declare class CheerioHookService {
|
|
3
4
|
private readonly logger;
|
|
4
5
|
constructor(logger: CheerioLoggerService);
|
|
5
|
-
getPreNavigationHooks():
|
|
6
|
-
getPostNavigationHooks():
|
|
6
|
+
getPreNavigationHooks(): CheerioHook[];
|
|
7
|
+
getPostNavigationHooks(): CheerioHook[];
|
|
7
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cheerio.hook.service.js","sourceRoot":"","sources":["../../../../src/modules/cheerio/services/cheerio.hook.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwD;
|
|
1
|
+
{"version":3,"file":"cheerio.hook.service.js","sourceRoot":"","sources":["../../../../src/modules/cheerio/services/cheerio.hook.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwD;AAGxD,qEAAgE;AAGzD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,qBAAqB;QACnB,OAAO;YACL,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,sBAAsB;QACpB,OAAO;YACL,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACxB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;gBACxB,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;gBAEhC,QAAQ,UAAwB,EAAE,CAAC;oBACjC,KAAK,mBAAU,CAAC,EAAE;wBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC1C,MAAM;oBACR,KAAK,mBAAU,CAAC,WAAW;wBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,YAAY;wBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,SAAS;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,iBAAiB;wBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM;oBACR,KAAK,mBAAU,CAAC,qBAAqB;wBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR,KAAK,mBAAU,CAAC,WAAW;wBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR,KAAK,mBAAU,CAAC,mBAAmB;wBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR;wBACE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM;gBACV,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAjDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAE0B,6CAAoB;GAD9C,kBAAkB,CAiD9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const MAX_CONCURRENCY = "CRAWLEE_HTTP_MAX_CONCURRENCY";
|
|
2
|
+
export declare const MIN_CONCURRENCY = "CRAWLEE_HTTP_MIN_CONCURRENCY";
|
|
3
|
+
export declare const MAX_REQUEST_RETRIES = "CRAWLEE_HTTP_MAX_REQUEST_RETRIES";
|
|
4
|
+
export declare const TIMEOUT_SECS = "CRAWLEE_HTTP_TIMEOUT_SECS";
|
|
5
|
+
export declare const MAX_REQUESTS = "CRAWLEE_HTTP_MAX_REQUESTS";
|
|
6
|
+
export declare const INITIAL_PAGE = "CRAWLEE_HTTP_INITIAL_PAGE";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INITIAL_PAGE = exports.MAX_REQUESTS = exports.TIMEOUT_SECS = exports.MAX_REQUEST_RETRIES = exports.MIN_CONCURRENCY = exports.MAX_CONCURRENCY = void 0;
|
|
4
|
+
exports.MAX_CONCURRENCY = 'CRAWLEE_HTTP_MAX_CONCURRENCY';
|
|
5
|
+
exports.MIN_CONCURRENCY = 'CRAWLEE_HTTP_MIN_CONCURRENCY';
|
|
6
|
+
exports.MAX_REQUEST_RETRIES = 'CRAWLEE_HTTP_MAX_REQUEST_RETRIES';
|
|
7
|
+
exports.TIMEOUT_SECS = 'CRAWLEE_HTTP_TIMEOUT_SECS';
|
|
8
|
+
exports.MAX_REQUESTS = 'CRAWLEE_HTTP_MAX_REQUESTS';
|
|
9
|
+
exports.INITIAL_PAGE = 'CRAWLEE_HTTP_INITIAL_PAGE';
|
|
10
|
+
//# sourceMappingURL=http.env.constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.env.constant.js","sourceRoot":"","sources":["../../../../src/modules/http/constant/http.env.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,8BAA8B,CAAC;AACjD,QAAA,eAAe,GAAG,8BAA8B,CAAC;AACjD,QAAA,mBAAmB,GAAG,kCAAkC,CAAC;AACzD,QAAA,YAAY,GAAG,2BAA2B,CAAC;AAC3C,QAAA,YAAY,GAAG,2BAA2B,CAAC;AAC3C,QAAA,YAAY,GAAG,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const HttpEnvConfig: () => {
|
|
2
|
+
CRAWLEE_HTTP_MAX_CONCURRENCY: number;
|
|
3
|
+
CRAWLEE_HTTP_MIN_CONCURRENCY: number;
|
|
4
|
+
CRAWLEE_HTTP_MAX_REQUEST_RETRIES: number;
|
|
5
|
+
CRAWLEE_HTTP_TIMEOUT_SECS: number;
|
|
6
|
+
CRAWLEE_HTTP_MAX_REQUESTS: number;
|
|
7
|
+
CRAWLEE_HTTP_INITIAL_PAGE: number;
|
|
8
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HttpEnvConfig = void 0;
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
dotenv.config();
|
|
39
|
+
const HttpEnvConfig = () => ({
|
|
40
|
+
CRAWLEE_HTTP_MAX_CONCURRENCY: Number(process.env.CRAWLEE_HTTP_MAX_CONCURRENCY),
|
|
41
|
+
CRAWLEE_HTTP_MIN_CONCURRENCY: Number(process.env.CRAWLEE_HTTP_MIN_CONCURRENCY),
|
|
42
|
+
CRAWLEE_HTTP_MAX_REQUEST_RETRIES: Number(process.env.CRAWLEE_HTTP_MAX_REQUEST_RETRIES),
|
|
43
|
+
CRAWLEE_HTTP_TIMEOUT_SECS: Number(process.env.CRAWLEE_HTTP_TIMEOUT_SECS),
|
|
44
|
+
CRAWLEE_HTTP_MAX_REQUESTS: Number(process.env.CRAWLEE_HTTP_MAX_REQUESTS),
|
|
45
|
+
CRAWLEE_HTTP_INITIAL_PAGE: Number(process.env.CRAWLEE_HTTP_INITIAL_PAGE),
|
|
46
|
+
});
|
|
47
|
+
exports.HttpEnvConfig = HttpEnvConfig;
|
|
48
|
+
//# sourceMappingURL=http.env.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.env.config.js","sourceRoot":"","sources":["../../../../src/modules/http/env/http.env.config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,MAAM,CAAC,MAAM,EAAE,CAAC;AACT,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;IAClC,4BAA4B,EAAE,MAAM,CAClC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;IACD,4BAA4B,EAAE,MAAM,CAClC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CACzC;IACD,gCAAgC,EAAE,MAAM,CACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAC7C;IACD,yBAAyB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACxE,yBAAyB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACxE,yBAAyB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;CACzE,CAAC,CAAC;AAbU,QAAA,aAAa,iBAavB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HttpEnvValidation = void 0;
|
|
37
|
+
const Joi = __importStar(require("joi"));
|
|
38
|
+
exports.HttpEnvValidation = Joi.object({
|
|
39
|
+
CRAWLEE_HTTP_MAX_CONCURRENCY: Joi.number().default(10),
|
|
40
|
+
CRAWLEE_HTTP_MIN_CONCURRENCY: Joi.number().default(1),
|
|
41
|
+
CRAWLEE_HTTP_MAX_REQUEST_RETRIES: Joi.number().default(3),
|
|
42
|
+
CRAWLEE_HTTP_TIMEOUT_SECS: Joi.number().default(30),
|
|
43
|
+
CRAWLEE_HTTP_MAX_REQUESTS: Joi.number().default(100),
|
|
44
|
+
CRAWLEE_HTTP_INITIAL_PAGE: Joi.number().default(1),
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=http.env.validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.env.validation.js","sourceRoot":"","sources":["../../../../src/modules/http/env/http.env.validation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAEd,QAAA,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1C,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,4BAA4B,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,gCAAgC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACpD,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CACnD,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.HttpModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const http_service_1 = require("./http.service");
|
|
12
|
+
const http_logger_service_1 = require("./services/http.logger.service");
|
|
13
|
+
const http_hook_service_1 = require("./services/http.hook.service");
|
|
14
|
+
let HttpModule = class HttpModule {
|
|
15
|
+
};
|
|
16
|
+
exports.HttpModule = HttpModule;
|
|
17
|
+
exports.HttpModule = HttpModule = __decorate([
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
providers: [http_service_1.HttpService, http_logger_service_1.HttpLoggerService, http_hook_service_1.HttpHookService],
|
|
20
|
+
exports: [http_service_1.HttpService],
|
|
21
|
+
})
|
|
22
|
+
], HttpModule);
|
|
23
|
+
//# sourceMappingURL=http.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.module.js","sourceRoot":"","sources":["../../../src/modules/http/http.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,iDAA6C;AAC7C,wEAAmE;AACnE,oEAA+D;AAMxD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,0BAAW,EAAE,uCAAiB,EAAE,mCAAe,CAAC;QAC5D,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
import { HttpCrawler, HttpCrawlerOptions } from 'crawlee';
|
|
3
|
+
import { HttpLoggerService } from './services/http.logger.service';
|
|
4
|
+
import { HttpHookService } from './services/http.hook.service';
|
|
5
|
+
export declare class HttpService {
|
|
6
|
+
private readonly config;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private readonly hook;
|
|
9
|
+
private readonly maxRequests;
|
|
10
|
+
private readonly timeoutSecs;
|
|
11
|
+
private readonly maxConcurrency;
|
|
12
|
+
private readonly minConcurrency;
|
|
13
|
+
private readonly maxRequestRetries;
|
|
14
|
+
constructor(config: ConfigService, logger: HttpLoggerService, hook: HttpHookService);
|
|
15
|
+
create(options: HttpCrawlerOptions): HttpCrawler<import("crawlee").InternalHttpCrawlingContext<any, any, HttpCrawler<any>>>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HttpService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
const crawlee_1 = require("crawlee");
|
|
16
|
+
const http_logger_service_1 = require("./services/http.logger.service");
|
|
17
|
+
const http_hook_service_1 = require("./services/http.hook.service");
|
|
18
|
+
const http_env_constant_1 = require("./constant/http.env.constant");
|
|
19
|
+
const http_env_constant_2 = require("./constant/http.env.constant");
|
|
20
|
+
const http_env_constant_3 = require("./constant/http.env.constant");
|
|
21
|
+
const http_env_constant_4 = require("./constant/http.env.constant");
|
|
22
|
+
const http_env_constant_5 = require("./constant/http.env.constant");
|
|
23
|
+
let HttpService = class HttpService {
|
|
24
|
+
constructor(config, logger, hook) {
|
|
25
|
+
this.config = config;
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
this.hook = hook;
|
|
28
|
+
this.maxConcurrency = this.config.get(http_env_constant_1.MAX_CONCURRENCY);
|
|
29
|
+
this.minConcurrency = this.config.get(http_env_constant_2.MIN_CONCURRENCY);
|
|
30
|
+
this.maxRequestRetries = this.config.get(http_env_constant_3.MAX_REQUEST_RETRIES);
|
|
31
|
+
this.timeoutSecs = this.config.get(http_env_constant_4.TIMEOUT_SECS);
|
|
32
|
+
this.maxRequests = this.config.get(http_env_constant_5.MAX_REQUESTS);
|
|
33
|
+
}
|
|
34
|
+
create(options) {
|
|
35
|
+
const { preNavigationHooks = [], postNavigationHooks = [] } = options;
|
|
36
|
+
const defaultPreNavHooks = this.hook.getPreNavigationHooks();
|
|
37
|
+
const defaultPostNavHooks = this.hook.getPostNavigationHooks();
|
|
38
|
+
const defaultOptions = {
|
|
39
|
+
maxRequestsPerCrawl: this.maxRequests,
|
|
40
|
+
requestHandlerTimeoutSecs: this.timeoutSecs,
|
|
41
|
+
maxConcurrency: this.maxConcurrency,
|
|
42
|
+
minConcurrency: this.minConcurrency,
|
|
43
|
+
maxRequestRetries: this.maxRequestRetries,
|
|
44
|
+
};
|
|
45
|
+
this.logger.log('Creating Cheerio Crawler instance');
|
|
46
|
+
return new crawlee_1.HttpCrawler({
|
|
47
|
+
...defaultOptions,
|
|
48
|
+
...options,
|
|
49
|
+
preNavigationHooks: [...defaultPreNavHooks, ...preNavigationHooks],
|
|
50
|
+
postNavigationHooks: [...defaultPostNavHooks, ...postNavigationHooks],
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.HttpService = HttpService;
|
|
55
|
+
exports.HttpService = HttpService = __decorate([
|
|
56
|
+
(0, common_1.Injectable)(),
|
|
57
|
+
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
58
|
+
http_logger_service_1.HttpLoggerService,
|
|
59
|
+
http_hook_service_1.HttpHookService])
|
|
60
|
+
], HttpService);
|
|
61
|
+
//# sourceMappingURL=http.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../../src/modules/http/http.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAE/C,qCAA0D;AAE1D,wEAAmE;AACnE,oEAA+D;AAC/D,oEAA+D;AAC/D,oEAA+D;AAC/D,oEAAmE;AACnE,oEAA4D;AAC5D,oEAA4D;AAGrD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAOtB,YACmB,MAAqB,EACrB,MAAyB,EACzB,IAAqB;QAFrB,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAmB;QACzB,SAAI,GAAJ,IAAI,CAAiB;QAEtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,mCAAe,CAAE,CAAC;QAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,mCAAe,CAAE,CAAC;QAChE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,uCAAmB,CAAE,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,gCAAY,CAAE,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,gCAAY,CAAE,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,OAA2B;QAChC,MAAM,EAAE,kBAAkB,GAAG,EAAE,EAAE,mBAAmB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACtE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7D,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/D,MAAM,cAAc,GAAuB;YACzC,mBAAmB,EAAE,IAAI,CAAC,WAAW;YACrC,yBAAyB,EAAE,IAAI,CAAC,WAAW;YAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACrD,OAAO,IAAI,qBAAW,CAAC;YACrB,GAAG,cAAc;YACjB,GAAG,OAAO;YACV,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC;YAClE,mBAAmB,EAAE,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtCY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCASgB,sBAAa;QACb,uCAAiB;QACnB,mCAAe;GAV7B,WAAW,CAsCvB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HttpHook } from 'crawlee';
|
|
2
|
+
import { HttpLoggerService } from './http.logger.service';
|
|
3
|
+
export declare class HttpHookService {
|
|
4
|
+
private readonly logger;
|
|
5
|
+
constructor(logger: HttpLoggerService);
|
|
6
|
+
getPreNavigationHooks(): HttpHook[];
|
|
7
|
+
getPostNavigationHooks(): HttpHook[];
|
|
8
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HttpHookService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const http_logger_service_1 = require("./http.logger.service");
|
|
15
|
+
let HttpHookService = class HttpHookService {
|
|
16
|
+
constructor(logger) {
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
}
|
|
19
|
+
getPreNavigationHooks() {
|
|
20
|
+
return [
|
|
21
|
+
({ request }) => {
|
|
22
|
+
this.logger.log(`🔎 ${request.url}`);
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
getPostNavigationHooks() {
|
|
27
|
+
return [
|
|
28
|
+
({ request, response }) => {
|
|
29
|
+
const { url } = request;
|
|
30
|
+
const { statusCode } = response;
|
|
31
|
+
switch (statusCode) {
|
|
32
|
+
case common_1.HttpStatus.OK:
|
|
33
|
+
this.logger.log(`✅ ${statusCode} ${url}`);
|
|
34
|
+
break;
|
|
35
|
+
case common_1.HttpStatus.CREATED:
|
|
36
|
+
this.logger.log(`✅ ${statusCode} ${url}`);
|
|
37
|
+
break;
|
|
38
|
+
case common_1.HttpStatus.ACCEPTED:
|
|
39
|
+
this.logger.log(`✅ ${statusCode} ${url}`);
|
|
40
|
+
break;
|
|
41
|
+
case common_1.HttpStatus.BAD_REQUEST:
|
|
42
|
+
this.logger.warn(`⚠️ ${statusCode} ${url}`);
|
|
43
|
+
break;
|
|
44
|
+
case common_1.HttpStatus.UNAUTHORIZED:
|
|
45
|
+
this.logger.warn(`⚠️ ${statusCode} ${url}`);
|
|
46
|
+
break;
|
|
47
|
+
case common_1.HttpStatus.FORBIDDEN:
|
|
48
|
+
this.logger.warn(`⚠️ ${statusCode} ${url}`);
|
|
49
|
+
break;
|
|
50
|
+
case common_1.HttpStatus.NOT_FOUND:
|
|
51
|
+
this.logger.warn(`⚠️ ${statusCode} ${url}`);
|
|
52
|
+
break;
|
|
53
|
+
case common_1.HttpStatus.TOO_MANY_REQUESTS:
|
|
54
|
+
this.logger.warn(`⛔ ${statusCode} ${url}`);
|
|
55
|
+
break;
|
|
56
|
+
case common_1.HttpStatus.INTERNAL_SERVER_ERROR:
|
|
57
|
+
this.logger.error(`💥 ${statusCode} ${url}`);
|
|
58
|
+
break;
|
|
59
|
+
case common_1.HttpStatus.BAD_GATEWAY:
|
|
60
|
+
this.logger.error(`🚧 ${statusCode} ${url}`);
|
|
61
|
+
break;
|
|
62
|
+
case common_1.HttpStatus.SERVICE_UNAVAILABLE:
|
|
63
|
+
this.logger.error(`🚧 ${statusCode} ${url}`);
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
this.logger.log(`🤔 ${statusCode} ${url}`);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.HttpHookService = HttpHookService;
|
|
74
|
+
exports.HttpHookService = HttpHookService = __decorate([
|
|
75
|
+
(0, common_1.Injectable)(),
|
|
76
|
+
__metadata("design:paramtypes", [http_logger_service_1.HttpLoggerService])
|
|
77
|
+
], HttpHookService);
|
|
78
|
+
//# sourceMappingURL=http.hook.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.hook.service.js","sourceRoot":"","sources":["../../../../src/modules/http/services/http.hook.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwD;AAGxD,+DAA0D;AAGnD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAA6B,MAAyB;QAAzB,WAAM,GAAN,MAAM,CAAmB;IAAG,CAAC;IAE1D,qBAAqB;QACnB,OAAO;YACL,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,sBAAsB;QACpB,OAAO;YACL,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACxB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;gBACxB,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;gBAEhC,QAAQ,UAAwB,EAAE,CAAC;oBACjC,KAAK,mBAAU,CAAC,EAAE;wBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC1C,MAAM;oBACR,KAAK,mBAAU,CAAC,OAAO;wBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC1C,MAAM;oBACR,KAAK,mBAAU,CAAC,QAAQ;wBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC1C,MAAM;oBACR,KAAK,mBAAU,CAAC,WAAW;wBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,YAAY;wBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,SAAS;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,SAAS;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC5C,MAAM;oBACR,KAAK,mBAAU,CAAC,iBAAiB;wBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM;oBACR,KAAK,mBAAU,CAAC,qBAAqB;wBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR,KAAK,mBAAU,CAAC,WAAW;wBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR,KAAK,mBAAU,CAAC,mBAAmB;wBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC7C,MAAM;oBACR;wBACE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC3C,MAAM;gBACV,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA1DY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAE0B,uCAAiB;GAD3C,eAAe,CA0D3B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LoggerService } from '@nestjs/common';
|
|
2
|
+
export declare class HttpLoggerService implements LoggerService {
|
|
3
|
+
private readonly logger;
|
|
4
|
+
constructor();
|
|
5
|
+
log(message: any, ...optionalParams: any[]): any;
|
|
6
|
+
debug(message: any, ...optionalParams: any[]): any;
|
|
7
|
+
verbose(message: any, ...optionalParams: any[]): any;
|
|
8
|
+
warn(message: any, ...optionalParams: any[]): any;
|
|
9
|
+
error(message: any, ...optionalParams: any[]): any;
|
|
10
|
+
fatal?(message: any, ...optionalParams: any[]): any;
|
|
11
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HttpLoggerService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const http_service_1 = require("../http.service");
|
|
15
|
+
let HttpLoggerService = class HttpLoggerService {
|
|
16
|
+
constructor() {
|
|
17
|
+
const options = { timestamp: true };
|
|
18
|
+
this.logger = new common_1.Logger(http_service_1.HttpService.name, options);
|
|
19
|
+
}
|
|
20
|
+
log(message, ...optionalParams) {
|
|
21
|
+
this.logger.log(message, ...optionalParams);
|
|
22
|
+
}
|
|
23
|
+
debug(message, ...optionalParams) {
|
|
24
|
+
this.logger.debug(message, ...optionalParams);
|
|
25
|
+
}
|
|
26
|
+
verbose(message, ...optionalParams) {
|
|
27
|
+
this.logger.verbose(message, ...optionalParams);
|
|
28
|
+
}
|
|
29
|
+
warn(message, ...optionalParams) {
|
|
30
|
+
this.logger.warn(message, ...optionalParams);
|
|
31
|
+
}
|
|
32
|
+
error(message, ...optionalParams) {
|
|
33
|
+
this.logger.error(message, ...optionalParams);
|
|
34
|
+
}
|
|
35
|
+
fatal(message, ...optionalParams) {
|
|
36
|
+
this.logger.fatal(message, ...optionalParams);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.HttpLoggerService = HttpLoggerService;
|
|
40
|
+
exports.HttpLoggerService = HttpLoggerService = __decorate([
|
|
41
|
+
(0, common_1.Injectable)(),
|
|
42
|
+
__metadata("design:paramtypes", [])
|
|
43
|
+
], HttpLoggerService);
|
|
44
|
+
//# sourceMappingURL=http.logger.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.logger.service.js","sourceRoot":"","sources":["../../../../src/modules/http/services/http.logger.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AAEnE,kDAA8C;AAGvC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE5B;QACE,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,0BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,OAAY,EAAE,GAAG,cAAqB;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,OAAY,EAAE,GAAG,cAAqB;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAY,EAAE,GAAG,cAAqB;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAE,OAAY,EAAE,GAAG,cAAqB;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AA9BY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;;GACA,iBAAiB,CA8B7B"}
|
|
@@ -8,9 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.PlaywrightModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const config_1 = require("@nestjs/config");
|
|
12
11
|
const playwright_service_1 = require("./playwright.service");
|
|
13
|
-
const playwright_env_config_1 = require("./env/playwright.env.config");
|
|
14
12
|
const playwright_logger_service_1 = require("./services/playwright.logger.service");
|
|
15
13
|
const playwright_hook_service_1 = require("./services/playwright.hook.service");
|
|
16
14
|
const playwright_browser_service_1 = require("./services/playwright.browser.service");
|
|
@@ -19,7 +17,6 @@ let PlaywrightModule = class PlaywrightModule {
|
|
|
19
17
|
exports.PlaywrightModule = PlaywrightModule;
|
|
20
18
|
exports.PlaywrightModule = PlaywrightModule = __decorate([
|
|
21
19
|
(0, common_1.Module)({
|
|
22
|
-
imports: [config_1.ConfigModule.forFeature(playwright_env_config_1.PlaywrightEnvConfig)],
|
|
23
20
|
providers: [
|
|
24
21
|
playwright_service_1.PlaywrightService,
|
|
25
22
|
playwright_logger_service_1.PlaywrightLoggerService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright.module.js","sourceRoot":"","sources":["../../../src/modules/playwright/playwright.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;
|
|
1
|
+
{"version":3,"file":"playwright.module.js","sourceRoot":"","sources":["../../../src/modules/playwright/playwright.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,6DAAyD;AACzD,oFAA+E;AAC/E,gFAA2E;AAC3E,sFAAiF;AAW1E,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAT5B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,sCAAiB;YACjB,mDAAuB;YACvB,+CAAqB;YACrB,qDAAwB;SACzB;QACD,OAAO,EAAE,CAAC,sCAAiB,CAAC;KAC7B,CAAC;GACW,gBAAgB,CAAG"}
|