@solidstarters/solid-core 1.2.146 → 1.2.149
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/config/common.config.d.ts +10 -0
- package/dist/config/common.config.d.ts.map +1 -1
- package/dist/config/common.config.js +5 -0
- package/dist/config/common.config.js.map +1 -1
- package/dist/controllers/ai-interaction.controller.d.ts +1 -1
- package/dist/controllers/ai-interaction.controller.js +1 -1
- package/dist/dtos/create-ai-interaction.dto.d.ts +3 -0
- package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/create-ai-interaction.dto.js +20 -1
- package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
- package/dist/dtos/update-ai-interaction.dto.d.ts +3 -0
- package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
- package/dist/dtos/update-ai-interaction.dto.js +19 -1
- package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
- package/dist/entities/ai-interaction.entity.d.ts +3 -0
- package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
- package/dist/entities/ai-interaction.entity.js +17 -1
- package/dist/entities/ai-interaction.entity.js.map +1 -1
- package/dist/helpers/environment.helper.d.ts +2 -0
- package/dist/helpers/environment.helper.d.ts.map +1 -0
- package/dist/helpers/environment.helper.js +11 -0
- package/dist/helpers/environment.helper.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +5 -5
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/api-email-subscriber-database.service.js +6 -3
- package/dist/jobs/database/api-email-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts +3 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js +6 -3
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +1 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/generate-code-subscriber-database.service.js +6 -3
- package/dist/jobs/database/generate-code-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/otp-subscriber-database.service.js +5 -2
- package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/sms-subscriber-database.service.d.ts +4 -2
- package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/sms-subscriber-database.service.js +7 -4
- package/dist/jobs/database/sms-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/smtp-email-subscriber-database.service.d.ts +4 -2
- package/dist/jobs/database/smtp-email-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/smtp-email-subscriber-database.service.js +6 -3
- package/dist/jobs/database/smtp-email-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/test-queue-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/test-queue-subscriber-database.service.js +6 -3
- package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +7 -2
- package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
- package/dist/jobs/database/twilio-sms-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/twilio-sms-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/twilio-sms-publisher-database.service.js +39 -0
- package/dist/jobs/database/twilio-sms-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.d.ts +8 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.d.ts.map +1 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.js +10 -0
- package/dist/jobs/database/twilio-sms-queue-database-options.js.map +1 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts +17 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js +48 -0
- package/dist/jobs/database/twilio-sms-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts +3 -1
- package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts.map +1 -1
- package/dist/jobs/database/whatsapp-subscriber-database.service.js +6 -3
- package/dist/jobs/database/whatsapp-subscriber-database.service.js.map +1 -1
- package/dist/jobs/sms-subscriber.service.d.ts +1 -1
- package/dist/jobs/sms-subscriber.service.js +1 -1
- package/dist/jobs/sms-subscriber.service.js.map +1 -1
- package/dist/jobs/smtp-email-subscriber.service.d.ts +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +15 -4
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +83 -3
- package/dist/services/ai-interaction.service.d.ts +1 -1
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +5 -1
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts +4 -4
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +12 -8
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +9 -0
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +61 -0
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/poller.service.d.ts +24 -0
- package/dist/services/poller.service.d.ts.map +1 -0
- package/dist/services/poller.service.js +131 -0
- package/dist/services/poller.service.js.map +1 -0
- package/dist/services/queues/database-subscriber.service.d.ts +4 -1
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/database-subscriber.service.js +13 -13
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +2 -2
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms/TwilioSMSService.d.ts +18 -0
- package/dist/services/sms/TwilioSMSService.d.ts.map +1 -0
- package/dist/services/sms/TwilioSMSService.js +115 -0
- package/dist/services/sms/TwilioSMSService.js.map +1 -0
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +11 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/src/config/common.config.ts +5 -0
- package/src/dtos/create-ai-interaction.dto.ts +16 -5
- package/src/dtos/update-ai-interaction.dto.ts +16 -5
- package/src/entities/ai-interaction.entity.ts +11 -3
- package/src/helpers/environment.helper.ts +7 -0
- package/src/index.ts +5 -0
- package/src/interfaces.ts +5 -5
- package/src/jobs/database/api-email-subscriber-database.service.ts +3 -1
- package/src/jobs/database/computed-field-evaluation-subscriber.service.ts +4 -2
- package/src/jobs/database/generate-code-subscriber-database.service.ts +3 -1
- package/src/jobs/database/otp-subscriber-database.service.ts +3 -1
- package/src/jobs/database/sms-subscriber-database.service.ts +4 -2
- package/src/jobs/database/smtp-email-subscriber-database.service.ts +3 -1
- package/src/jobs/database/test-queue-subscriber-database.service.ts +3 -1
- package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +5 -1
- package/src/jobs/database/twilio-sms-publisher-database.service.ts +23 -0
- package/src/jobs/database/twilio-sms-queue-database-options.ts +9 -0
- package/src/jobs/database/twilio-sms-subscriber-database.service.ts +32 -0
- package/src/jobs/database/whatsapp-subscriber-database.service.ts +3 -1
- package/src/jobs/sms-subscriber.service.ts +1 -1
- package/src/seeders/module-metadata-seeder.service.ts +18 -15
- package/src/seeders/seed-data/solid-core-metadata.json +83 -3
- package/src/services/ai-interaction.service.ts +8 -3
- package/src/services/mail/smtp-email.service.ts +18 -17
- package/src/services/mq-message.service.ts +116 -0
- package/src/services/poller.service.ts +163 -0
- package/src/services/queues/database-subscriber.service.ts +39 -12
- package/src/services/sms/Msg91BaseSMSService.ts +2 -2
- package/src/services/sms/Msg91OTPService.ts +1 -1
- package/src/services/sms/Msg91SMSService.ts +1 -1
- package/src/services/sms/TwilioSMSService.ts +118 -0
- package/src/solid-core.module.ts +14 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import Handlebars from "handlebars";
|
|
2
|
+
import { Inject, Injectable, Logger } from "@nestjs/common";
|
|
3
|
+
import { ConfigType } from "@nestjs/config";
|
|
4
|
+
import commonConfig from "src/config/common.config";
|
|
5
|
+
import { SmsTemplateService } from "../sms-template.service";
|
|
6
|
+
import { ISMS } from "../../interfaces";
|
|
7
|
+
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
8
|
+
import twilio from 'twilio';
|
|
9
|
+
import { QueueMessage } from "src/interfaces/mq";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@Injectable()
|
|
13
|
+
export class TwilioSMSService implements ISMS {
|
|
14
|
+
private readonly logger = new Logger(TwilioSMSService.name);
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
@Inject(commonConfig.KEY)
|
|
18
|
+
private commonConfiguration: ConfigType<typeof commonConfig>,
|
|
19
|
+
private publisherFactory: PublisherFactory<any>,
|
|
20
|
+
private smsTemplateService: SmsTemplateService,
|
|
21
|
+
) {
|
|
22
|
+
// super(commonConfiguration, 'OTPQueuePublisher', publisherFactory, smsTemplateService);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async sendSMS(to: string, body: string, shouldQueueSms: boolean): Promise<any> {
|
|
26
|
+
const accountSid = this.commonConfiguration.twilio.accountSid;
|
|
27
|
+
const authToken = this.commonConfiguration.twilio.authToken;
|
|
28
|
+
const twilioNumber = this.commonConfiguration.twilio.number;
|
|
29
|
+
if (!accountSid || !authToken || !twilioNumber) {
|
|
30
|
+
throw new Error("Missing COMMON_TWILIO_ACCOUNT_SID or COMMON_TWILIO_AUTH_TOKEN or COMMON_TWILIO_NUMBER in env.");
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const message = {
|
|
34
|
+
payload: {
|
|
35
|
+
body: body,
|
|
36
|
+
to: to,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Send using queue if the developer has explicitly invoked with true.
|
|
41
|
+
if (shouldQueueSms === true) {
|
|
42
|
+
await this.sendSMSAsynchronously(message);
|
|
43
|
+
}
|
|
44
|
+
// If developer has not, however system config mandates that we send using queue, still we send.
|
|
45
|
+
else if (shouldQueueSms === false && this.commonConfiguration.shouldQueueSms === true) {
|
|
46
|
+
await this.sendSMSAsynchronously(message);
|
|
47
|
+
}
|
|
48
|
+
// Else we send synch
|
|
49
|
+
else {
|
|
50
|
+
await this.sendSMSSynchronously(message);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return message;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async sendSMSUsingTemplate(to: string, templateName: string, templateParams: any, shouldQueueSms: boolean): Promise<any> {
|
|
57
|
+
// Load template and evaluate it.
|
|
58
|
+
const smsTemplate = await this.smsTemplateService.findOneByName(templateName);
|
|
59
|
+
if (!smsTemplate) {
|
|
60
|
+
throw new Error(`Invalid template name ${templateName}`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Evaluate the body template.
|
|
64
|
+
let body = '';
|
|
65
|
+
try {
|
|
66
|
+
const bodyTemplate = Handlebars.compile(smsTemplate.body);
|
|
67
|
+
body = bodyTemplate(templateParams);
|
|
68
|
+
} catch (error) {
|
|
69
|
+
throw new Error('Unable to compile sms template body');
|
|
70
|
+
}
|
|
71
|
+
// Finally send the email.
|
|
72
|
+
return await this.sendSMS(to, body, shouldQueueSms);
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
async sendSMSAsynchronously(message) {
|
|
77
|
+
const { to } = message.payload;
|
|
78
|
+
this.publisherFactory.publish(message, 'TwilioSmsQueuePublisher');
|
|
79
|
+
this.logger.debug(`Queueing SMS to ${to} with message ${JSON.stringify(message)}`);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async sendSMSSynchronously(message: QueueMessage<any>): Promise<any> {
|
|
83
|
+
const accountSid = this.commonConfiguration.twilio.accountSid;
|
|
84
|
+
const authToken = this.commonConfiguration.twilio.authToken;
|
|
85
|
+
const twilioNumber = this.commonConfiguration.twilio.number;
|
|
86
|
+
if (!accountSid || !authToken || !twilioNumber) {
|
|
87
|
+
throw new Error("Missing COMMON_TWILIO_ACCOUNT_SID or COMMON_TWILIO_AUTH_TOKEN or COMMON_TWILIO_NUMBER in env.");
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const { to, body } = message.payload;
|
|
91
|
+
|
|
92
|
+
const client = twilio(accountSid, authToken);
|
|
93
|
+
try {
|
|
94
|
+
const toSplit = to.split(',');
|
|
95
|
+
|
|
96
|
+
const r = [];
|
|
97
|
+
|
|
98
|
+
for (let i = 0; i < toSplit.length; i++) {
|
|
99
|
+
const actualTo = toSplit[i];
|
|
100
|
+
const twilioResponseMsg = await client.messages.create({
|
|
101
|
+
body: body,
|
|
102
|
+
from: twilioNumber,
|
|
103
|
+
to: actualTo,
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
this.logger.debug(`Sending SMS to ${actualTo} using Twilio`);
|
|
107
|
+
this.logger.debug(`Twilio response: `);
|
|
108
|
+
this.logger.debug(JSON.stringify(twilioResponseMsg))
|
|
109
|
+
|
|
110
|
+
r.push(twilioResponseMsg);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return r;
|
|
114
|
+
} catch (error) {
|
|
115
|
+
throw new Error(error);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
package/src/solid-core.module.ts
CHANGED
|
@@ -186,6 +186,11 @@ import { OTPQueuePublisherDatabase } from './jobs/database/otp-publisher-databas
|
|
|
186
186
|
import { OTPQueueSubscriberDatabase } from './jobs/database/otp-subscriber-database.service';
|
|
187
187
|
import { SmsQueuePublisherDatabase } from './jobs/database/sms-publisher-database.service';
|
|
188
188
|
import { SmsQueueSubscriberDatabase } from './jobs/database/sms-subscriber-database.service';
|
|
189
|
+
|
|
190
|
+
import { TwilioSmsQueuePublisherDatabase } from './jobs/database/twilio-sms-publisher-database.service';
|
|
191
|
+
import { TwilioSmsQueueSubscriberDatabase } from './jobs/database/twilio-sms-subscriber-database.service';
|
|
192
|
+
|
|
193
|
+
|
|
189
194
|
import { TriggerMcpClientPublisherDatabase } from './jobs/database/trigger-mcp-client-publisher-database.service';
|
|
190
195
|
import { TriggerMcpClientSubscriberDatabase } from './jobs/database/trigger-mcp-client-subscriber-database.service';
|
|
191
196
|
import { WhatsappQueuePublisherDatabase } from './jobs/database/whatsapp-publisher-database.service';
|
|
@@ -260,6 +265,8 @@ import { SolidCreateModelLayoutMcpToolResponseHandler } from './services/mcp-too
|
|
|
260
265
|
import { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';
|
|
261
266
|
import { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';
|
|
262
267
|
import { MailFactory } from './factories/mail.factory';
|
|
268
|
+
import { TwilioSMSService } from './services/sms/TwilioSMSService';
|
|
269
|
+
import { PollerService } from './services/poller.service';
|
|
263
270
|
|
|
264
271
|
|
|
265
272
|
@Global()
|
|
@@ -427,9 +434,11 @@ import { MailFactory } from './factories/mail.factory';
|
|
|
427
434
|
Msg91SMSService,
|
|
428
435
|
Msg91OTPService,
|
|
429
436
|
Msg91WhatsappService,
|
|
437
|
+
TwilioSMSService,
|
|
430
438
|
SmsTemplateService,
|
|
431
439
|
EmailTemplateService,
|
|
432
440
|
PublisherFactory,
|
|
441
|
+
PollerService,
|
|
433
442
|
|
|
434
443
|
McpToolResponseHandlerFactory,
|
|
435
444
|
SolidCreateModuleMcpToolResponseHandler,
|
|
@@ -449,6 +458,8 @@ import { MailFactory } from './factories/mail.factory';
|
|
|
449
458
|
SmsQueueSubscriber,
|
|
450
459
|
SmsQueuePublisherDatabase,
|
|
451
460
|
SmsQueueSubscriberDatabase,
|
|
461
|
+
TwilioSmsQueuePublisherDatabase,
|
|
462
|
+
TwilioSmsQueueSubscriberDatabase,
|
|
452
463
|
OTPQueuePublisher,
|
|
453
464
|
OTPQueueSubscriber,
|
|
454
465
|
OTPQueuePublisherDatabase,
|
|
@@ -567,6 +578,7 @@ import { MailFactory } from './factories/mail.factory';
|
|
|
567
578
|
ElasticEmailService,
|
|
568
579
|
Msg91SMSService,
|
|
569
580
|
Msg91OTPService,
|
|
581
|
+
TwilioSMSService,
|
|
570
582
|
Msg91WhatsappService,
|
|
571
583
|
TinyUrlService,
|
|
572
584
|
PdfService,
|
|
@@ -592,6 +604,8 @@ import { MailFactory } from './factories/mail.factory';
|
|
|
592
604
|
ConfigModule,
|
|
593
605
|
PublisherFactory,
|
|
594
606
|
MailFactory,
|
|
607
|
+
PollerService,
|
|
608
|
+
AiInteractionService,
|
|
595
609
|
],
|
|
596
610
|
})
|
|
597
611
|
export class SolidCoreModule { }
|