@servicelabsco/nestjs-utility-services 1.2.168 → 2.0.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 (61) hide show
  1. package/dist/app.controller.d.ts +77 -2
  2. package/dist/app.controller.js +359 -12
  3. package/dist/app.controller.js.map +1 -1
  4. package/dist/app.module.js +6 -7
  5. package/dist/app.module.js.map +1 -1
  6. package/dist/auth/middlewares/jwt.middleware.d.ts +1 -0
  7. package/dist/auth/middlewares/jwt.middleware.js +12 -2
  8. package/dist/auth/middlewares/jwt.middleware.js.map +1 -1
  9. package/dist/common/libraries/custom.crypt.d.ts +1 -0
  10. package/dist/common/libraries/custom.crypt.js +44 -9
  11. package/dist/common/libraries/custom.crypt.js.map +1 -1
  12. package/dist/common/libraries/hash.js +2 -2
  13. package/dist/common/libraries/hash.js.map +1 -1
  14. package/dist/common/libraries/platform.utility.js +5 -2
  15. package/dist/common/libraries/platform.utility.js.map +1 -1
  16. package/dist/config/jwt.config.js +5 -3
  17. package/dist/config/jwt.config.js.map +1 -1
  18. package/dist/health.check.controller.d.ts +11 -2
  19. package/dist/health.check.controller.js +268 -4
  20. package/dist/health.check.controller.js.map +1 -1
  21. package/dist/main.js +2 -2
  22. package/dist/main.js.map +1 -1
  23. package/dist/platformUtility/es6.classes.d.ts +2 -6
  24. package/dist/platformUtility/es6.classes.js +0 -4
  25. package/dist/platformUtility/es6.classes.js.map +1 -1
  26. package/dist/platformUtility/index.d.ts +0 -1
  27. package/dist/platformUtility/index.js +0 -1
  28. package/dist/platformUtility/index.js.map +1 -1
  29. package/dist/platformUtility/jobs/process.ses.delivery.webhook.job.js.map +1 -1
  30. package/dist/platformUtility/platform.utility.module.js +1 -4
  31. package/dist/platformUtility/platform.utility.module.js.map +1 -1
  32. package/dist/platformUtility/services/cache.service.d.ts +4 -3
  33. package/dist/platformUtility/services/cache.service.js +84 -21
  34. package/dist/platformUtility/services/cache.service.js.map +1 -1
  35. package/dist/platformUtility/services/redis.service.js +5 -2
  36. package/dist/platformUtility/services/redis.service.js.map +1 -1
  37. package/dist/system/es6.classes.d.ts +1 -1
  38. package/dist/system/libraries/generate.downloadable.report.file.js +2 -2
  39. package/dist/system/libraries/generate.downloadable.report.file.js.map +1 -1
  40. package/package.json +60 -67
  41. package/dist/cli.d.ts +0 -1
  42. package/dist/cli.js +0 -22
  43. package/dist/cli.js.map +0 -1
  44. package/dist/config/cache.config.d.ts +0 -12
  45. package/dist/config/cache.config.js +0 -15
  46. package/dist/config/cache.config.js.map +0 -1
  47. package/dist/console.d.ts +0 -1
  48. package/dist/console.js +0 -20
  49. package/dist/console.js.map +0 -1
  50. package/dist/platformUtility/commands/index.d.ts +0 -3
  51. package/dist/platformUtility/commands/index.js +0 -20
  52. package/dist/platformUtility/commands/index.js.map +0 -1
  53. package/dist/platformUtility/commands/maintenance.command.d.ts +0 -8
  54. package/dist/platformUtility/commands/maintenance.command.js +0 -69
  55. package/dist/platformUtility/commands/maintenance.command.js.map +0 -1
  56. package/dist/platformUtility/commands/sqs.worker.command.d.ts +0 -16
  57. package/dist/platformUtility/commands/sqs.worker.command.js +0 -75
  58. package/dist/platformUtility/commands/sqs.worker.command.js.map +0 -1
  59. package/dist/platformUtility/commands/sync.class.command.d.ts +0 -6
  60. package/dist/platformUtility/commands/sync.class.command.js +0 -56
  61. package/dist/platformUtility/commands/sync.class.command.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platformUtility/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AAAA,uDAAqC;AAAA,uDAAoC"}
@@ -1,8 +0,0 @@
1
- import { MaintenanceService } from '../services/maintenance.service';
2
- export declare class MaintenanceCommand {
3
- private readonly maintenanceService;
4
- constructor(maintenanceService: MaintenanceService);
5
- up(): Promise<void>;
6
- down(): Promise<void>;
7
- status(): Promise<void>;
8
- }
@@ -1,69 +0,0 @@
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.MaintenanceCommand = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const nestjs_console_1 = require("nestjs-console");
15
- const maintenance_service_1 = require("../services/maintenance.service");
16
- let MaintenanceCommand = class MaintenanceCommand {
17
- constructor(maintenanceService) {
18
- this.maintenanceService = maintenanceService;
19
- }
20
- async up() {
21
- this.maintenanceService.removeFromMaintenance();
22
- global.console.log('system is now up');
23
- }
24
- async down() {
25
- this.maintenanceService.putOnMaintenance();
26
- global.console.log('system is now in maintenance mode');
27
- }
28
- async status() {
29
- const status = this.maintenanceService.isInMaintenance();
30
- if (!status)
31
- global.console.log('system is live and running');
32
- else
33
- global.console.log('system is down');
34
- }
35
- };
36
- exports.MaintenanceCommand = MaintenanceCommand;
37
- __decorate([
38
- (0, nestjs_console_1.Command)({
39
- command: 'up',
40
- description: 'bring up the system',
41
- }),
42
- __metadata("design:type", Function),
43
- __metadata("design:paramtypes", []),
44
- __metadata("design:returntype", Promise)
45
- ], MaintenanceCommand.prototype, "up", null);
46
- __decorate([
47
- (0, nestjs_console_1.Command)({
48
- command: 'down',
49
- description: 'bring down the system',
50
- }),
51
- __metadata("design:type", Function),
52
- __metadata("design:paramtypes", []),
53
- __metadata("design:returntype", Promise)
54
- ], MaintenanceCommand.prototype, "down", null);
55
- __decorate([
56
- (0, nestjs_console_1.Command)({
57
- command: 'status',
58
- description: 'status of the system',
59
- }),
60
- __metadata("design:type", Function),
61
- __metadata("design:paramtypes", []),
62
- __metadata("design:returntype", Promise)
63
- ], MaintenanceCommand.prototype, "status", null);
64
- exports.MaintenanceCommand = MaintenanceCommand = __decorate([
65
- (0, common_1.Injectable)(),
66
- (0, nestjs_console_1.Console)(),
67
- __metadata("design:paramtypes", [maintenance_service_1.MaintenanceService])
68
- ], MaintenanceCommand);
69
- //# sourceMappingURL=maintenance.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"maintenance.command.js","sourceRoot":"","sources":["../../../src/platformUtility/commands/maintenance.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mDAAkD;AAClD,yEAAqE;AAS9D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAM3B,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAWjE,AAAN,KAAK,CAAC,EAAE;QACJ,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC;IAWK,AAAN,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAC5D,CAAC;IAWK,AAAN,KAAK,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;;YACzD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;CACJ,CAAA;AAlDY,gDAAkB;AAiBrB;IAJL,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,qBAAqB;KACrC,CAAC;;;;4CAID;AAWK;IAJL,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,uBAAuB;KACvC,CAAC;;;;8CAID;AAWK;IAJL,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,sBAAsB;KACtC,CAAC;;;;gDAKD;6BAjDQ,kBAAkB;IAF9B,IAAA,mBAAU,GAAE;IACZ,IAAA,wBAAO,GAAE;qCAO2C,wCAAkB;GAN1D,kBAAkB,CAkD9B"}
@@ -1,16 +0,0 @@
1
- import { QueueService } from '../../platformUtility/services/queue.service';
2
- import { PropertyService } from '../../system/services/property.service';
3
- import { CommonSqsPolling } from '../libraries/common.sqs.polling';
4
- import { SqlService } from '../services/sql.service';
5
- import { SqsService } from '../services/sqs.service';
6
- import { MaintenanceService } from './../services/maintenance.service';
7
- export declare class SqsWorkerCommand extends CommonSqsPolling {
8
- private readonly queueService;
9
- protected readonly maintenanceService: MaintenanceService;
10
- private readonly propertyService;
11
- protected readonly sqlService: SqlService;
12
- protected readonly sqsService: SqsService;
13
- constructor(queueService: QueueService, maintenanceService: MaintenanceService, propertyService: PropertyService, sqlService: SqlService, sqsService: SqsService);
14
- process(type: string): Promise<void>;
15
- private processJob;
16
- }
@@ -1,75 +0,0 @@
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.SqsWorkerCommand = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const nestjs_command_1 = require("nestjs-command");
18
- const operation_exception_1 = require("../../common/exceptions/operation.exception");
19
- const platform_constants_1 = require("../../config/platform.constants");
20
- const queue_service_1 = require("../../platformUtility/services/queue.service");
21
- const property_service_1 = require("../../system/services/property.service");
22
- const common_sqs_polling_1 = require("../libraries/common.sqs.polling");
23
- const sql_service_1 = require("../services/sql.service");
24
- const sqs_service_1 = require("../services/sqs.service");
25
- const maintenance_service_1 = require("./../services/maintenance.service");
26
- let SqsWorkerCommand = class SqsWorkerCommand extends common_sqs_polling_1.CommonSqsPolling {
27
- constructor(queueService, maintenanceService, propertyService, sqlService, sqsService) {
28
- super();
29
- this.queueService = queueService;
30
- this.maintenanceService = maintenanceService;
31
- this.propertyService = propertyService;
32
- this.sqlService = sqlService;
33
- this.sqsService = sqsService;
34
- this.callingFunction = this.processJob;
35
- }
36
- async process(type) {
37
- await this.queueService.pause();
38
- this.callingScopeThis = this;
39
- this.logger = new common_1.Logger(`SqsWorker ${type}`);
40
- this.sqsQueue = await this.propertyService.get(`sqs.${type}.url`);
41
- this.logger.log(`logging queue ${this.sqsQueue}`);
42
- if (!this.sqsQueue)
43
- throw new operation_exception_1.OperationException(`Queue property sqs.${type}.url is not set`);
44
- await this.handle();
45
- }
46
- async processJob(data) {
47
- await platform_constants_1.default.jobs[data.job].handle(data.payload);
48
- }
49
- };
50
- exports.SqsWorkerCommand = SqsWorkerCommand;
51
- __decorate([
52
- (0, nestjs_command_1.Command)({
53
- command: 'queue:sqs',
54
- describe: 'run worker through sqs',
55
- }),
56
- __param(0, (0, nestjs_command_1.Option)({
57
- name: 'type',
58
- describe: 'sqs property name to pull',
59
- type: 'string',
60
- alias: 't',
61
- required: true,
62
- })),
63
- __metadata("design:type", Function),
64
- __metadata("design:paramtypes", [String]),
65
- __metadata("design:returntype", Promise)
66
- ], SqsWorkerCommand.prototype, "process", null);
67
- exports.SqsWorkerCommand = SqsWorkerCommand = __decorate([
68
- (0, common_1.Injectable)(),
69
- __metadata("design:paramtypes", [queue_service_1.QueueService,
70
- maintenance_service_1.MaintenanceService,
71
- property_service_1.PropertyService,
72
- sql_service_1.SqlService,
73
- sqs_service_1.SqsService])
74
- ], SqsWorkerCommand);
75
- //# sourceMappingURL=sqs.worker.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqs.worker.command.js","sourceRoot":"","sources":["../../../src/platformUtility/commands/sqs.worker.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mDAAiD;AACjD,qFAAiF;AACjF,wEAAgE;AAChE,gFAA4E;AAC5E,6EAAyE;AACzE,wEAAmE;AACnE,yDAAqD;AACrD,yDAAqD;AACrD,2EAAuE;AAQhE,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,qCAAgB;IAMlD,YACqB,YAA0B,EACxB,kBAAsC,EACxC,eAAgC,EAC9B,UAAsB,EACtB,UAAsB;QAEzC,KAAK,EAAE,CAAC;QANS,iBAAY,GAAZ,YAAY,CAAc;QACxB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACxC,oBAAe,GAAf,eAAe,CAAiB;QAC9B,eAAU,GAAV,UAAU,CAAY;QACtB,eAAU,GAAV,UAAU,CAAY;QAGzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3C,CAAC;IAMK,AAAN,KAAK,CAAC,OAAO,CAQT,IAAY;QAEZ,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAEhC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,wCAAkB,CAAC,sBAAsB,IAAI,iBAAiB,CAAC,CAAC;QAE9F,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAQO,KAAK,CAAC,UAAU,CAAC,IAAS;QAC9B,MAAM,4BAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;CACJ,CAAA;AArDY,4CAAgB;AAqBnB;IAJL,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,wBAAwB;KACrC,CAAC;IAEG,WAAA,IAAA,uBAAM,EAAC;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,IAAI;KACjB,CAAC,CAAA;;;;+CAcL;2BA1CQ,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAQ0B,4BAAY;QACJ,wCAAkB;QACvB,kCAAe;QAClB,wBAAU;QACV,wBAAU;GAXpC,gBAAgB,CAqD5B"}
@@ -1,6 +0,0 @@
1
- import { QueueService } from '../../platformUtility/services/queue.service';
2
- export declare class SyncClassCommand {
3
- private readonly queueService;
4
- constructor(queueService: QueueService);
5
- process(): Promise<void>;
6
- }
@@ -1,56 +0,0 @@
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.SyncClassCommand = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const nestjs_command_1 = require("nestjs-command");
15
- const queue_service_1 = require("../../platformUtility/services/queue.service");
16
- const create_es6_classes_file_1 = require("../libraries/create.es6.classes.file");
17
- const create_es6_jobs_file_1 = require("../libraries/create.es6.jobs.file");
18
- const create_entity_constants_file_1 = require("./../libraries/create.entity.constants.file");
19
- const create_es6_service_file_1 = require("./../libraries/create.es6.service.file");
20
- const create_index_file_1 = require("./../libraries/create.index.file");
21
- const file_system_utility_1 = require("./../libraries/file.system.utility");
22
- let SyncClassCommand = class SyncClassCommand {
23
- constructor(queueService) {
24
- this.queueService = queueService;
25
- }
26
- async process() {
27
- await this.queueService.pause();
28
- global.console.log('processing all jobs file');
29
- new create_es6_jobs_file_1.CreateEs6JobsFile().process();
30
- global.console.log('processing all services file');
31
- new create_es6_service_file_1.CreateEs6ServiceFile().process();
32
- global.console.log('processing all entity file');
33
- new create_entity_constants_file_1.CreateEntityConstantsFile().process();
34
- global.console.log('processing all class file');
35
- new create_es6_classes_file_1.CreateEs6ClassesFile().process();
36
- if (file_system_utility_1.FileSystemUtility.isPackage()) {
37
- global.console.log('processing all index files');
38
- new create_index_file_1.CreateIndexFile().process();
39
- }
40
- }
41
- };
42
- exports.SyncClassCommand = SyncClassCommand;
43
- __decorate([
44
- (0, nestjs_command_1.Command)({
45
- command: 'sync:class',
46
- describe: 'sync all class from code to db',
47
- }),
48
- __metadata("design:type", Function),
49
- __metadata("design:paramtypes", []),
50
- __metadata("design:returntype", Promise)
51
- ], SyncClassCommand.prototype, "process", null);
52
- exports.SyncClassCommand = SyncClassCommand = __decorate([
53
- (0, common_1.Injectable)(),
54
- __metadata("design:paramtypes", [queue_service_1.QueueService])
55
- ], SyncClassCommand);
56
- //# sourceMappingURL=sync.class.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.class.command.js","sourceRoot":"","sources":["../../../src/platformUtility/commands/sync.class.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mDAAyC;AACzC,gFAA4E;AAC5E,kFAA4E;AAC5E,4EAAsE;AACtE,8FAAwF;AACxF,oFAA8E;AAC9E,wEAAmE;AACnE,4EAAuE;AAQhE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAMzB,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAMrD,AAAN,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC/C,IAAI,wCAAiB,EAAE,CAAC,OAAO,EAAE,CAAC;QAElC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACnD,IAAI,8CAAoB,EAAE,CAAC,OAAO,EAAE,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACjD,IAAI,wDAAyB,EAAE,CAAC,OAAO,EAAE,CAAC;QAE1C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAChD,IAAI,8CAAoB,EAAE,CAAC,OAAO,EAAE,CAAC;QAErC,IAAI,uCAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACjD,IAAI,mCAAe,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,CAAC;IACL,CAAC;CACJ,CAAA;AAhCY,4CAAgB;AAYnB;IAJL,IAAA,wBAAO,EAAC;QACL,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,gCAAgC;KAC7C,CAAC;;;;+CAoBD;2BA/BQ,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAOkC,4BAAY;GAN9C,gBAAgB,CAgC5B"}