@edirect/rate-limit-module 11.0.43 → 11.0.45

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 (82) hide show
  1. package/package.json +3 -3
  2. package/dist/README.md +0 -499
  3. package/dist/package.json +0 -41
  4. package/dist/src/decorators/rate-limiting-rule.decorator.d.ts +0 -10
  5. package/dist/src/decorators/rate-limiting-rule.decorator.d.ts.map +0 -1
  6. package/dist/src/decorators/rate-limiting-rule.decorator.js +0 -7
  7. package/dist/src/guards/rate-limiting.guard.d.ts +0 -21
  8. package/dist/src/guards/rate-limiting.guard.d.ts.map +0 -1
  9. package/dist/src/guards/rate-limiting.guard.js +0 -248
  10. package/dist/src/index.d.ts +0 -11
  11. package/dist/src/index.d.ts.map +0 -1
  12. package/dist/src/index.js +0 -14
  13. package/dist/src/main.d.ts +0 -2
  14. package/dist/src/main.d.ts.map +0 -1
  15. package/dist/src/main.js +0 -9
  16. package/dist/src/object.utils.d.ts +0 -3
  17. package/dist/src/object.utils.d.ts.map +0 -1
  18. package/dist/src/object.utils.js +0 -38
  19. package/dist/src/rate-limiting.module.d.ts +0 -3
  20. package/dist/src/rate-limiting.module.d.ts.map +0 -1
  21. package/dist/src/rate-limiting.module.js +0 -31
  22. package/dist/src/rules/dto/pagination.dto.d.ts +0 -6
  23. package/dist/src/rules/dto/pagination.dto.d.ts.map +0 -1
  24. package/dist/src/rules/dto/pagination.dto.js +0 -42
  25. package/dist/src/rules/dto/rule.dto.d.ts +0 -24
  26. package/dist/src/rules/dto/rule.dto.d.ts.map +0 -1
  27. package/dist/src/rules/dto/rule.dto.js +0 -198
  28. package/dist/src/rules/interface/pagination.interface.d.ts +0 -7
  29. package/dist/src/rules/interface/pagination.interface.d.ts.map +0 -1
  30. package/dist/src/rules/interface/pagination.interface.js +0 -2
  31. package/dist/src/rules/interface/rule.interface.d.ts +0 -29
  32. package/dist/src/rules/interface/rule.interface.d.ts.map +0 -1
  33. package/dist/src/rules/interface/rule.interface.js +0 -2
  34. package/dist/src/rules/rule.controller.d.ts +0 -14
  35. package/dist/src/rules/rule.controller.d.ts.map +0 -1
  36. package/dist/src/rules/rule.controller.js +0 -87
  37. package/dist/src/rules/rule.module.d.ts +0 -5
  38. package/dist/src/rules/rule.module.d.ts.map +0 -1
  39. package/dist/src/rules/rule.module.js +0 -38
  40. package/dist/src/rules/rule.repository.d.ts +0 -15
  41. package/dist/src/rules/rule.repository.d.ts.map +0 -1
  42. package/dist/src/rules/rule.repository.js +0 -79
  43. package/dist/src/rules/rule.schema.d.ts +0 -176
  44. package/dist/src/rules/rule.schema.d.ts.map +0 -1
  45. package/dist/src/rules/rule.schema.js +0 -150
  46. package/dist/src/rules/rule.service.d.ts +0 -26
  47. package/dist/src/rules/rule.service.d.ts.map +0 -1
  48. package/dist/src/rules/rule.service.js +0 -204
  49. package/dist/src/shared/cache/cache.service.d.ts +0 -10
  50. package/dist/src/shared/cache/cache.service.d.ts.map +0 -1
  51. package/dist/src/shared/cache/cache.service.js +0 -29
  52. package/dist/src/shared/dsl/dsl.interface.d.ts +0 -43
  53. package/dist/src/shared/dsl/dsl.interface.d.ts.map +0 -1
  54. package/dist/src/shared/dsl/dsl.interface.js +0 -9
  55. package/dist/src/shared/dsl/dsl.service.d.ts +0 -8
  56. package/dist/src/shared/dsl/dsl.service.d.ts.map +0 -1
  57. package/dist/src/shared/dsl/dsl.service.js +0 -87
  58. package/dist/src/shared/redis/redis.module.d.ts +0 -3
  59. package/dist/src/shared/redis/redis.module.d.ts.map +0 -1
  60. package/dist/src/shared/redis/redis.module.js +0 -32
  61. package/dist/src/shared/redis/redis.service.d.ts +0 -13
  62. package/dist/src/shared/redis/redis.service.d.ts.map +0 -1
  63. package/dist/src/shared/redis/redis.service.js +0 -53
  64. package/dist/src/shared/rule-engine/interface/rule-engine.interface.d.ts +0 -14
  65. package/dist/src/shared/rule-engine/interface/rule-engine.interface.d.ts.map +0 -1
  66. package/dist/src/shared/rule-engine/interface/rule-engine.interface.js +0 -2
  67. package/dist/src/shared/rule-engine/rule-engine.module.d.ts +0 -11
  68. package/dist/src/shared/rule-engine/rule-engine.module.d.ts.map +0 -1
  69. package/dist/src/shared/rule-engine/rule-engine.module.js +0 -51
  70. package/dist/src/shared/rule-engine/rule-engine.service.d.ts +0 -18
  71. package/dist/src/shared/rule-engine/rule-engine.service.d.ts.map +0 -1
  72. package/dist/src/shared/rule-engine/rule-engine.service.js +0 -134
  73. package/dist/src/shared/shared.module.d.ts +0 -3
  74. package/dist/src/shared/shared.module.d.ts.map +0 -1
  75. package/dist/src/shared/shared.module.js +0 -29
  76. package/dist/src/validators/rule.constraint.d.ts +0 -10
  77. package/dist/src/validators/rule.constraint.d.ts.map +0 -1
  78. package/dist/src/validators/rule.constraint.js +0 -49
  79. package/dist/src/validators/rule.validator.d.ts +0 -3
  80. package/dist/src/validators/rule.validator.d.ts.map +0 -1
  81. package/dist/src/validators/rule.validator.js +0 -16
  82. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.interface.d.ts","sourceRoot":"","sources":["../../../../src/rules/interface/pagination.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,29 +0,0 @@
1
- export interface IRule {
2
- ruleId?: string;
3
- name: string;
4
- targetAction?: string;
5
- expression: string;
6
- enabled?: boolean;
7
- errorMessage?: string;
8
- partner?: string;
9
- provider?: string;
10
- market?: string;
11
- productType?: string;
12
- variables?: Record<string, unknown>;
13
- variablesRequired?: boolean;
14
- deletedAt?: Date;
15
- createdAt?: Date;
16
- updatedAt?: Date;
17
- }
18
- export interface IFindRule {
19
- name?: string;
20
- targetAction?: string;
21
- enabled?: string;
22
- partner?: string | undefined;
23
- provider?: string | undefined;
24
- market?: string | undefined;
25
- productType?: string | undefined;
26
- page: number;
27
- limit: number;
28
- }
29
- //# sourceMappingURL=rule.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.interface.d.ts","sourceRoot":"","sources":["../../../../src/rules/interface/rule.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
1
- import { CreateRuleDTO, FindRuleDTO } from './dto/rule.dto';
2
- import { IPagination } from './interface/pagination.interface';
3
- import { IRule } from './interface/rule.interface';
4
- import { RuleService } from './rule.service';
5
- export declare class RuleController {
6
- private readonly ruleService;
7
- constructor(ruleService: RuleService);
8
- create(dto: CreateRuleDTO): Promise<IRule>;
9
- findAll(query: FindRuleDTO): Promise<IPagination<IRule[]>>;
10
- findOne(id: string): Promise<IRule>;
11
- updateSale(id: string, patchData: Partial<IRule>): Promise<IRule | null>;
12
- delete(id: string): Promise<void>;
13
- }
14
- //# sourceMappingURL=rule.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.controller.d.ts","sourceRoot":"","sources":["../../../src/rules/rule.controller.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,qBAEa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAMrD,MAAM,CAAS,GAAG,EAAE,aAAa;IAOjC,OAAO,CAAU,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IAOnE,OAAO,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAOhD,UAAU,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;IAOrE,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RuleController = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const swagger_1 = require("@nestjs/swagger");
7
- const auth_1 = require("@edirect/auth");
8
- const rule_dto_1 = require("./dto/rule.dto");
9
- const rule_service_1 = require("./rule.service");
10
- var ResourceServiceEnum;
11
- (function (ResourceServiceEnum) {
12
- ResourceServiceEnum["DEFAULT"] = "Default Resource";
13
- })(ResourceServiceEnum || (ResourceServiceEnum = {}));
14
- let RuleController = class RuleController {
15
- ruleService;
16
- constructor(ruleService) {
17
- this.ruleService = ruleService;
18
- }
19
- create(dto) {
20
- return this.ruleService.create(dto);
21
- }
22
- findAll(query) {
23
- return this.ruleService.findAll(query);
24
- }
25
- findOne(id) {
26
- return this.ruleService.findById(id);
27
- }
28
- updateSale(id, patchData) {
29
- return this.ruleService.updateOne(id, patchData);
30
- }
31
- delete(id) {
32
- return this.ruleService.delete(id);
33
- }
34
- };
35
- exports.RuleController = RuleController;
36
- tslib_1.__decorate([
37
- (0, common_1.Post)(),
38
- (0, swagger_1.ApiResponse)({ status: 201 }),
39
- (0, auth_1.Resources)(ResourceServiceEnum.DEFAULT),
40
- (0, common_1.UsePipes)(new common_1.ValidationPipe({ transform: true })),
41
- tslib_1.__param(0, (0, common_1.Body)()),
42
- tslib_1.__metadata("design:type", Function),
43
- tslib_1.__metadata("design:paramtypes", [rule_dto_1.CreateRuleDTO]),
44
- tslib_1.__metadata("design:returntype", void 0)
45
- ], RuleController.prototype, "create", null);
46
- tslib_1.__decorate([
47
- (0, common_1.Get)(),
48
- (0, auth_1.Resources)(ResourceServiceEnum.DEFAULT),
49
- (0, common_1.UsePipes)(new common_1.ValidationPipe({ transform: true })),
50
- tslib_1.__param(0, (0, common_1.Query)()),
51
- tslib_1.__metadata("design:type", Function),
52
- tslib_1.__metadata("design:paramtypes", [rule_dto_1.FindRuleDTO]),
53
- tslib_1.__metadata("design:returntype", Promise)
54
- ], RuleController.prototype, "findAll", null);
55
- tslib_1.__decorate([
56
- (0, common_1.Get)(':id'),
57
- (0, auth_1.Resources)(ResourceServiceEnum.DEFAULT),
58
- (0, common_1.UsePipes)(new common_1.ValidationPipe({ transform: true })),
59
- tslib_1.__param(0, (0, common_1.Param)('id')),
60
- tslib_1.__metadata("design:type", Function),
61
- tslib_1.__metadata("design:paramtypes", [String]),
62
- tslib_1.__metadata("design:returntype", Promise)
63
- ], RuleController.prototype, "findOne", null);
64
- tslib_1.__decorate([
65
- (0, common_1.Patch)(':id'),
66
- (0, auth_1.Resources)(ResourceServiceEnum.DEFAULT),
67
- (0, common_1.UsePipes)(new common_1.ValidationPipe({ transform: true })),
68
- tslib_1.__param(0, (0, common_1.Param)('id')),
69
- tslib_1.__param(1, (0, common_1.Body)()),
70
- tslib_1.__metadata("design:type", Function),
71
- tslib_1.__metadata("design:paramtypes", [String, Object]),
72
- tslib_1.__metadata("design:returntype", void 0)
73
- ], RuleController.prototype, "updateSale", null);
74
- tslib_1.__decorate([
75
- (0, common_1.Delete)(':id'),
76
- (0, auth_1.Resources)(ResourceServiceEnum.DEFAULT),
77
- (0, common_1.UsePipes)(new common_1.ValidationPipe({ transform: true })),
78
- tslib_1.__param(0, (0, common_1.Param)('id')),
79
- tslib_1.__metadata("design:type", Function),
80
- tslib_1.__metadata("design:paramtypes", [String]),
81
- tslib_1.__metadata("design:returntype", Promise)
82
- ], RuleController.prototype, "delete", null);
83
- exports.RuleController = RuleController = tslib_1.__decorate([
84
- (0, swagger_1.ApiTags)('rate-limiting-rule'),
85
- (0, common_1.Controller)('/rule'),
86
- tslib_1.__metadata("design:paramtypes", [rule_service_1.RuleService])
87
- ], RuleController);
@@ -1,5 +0,0 @@
1
- import { DynamicModule } from '@nestjs/common';
2
- export declare class RuleModule {
3
- static register(): DynamicModule;
4
- }
5
- //# sourceMappingURL=rule.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.module.d.ts","sourceRoot":"","sources":["../../../src/rules/rule.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAQvD,qBACa,UAAU;IACrB,MAAM,CAAC,QAAQ,IAAI,aAAa;CAqBjC"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var RuleModule_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.RuleModule = void 0;
5
- const tslib_1 = require("tslib");
6
- const logger_1 = require("@edirect/logger");
7
- const common_1 = require("@nestjs/common");
8
- const mongoose_1 = require("@nestjs/mongoose");
9
- const shared_module_1 = require("../shared/shared.module");
10
- const rule_controller_1 = require("./rule.controller");
11
- const rule_repository_1 = require("./rule.repository");
12
- const rule_schema_1 = require("./rule.schema");
13
- const rule_service_1 = require("./rule.service");
14
- let RuleModule = RuleModule_1 = class RuleModule {
15
- static register() {
16
- const enableController = process.env.ENABLE_RATE_LIMITING_RULE_CONTROLLER === 'true';
17
- return {
18
- module: RuleModule_1,
19
- imports: [
20
- logger_1.LoggerModule,
21
- shared_module_1.SharedModule,
22
- mongoose_1.MongooseModule.forFeature([
23
- {
24
- name: rule_schema_1.RateLimitingRule.name,
25
- schema: rule_schema_1.RateLimitingRuleSchema,
26
- },
27
- ]),
28
- ],
29
- controllers: enableController ? [rule_controller_1.RuleController] : [],
30
- providers: [rule_service_1.RuleService, rule_repository_1.RuleRepository],
31
- exports: [rule_service_1.RuleService, rule_repository_1.RuleRepository],
32
- };
33
- }
34
- };
35
- exports.RuleModule = RuleModule;
36
- exports.RuleModule = RuleModule = RuleModule_1 = tslib_1.__decorate([
37
- (0, common_1.Module)({})
38
- ], RuleModule);
@@ -1,15 +0,0 @@
1
- import { Model } from 'mongoose';
2
- import { IPagination } from './interface/pagination.interface';
3
- import { IFindRule, IRule } from './interface/rule.interface';
4
- import { RuleDocument } from './rule.schema';
5
- export declare class RuleRepository {
6
- private readonly model;
7
- private readonly MAX_LIMIT;
8
- constructor(model: Model<RuleDocument>);
9
- save(data: IRule): Promise<IRule>;
10
- update(ruleRateId: string, data: Partial<IRule>): Promise<IRule | null>;
11
- findOneByRateId(rateRuleId: string): Promise<IRule | null>;
12
- findAll(query: IFindRule): Promise<IPagination<IRule[]>>;
13
- private buildQuery;
14
- }
15
- //# sourceMappingURL=rule.repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.repository.d.ts","sourceRoot":"","sources":["../../../src/rules/rule.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAoB,YAAY,EAAE,MAAM,eAAe,CAAC;AAE/D,qBACa,cAAc;IAKvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAItB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC;IAGvC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAIjC,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GACnB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAMlB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAShE,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IA2CxD,OAAO,CAAC,UAAU;CASnB"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RuleRepository = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const mongoose_1 = require("@nestjs/mongoose");
7
- const mongoose_2 = require("mongoose");
8
- const rule_schema_1 = require("./rule.schema");
9
- let RuleRepository = class RuleRepository {
10
- model;
11
- MAX_LIMIT = 100;
12
- constructor(model) {
13
- this.model = model;
14
- }
15
- async save(data) {
16
- return new this.model(data).save();
17
- }
18
- async update(ruleRateId, data) {
19
- return this.model.findOneAndUpdate({ ruleId: ruleRateId }, data, {
20
- new: true,
21
- });
22
- }
23
- async findOneByRateId(rateRuleId) {
24
- return this.model
25
- .findOne({ ruleId: rateRuleId })
26
- .select('-__v')
27
- .select('-_id')
28
- .lean()
29
- .exec();
30
- }
31
- findAll(query) {
32
- const { page, limit } = query;
33
- const LIMIT = limit && limit < this.MAX_LIMIT ? limit : this.MAX_LIMIT;
34
- let limitCount = 500;
35
- while (limitCount < page * LIMIT) {
36
- limitCount += 500;
37
- }
38
- const queryBuilt = this.buildQuery(query);
39
- const count = this.model
40
- .countDocuments(queryBuilt)
41
- .limit(limitCount)
42
- .exec();
43
- const rules = this.model
44
- .find(queryBuilt)
45
- .limit(LIMIT)
46
- .skip((page - 1) * LIMIT)
47
- .select('-__v')
48
- .exec();
49
- return Promise.all([count, rules]).then(values => {
50
- const [count, result] = values;
51
- const mapped = result.map(e => e.toJSON());
52
- let currentCount = count;
53
- if (count > limitCount) {
54
- currentCount = limitCount;
55
- }
56
- const totalPages = Math.ceil(count / LIMIT);
57
- return {
58
- total: currentCount,
59
- currentPage: +page || 1,
60
- totalPages,
61
- data: mapped,
62
- };
63
- });
64
- }
65
- buildQuery(queryParameters) {
66
- return Object.entries(queryParameters).reduce((acc, [key, value]) => {
67
- if (key === 'page' || key === 'limit')
68
- return acc;
69
- acc[key] = value || '';
70
- return acc;
71
- }, {});
72
- }
73
- };
74
- exports.RuleRepository = RuleRepository;
75
- exports.RuleRepository = RuleRepository = tslib_1.__decorate([
76
- (0, common_1.Injectable)(),
77
- tslib_1.__param(0, (0, mongoose_1.InjectModel)(rule_schema_1.RateLimitingRule.name)),
78
- tslib_1.__metadata("design:paramtypes", [mongoose_2.Model])
79
- ], RuleRepository);
@@ -1,176 +0,0 @@
1
- import { Document } from 'mongoose';
2
- import { IRule } from './interface/rule.interface';
3
- export type RuleDocument = RateLimitingRule & Document;
4
- export declare class RateLimitingRule implements IRule {
5
- ruleId: string;
6
- name: string;
7
- targetAction?: string;
8
- expression: string;
9
- enabled: boolean;
10
- market: string;
11
- errorMessage?: string;
12
- partner: string;
13
- provider?: string;
14
- productType?: string;
15
- variables?: Record<string, string>;
16
- variablesRequired?: boolean;
17
- deletedAt?: Date;
18
- createdAt?: Date;
19
- updatedAt?: Date;
20
- }
21
- export declare const RateLimitingRuleSchema: import("mongoose").Schema<RateLimitingRule, import("mongoose").Model<RateLimitingRule, any, any, any, (Document<unknown, any, RateLimitingRule, any, import("mongoose").DefaultSchemaOptions> & RateLimitingRule & {
22
- _id: import("mongoose").Types.ObjectId;
23
- } & {
24
- __v: number;
25
- } & {
26
- id: string;
27
- }) | (Document<unknown, any, RateLimitingRule, any, import("mongoose").DefaultSchemaOptions> & RateLimitingRule & {
28
- _id: import("mongoose").Types.ObjectId;
29
- } & {
30
- __v: number;
31
- }), any, RateLimitingRule>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
32
- id: string;
33
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
34
- _id: import("mongoose").Types.ObjectId;
35
- } & {
36
- __v: number;
37
- }, "id"> & {
38
- id: string;
39
- }, {
40
- ruleId?: import("mongoose").SchemaDefinitionProperty<string, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
41
- id: string;
42
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
43
- _id: import("mongoose").Types.ObjectId;
44
- } & {
45
- __v: number;
46
- }, "id"> & {
47
- id: string;
48
- }> | undefined;
49
- name?: import("mongoose").SchemaDefinitionProperty<string, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
50
- id: string;
51
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
52
- _id: import("mongoose").Types.ObjectId;
53
- } & {
54
- __v: number;
55
- }, "id"> & {
56
- id: string;
57
- }> | undefined;
58
- targetAction?: import("mongoose").SchemaDefinitionProperty<string | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
59
- id: string;
60
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
61
- _id: import("mongoose").Types.ObjectId;
62
- } & {
63
- __v: number;
64
- }, "id"> & {
65
- id: string;
66
- }> | undefined;
67
- expression?: import("mongoose").SchemaDefinitionProperty<string, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
68
- id: string;
69
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
70
- _id: import("mongoose").Types.ObjectId;
71
- } & {
72
- __v: number;
73
- }, "id"> & {
74
- id: string;
75
- }> | undefined;
76
- enabled?: import("mongoose").SchemaDefinitionProperty<boolean, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
77
- id: string;
78
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
79
- _id: import("mongoose").Types.ObjectId;
80
- } & {
81
- __v: number;
82
- }, "id"> & {
83
- id: string;
84
- }> | undefined;
85
- market?: import("mongoose").SchemaDefinitionProperty<string, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
86
- id: string;
87
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
88
- _id: import("mongoose").Types.ObjectId;
89
- } & {
90
- __v: number;
91
- }, "id"> & {
92
- id: string;
93
- }> | undefined;
94
- errorMessage?: import("mongoose").SchemaDefinitionProperty<string | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
95
- id: string;
96
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
97
- _id: import("mongoose").Types.ObjectId;
98
- } & {
99
- __v: number;
100
- }, "id"> & {
101
- id: string;
102
- }> | undefined;
103
- partner?: import("mongoose").SchemaDefinitionProperty<string, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
104
- id: string;
105
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
106
- _id: import("mongoose").Types.ObjectId;
107
- } & {
108
- __v: number;
109
- }, "id"> & {
110
- id: string;
111
- }> | undefined;
112
- provider?: import("mongoose").SchemaDefinitionProperty<string | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
113
- id: string;
114
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
115
- _id: import("mongoose").Types.ObjectId;
116
- } & {
117
- __v: number;
118
- }, "id"> & {
119
- id: string;
120
- }> | undefined;
121
- productType?: import("mongoose").SchemaDefinitionProperty<string | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
122
- id: string;
123
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
124
- _id: import("mongoose").Types.ObjectId;
125
- } & {
126
- __v: number;
127
- }, "id"> & {
128
- id: string;
129
- }> | undefined;
130
- variables?: import("mongoose").SchemaDefinitionProperty<Record<string, string> | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
131
- id: string;
132
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
133
- _id: import("mongoose").Types.ObjectId;
134
- } & {
135
- __v: number;
136
- }, "id"> & {
137
- id: string;
138
- }> | undefined;
139
- variablesRequired?: import("mongoose").SchemaDefinitionProperty<boolean | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
140
- id: string;
141
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
142
- _id: import("mongoose").Types.ObjectId;
143
- } & {
144
- __v: number;
145
- }, "id"> & {
146
- id: string;
147
- }> | undefined;
148
- deletedAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
149
- id: string;
150
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
151
- _id: import("mongoose").Types.ObjectId;
152
- } & {
153
- __v: number;
154
- }, "id"> & {
155
- id: string;
156
- }> | undefined;
157
- createdAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
158
- id: string;
159
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
160
- _id: import("mongoose").Types.ObjectId;
161
- } & {
162
- __v: number;
163
- }, "id"> & {
164
- id: string;
165
- }> | undefined;
166
- updatedAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, RateLimitingRule, Document<unknown, {}, RateLimitingRule, {
167
- id: string;
168
- }, import("mongoose").ResolveSchemaOptions<import("mongoose").DefaultSchemaOptions>> & Omit<RateLimitingRule & {
169
- _id: import("mongoose").Types.ObjectId;
170
- } & {
171
- __v: number;
172
- }, "id"> & {
173
- id: string;
174
- }> | undefined;
175
- }, RateLimitingRule>;
176
- //# sourceMappingURL=rule.schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.schema.d.ts","sourceRoot":"","sources":["../../../src/rules/rule.schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAEvD,qBACa,gBAAiB,YAAW,KAAK;IAU5C,MAAM,EAAG,MAAM,CAAC;IAMhB,IAAI,EAAG,MAAM,CAAC;IAMd,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,UAAU,EAAG,MAAM,CAAC;IAOpB,OAAO,EAAG,OAAO,CAAC;IAMlB,MAAM,EAAG,MAAM,CAAC;IAMhB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,OAAO,EAAG,MAAM,CAAC;IAMjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAM5B,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACa,CAAC"}
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RateLimitingRuleSchema = exports.RateLimitingRule = void 0;
4
- const tslib_1 = require("tslib");
5
- const mongoose_1 = require("@nestjs/mongoose");
6
- let RateLimitingRule = class RateLimitingRule {
7
- ruleId;
8
- name;
9
- targetAction;
10
- expression;
11
- enabled;
12
- market;
13
- errorMessage;
14
- partner;
15
- provider;
16
- productType;
17
- variables;
18
- variablesRequired;
19
- deletedAt;
20
- createdAt;
21
- updatedAt;
22
- };
23
- exports.RateLimitingRule = RateLimitingRule;
24
- tslib_1.__decorate([
25
- (0, mongoose_1.Prop)({
26
- required: true,
27
- unique: true,
28
- default: async () => {
29
- const { v4: uuidv4 } = await import('uuid');
30
- return uuidv4();
31
- },
32
- type: String,
33
- }),
34
- tslib_1.__metadata("design:type", String)
35
- ], RateLimitingRule.prototype, "ruleId", void 0);
36
- tslib_1.__decorate([
37
- (0, mongoose_1.Prop)({
38
- required: true,
39
- type: String,
40
- }),
41
- tslib_1.__metadata("design:type", String)
42
- ], RateLimitingRule.prototype, "name", void 0);
43
- tslib_1.__decorate([
44
- (0, mongoose_1.Prop)({
45
- required: true,
46
- type: String,
47
- }),
48
- tslib_1.__metadata("design:type", String)
49
- ], RateLimitingRule.prototype, "targetAction", void 0);
50
- tslib_1.__decorate([
51
- (0, mongoose_1.Prop)({
52
- required: true,
53
- type: String,
54
- }),
55
- tslib_1.__metadata("design:type", String)
56
- ], RateLimitingRule.prototype, "expression", void 0);
57
- tslib_1.__decorate([
58
- (0, mongoose_1.Prop)({
59
- required: true,
60
- default: true,
61
- type: Boolean,
62
- }),
63
- tslib_1.__metadata("design:type", Boolean)
64
- ], RateLimitingRule.prototype, "enabled", void 0);
65
- tslib_1.__decorate([
66
- (0, mongoose_1.Prop)({
67
- required: false,
68
- type: String,
69
- }),
70
- tslib_1.__metadata("design:type", String)
71
- ], RateLimitingRule.prototype, "market", void 0);
72
- tslib_1.__decorate([
73
- (0, mongoose_1.Prop)({
74
- required: false,
75
- type: String,
76
- }),
77
- tslib_1.__metadata("design:type", String)
78
- ], RateLimitingRule.prototype, "errorMessage", void 0);
79
- tslib_1.__decorate([
80
- (0, mongoose_1.Prop)({
81
- required: true,
82
- type: String,
83
- }),
84
- tslib_1.__metadata("design:type", String)
85
- ], RateLimitingRule.prototype, "partner", void 0);
86
- tslib_1.__decorate([
87
- (0, mongoose_1.Prop)({
88
- required: false,
89
- type: String,
90
- }),
91
- tslib_1.__metadata("design:type", String)
92
- ], RateLimitingRule.prototype, "provider", void 0);
93
- tslib_1.__decorate([
94
- (0, mongoose_1.Prop)({
95
- required: false,
96
- type: String,
97
- }),
98
- tslib_1.__metadata("design:type", String)
99
- ], RateLimitingRule.prototype, "productType", void 0);
100
- tslib_1.__decorate([
101
- (0, mongoose_1.Prop)({
102
- required: false,
103
- type: Object,
104
- }),
105
- tslib_1.__metadata("design:type", Object)
106
- ], RateLimitingRule.prototype, "variables", void 0);
107
- tslib_1.__decorate([
108
- (0, mongoose_1.Prop)({
109
- required: false,
110
- type: Boolean,
111
- }),
112
- tslib_1.__metadata("design:type", Boolean)
113
- ], RateLimitingRule.prototype, "variablesRequired", void 0);
114
- tslib_1.__decorate([
115
- (0, mongoose_1.Prop)({
116
- required: false,
117
- type: Date,
118
- }),
119
- tslib_1.__metadata("design:type", Date)
120
- ], RateLimitingRule.prototype, "deletedAt", void 0);
121
- tslib_1.__decorate([
122
- (0, mongoose_1.Prop)({
123
- required: false,
124
- type: Date,
125
- }),
126
- tslib_1.__metadata("design:type", Date)
127
- ], RateLimitingRule.prototype, "createdAt", void 0);
128
- tslib_1.__decorate([
129
- (0, mongoose_1.Prop)({
130
- required: false,
131
- type: Date,
132
- }),
133
- tslib_1.__metadata("design:type", Date)
134
- ], RateLimitingRule.prototype, "updatedAt", void 0);
135
- exports.RateLimitingRule = RateLimitingRule = tslib_1.__decorate([
136
- (0, mongoose_1.Schema)({ timestamps: true })
137
- ], RateLimitingRule);
138
- exports.RateLimitingRuleSchema = mongoose_1.SchemaFactory.createForClass(RateLimitingRule);
139
- exports.RateLimitingRuleSchema.index({
140
- partner: 1,
141
- provider: 1,
142
- productType: 1,
143
- });
144
- exports.RateLimitingRuleSchema.index({
145
- partner: 1,
146
- provider: 1,
147
- });
148
- exports.RateLimitingRuleSchema.index({
149
- partner: 1,
150
- });
@@ -1,26 +0,0 @@
1
- import { LoggerService } from '@edirect/logger';
2
- import { CacheService } from '../shared/cache/cache.service';
3
- import { CreateRuleDTO } from './dto/rule.dto';
4
- import { IPagination } from './interface/pagination.interface';
5
- import { IFindRule, IRule } from './interface/rule.interface';
6
- import { RuleRepository } from './rule.repository';
7
- export declare class RuleService {
8
- private readonly logger;
9
- private readonly repository;
10
- private readonly cacheService;
11
- private readonly MAX_EXPRESSION_LENGTH;
12
- private readonly MAX_EXPRESSION_DEPTH;
13
- private readonly FORBIDDEN_PATTERNS;
14
- constructor(logger: LoggerService, repository: RuleRepository, cacheService: CacheService);
15
- create(input?: CreateRuleDTO): Promise<IRule>;
16
- findAll(queryParameters: IFindRule): Promise<IPagination<IRule[]>>;
17
- findAllWithoutPagination(queryParameters: IFindRule): Promise<IRule[]>;
18
- findById(id: string): Promise<IRule>;
19
- updateOne(id: string, fieldsToUpdate: Partial<IRule>): Promise<IRule | null>;
20
- delete(id: string): Promise<void>;
21
- private logError;
22
- validateRuleExpression(expression: string): string | null;
23
- private getFromCache;
24
- private generateRateLimitingCountCacheKey;
25
- }
26
- //# sourceMappingURL=rule.service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule.service.d.ts","sourceRoot":"","sources":["../../../src/rules/rule.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBACa,WAAW;IAqBpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAtB/B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAO;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAK;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAejC;gBAGiB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,YAAY;IAGvC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IA0B7C,OAAO,CAAC,eAAe,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;IASlE,wBAAwB,CAAC,eAAe,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IA0BtE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAapC,SAAS,CACb,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,GAC7B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAgClB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvC,OAAO,CAAC,QAAQ;IAOhB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;YAoB3C,YAAY;IAiB1B,OAAO,CAAC,iCAAiC;CAuB1C"}