@solidstarters/solid-core 1.2.111 → 1.2.112
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/controllers/model-metadata.controller.d.ts +1 -1
- package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/model-metadata.controller.js +1 -1
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/queues-test.controller.d.ts +5 -3
- package/dist/controllers/queues-test.controller.d.ts.map +1 -1
- package/dist/controllers/queues-test.controller.js +20 -8
- package/dist/controllers/queues-test.controller.js.map +1 -1
- package/dist/entities/field-metadata.entity.js +1 -1
- package/dist/entities/mq-message.entity.d.ts +1 -0
- package/dist/entities/mq-message.entity.d.ts.map +1 -1
- package/dist/entities/mq-message.entity.js +5 -1
- package/dist/entities/mq-message.entity.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts +1 -0
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +9 -4
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +2 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js +1 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/api-email-publisher.service.d.ts +1 -1
- package/dist/jobs/api-email-publisher.service.d.ts.map +1 -1
- package/dist/jobs/api-email-publisher.service.js +1 -1
- package/dist/jobs/api-email-publisher.service.js.map +1 -1
- package/dist/jobs/api-email-subscriber.service.d.ts +1 -1
- package/dist/jobs/api-email-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/api-email-subscriber.service.js +1 -1
- package/dist/jobs/api-email-subscriber.service.js.map +1 -1
- package/dist/jobs/database/generate-code-publisher.service.d.ts +11 -0
- package/dist/jobs/database/generate-code-publisher.service.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-publisher.service.js +39 -0
- package/dist/jobs/database/generate-code-publisher.service.js.map +1 -0
- package/dist/jobs/database/generate-code-queue-options.d.ts +8 -0
- package/dist/jobs/database/generate-code-queue-options.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-queue-options.js +10 -0
- package/dist/jobs/database/generate-code-queue-options.js.map +1 -0
- package/dist/jobs/database/generate-code-subscriber.service.d.ts +16 -0
- package/dist/jobs/database/generate-code-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-subscriber.service.js +67 -0
- package/dist/jobs/database/generate-code-subscriber.service.js.map +1 -0
- package/dist/jobs/database/queue-test-db-publisher.service.d.ts +11 -0
- package/dist/jobs/database/queue-test-db-publisher.service.d.ts.map +1 -0
- package/dist/jobs/database/queue-test-db-publisher.service.js +39 -0
- package/dist/jobs/database/queue-test-db-publisher.service.js.map +1 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.d.ts +14 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.js +50 -0
- package/dist/jobs/database/queue-test-db-subscriber.service.js.map +1 -0
- package/dist/jobs/database/test-queue-db-options.d.ts +8 -0
- package/dist/jobs/database/test-queue-db-options.d.ts.map +1 -0
- package/dist/jobs/database/test-queue-db-options.js +10 -0
- package/dist/jobs/database/test-queue-db-options.js.map +1 -0
- package/dist/jobs/email-publisher.service.d.ts +1 -1
- package/dist/jobs/email-publisher.service.d.ts.map +1 -1
- package/dist/jobs/email-publisher.service.js +1 -1
- package/dist/jobs/email-publisher.service.js.map +1 -1
- package/dist/jobs/email-subscriber.service.d.ts +1 -1
- package/dist/jobs/email-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/email-subscriber.service.js +1 -1
- package/dist/jobs/email-subscriber.service.js.map +1 -1
- package/dist/jobs/otp-publisher.service.d.ts +1 -1
- package/dist/jobs/otp-publisher.service.d.ts.map +1 -1
- package/dist/jobs/otp-publisher.service.js +1 -1
- package/dist/jobs/otp-publisher.service.js.map +1 -1
- package/dist/jobs/otp-subscriber.service.d.ts +1 -1
- package/dist/jobs/otp-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/otp-subscriber.service.js +1 -1
- package/dist/jobs/otp-subscriber.service.js.map +1 -1
- package/dist/jobs/queue-test-publisher.service.d.ts +1 -1
- package/dist/jobs/queue-test-publisher.service.d.ts.map +1 -1
- package/dist/jobs/queue-test-publisher.service.js +3 -3
- package/dist/jobs/queue-test-publisher.service.js.map +1 -1
- package/dist/jobs/queue-test-subscriber.service.d.ts +2 -2
- package/dist/jobs/queue-test-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/queue-test-subscriber.service.js +9 -3
- package/dist/jobs/queue-test-subscriber.service.js.map +1 -1
- package/dist/jobs/sms-publisher.service.d.ts +1 -1
- package/dist/jobs/sms-publisher.service.d.ts.map +1 -1
- package/dist/jobs/sms-publisher.service.js +1 -1
- package/dist/jobs/sms-publisher.service.js.map +1 -1
- package/dist/jobs/sms-subscriber.service.d.ts +1 -1
- package/dist/jobs/sms-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/sms-subscriber.service.js +1 -1
- package/dist/jobs/sms-subscriber.service.js.map +1 -1
- package/dist/jobs/{test-queue.config.d.ts → test-queue-options.d.ts} +1 -1
- package/dist/jobs/test-queue-options.d.ts.map +1 -0
- package/dist/jobs/{test-queue.config.js → test-queue-options.js} +1 -1
- package/dist/jobs/test-queue-options.js.map +1 -0
- package/dist/jobs/whatsapp-publisher.service.d.ts +1 -1
- package/dist/jobs/whatsapp-publisher.service.d.ts.map +1 -1
- package/dist/jobs/whatsapp-publisher.service.js +1 -1
- package/dist/jobs/whatsapp-publisher.service.js.map +1 -1
- package/dist/jobs/whatsapp-subscriber.service.d.ts +1 -1
- package/dist/jobs/whatsapp-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/whatsapp-subscriber.service.js +1 -1
- package/dist/jobs/whatsapp-subscriber.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +342 -282
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +4 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +11 -4
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +141 -6
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +1 -0
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +2 -0
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +29 -2
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/queues/database-publisher.service.d.ts +16 -0
- package/dist/services/queues/database-publisher.service.d.ts.map +1 -0
- package/dist/services/queues/database-publisher.service.js +59 -0
- package/dist/services/queues/database-publisher.service.js.map +1 -0
- package/dist/services/queues/database-subscriber.service.d.ts +21 -0
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -0
- package/dist/services/queues/database-subscriber.service.js +128 -0
- package/dist/services/queues/database-subscriber.service.js.map +1 -0
- package/dist/services/{rabbitmq-publisher.service.d.ts → queues/rabbitmq-publisher.service.d.ts} +6 -4
- package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -0
- package/dist/services/{rabbitmq-publisher.service.js → queues/rabbitmq-publisher.service.js} +14 -1
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -0
- package/dist/services/{rabbitmq-subscriber.service.d.ts → queues/rabbitmq-subscriber.service.d.ts} +6 -4
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -0
- package/dist/services/{rabbitmq-subscriber.service.js → queues/rabbitmq-subscriber.service.js} +14 -10
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -0
- package/dist/services/queues/redis-publisher.service.d.ts +1 -0
- package/dist/services/queues/redis-publisher.service.d.ts.map +1 -0
- package/dist/services/queues/redis-publisher.service.js +1 -0
- package/dist/services/queues/redis-publisher.service.js.map +1 -0
- package/dist/services/queues/redis-subscriber.service.d.ts +1 -0
- package/dist/services/queues/redis-subscriber.service.d.ts.map +1 -0
- package/dist/services/queues/redis-subscriber.service.js +1 -0
- package/dist/services/queues/redis-subscriber.service.js.map +1 -0
- package/dist/services/sms/Msg91BaseSMSService.d.ts +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +10 -2
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts +10 -0
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -0
- package/dist/subscribers/field-metadata.subscriber.js +40 -0
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -0
- package/dist/subscribers/{model.subscriber.d.ts → model-metadata.subscriber.d.ts} +2 -2
- package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{model.subscriber.js → model-metadata.subscriber.js} +8 -8
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/controllers/model-metadata.controller.ts +1 -2
- package/src/controllers/queues-test.controller.ts +15 -6
- package/src/entities/field-metadata.entity.ts +1 -1
- package/src/entities/mq-message.entity.ts +3 -0
- package/src/helpers/module-metadata-helper.service.ts +11 -5
- package/src/index.ts +3 -3
- package/src/interfaces.ts +1 -0
- package/src/jobs/api-email-publisher.service.ts +1 -1
- package/src/jobs/api-email-subscriber.service.ts +1 -1
- package/src/jobs/database/generate-code-publisher.service.ts +23 -0
- package/src/jobs/database/generate-code-queue-options.ts +9 -0
- package/src/jobs/database/generate-code-subscriber.service.ts +56 -0
- package/src/jobs/database/queue-test-db-publisher.service.ts +24 -0
- package/src/jobs/database/queue-test-db-subscriber.service.ts +38 -0
- package/src/jobs/database/test-queue-db-options.ts +13 -0
- package/src/jobs/email-publisher.service.ts +1 -1
- package/src/jobs/email-subscriber.service.ts +1 -1
- package/src/jobs/otp-publisher.service.ts +1 -1
- package/src/jobs/otp-subscriber.service.ts +1 -1
- package/src/jobs/queue-test-publisher.service.ts +2 -2
- package/src/jobs/queue-test-subscriber.service.ts +10 -2
- package/src/jobs/sms-publisher.service.ts +1 -1
- package/src/jobs/sms-subscriber.service.ts +1 -1
- package/src/jobs/whatsapp-publisher.service.ts +1 -1
- package/src/jobs/whatsapp-subscriber.service.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +344 -284
- package/src/services/field-metadata.service.ts +5 -5
- package/src/services/model-metadata.service.ts +256 -13
- package/src/services/mq-message-queue.service.ts +2 -1
- package/src/services/mq-message.service.ts +47 -8
- package/src/services/queues/database-publisher.service.ts +79 -0
- package/src/services/queues/database-subscriber.service.ts +173 -0
- package/src/services/{rabbitmq-publisher.service.ts → queues/rabbitmq-publisher.service.ts} +24 -8
- package/src/services/{rabbitmq-subscriber.service.ts → queues/rabbitmq-subscriber.service.ts} +23 -16
- package/src/services/queues/redis-publisher.service.ts +0 -0
- package/src/services/queues/redis-subscriber.service.ts +0 -0
- package/src/services/sms/Msg91BaseSMSService.ts +1 -1
- package/src/solid-core.module.ts +10 -2
- package/src/subscribers/field-metadata.subscriber.ts +52 -0
- package/src/subscribers/{model.subscriber.ts → model-metadata.subscriber.ts} +2 -2
- package/dist/jobs/test-queue.config.d.ts.map +0 -1
- package/dist/jobs/test-queue.config.js.map +0 -1
- package/dist/services/rabbitmq-publisher.service.d.ts.map +0 -1
- package/dist/services/rabbitmq-publisher.service.js.map +0 -1
- package/dist/services/rabbitmq-subscriber.service.d.ts.map +0 -1
- package/dist/services/rabbitmq-subscriber.service.js.map +0 -1
- package/dist/subscribers/model.subscriber.d.ts.map +0 -1
- package/dist/subscribers/model.subscriber.js.map +0 -1
- /package/src/jobs/{test-queue.config.ts → test-queue-options.ts} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Logger, OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import * as amqp from 'amqplib';
|
|
3
|
+
import { QueuesModuleOptions } from "../../interfaces";
|
|
4
|
+
import { QueueMessage, QueueSubscriber } from '../../interfaces/mq';
|
|
5
|
+
import { MqMessageQueueService } from '../mq-message-queue.service';
|
|
6
|
+
import { MqMessageService } from '../mq-message.service';
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscriber<T> {
|
|
10
|
+
private readonly logger = new Logger(DatabaseSubscriber.name);
|
|
11
|
+
private readonly url: string;
|
|
12
|
+
private readonly serviceRole: string;
|
|
13
|
+
|
|
14
|
+
constructor(
|
|
15
|
+
protected readonly mqMessageService: MqMessageService,
|
|
16
|
+
protected readonly mqMessageQueueService: MqMessageQueueService,
|
|
17
|
+
) {
|
|
18
|
+
this.serviceRole = process.env.QUEUES_SERVICE_ROLE;
|
|
19
|
+
if (!this.serviceRole) {
|
|
20
|
+
this.logger.debug('Queue service Role is not defined in the environment variables');
|
|
21
|
+
}
|
|
22
|
+
this.logger.debug(`DatabaseSubscriber instance created with options: ${JSON.stringify(this.options())}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
abstract subscribe(message: QueueMessage<T>);
|
|
26
|
+
|
|
27
|
+
abstract options(): QueuesModuleOptions;
|
|
28
|
+
|
|
29
|
+
private async processNext(queueName: string) {
|
|
30
|
+
// this.logger.debug(`#### DatabaseSubscriber processing next message from queue: ${queueName}`);
|
|
31
|
+
const job = await this.mqMessageService.lockNextPendingMessage(queueName);
|
|
32
|
+
if (!job) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const messageContentString = job.input.toString();
|
|
37
|
+
// this.logger.debug(`DatabaseSubscriber Received raw message: ${messageContentString}`);
|
|
38
|
+
|
|
39
|
+
let message: QueueMessage<T> = null;
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
message = JSON.parse(messageContentString) as QueueMessage<T>;
|
|
43
|
+
|
|
44
|
+
// this is the first time we are receiving the message so we set the currentRetry to 0
|
|
45
|
+
if (!message.retryCount) message.retryCount = 0;
|
|
46
|
+
if (!message.retryInterval) message.retryInterval = 1000;
|
|
47
|
+
if (!message.currentRetry) message.currentRetry = 0;
|
|
48
|
+
|
|
49
|
+
await this.processMessage(message);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
this.logger.error(`Error processing message: ${error.message}`);
|
|
53
|
+
|
|
54
|
+
// if an error occurs then if retryCount is set we start retrying.
|
|
55
|
+
if (message) {
|
|
56
|
+
if (message.currentRetry < message.retryCount) {
|
|
57
|
+
await this.updateStatusInDatabase('retrying', message);
|
|
58
|
+
|
|
59
|
+
message.currentRetry++;
|
|
60
|
+
this.logger.warn(`Retrying message (${message.currentRetry}/${message.retryCount}) after ${message.retryInterval}ms`);
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
this.retryMessage(message);
|
|
63
|
+
}, message.retryInterval);
|
|
64
|
+
} else {
|
|
65
|
+
// Discard the message after max retries
|
|
66
|
+
await this.updateStatusInDatabase('failed', message, error.message, '');
|
|
67
|
+
this.logger.error(`Message failed after ${message.retryCount} attempts: ${error.message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// this.logger.debug(`#### DatabaseSubscriber finished processing message from queue: ${queueName}`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async onModuleInit(): Promise<void> {
|
|
75
|
+
// we will start subscriber only if the current service role is subscriber.
|
|
76
|
+
if (['both', 'subscriber'].includes(this.serviceRole)) {
|
|
77
|
+
|
|
78
|
+
const options = this.options();
|
|
79
|
+
|
|
80
|
+
const queueName = options.queueName;
|
|
81
|
+
// setInterval(() => this.processNext(queueName), 1000);
|
|
82
|
+
const poll = async () => {
|
|
83
|
+
try {
|
|
84
|
+
await this.processNext(queueName);
|
|
85
|
+
} catch (err) {
|
|
86
|
+
this.logger.error(`Polling error: ${err.message}`);
|
|
87
|
+
} finally {
|
|
88
|
+
setTimeout(poll, 1000); // Wait 1s *after* processing finishes
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// start the loop
|
|
93
|
+
poll();
|
|
94
|
+
|
|
95
|
+
this.logger.debug(`DatabaseSubscriber ready to consume messages: ${JSON.stringify(this.options())}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Abstract method for message processing logic.
|
|
101
|
+
*/
|
|
102
|
+
protected async processMessage(message: QueueMessage<T>): Promise<void> {
|
|
103
|
+
await this.updateStatusInDatabase('started', message);
|
|
104
|
+
|
|
105
|
+
// Capture the results of handling the task.
|
|
106
|
+
const result = await this.subscribe(message);
|
|
107
|
+
|
|
108
|
+
// TODO: Update the database to indicate that the task is finished.
|
|
109
|
+
await this.updateStatusInDatabase('succeeded', message, '', result ? JSON.stringify(result, null, 2) : '');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Retry the message by invoking the processing logic again.
|
|
114
|
+
*/
|
|
115
|
+
private async retryMessage(message: QueueMessage<T>) {
|
|
116
|
+
try {
|
|
117
|
+
await this.processMessage(message);
|
|
118
|
+
} catch (error) {
|
|
119
|
+
if (message.currentRetry < message.retryCount) {
|
|
120
|
+
await this.updateStatusInDatabase('retrying', message);
|
|
121
|
+
|
|
122
|
+
message.currentRetry++;
|
|
123
|
+
this.logger.warn(`Retrying message (${message.currentRetry}/${message.retryCount}) after ${message.retryInterval}ms: ${error.message}`);
|
|
124
|
+
setTimeout(() => {
|
|
125
|
+
this.retryMessage(message);
|
|
126
|
+
}, message.retryInterval);
|
|
127
|
+
} else {
|
|
128
|
+
this.logger.error(`Message failed after ${message.retryCount} attempts: ${error.message}`);
|
|
129
|
+
|
|
130
|
+
// TODO: Store the error in the database and update the status accordingly.
|
|
131
|
+
await this.updateStatusInDatabase('failed', message, error.message, '');
|
|
132
|
+
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
private async updateStatusInDatabase(stage: string, message: QueueMessage<T>, error: string = '', result: string = '') {
|
|
138
|
+
try {
|
|
139
|
+
this.logger.debug(`Updating message status in database: ${stage} for messageId: ${message.messageId}`);
|
|
140
|
+
|
|
141
|
+
// 1. resolve the queue first
|
|
142
|
+
const mqMessage = await this.mqMessageService.repo.findOne({
|
|
143
|
+
where: {
|
|
144
|
+
messageId: message.messageId,
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
if (mqMessage) {
|
|
149
|
+
this.logger.debug(`Found message in database: ${JSON.stringify(mqMessage.messageId)}`);
|
|
150
|
+
this.logger.debug(`Updating message status in database: ${stage} for messageId: ${mqMessage.id}`);
|
|
151
|
+
|
|
152
|
+
const updatedFields = {
|
|
153
|
+
stage: stage
|
|
154
|
+
};
|
|
155
|
+
if (stage === 'failed' || stage === 'succeeded') {
|
|
156
|
+
updatedFields['finishedAt'] = new Date();
|
|
157
|
+
updatedFields['elapsedMillis'] = updatedFields['finishedAt'].getTime() - mqMessage.startedAt.getTime();
|
|
158
|
+
}
|
|
159
|
+
if (stage === 'succeeded') {
|
|
160
|
+
updatedFields['output'] = result;
|
|
161
|
+
}
|
|
162
|
+
if (stage === 'failed') {
|
|
163
|
+
updatedFields['error'] = error;
|
|
164
|
+
}
|
|
165
|
+
await this.mqMessageService.repo.update(mqMessage.id, updatedFields);
|
|
166
|
+
this.logger.debug(`Message status updated to ${stage} for messageId: ${mqMessage.id}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
this.logger.error(error.message, error.stack);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Logger } from '@nestjs/common';
|
|
2
2
|
import * as amqp from 'amqplib';
|
|
3
3
|
import { v4 as uuidv4 } from 'uuid';
|
|
4
|
-
import { QueuesModuleOptions } from "
|
|
5
|
-
import { QueueMessage, QueuePublisher } from '
|
|
6
|
-
import { MqMessageQueueService } from '
|
|
7
|
-
import { MqMessageService } from '
|
|
4
|
+
import { QueuesModuleOptions } from "../../interfaces";
|
|
5
|
+
import { QueueMessage, QueuePublisher } from '../../interfaces/mq';
|
|
6
|
+
import { MqMessageQueueService } from '../mq-message-queue.service';
|
|
7
|
+
import { MqMessageService } from '../mq-message.service';
|
|
8
8
|
|
|
9
|
-
export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
9
|
+
export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> {
|
|
10
10
|
private readonly logger = new Logger(RabbitMqPublisher.name);
|
|
11
11
|
private readonly url: string;
|
|
12
12
|
private readonly serviceRole: string;
|
|
@@ -28,6 +28,22 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> { // TOD
|
|
|
28
28
|
|
|
29
29
|
abstract options(): QueuesModuleOptions;
|
|
30
30
|
|
|
31
|
+
async establishConnection(): Promise<amqp.Connection> {
|
|
32
|
+
|
|
33
|
+
const url = new URL(this.url);
|
|
34
|
+
|
|
35
|
+
const connection = await amqp.connect({
|
|
36
|
+
protocol: url.protocol.replace(':', ''),
|
|
37
|
+
hostname: url.hostname,
|
|
38
|
+
port: parseInt(url.port),
|
|
39
|
+
username: url.username,
|
|
40
|
+
password: url.password,
|
|
41
|
+
frameMax: 131072,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
return connection
|
|
45
|
+
}
|
|
46
|
+
|
|
31
47
|
async publish(message: QueueMessage<T>): Promise<string> {
|
|
32
48
|
if (!this.url) {
|
|
33
49
|
this.logger.error('RabbitMqPublisher url is not defined in the environment variables');
|
|
@@ -44,7 +60,8 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> { // TOD
|
|
|
44
60
|
|
|
45
61
|
this.logger.debug(`RabbitMqPublisher publishing with options: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
46
62
|
|
|
47
|
-
const connection = await amqp.connect(this.url);
|
|
63
|
+
// const connection = await amqp.connect(this.url);
|
|
64
|
+
const connection = await this.establishConnection();
|
|
48
65
|
// this.logger.debug(`RabbitMqPublisher publisher connected options: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
49
66
|
|
|
50
67
|
const channel = await connection.createChannel();
|
|
@@ -121,6 +138,7 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> { // TOD
|
|
|
121
138
|
|
|
122
139
|
// 2. Next create an entry in the mqMessage table.
|
|
123
140
|
await this.mqMessageService.create({
|
|
141
|
+
messageBroker: this.options().type,
|
|
124
142
|
messageId: message.messageId,
|
|
125
143
|
retryCount: message.retryCount,
|
|
126
144
|
retryInterval: message.retryInterval,
|
|
@@ -137,6 +155,4 @@ export abstract class RabbitMqPublisher<T> implements QueuePublisher<T> { // TOD
|
|
|
137
155
|
}
|
|
138
156
|
|
|
139
157
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
158
|
}
|
package/src/services/{rabbitmq-subscriber.service.ts → queues/rabbitmq-subscriber.service.ts}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Logger, OnModuleInit } from '@nestjs/common';
|
|
2
2
|
import * as amqp from 'amqplib';
|
|
3
|
-
import { QueuesModuleOptions } from "
|
|
4
|
-
import { QueueMessage, QueueSubscriber } from '
|
|
5
|
-
import { MqMessageQueueService } from '
|
|
6
|
-
import { MqMessageService } from '
|
|
3
|
+
import { QueuesModuleOptions } from "../../interfaces";
|
|
4
|
+
import { QueueMessage, QueueSubscriber } from '../../interfaces/mq';
|
|
5
|
+
import { MqMessageQueueService } from '../mq-message-queue.service';
|
|
6
|
+
import { MqMessageService } from '../mq-message.service';
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscriber<T> { // TODO This can be made a generic type for better type visibility
|
|
@@ -30,21 +30,29 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
30
30
|
|
|
31
31
|
abstract options(): QueuesModuleOptions;
|
|
32
32
|
|
|
33
|
+
async establishConnection(): Promise<amqp.Connection> {
|
|
34
|
+
|
|
35
|
+
const url = new URL(this.url);
|
|
36
|
+
|
|
37
|
+
const connection = await amqp.connect({
|
|
38
|
+
protocol: url.protocol.replace(':', ''),
|
|
39
|
+
hostname: url.hostname,
|
|
40
|
+
port: parseInt(url.port),
|
|
41
|
+
username: url.username,
|
|
42
|
+
password: url.password,
|
|
43
|
+
frameMax: 131072,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return connection
|
|
47
|
+
}
|
|
48
|
+
|
|
33
49
|
async onModuleInit(): Promise<void> {
|
|
34
50
|
// we will start subscriber only if the current service role is subscriber.
|
|
35
|
-
if (['both', 'subscriber'].includes(this.serviceRole)) {
|
|
36
|
-
if (!this.url) {
|
|
37
|
-
this.logger.error('RabbitMqPublisher url is not defined in the environment variables');
|
|
38
|
-
throw new Error('RabbitMqPublisher url is not defined in the environment variables');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (!this.url) {
|
|
42
|
-
this.logger.warn(`Unable to create RabbitMqSubscriber instance: ${JSON.stringify(this.options())} as rabbitmq url is not configured.`);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
51
|
+
if (this.url && ['both', 'subscriber'].includes(this.serviceRole)) {
|
|
45
52
|
|
|
46
53
|
// this.logger.debug(`RabbitMqSubscriber instance created with options: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
47
|
-
const connection = await amqp.connect(this.url);
|
|
54
|
+
// const connection = await amqp.connect(this.url);
|
|
55
|
+
const connection = await this.establishConnection();
|
|
48
56
|
// this.logger.debug(`RabbitMqSubscriber connection established: ${JSON.stringify(this.options())} and url: ${url}`);
|
|
49
57
|
|
|
50
58
|
const channel = await connection.createChannel();
|
|
@@ -115,7 +123,6 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
|
|
|
115
123
|
|
|
116
124
|
this.logger.debug(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(this.options())} and url: ${this.url}`);
|
|
117
125
|
}
|
|
118
|
-
|
|
119
126
|
}
|
|
120
127
|
|
|
121
128
|
/**
|
|
File without changes
|
|
File without changes
|
|
@@ -5,7 +5,7 @@ import commonConfig from "src/config/common.config";
|
|
|
5
5
|
import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
|
|
6
6
|
import { QueueMessage } from "src/interfaces/mq";
|
|
7
7
|
import { SmsTemplateService } from "../sms-template.service";
|
|
8
|
-
import { RabbitMqPublisher } from "src/services/rabbitmq-publisher.service";
|
|
8
|
+
import { RabbitMqPublisher } from "src/services/queues/rabbitmq-publisher.service";
|
|
9
9
|
import { ISMS } from "../../interfaces";
|
|
10
10
|
|
|
11
11
|
export abstract class Msg91BaseSMSService implements ISMS {
|
package/src/solid-core.module.ts
CHANGED
|
@@ -42,7 +42,7 @@ import { RefreshModelCommand } from './commands/refresh-model.command';
|
|
|
42
42
|
import { MediaController } from './controllers/media.controller';
|
|
43
43
|
|
|
44
44
|
import { RefreshModuleCommand } from './commands/refresh-module.command';
|
|
45
|
-
import {
|
|
45
|
+
import { ModelMetadataSubscriber } from './subscribers/model-metadata.subscriber';
|
|
46
46
|
|
|
47
47
|
import { ViewMetadataController } from './controllers/view-metadata.controller';
|
|
48
48
|
import { ViewMetadata } from './entities/view-metadata.entity';
|
|
@@ -88,7 +88,9 @@ import { EmailQueueSubscriber } from './jobs/email-subscriber.service';
|
|
|
88
88
|
import { OTPQueuePublisher } from './jobs/otp-publisher.service';
|
|
89
89
|
import { OTPQueueSubscriber } from './jobs/otp-subscriber.service';
|
|
90
90
|
import { TestQueuePublisher } from './jobs/queue-test-publisher.service';
|
|
91
|
+
import { TestQueueDbPublisher } from './jobs/database/queue-test-db-publisher.service';
|
|
91
92
|
import { TestQueueSubscriber } from './jobs/queue-test-subscriber.service';
|
|
93
|
+
import { TestQueueDbSubscriber } from './jobs/database/queue-test-db-subscriber.service';
|
|
92
94
|
import { SmsQueuePublisher } from './jobs/sms-publisher.service';
|
|
93
95
|
import { SmsQueueSubscriber } from './jobs/sms-subscriber.service';
|
|
94
96
|
import { WhatsappQueuePublisher } from './jobs/whatsapp-publisher.service';
|
|
@@ -184,6 +186,8 @@ import { LocaleListSelectionProvider } from './services/selection-providers/loca
|
|
|
184
186
|
import { CreatedByUpdatedBySubscriber } from './subscribers/created-by-updated-by.subscriber';
|
|
185
187
|
import { SystemFieldsSeederService } from './seeders/system-fields-seeder.service';
|
|
186
188
|
import { ModelMetadataHelperService } from './helpers/model-metadata-helper.service';
|
|
189
|
+
import { GenerateCodePublisher } from './jobs/database/generate-code-publisher.service';
|
|
190
|
+
import { GenerateCodeSubscriber } from './jobs/database/generate-code-subscriber.service';
|
|
187
191
|
|
|
188
192
|
|
|
189
193
|
@Global()
|
|
@@ -320,7 +324,7 @@ import { ModelMetadataHelperService } from './helpers/model-metadata-helper.serv
|
|
|
320
324
|
ModuleMetadataSeederService,
|
|
321
325
|
ListOfValuesService,
|
|
322
326
|
ListOfValuesSelectionProvider,
|
|
323
|
-
|
|
327
|
+
ModelMetadataSubscriber,
|
|
324
328
|
ViewMetadataService,
|
|
325
329
|
ActionMetadataService,
|
|
326
330
|
MenuItemMetadataService,
|
|
@@ -365,6 +369,10 @@ import { ModelMetadataHelperService } from './helpers/model-metadata-helper.serv
|
|
|
365
369
|
UserRegistrationListener,
|
|
366
370
|
TestQueuePublisher,
|
|
367
371
|
TestQueueSubscriber,
|
|
372
|
+
TestQueueDbPublisher,
|
|
373
|
+
TestQueueDbSubscriber,
|
|
374
|
+
GenerateCodePublisher,
|
|
375
|
+
GenerateCodeSubscriber,
|
|
368
376
|
MqMessageQueueService,
|
|
369
377
|
MqMessageService,
|
|
370
378
|
PermissionMetadataService,
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Injectable, Logger, NotFoundException } from '@nestjs/common';
|
|
2
|
+
import { InjectDataSource } from '@nestjs/typeorm';
|
|
3
|
+
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
4
|
+
import { DataSource, EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from 'typeorm';
|
|
5
|
+
import { FieldMetadata } from '../entities/field-metadata.entity';
|
|
6
|
+
|
|
7
|
+
@EventSubscriber()
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class FieldMetadataSubscriber implements EntitySubscriberInterface<FieldMetadata> {
|
|
10
|
+
private readonly logger = new Logger(FieldMetadataSubscriber.name);
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
@InjectDataSource()
|
|
14
|
+
private readonly dataSource: DataSource,
|
|
15
|
+
) {
|
|
16
|
+
this.dataSource.subscribers.push(this);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
listenTo() {
|
|
20
|
+
return FieldMetadata;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async afterUpdate(event: UpdateEvent<FieldMetadata>): Promise<void> {
|
|
24
|
+
// If a field of type relation.many-to-one is marked for removal, and this field had an inverse relation created
|
|
25
|
+
// It means there is a field of type relation.one-to-many in the co-model, which needs to be removed
|
|
26
|
+
// if (event.entity && event.entity.isMarkedForRemoval && event.entity.type === 'relation' && event.entity.relationType === 'many-to-one' && event.entity.relationCreateInverse === true) {
|
|
27
|
+
// const relationCoModelSingularName = event.entity.relationCoModelSingularName;
|
|
28
|
+
// const relationCoModelFieldName = event.entity.relationCoModelFieldName;
|
|
29
|
+
|
|
30
|
+
// // Load the field metadata for the co-model.
|
|
31
|
+
// const coModelFieldMetadata = await this.dataSource
|
|
32
|
+
// .getRepository(FieldMetadata)
|
|
33
|
+
// .findOne({
|
|
34
|
+
// where: {
|
|
35
|
+
// name: relationCoModelFieldName,
|
|
36
|
+
// type: 'relation',
|
|
37
|
+
// relationType: 'one-to-many',
|
|
38
|
+
// model: {
|
|
39
|
+
// singularName: relationCoModelSingularName
|
|
40
|
+
// }
|
|
41
|
+
// },
|
|
42
|
+
// });
|
|
43
|
+
|
|
44
|
+
// // Mark the co-model isMarkedForRemoval field for removal.
|
|
45
|
+
// if (coModelFieldMetadata) {
|
|
46
|
+
// coModelFieldMetadata.isMarkedForRemoval = true;
|
|
47
|
+
// await this.dataSource.getRepository(FieldMetadata).save(coModelFieldMetadata);
|
|
48
|
+
// this.logger.debug(`Marked field ${coModelFieldMetadata.name} in model ${relationCoModelSingularName} for removal.`);
|
|
49
|
+
// }
|
|
50
|
+
// }
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -7,8 +7,8 @@ import { ModelMetadata } from '../entities/model-metadata.entity';
|
|
|
7
7
|
|
|
8
8
|
@EventSubscriber()
|
|
9
9
|
@Injectable()
|
|
10
|
-
export class
|
|
11
|
-
private readonly logger = new Logger(
|
|
10
|
+
export class ModelMetadataSubscriber implements EntitySubscriberInterface<ModelMetadata> {
|
|
11
|
+
private readonly logger = new Logger(ModelMetadataSubscriber.name);
|
|
12
12
|
|
|
13
13
|
constructor(
|
|
14
14
|
@InjectDataSource()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-queue.config.d.ts","sourceRoot":"","sources":["../../src/jobs/test-queue.config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;;;;;AAI3C,wBAQE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-queue.config.js","sourceRoot":"","sources":["../../src/jobs/test-queue.config.ts"],"names":[],"mappings":";;AACA,8CAA2C;AAE3C,MAAM,UAAU,GAAG,YAAY,CAAC;AAEhC,kBAAe;IACX,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,uBAAU,CAAC,QAAQ;IACzB,SAAS,EAAE,UAAU;CAKxB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-publisher.service.d.ts","sourceRoot":"","sources":["../../src/services/rabbitmq-publisher.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,8BAAsB,iBAAiB,CAAC,CAAC,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAM/D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IANnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAGd,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB;IAanE,QAAQ,CAAC,OAAO,IAAI,mBAAmB;IAEjC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAoF1C,iBAAiB;CA2BlC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-publisher.service.js","sourceRoot":"","sources":["../../src/services/rabbitmq-publisher.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-subscriber.service.d.ts","sourceRoot":"","sources":["../../src/services/rabbitmq-subscriber.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,8BAAsB,kBAAkB,CAAC,CAAC,CAAE,YAAW,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;IAM/E,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IANnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAGd,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB;IAanE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3C,QAAQ,CAAC,OAAO,IAAI,mBAAmB;IAEjC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;cA2FnB,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,KAAA,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;YAiB9E,YAAY;YA0BZ,sBAAsB;CAkCvC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq-subscriber.service.js","sourceRoot":"","sources":["../../src/services/rabbitmq-subscriber.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/model.subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAmB,WAAW,EAAE,MAAM,SAAS,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,qBAEa,eAAgB,YAAW,yBAAyB,CAAC,aAAa,CAAC;IAK5E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IALrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;gBAIxC,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,0BAA0B;IAKjE,QAAQ;IAIF,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,OAAO,CAAC,4BAA4B;CASrC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/model.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAuE;AACvE,6CAAmD;AACnD,4FAAuF;AACvF,qCAA8F;AAC9F,6EAAkE;AAClE,6EAAkE;AAI3D,IAAM,eAAe,uBAArB,MAAM,eAAe;IAG1B,YAEE,UAAuC,EACtB,kBAA8C;QAD9C,eAAU,GAAV,UAAU,CAAY;QACtB,uBAAkB,GAAlB,kBAAkB,CAA4B;QALhD,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;QAOzD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ;QACN,OAAO,qCAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAiC;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0DAA0D,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAEzG,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,0BAAiB,CAAC,+BAA+B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,kBAAkB,CAAC,IAAI,CAAC,qCAAa,EAAE,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;IACzF,CAAC;IAGO,4BAA4B,CAAC,KAAiC;QACpE,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,EAAE,CAAC;QAEtF,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrE,GAAG,KAAK;YACR,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC,CAAC,CAAC;QACJ,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF,CAAA;AApCY,0CAAe;0BAAf,eAAe;IAF3B,IAAA,yBAAe,GAAE;IACjB,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACF,0DAA0B;GANtD,eAAe,CAoC3B"}
|
|
File without changes
|