@tc-libs/sms 0.9.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.
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # sms
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build sms` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test sms` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@tc-libs/sms",
3
+ "version": "0.9.0",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "types": "./src/index.d.ts"
11
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum SMS_TYPE {
2
+ PROMOTIONAL = "Promotional",
3
+ TRANSACTIONAL = "Transactional"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SMS_TYPE = void 0;
4
+ var SMS_TYPE;
5
+ (function (SMS_TYPE) {
6
+ SMS_TYPE["PROMOTIONAL"] = "Promotional";
7
+ SMS_TYPE["TRANSACTIONAL"] = "Transactional";
8
+ })(SMS_TYPE || (exports.SMS_TYPE = SMS_TYPE = {}));
9
+ //# sourceMappingURL=sms.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.enum.js","sourceRoot":"","sources":["../../../../../packages/sms/src/constants/sms.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uCAA2B,CAAA;IAC3B,2CAA+B,CAAA;AACjC,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './sms.module';
2
+ export * from './interfaces/isms.service';
3
+ export * from './services/aws-sns/sms.aws-sns.service';
package/src/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./sms.module"), exports);
5
+ tslib_1.__exportStar(require("./interfaces/isms.service"), exports);
6
+ tslib_1.__exportStar(require("./services/aws-sns/sms.aws-sns.service"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/sms/src/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,oEAA0C;AAC1C,iFAAuD"}
@@ -0,0 +1,5 @@
1
+ import { ServiceOutputTypes } from '@aws-sdk/client-s3';
2
+ import { SMS_TYPE } from '../constants/sms.enum';
3
+ export interface ISmSService {
4
+ sendSmS(sender: string, phoneNumber: string, message: string, type: SMS_TYPE): Promise<ServiceOutputTypes>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=isms.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isms.service.js","sourceRoot":"","sources":["../../../../../packages/sms/src/interfaces/isms.service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { ISmSService } from '../../interfaces/isms.service';
2
+ import { SNSClient, ServiceOutputTypes } from '@aws-sdk/client-sns';
3
+ import { SMS_TYPE } from '../../constants/sms.enum';
4
+ import { SmsModuleOptions } from '../../sms.module.options';
5
+ export declare class SmSAwsSnsService implements ISmSService {
6
+ private readonly _options;
7
+ provider: string;
8
+ protected readonly _sns: SNSClient;
9
+ constructor(_options: SmsModuleOptions);
10
+ sendSmS(phoneNumber: string, message: string, sender: string, type: SMS_TYPE): Promise<ServiceOutputTypes>;
11
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SmSAwsSnsService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const client_sns_1 = require("@aws-sdk/client-sns");
7
+ const sms_module_options_1 = require("../../sms.module.options");
8
+ let SmSAwsSnsService = class SmSAwsSnsService {
9
+ constructor(_options) {
10
+ this._options = _options;
11
+ this.provider = 'aws-s3';
12
+ const accessKeyId = _options.aws.credential.key;
13
+ const secretAccessKey = _options.aws.credential.secret;
14
+ const region = _options.aws.s3.region;
15
+ this._sns = new client_sns_1.SNSClient({
16
+ credentials: {
17
+ accessKeyId,
18
+ secretAccessKey,
19
+ },
20
+ region,
21
+ });
22
+ }
23
+ async sendSmS(phoneNumber, message, sender, type) {
24
+ console.log(await this._sns.send(new client_sns_1.GetSMSAttributesCommand({ attributes: ['DefaultSMSType'] })));
25
+ console.log(await this._sns.send(new client_sns_1.CheckIfPhoneNumberIsOptedOutCommand({
26
+ phoneNumber,
27
+ })));
28
+ const command = new client_sns_1.PublishCommand({
29
+ Message: message,
30
+ PhoneNumber: phoneNumber,
31
+ MessageAttributes: {
32
+ 'AWS.SNS.SMS.SMSType': {
33
+ DataType: 'String',
34
+ StringValue: type,
35
+ },
36
+ 'AWS.SNS.SMS.SenderID': {
37
+ DataType: 'String',
38
+ StringValue: sender, // Qui imposti l'ID del mittente personalizzato
39
+ },
40
+ },
41
+ });
42
+ return this._sns.send(command);
43
+ }
44
+ };
45
+ exports.SmSAwsSnsService = SmSAwsSnsService;
46
+ exports.SmSAwsSnsService = SmSAwsSnsService = tslib_1.__decorate([
47
+ (0, common_1.Injectable)(),
48
+ tslib_1.__param(0, (0, common_1.Inject)(sms_module_options_1.SMS_CONFIG_OPTIONS)),
49
+ tslib_1.__metadata("design:paramtypes", [Object])
50
+ ], SmSAwsSnsService);
51
+ //# sourceMappingURL=sms.aws-sns.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.aws-sns.service.js","sourceRoot":"","sources":["../../../../../../packages/sms/src/services/aws-sns/sms.aws-sns.service.ts"],"names":[],"mappings":";;;;AACA,2CAAoD;AACpD,oDAM6B;AAE7B,iEAAgF;AAGzE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAI3B,YAEE,QAA2C;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;QAL7C,aAAQ,GAAG,QAAQ,CAAC;QAOlB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;QACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAS,CAAC;YACxB,WAAW,EAAE;gBACX,WAAW;gBACX,eAAe;aAChB;YACD,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CACX,WAAmB,EACnB,OAAe,EACf,MAAc,EACd,IAAc;QAEd,OAAO,CAAC,GAAG,CACT,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,IAAI,oCAAuB,CAAC,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAChE,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAClB,IAAI,gDAAmC,CAAC;YACtC,WAAW;SACZ,CAAC,CACH,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;YACjC,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,WAAW;YACxB,iBAAiB,EAAE;gBACjB,qBAAqB,EAAE;oBACrB,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,IAAI;iBAClB;gBACD,sBAAsB,EAAE;oBACtB,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,MAAM,EAAE,+CAA+C;iBACrE;aACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AAvDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAMR,mBAAA,IAAA,eAAM,EAAC,uCAAkB,CAAC,CAAA;;GALlB,gBAAgB,CAuD5B"}
@@ -0,0 +1,6 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import SmsModuleAsyncOptions, { SmsModuleOptions } from './sms.module.options';
3
+ export declare class SmsModule {
4
+ static register(options: SmsModuleOptions, isGlobal?: boolean): DynamicModule;
5
+ static registerAsync(options: SmsModuleAsyncOptions, isGlobal?: boolean): DynamicModule;
6
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SmsModule = void 0;
4
+ const sms_aws_sns_service_1 = require("./services/aws-sns/sms.aws-sns.service");
5
+ const sms_module_options_1 = require("./sms.module.options");
6
+ class SmsModule {
7
+ static register(options, isGlobal) {
8
+ return {
9
+ module: SmsModule,
10
+ imports: [],
11
+ providers: [
12
+ { provide: sms_module_options_1.SMS_CONFIG_OPTIONS, useValue: options },
13
+ sms_aws_sns_service_1.SmSAwsSnsService,
14
+ ],
15
+ exports: [sms_aws_sns_service_1.SmSAwsSnsService],
16
+ global: isGlobal,
17
+ };
18
+ }
19
+ static registerAsync(options, isGlobal) {
20
+ return {
21
+ module: SmsModule,
22
+ imports: [...(options.imports || [])],
23
+ providers: [
24
+ {
25
+ provide: sms_module_options_1.SMS_CONFIG_OPTIONS,
26
+ useFactory: options.useFactory,
27
+ inject: options.inject,
28
+ },
29
+ sms_aws_sns_service_1.SmSAwsSnsService,
30
+ ],
31
+ exports: [sms_aws_sns_service_1.SmSAwsSnsService],
32
+ global: isGlobal,
33
+ };
34
+ }
35
+ }
36
+ exports.SmsModule = SmsModule;
37
+ //# sourceMappingURL=sms.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.module.js","sourceRoot":"","sources":["../../../../packages/sms/src/sms.module.ts"],"names":[],"mappings":";;;AACA,gFAA0E;AAC1E,6DAG8B;AAE9B,MAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CACb,OAAyB,EACzB,QAAkB;QAElB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,uCAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAClD,sCAAgB;aACjB;YACD,OAAO,EAAE,CAAC,sCAAgB,CAAC;YAC3B,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,aAAa,CAClB,OAA8B,EAC9B,QAAkB;QAElB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uCAAkB;oBAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD,sCAAgB;aACjB;YACD,OAAO,EAAE,CAAC,sCAAgB,CAAC;YAC3B,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;CACF;AApCD,8BAoCC"}
@@ -0,0 +1,18 @@
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ import { FactoryProvider } from '@nestjs/common/interfaces/modules/provider.interface';
3
+ export declare const SMS_CONFIG_OPTIONS = "SMS_CONFIG_OPTIONS";
4
+ export interface SmsModuleOptions {
5
+ aws: {
6
+ credential: {
7
+ key: string;
8
+ secret: string;
9
+ };
10
+ s3: {
11
+ region: string;
12
+ bucket: string;
13
+ baseUrl: string;
14
+ };
15
+ };
16
+ }
17
+ type SmsModuleAsyncOptions = Pick<ModuleMetadata, 'imports'> & Pick<FactoryProvider<SmsModuleOptions>, 'useFactory' | 'inject'>;
18
+ export default SmsModuleAsyncOptions;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SMS_CONFIG_OPTIONS = void 0;
4
+ exports.SMS_CONFIG_OPTIONS = 'SMS_CONFIG_OPTIONS';
5
+ //# sourceMappingURL=sms.module.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms.module.options.js","sourceRoot":"","sources":["../../../../packages/sms/src/sms.module.options.ts"],"names":[],"mappings":";;;AAGa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC"}