@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 +11 -0
- package/package.json +11 -0
- package/src/constants/sms.enum.d.ts +4 -0
- package/src/constants/sms.enum.js +9 -0
- package/src/constants/sms.enum.js.map +1 -0
- package/src/index.d.ts +3 -0
- package/src/index.js +7 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/isms.service.d.ts +5 -0
- package/src/interfaces/isms.service.js +3 -0
- package/src/interfaces/isms.service.js.map +1 -0
- package/src/services/aws-sns/sms.aws-sns.service.d.ts +11 -0
- package/src/services/aws-sns/sms.aws-sns.service.js +51 -0
- package/src/services/aws-sns/sms.aws-sns.service.js.map +1 -0
- package/src/sms.module.d.ts +6 -0
- package/src/sms.module.js +37 -0
- package/src/sms.module.js.map +1 -0
- package/src/sms.module.options.d.ts +18 -0
- package/src/sms.module.options.js +5 -0
- package/src/sms.module.options.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -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
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
|
package/src/index.js.map
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|