@rafikidota/cuba-ofertas-scraping 0.54.0 → 0.55.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.
Files changed (26) hide show
  1. package/dist/common/class/cloudflare-block.d.ts +12 -0
  2. package/dist/common/class/cloudflare-block.js +16 -0
  3. package/dist/common/class/cloudflare-block.js.map +1 -0
  4. package/dist/common/interface/cloudflare-block.interface.d.ts +8 -0
  5. package/dist/common/interface/cloudflare-block.interface.js +3 -0
  6. package/dist/common/interface/cloudflare-block.interface.js.map +1 -0
  7. package/dist/modules/cloudflare/cloudflare.module.js +2 -1
  8. package/dist/modules/cloudflare/cloudflare.module.js.map +1 -1
  9. package/dist/modules/cloudflare/cloudflare.service.d.ts +2 -2
  10. package/dist/modules/cloudflare/cloudflare.service.js +6 -6
  11. package/dist/modules/cloudflare/cloudflare.service.js.map +1 -1
  12. package/dist/modules/cloudflare/services/cloudflare-repository.service.d.ts +8 -8
  13. package/dist/modules/cloudflare/services/cloudflare-repository.service.js +46 -26
  14. package/dist/modules/cloudflare/services/cloudflare-repository.service.js.map +1 -1
  15. package/dist/modules/repository/config/database.config.d.ts +2 -1
  16. package/dist/modules/repository/config/database.config.js +2 -0
  17. package/dist/modules/repository/config/database.config.js.map +1 -1
  18. package/dist/modules/repository/entities/cloudflare-block.entity.d.ts +8 -0
  19. package/dist/modules/repository/entities/cloudflare-block.entity.js +44 -0
  20. package/dist/modules/repository/entities/cloudflare-block.entity.js.map +1 -0
  21. package/dist/modules/repository/repository.module.js +3 -0
  22. package/dist/modules/repository/repository.module.js.map +1 -1
  23. package/dist/modules/repository/services/cloudflare-block.repository.service.d.ts +16 -0
  24. package/dist/modules/repository/services/cloudflare-block.repository.service.js +52 -0
  25. package/dist/modules/repository/services/cloudflare-block.repository.service.js.map +1 -0
  26. package/package.json +8 -8
@@ -0,0 +1,12 @@
1
+ import { ICloudflareBlock } from '../interface/cloudflare-block.interface';
2
+ export declare class CloudflareBlock implements ICloudflareBlock {
3
+ readonly id: string;
4
+ readonly url: string;
5
+ readonly method: string;
6
+ readonly body?: string;
7
+ readonly count: number;
8
+ readonly timestamp: Date;
9
+ constructor(data: Partial<ICloudflareBlock>);
10
+ update(data: Partial<ICloudflareBlock>): void;
11
+ getData(): ICloudflareBlock;
12
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CloudflareBlock = void 0;
4
+ class CloudflareBlock {
5
+ constructor(data) {
6
+ Object.assign(this, data);
7
+ }
8
+ update(data) {
9
+ Object.assign(this, data);
10
+ }
11
+ getData() {
12
+ return this;
13
+ }
14
+ }
15
+ exports.CloudflareBlock = CloudflareBlock;
16
+ //# sourceMappingURL=cloudflare-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-block.js","sourceRoot":"","sources":["../../../src/common/class/cloudflare-block.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAQ1B,YAAY,IAA+B;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,IAA+B;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnBD,0CAmBC"}
@@ -0,0 +1,8 @@
1
+ export interface ICloudflareBlock {
2
+ id: string;
3
+ url: string;
4
+ method: string;
5
+ body?: string;
6
+ count: number;
7
+ timestamp: Date;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cloudflare-block.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-block.interface.js","sourceRoot":"","sources":["../../../src/common/interface/cloudflare-block.interface.ts"],"names":[],"mappings":""}
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.CloudflareModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const delayer_module_1 = require("../delayer/delayer.module");
12
+ const repository_module_1 = require("../repository/repository.module");
12
13
  const cloudflare_service_1 = require("./cloudflare.service");
13
14
  const check_cloudflare_block_use_case_1 = require("./use-cases/check-cloudflare-block.use-case");
14
15
  const normalize_cloudflare_response_use_case_1 = require("./use-cases/normalize-cloudflare-response.use-case");
@@ -19,7 +20,7 @@ let CloudflareModule = class CloudflareModule {
19
20
  exports.CloudflareModule = CloudflareModule;
20
21
  exports.CloudflareModule = CloudflareModule = __decorate([
21
22
  (0, common_1.Module)({
22
- imports: [delayer_module_1.DelayerModule],
23
+ imports: [delayer_module_1.DelayerModule, repository_module_1.RepositoryModule],
23
24
  providers: [
24
25
  cloudflare_service_1.CloudflareService,
25
26
  normalize_cloudflare_response_use_case_1.NormalizeCloudflareResponseUseCase,
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.module.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/cloudflare.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,8DAA0D;AAC1D,6DAAyD;AACzD,iGAA0F;AAC1F,+GAAwG;AACxG,uFAAiF;AACjF,4FAAuF;AAahF,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAX5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,CAAC;QACxB,SAAS,EAAE;YACT,sCAAiB;YACjB,2EAAkC;YAClC,6DAA2B;YAC3B,oDAAuB;YACvB,2DAA2B;SAC5B;QACD,OAAO,EAAE,CAAC,sCAAiB,CAAC;KAC7B,CAAC;GACW,gBAAgB,CAAG"}
1
+ {"version":3,"file":"cloudflare.module.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/cloudflare.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,8DAA0D;AAC1D,uEAAmE;AACnE,6DAAyD;AACzD,iGAA0F;AAC1F,+GAAwG;AACxG,uFAAiF;AACjF,4FAAuF;AAahF,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAX5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,8BAAa,EAAE,oCAAgB,CAAC;QAC1C,SAAS,EAAE;YACT,sCAAiB;YACjB,2EAAkC;YAClC,6DAA2B;YAC3B,oDAAuB;YACvB,2DAA2B;SAC5B;QACD,OAAO,EAAE,CAAC,sCAAiB,CAAC;KAC7B,CAAC;GACW,gBAAgB,CAAG"}
@@ -15,12 +15,12 @@ export declare class CloudflareService {
15
15
  private logger;
16
16
  constructor(delayer: DelayerService, checker: CheckCloudflareBlockUseCase, reporter: ReportCloudflareUseCase, repository: CloudflareRepositoryService, normalizer: NormalizeCloudflareResponseUseCase);
17
17
  check(response: CrawleeResponse): boolean;
18
- get blocks(): import("./types/block-info").BlockInfo[];
18
+ getBlocks(): Promise<import("./types/block-info").BlockInfo[]>;
19
19
  handle(response: CrawleeResponse, blockOptions?: IHandleBlockOption): Promise<void>;
20
20
  report(stats: FinalStatistics): {
21
21
  blocks: number;
22
22
  total: number;
23
23
  percent: number;
24
24
  };
25
- reset(): void;
25
+ reset(): Promise<void>;
26
26
  }
@@ -33,23 +33,23 @@ let CloudflareService = CloudflareService_1 = class CloudflareService {
33
33
  check(response) {
34
34
  return this.checker.execute(response);
35
35
  }
36
- get blocks() {
37
- return this.repository.blocks;
36
+ async getBlocks() {
37
+ return this.repository.getBlocks();
38
38
  }
39
39
  async handle(response, blockOptions) {
40
40
  const normalized = this.normalizer.execute(response);
41
41
  const { options } = new handle_request_types_1.HandleBlockOption(blockOptions);
42
42
  const { url } = normalized;
43
43
  const { method, body, delay } = options;
44
- this.repository.add({ url, method, body });
44
+ await this.repository.add({ url, method, body });
45
45
  this.logger.log(`🚧 ${url}`);
46
46
  return await this.delayer.wait(url, delay?.min, delay?.max);
47
47
  }
48
48
  report(stats) {
49
49
  return this.reporter.execute(stats);
50
50
  }
51
- reset() {
52
- this.repository.reset();
51
+ async reset() {
52
+ await this.repository.reset();
53
53
  }
54
54
  };
55
55
  exports.CloudflareService = CloudflareService;
@@ -57,7 +57,7 @@ __decorate([
57
57
  (0, event_emitter_1.OnEvent)(event_enum_1.ScrapingEvent.RESET),
58
58
  __metadata("design:type", Function),
59
59
  __metadata("design:paramtypes", []),
60
- __metadata("design:returntype", void 0)
60
+ __metadata("design:returntype", Promise)
61
61
  ], CloudflareService.prototype, "reset", null);
62
62
  exports.CloudflareService = CloudflareService = CloudflareService_1 = __decorate([
63
63
  (0, common_1.Injectable)(),
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.service.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/cloudflare.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAGhD,gEAA4D;AAC5D,uDAAoD;AACpD,iGAA0F;AAC1F,uFAAiF;AACjF,4FAAuF;AACvF,+GAAwG;AAKxG,uEAAiE;AACjE,6DAA6D;AAGtD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG5B,YACmB,OAAuB,EACvB,OAAoC,EACpC,QAAiC,EACjC,UAAuC,EACvC,UAA8C;QAJ9C,YAAO,GAAP,OAAO,CAAgB;QACvB,YAAO,GAAP,OAAO,CAA6B;QACpC,aAAQ,GAAR,QAAQ,CAAyB;QACjC,eAAU,GAAV,UAAU,CAA6B;QACvC,eAAU,GAAV,UAAU,CAAoC;QAPzD,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAQjD,CAAC;IAEJ,KAAK,CAAC,QAAyB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAyB,EAAE,YAAiC;QACvE,MAAM,UAAU,GAAuB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,wCAAiB,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAE7B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,KAAsB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAtCY,8CAAiB;AAmC5B;IADC,IAAA,uBAAO,EAAC,0BAAa,CAAC,KAAK,CAAC;;;;8CAG5B;4BArCU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAKiB,gCAAc;QACd,6DAA2B;QAC1B,oDAAuB;QACrB,2DAA2B;QAC3B,2EAAkC;GARtD,iBAAiB,CAsC7B"}
1
+ {"version":3,"file":"cloudflare.service.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/cloudflare.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAgD;AAGhD,gEAA4D;AAC5D,uDAAoD;AACpD,iGAA0F;AAC1F,uFAAiF;AACjF,4FAAuF;AACvF,+GAAwG;AAKxG,uEAAiE;AACjE,6DAA6D;AAGtD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG5B,YACmB,OAAuB,EACvB,OAAoC,EACpC,QAAiC,EACjC,UAAuC,EACvC,UAA8C;QAJ9C,YAAO,GAAP,OAAO,CAAgB;QACvB,YAAO,GAAP,OAAO,CAA6B;QACpC,aAAQ,GAAR,QAAQ,CAAyB;QACjC,eAAU,GAAV,UAAU,CAA6B;QACvC,eAAU,GAAV,UAAU,CAAoC;QAPzD,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAQjD,CAAC;IAEJ,KAAK,CAAC,QAAyB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAyB,EAAE,YAAiC;QACvE,MAAM,UAAU,GAAuB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,wCAAiB,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QACxC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;QAE7B,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,KAAsB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF,CAAA;AAtCY,8CAAiB;AAmCtB;IADL,IAAA,uBAAO,EAAC,0BAAa,CAAC,KAAK,CAAC;;;;8CAG5B;4BArCU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAKiB,gCAAc;QACd,6DAA2B;QAC1B,oDAAuB;QACrB,2DAA2B;QAC3B,2EAAkC;GARtD,iBAAiB,CAsC7B"}
@@ -1,12 +1,12 @@
1
1
  import { BlockInfo } from '../types/block-info';
2
+ import { CloudflareBlockRepositoryService } from '../../repository/services/cloudflare-block.repository.service';
2
3
  export declare class CloudflareRepositoryService {
3
- private map;
4
- private logger;
5
- constructor();
6
- get size(): number;
7
- get blocks(): BlockInfo[];
4
+ private readonly repo;
5
+ constructor(repo: CloudflareBlockRepositoryService);
6
+ getSize(): Promise<number>;
7
+ getBlocks(): Promise<BlockInfo[]>;
8
8
  private hash;
9
- add(block: BlockInfo): void;
10
- exists(block: BlockInfo): boolean;
11
- reset(): void;
9
+ add(block: BlockInfo): Promise<void>;
10
+ exists(block: BlockInfo): Promise<boolean>;
11
+ reset(): Promise<void>;
12
12
  }
@@ -8,48 +8,68 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var CloudflareRepositoryService_1;
12
11
  Object.defineProperty(exports, "__esModule", { value: true });
13
12
  exports.CloudflareRepositoryService = void 0;
14
13
  const common_1 = require("@nestjs/common");
15
14
  const crypto_1 = require("crypto");
16
- const logger_1 = require("../../../common/logger/logger");
17
- let CloudflareRepositoryService = CloudflareRepositoryService_1 = class CloudflareRepositoryService {
18
- constructor() {
19
- this.map = new Map();
20
- this.logger = new logger_1.Logger(CloudflareRepositoryService_1.name);
15
+ const cloudflare_block_1 = require("../../../common/class/cloudflare-block");
16
+ const cloudflare_block_repository_service_1 = require("../../repository/services/cloudflare-block.repository.service");
17
+ let CloudflareRepositoryService = class CloudflareRepositoryService {
18
+ constructor(repo) {
19
+ this.repo = repo;
21
20
  }
22
- get size() {
23
- return this.map.size;
21
+ async getSize() {
22
+ return this.repo.count();
24
23
  }
25
- get blocks() {
26
- return Array.from(this.map.values());
24
+ async getBlocks() {
25
+ const blocks = await this.repo.find();
26
+ return blocks.map((block) => {
27
+ const { url, method, body, count, timestamp } = block;
28
+ return { url, method, body, count, timestamp };
29
+ });
27
30
  }
28
31
  hash(block) {
29
- const data = JSON.stringify(block);
32
+ const data = JSON.stringify({
33
+ url: block.url,
34
+ method: block.method,
35
+ body: block.body,
36
+ });
30
37
  return (0, crypto_1.createHash)('sha256').update(data).digest('hex');
31
38
  }
32
- add(block) {
33
- const key = this.hash(block);
34
- const mappedBlock = this.map.get(key);
35
- const previous = mappedBlock?.count ?? 0;
36
- this.map.set(key, {
37
- ...block,
38
- count: previous + 1,
39
- timestamp: new Date(),
39
+ async add(block) {
40
+ const id = this.hash(block);
41
+ const [existing] = await this.repo.find({
42
+ where: { id },
40
43
  });
44
+ if (existing) {
45
+ const { count = 1 } = existing;
46
+ const updated = new cloudflare_block_1.CloudflareBlock({
47
+ ...existing.getData(),
48
+ count: count + 1,
49
+ timestamp: new Date(),
50
+ });
51
+ return await this.repo.update([updated]);
52
+ }
53
+ const { url, method, body, count = 1 } = block;
54
+ const timestamp = new Date();
55
+ const props = { id, url, method, body, count, timestamp };
56
+ const newBlock = new cloudflare_block_1.CloudflareBlock(props);
57
+ return await this.repo.save([newBlock]);
41
58
  }
42
- exists(block) {
43
- const key = this.hash(block);
44
- return this.map.has(key);
59
+ async exists(block) {
60
+ const id = this.hash(block);
61
+ const count = await this.repo.count({
62
+ where: { id },
63
+ });
64
+ return count > 0;
45
65
  }
46
- reset() {
47
- this.map.clear();
66
+ async reset() {
67
+ await this.repo.reset();
48
68
  }
49
69
  };
50
70
  exports.CloudflareRepositoryService = CloudflareRepositoryService;
51
- exports.CloudflareRepositoryService = CloudflareRepositoryService = CloudflareRepositoryService_1 = __decorate([
71
+ exports.CloudflareRepositoryService = CloudflareRepositoryService = __decorate([
52
72
  (0, common_1.Injectable)(),
53
- __metadata("design:paramtypes", [])
73
+ __metadata("design:paramtypes", [cloudflare_block_repository_service_1.CloudflareBlockRepositoryService])
54
74
  ], CloudflareRepositoryService);
55
75
  //# sourceMappingURL=cloudflare-repository.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-repository.service.js","sourceRoot":"","sources":["../../../../src/modules/cloudflare/services/cloudflare-repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mCAAoC;AAEpC,0DAAuD;AAIhD,IAAM,2BAA2B,mCAAjC,MAAM,2BAA2B;IAItC;QAHQ,QAAG,GAAG,IAAI,GAAG,EAAqB,CAAC;QACnC,WAAM,GAAG,IAAI,eAAM,CAAC,6BAA2B,CAAC,IAAI,CAAC,CAAC;IAE/C,CAAC;IAEhB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,IAAI,CAAC,KAAgB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,KAAgB;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;YAChB,GAAG,KAAK;YACR,KAAK,EAAE,QAAQ,GAAG,CAAC;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAgB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACF,CAAA;AAvCY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;;GACA,2BAA2B,CAuCvC"}
1
+ {"version":3,"file":"cloudflare-repository.service.js","sourceRoot":"","sources":["../../../../src/modules/cloudflare/services/cloudflare-repository.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { TypeOrmModuleOptions } from '@nestjs/typeorm';
2
2
  import { ImageEntity } from '../entities/image.entity';
3
3
  import { ProvinceEntity } from '../entities/province.entity';
4
- export declare const ENTITIES: (typeof ImageEntity | typeof ProvinceEntity)[];
4
+ import { CloudflareBlockEntity } from '../entities/cloudflare-block.entity';
5
+ export declare const ENTITIES: (typeof ProvinceEntity | typeof ImageEntity | typeof CloudflareBlockEntity)[];
5
6
  export declare const DATABASE_PATH = "./output/scraping.db";
6
7
  export declare const DefaultDatabaseConfig: TypeOrmModuleOptions;
@@ -6,12 +6,14 @@ const category_entity_1 = require("../entities/category.entity");
6
6
  const image_entity_1 = require("../entities/image.entity");
7
7
  const provider_entity_1 = require("../entities/provider.entity");
8
8
  const province_entity_1 = require("../entities/province.entity");
9
+ const cloudflare_block_entity_1 = require("../entities/cloudflare-block.entity");
9
10
  exports.ENTITIES = [
10
11
  product_entity_1.ProductEntity,
11
12
  category_entity_1.CategoryEntity,
12
13
  image_entity_1.ImageEntity,
13
14
  provider_entity_1.ProviderEntity,
14
15
  province_entity_1.ProvinceEntity,
16
+ cloudflare_block_entity_1.CloudflareBlockEntity,
15
17
  ];
16
18
  exports.DATABASE_PATH = './output/scraping.db';
17
19
  exports.DefaultDatabaseConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"database.config.js","sourceRoot":"","sources":["../../../../src/modules/repository/config/database.config.ts"],"names":[],"mappings":";;;AAEA,+DAA2D;AAC3D,iEAA6D;AAC7D,2DAAuD;AACvD,iEAA6D;AAC7D,iEAA6D;AAEhD,QAAA,QAAQ,GAAG;IACtB,8BAAa;IACb,gCAAc;IACd,0BAAW;IACX,gCAAc;IACd,gCAAc;CACf,CAAC;AAEW,QAAA,aAAa,GAAG,sBAAsB,CAAC;AAEvC,QAAA,qBAAqB,GAAyB;IACzD,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,qBAAa;IACvB,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,gBAAQ;CACnB,CAAC"}
1
+ {"version":3,"file":"database.config.js","sourceRoot":"","sources":["../../../../src/modules/repository/config/database.config.ts"],"names":[],"mappings":";;;AAEA,+DAA2D;AAC3D,iEAA6D;AAC7D,2DAAuD;AACvD,iEAA6D;AAC7D,iEAA6D;AAC7D,iFAA4E;AAE/D,QAAA,QAAQ,GAAG;IACtB,8BAAa;IACb,gCAAc;IACd,0BAAW;IACX,gCAAc;IACd,gCAAc;IACd,+CAAqB;CACtB,CAAC;AAEW,QAAA,aAAa,GAAG,sBAAsB,CAAC;AAEvC,QAAA,qBAAqB,GAAyB;IACzD,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,qBAAa;IACvB,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,gBAAQ;CACnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class CloudflareBlockEntity {
2
+ id: string;
3
+ url: string;
4
+ method: string;
5
+ body?: string;
6
+ count: number;
7
+ timestamp: Date;
8
+ }
@@ -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.CloudflareBlockEntity = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ let CloudflareBlockEntity = class CloudflareBlockEntity {
15
+ };
16
+ exports.CloudflareBlockEntity = CloudflareBlockEntity;
17
+ __decorate([
18
+ (0, typeorm_1.PrimaryColumn)(),
19
+ __metadata("design:type", String)
20
+ ], CloudflareBlockEntity.prototype, "id", void 0);
21
+ __decorate([
22
+ (0, typeorm_1.Column)(),
23
+ __metadata("design:type", String)
24
+ ], CloudflareBlockEntity.prototype, "url", void 0);
25
+ __decorate([
26
+ (0, typeorm_1.Column)(),
27
+ __metadata("design:type", String)
28
+ ], CloudflareBlockEntity.prototype, "method", void 0);
29
+ __decorate([
30
+ (0, typeorm_1.Column)({ nullable: true }),
31
+ __metadata("design:type", String)
32
+ ], CloudflareBlockEntity.prototype, "body", void 0);
33
+ __decorate([
34
+ (0, typeorm_1.Column)({ default: 1 }),
35
+ __metadata("design:type", Number)
36
+ ], CloudflareBlockEntity.prototype, "count", void 0);
37
+ __decorate([
38
+ (0, typeorm_1.Column)({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP' }),
39
+ __metadata("design:type", Date)
40
+ ], CloudflareBlockEntity.prototype, "timestamp", void 0);
41
+ exports.CloudflareBlockEntity = CloudflareBlockEntity = __decorate([
42
+ (0, typeorm_1.Entity)('cloudflare_blocks')
43
+ ], CloudflareBlockEntity);
44
+ //# sourceMappingURL=cloudflare-block.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-block.entity.js","sourceRoot":"","sources":["../../../../src/modules/repository/entities/cloudflare-block.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAwD;AAGjD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAkBjC,CAAA;AAlBY,sDAAqB;AAEhC;IADC,IAAA,uBAAa,GAAE;;iDACL;AAGX;IADC,IAAA,gBAAM,GAAE;;kDACG;AAGZ;IADC,IAAA,gBAAM,GAAE;;qDACM;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACb;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;oDACT;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;8BACtD,IAAI;wDAAC;gCAjBL,qBAAqB;IADjC,IAAA,gBAAM,EAAC,mBAAmB,CAAC;GACf,qBAAqB,CAkBjC"}
@@ -16,6 +16,7 @@ const product_repository_service_1 = require("./services/product.repository.serv
16
16
  const provider_repository_service_1 = require("./services/provider.repository.service");
17
17
  const province_repository_service_1 = require("./services/province.repository.service");
18
18
  const image_repository_service_1 = require("./services/image.repository.service");
19
+ const cloudflare_block_repository_service_1 = require("./services/cloudflare-block.repository.service");
19
20
  const database_config_1 = require("./config/database.config");
20
21
  let RepositoryModule = RepositoryModule_1 = class RepositoryModule {
21
22
  static forRoot(config) {
@@ -34,6 +35,7 @@ let RepositoryModule = RepositoryModule_1 = class RepositoryModule {
34
35
  product_repository_service_1.ProductRepositoryService,
35
36
  provider_repository_service_1.ProviderRepositoryService,
36
37
  province_repository_service_1.ProvinceRepositoryService,
38
+ cloudflare_block_repository_service_1.CloudflareBlockRepositoryService,
37
39
  ],
38
40
  exports: [
39
41
  typeorm_1.TypeOrmModule,
@@ -43,6 +45,7 @@ let RepositoryModule = RepositoryModule_1 = class RepositoryModule {
43
45
  product_repository_service_1.ProductRepositoryService,
44
46
  provider_repository_service_1.ProviderRepositoryService,
45
47
  province_repository_service_1.ProvinceRepositoryService,
48
+ cloudflare_block_repository_service_1.CloudflareBlockRepositoryService,
46
49
  ],
47
50
  };
48
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repository.module.js","sourceRoot":"","sources":["../../../src/modules/repository/repository.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAsE;AAEtE,6DAAyD;AACzD,wFAAmF;AACnF,sFAAiF;AACjF,wFAAmF;AACnF,wFAAmF;AACnF,kFAA6E;AAC7E,8DAA2E;AAGpE,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,MAAsC;QACnD,MAAM,EAAE,GAAG,EAAE,GAAG,uCAAqB,EAAE,GAAG,MAAM,EAA0B,CAAC;QAE3E,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE;gBACP,uBAAa,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;gBAChC,uBAAa,CAAC,UAAU,CAAC,0BAAQ,CAAC;aACnC;YACD,SAAS,EAAE;gBACT,sCAAiB;gBACjB,uDAAyB;gBACzB,iDAAsB;gBACtB,qDAAwB;gBACxB,uDAAyB;gBACzB,uDAAyB;aAC1B;YACD,OAAO,EAAE;gBACP,uBAAa;gBACb,sCAAiB;gBACjB,uDAAyB;gBACzB,iDAAsB;gBACtB,qDAAwB;gBACxB,uDAAyB;gBACzB,uDAAyB;aAC1B;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA9BY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CA8B5B"}
1
+ {"version":3,"file":"repository.module.js","sourceRoot":"","sources":["../../../src/modules/repository/repository.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAsE;AAEtE,6DAAyD;AACzD,wFAAmF;AACnF,sFAAiF;AACjF,wFAAmF;AACnF,wFAAmF;AACnF,kFAA6E;AAC7E,wGAAkG;AAClG,8DAA2E;AAGpE,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAC3B,MAAM,CAAC,OAAO,CAAC,MAAsC;QACnD,MAAM,EAAE,GAAG,EAAE,GAAG,uCAAqB,EAAE,GAAG,MAAM,EAA0B,CAAC;QAE3E,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE;gBACP,uBAAa,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;gBAChC,uBAAa,CAAC,UAAU,CAAC,0BAAQ,CAAC;aACnC;YACD,SAAS,EAAE;gBACT,sCAAiB;gBACjB,uDAAyB;gBACzB,iDAAsB;gBACtB,qDAAwB;gBACxB,uDAAyB;gBACzB,uDAAyB;gBACzB,sEAAgC;aACjC;YACD,OAAO,EAAE;gBACP,uBAAa;gBACb,sCAAiB;gBACjB,uDAAyB;gBACzB,iDAAsB;gBACtB,qDAAwB;gBACxB,uDAAyB;gBACzB,uDAAyB;gBACzB,sEAAgC;aACjC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAhCY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,gBAAgB,CAgC5B"}
@@ -0,0 +1,16 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ import { Repository } from 'typeorm';
3
+ import { CloudflareBlock } from '../../../common/class/cloudflare-block';
4
+ import { CloudflareBlockEntity } from '../entities/cloudflare-block.entity';
5
+ import { EntityRepository } from '../entity.repository.service';
6
+ declare const Repo: abstract new (repository: Repository<CloudflareBlockEntity>, config: ConfigService, key: string, label: string) => EntityRepository<CloudflareBlockEntity, CloudflareBlock>;
7
+ export declare class CloudflareBlockRepositoryService extends Repo {
8
+ protected readonly repository: Repository<CloudflareBlockEntity>;
9
+ protected readonly config: ConfigService;
10
+ constructor(repository: Repository<CloudflareBlockEntity>, config: ConfigService);
11
+ map(entity: CloudflareBlockEntity): CloudflareBlock;
12
+ notify(entity: CloudflareBlockEntity): string;
13
+ save(blocks: CloudflareBlock[]): Promise<void>;
14
+ update(blocks: CloudflareBlock[]): Promise<void>;
15
+ }
16
+ export {};
@@ -0,0 +1,52 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CloudflareBlockRepositoryService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const config_1 = require("@nestjs/config");
18
+ const typeorm_1 = require("@nestjs/typeorm");
19
+ const typeorm_2 = require("typeorm");
20
+ const cloudflare_block_1 = require("../../../common/class/cloudflare-block");
21
+ const cloudflare_block_entity_1 = require("../entities/cloudflare-block.entity");
22
+ const entity_repository_service_1 = require("../entity.repository.service");
23
+ const Repo = (entity_repository_service_1.EntityRepository);
24
+ const key = 'REPOSITORY_SAVE_CLOUDFLARE_BLOCK_LOG';
25
+ const label = 'cloudflare blocks';
26
+ let CloudflareBlockRepositoryService = class CloudflareBlockRepositoryService extends Repo {
27
+ constructor(repository, config) {
28
+ super(repository, config, key, label);
29
+ this.repository = repository;
30
+ this.config = config;
31
+ }
32
+ map(entity) {
33
+ return new cloudflare_block_1.CloudflareBlock(entity);
34
+ }
35
+ notify(entity) {
36
+ return `${entity.method} ${entity.url}`;
37
+ }
38
+ async save(blocks) {
39
+ await this._save(blocks);
40
+ }
41
+ async update(blocks) {
42
+ await this._update(blocks);
43
+ }
44
+ };
45
+ exports.CloudflareBlockRepositoryService = CloudflareBlockRepositoryService;
46
+ exports.CloudflareBlockRepositoryService = CloudflareBlockRepositoryService = __decorate([
47
+ (0, common_1.Injectable)(),
48
+ __param(0, (0, typeorm_1.InjectRepository)(cloudflare_block_entity_1.CloudflareBlockEntity)),
49
+ __metadata("design:paramtypes", [typeorm_2.Repository,
50
+ config_1.ConfigService])
51
+ ], CloudflareBlockRepositoryService);
52
+ //# sourceMappingURL=cloudflare-block.repository.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-block.repository.service.js","sourceRoot":"","sources":["../../../../src/modules/repository/services/cloudflare-block.repository.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAC/C,6CAAmD;AACnD,qCAAqC;AAErC,6EAAyE;AACzE,iFAA4E;AAC5E,4EAAgE;AAEhE,MAAM,IAAI,GAAG,CAAA,4CAAwD,CAAA,CAAC;AACtE,MAAM,GAAG,GAAG,sCAAsC,CAAC;AACnD,MAAM,KAAK,GAAG,mBAAmB,CAAC;AAG3B,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,IAAI;IACxD,YAEqB,UAA6C,EAC7C,MAAqB;QAExC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAHnB,eAAU,GAAV,UAAU,CAAmC;QAC7C,WAAM,GAAN,MAAM,CAAe;IAG1C,CAAC;IAED,GAAG,CAAC,MAA6B;QAC/B,OAAO,IAAI,kCAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,MAA6B;QAClC,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAyB;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AAxBY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,+CAAqB,CAAC,CAAA;qCACT,oBAAU;QACd,sBAAa;GAJ/B,gCAAgC,CAwB5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rafikidota/cuba-ofertas-scraping",
3
- "version": "0.54.0",
3
+ "version": "0.55.0",
4
4
  "description": "Sometimes, the best way to solve your own problems is to help someone else.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,8 +15,8 @@
15
15
  "module": "./dist/index.js",
16
16
  "types": "./dist/index.d.ts",
17
17
  "devDependencies": {
18
- "@aws-sdk/client-s3": "3.1033.0",
19
- "@aws-sdk/s3-request-presigner": "3.1033.0",
18
+ "@aws-sdk/client-s3": "3.1039.0",
19
+ "@aws-sdk/s3-request-presigner": "3.1039.0",
20
20
  "@crawlee/cheerio": "3.16.0",
21
21
  "@crawlee/playwright": "3.16.0",
22
22
  "@eslint/eslintrc": "3.3.5",
@@ -25,7 +25,7 @@
25
25
  "@nestjs/common": "11.1.19",
26
26
  "@nestjs/config": "4.0.4",
27
27
  "@nestjs/core": "11.1.19",
28
- "@nestjs/event-emitter": "3.0.1",
28
+ "@nestjs/event-emitter": "3.1.0",
29
29
  "@nestjs/microservices": "11.1.19",
30
30
  "@nestjs/schedule": "6.1.3",
31
31
  "@nestjs/terminus": "11.1.1",
@@ -33,10 +33,10 @@
33
33
  "@types/archiver": "7.0.0",
34
34
  "@types/better-sqlite3": "7.6.13",
35
35
  "@types/node": "25.6.0",
36
- "@typescript-eslint/eslint-plugin": "8.59.0",
37
- "@typescript-eslint/parser": "8.59.0",
36
+ "@typescript-eslint/eslint-plugin": "8.59.1",
37
+ "@typescript-eslint/parser": "8.59.1",
38
38
  "archiver": "7.0.1",
39
- "axios": "1.15.1",
39
+ "axios": "1.15.2",
40
40
  "better-sqlite3": "12.9.0",
41
41
  "cheerio": "1.2.0",
42
42
  "class-transformer": "0.5.1",
@@ -59,7 +59,7 @@
59
59
  "telegraf": "4.16.3",
60
60
  "typeorm": "0.3.28",
61
61
  "typescript": "5.9.3",
62
- "typescript-eslint": "8.59.0"
62
+ "typescript-eslint": "8.59.1"
63
63
  },
64
64
  "scripts": {
65
65
  "prebuild": "rimraf -rf dist",