@qrvey/sms 0.0.2 → 0.0.4
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/cjs/services/clients/awsSmsSender.client.js +7 -4
- package/dist/cjs/services/clients/awsSmsSender.client.js.map +1 -1
- package/dist/cjs/services/clients/twilioSmsSender.client.js +4 -15
- package/dist/cjs/services/clients/twilioSmsSender.client.js.map +1 -1
- package/dist/cjs/services/clients/vonageSmsSender.client.js +12 -3
- package/dist/cjs/services/clients/vonageSmsSender.client.js.map +1 -1
- package/dist/esm/{awsSmsSender.client-4AURYPI4.mjs → awsSmsSender.client-KAGNU24Z.mjs} +9 -6
- package/dist/esm/awsSmsSender.client-KAGNU24Z.mjs.map +1 -0
- package/dist/esm/index.mjs +3 -3
- package/dist/esm/{twilioSmsSender.client-OKXZ2R67.mjs → twilioSmsSender.client-SSZMXU4M.mjs} +9 -17
- package/dist/esm/twilioSmsSender.client-SSZMXU4M.mjs.map +1 -0
- package/dist/esm/{vonageSmsSender.client-TOAW6CJU.mjs → vonageSmsSender.client-FSND4BQX.mjs} +12 -4
- package/dist/esm/vonageSmsSender.client-FSND4BQX.mjs.map +1 -0
- package/package.json +1 -1
- package/src/services/clients/awsSmsSender.client.ts +8 -4
- package/src/services/clients/twilioSmsSender.client.test.ts +1 -0
- package/src/services/clients/twilioSmsSender.client.ts +12 -17
- package/src/services/clients/vonageSmsSender.client.ts +12 -5
- package/dist/esm/awsSmsSender.client-4AURYPI4.mjs.map +0 -1
- package/dist/esm/twilioSmsSender.client-OKXZ2R67.mjs.map +0 -1
- package/dist/esm/vonageSmsSender.client-TOAW6CJU.mjs.map +0 -1
|
@@ -12,13 +12,16 @@ class AwsSMSSenderClient {
|
|
|
12
12
|
});
|
|
13
13
|
return await this.client.send(command);
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const accessKeyId = constants_1.USERNAME || process.env.AWS_ACCESS_KEY_ID;
|
|
16
|
+
const secretAccessKey = constants_1.PASSWORD || process.env.AWS_SECRET_ACCESS_KEY;
|
|
17
|
+
const region = constants_1.REGION || process.env.AWS_REGION;
|
|
18
|
+
if (!(accessKeyId && secretAccessKey))
|
|
16
19
|
throw new errors_1.NotProvidedCredentialsError();
|
|
17
20
|
this.client = new client_sns_1.SNSClient({
|
|
18
|
-
region:
|
|
21
|
+
region: region,
|
|
19
22
|
credentials: {
|
|
20
|
-
accessKeyId:
|
|
21
|
-
secretAccessKey:
|
|
23
|
+
accessKeyId: accessKeyId,
|
|
24
|
+
secretAccessKey: secretAccessKey,
|
|
22
25
|
},
|
|
23
26
|
});
|
|
24
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awsSmsSender.client.js","sourceRoot":"","sources":["../../../../src/services/clients/awsSmsSender.client.ts"],"names":[],"mappings":";;AAAA,yCAA2D;AAG3D,qDAAmE;AACnE,oDAI6B;AAE7B,MAAqB,kBAAkB;IAEnC;
|
|
1
|
+
{"version":3,"file":"awsSmsSender.client.js","sourceRoot":"","sources":["../../../../src/services/clients/awsSmsSender.client.ts"],"names":[],"mappings":";;AAAA,yCAA2D;AAG3D,qDAAmE;AACnE,oDAI6B;AAE7B,MAAqB,kBAAkB;IAEnC;QAqCQ,YAAO,GAAG,KAAK,EACnB,KAAa,EACb,OAAe,EACc,EAAE;YAC/B,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;gBAC/B,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,KAAK;aACrB,CAAC,CAAC;YAEH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC;QA9CE,MAAM,WAAW,GAAG,oBAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9D,MAAM,eAAe,GAAG,oBAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACtE,MAAM,MAAM,GAAG,kBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,CAAC,WAAW,IAAI,eAAe,CAAC;YACjC,MAAM,IAAI,oCAA2B,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAS,CAAC;YACxB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE;gBACT,WAAW,EAAE,WAAW;gBACxB,eAAe,EAAE,eAAe;aACnC;SACJ,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,IAAI,CACb,SAAmB,EAAE,EACrB,OAAe;QAEf,MAAM,MAAM,GAAe;YACvB,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;aACvC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CACtD,CACR,CACJ,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;CAaJ;AAlDD,qCAkDC"}
|
|
@@ -10,30 +10,19 @@ class TwilioSMSSenderClient {
|
|
|
10
10
|
to: phone,
|
|
11
11
|
body: message,
|
|
12
12
|
});
|
|
13
|
-
if (constants_1.USERNAME && constants_1.PASSWORD)
|
|
13
|
+
if (constants_1.USERNAME && constants_1.PASSWORD && constants_1.FROM)
|
|
14
14
|
this.client = new twilio_1.Twilio(constants_1.USERNAME, constants_1.PASSWORD);
|
|
15
15
|
else
|
|
16
16
|
throw new errors_1.NotProvidedCredentialsError();
|
|
17
17
|
}
|
|
18
18
|
async send(phones = [], message) {
|
|
19
|
-
const sentMessages = await Promise.all(phones.map((phone) => this.sendOne(phone, message)));
|
|
20
19
|
const result = {
|
|
21
20
|
sent: [],
|
|
22
21
|
failed: [],
|
|
23
22
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
phone: message.to,
|
|
28
|
-
error: message.errorMessage,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
result.sent.push({
|
|
33
|
-
phone: message.to,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
});
|
|
23
|
+
await Promise.all(phones.map((phone) => this.sendOne(phone, message)
|
|
24
|
+
.then(() => result.sent.push({ phone }))
|
|
25
|
+
.catch((error) => result.failed.push({ phone, error: error.message }))));
|
|
37
26
|
return result;
|
|
38
27
|
}
|
|
39
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twilioSmsSender.client.js","sourceRoot":"","sources":["../../../../src/services/clients/twilioSmsSender.client.ts"],"names":[],"mappings":";;AACA,mCAAgC;AAChC,qDAAiE;AAGjE,yCAA2D;AAE3D,MAAqB,qBAAqB;IAEtC;
|
|
1
|
+
{"version":3,"file":"twilioSmsSender.client.js","sourceRoot":"","sources":["../../../../src/services/clients/twilioSmsSender.client.ts"],"names":[],"mappings":";;AACA,mCAAgC;AAChC,qDAAiE;AAGjE,yCAA2D;AAE3D,MAAqB,qBAAqB;IAEtC;QA4BQ,YAAO,GAAG,CACd,KAAa,EACb,OAAe,EACS,EAAE,CAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,gBAAI;YACV,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,OAAO;SAChB,CAAC,CAAC;QAnCH,IAAI,oBAAQ,IAAI,oBAAQ,IAAI,gBAAI;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,oBAAQ,EAAE,oBAAQ,CAAC,CAAC;;YAC5C,MAAM,IAAI,oCAA2B,EAAE,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,IAAI,CACb,SAAmB,EAAE,EACrB,OAAe;QAEf,MAAM,MAAM,GAAe;YACvB,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;aACvC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CACtD,CACR,CACJ,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;CAWJ;AAvCD,wCAuCC"}
|
|
@@ -24,9 +24,18 @@ class VonageSMSSenderClient {
|
|
|
24
24
|
sent: [],
|
|
25
25
|
failed: [],
|
|
26
26
|
};
|
|
27
|
-
await Promise.all(phones.map((phone) => this.sendOne(phone, message)
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
await Promise.all(phones.map((phone) => this.sendOne(phone, message).then((data) => {
|
|
28
|
+
var _a;
|
|
29
|
+
if ((_a = data.messages) === null || _a === void 0 ? void 0 : _a.some((message) => message.status !== '0')) {
|
|
30
|
+
result.failed.push({
|
|
31
|
+
phone,
|
|
32
|
+
error: data.messages[0].errorText,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result.sent.push({ phone });
|
|
37
|
+
}
|
|
38
|
+
})));
|
|
30
39
|
return result;
|
|
31
40
|
}
|
|
32
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vonageSmsSender.client.js","sourceRoot":"","sources":["../../../../src/services/clients/vonageSmsSender.client.ts"],"names":[],"mappings":";;AAEA,mDAA4C;AAC5C,uCAAoC;AACpC,qDAAiE;AACjE,yCAA2D;AAG3D,MAAqB,qBAAqB;IAEtC;
|
|
1
|
+
{"version":3,"file":"vonageSmsSender.client.js","sourceRoot":"","sources":["../../../../src/services/clients/vonageSmsSender.client.ts"],"names":[],"mappings":";;AAEA,mDAA4C;AAC5C,uCAAoC;AACpC,qDAAiE;AACjE,yCAA2D;AAG3D,MAAqB,qBAAqB;IAEtC;QAoCQ,YAAO,GAAG,CAAC,KAAa,EAAE,OAAe,EAAwB,EAAE,CACvE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YACjB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gBAAc;SACvB,CAAC,CAAC;QAxCH,IAAI,CAAC,CAAC,oBAAQ,IAAI,oBAAQ,IAAI,gBAAI,CAAC;YAC/B,MAAM,IAAI,oCAA2B,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,WAAI,CAAC;YACxB,MAAM,EAAE,oBAAQ;YAChB,SAAS,EAAE,oBAAQ;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAM,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAgB,EAAE,OAAe;QAC/C,MAAM,MAAM,GAAe;YACvB,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;;YACvC,IACI,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,EAC1D;gBACE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,KAAK;oBACL,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;iBACpC,CAAC,CAAC;aACN;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;aAC/B;QACL,CAAC,CAAC,CACL,CACJ,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;CAQJ;AA5CD,wCA4CC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { USERNAME, PASSWORD,
|
|
1
|
+
import { USERNAME, PASSWORD, REGION, NotProvidedCredentialsError } from './chunk-NCQDKWNI.mjs';
|
|
2
2
|
import { PublishCommand, SNSClient } from '@aws-sdk/client-sns';
|
|
3
3
|
|
|
4
4
|
var AwsSMSSenderClient = class {
|
|
@@ -10,13 +10,16 @@ var AwsSMSSenderClient = class {
|
|
|
10
10
|
});
|
|
11
11
|
return await this.client.send(command);
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
const accessKeyId = USERNAME || process.env.AWS_ACCESS_KEY_ID;
|
|
14
|
+
const secretAccessKey = PASSWORD || process.env.AWS_SECRET_ACCESS_KEY;
|
|
15
|
+
const region = REGION || process.env.AWS_REGION;
|
|
16
|
+
if (!(accessKeyId && secretAccessKey))
|
|
14
17
|
throw new NotProvidedCredentialsError();
|
|
15
18
|
this.client = new SNSClient({
|
|
16
|
-
region
|
|
19
|
+
region,
|
|
17
20
|
credentials: {
|
|
18
|
-
accessKeyId
|
|
19
|
-
secretAccessKey
|
|
21
|
+
accessKeyId,
|
|
22
|
+
secretAccessKey
|
|
20
23
|
}
|
|
21
24
|
});
|
|
22
25
|
}
|
|
@@ -38,4 +41,4 @@ var AwsSMSSenderClient = class {
|
|
|
38
41
|
|
|
39
42
|
export { AwsSMSSenderClient as default };
|
|
40
43
|
//# sourceMappingURL=out.js.map
|
|
41
|
-
//# sourceMappingURL=awsSmsSender.client-
|
|
44
|
+
//# sourceMappingURL=awsSmsSender.client-KAGNU24Z.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/clients/awsSmsSender.client.ts"],"names":[],"mappings":";;;;;;;;AAIA;AAAA,EACI;AAAA,EAEA;AAAA,OACG;AAEP,IAAqB,qBAArB,MAA8D;AAAA,EAE1D,cAAc;AAqCd,SAAQ,UAAU,OACd,OACA,YACgC;AAChC,YAAM,UAAU,IAAI,eAAe;AAAA,QAC/B,SAAS;AAAA,QACT,aAAa;AAAA,MACjB,CAAC;AAED,aAAO,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,IACzC;AA9CI,UAAM,cAAc,YAAY,QAAQ,IAAI;AAC5C,UAAM,kBAAkB,YAAY,QAAQ,IAAI;AAChD,UAAM,SAAS,UAAU,QAAQ,IAAI;AACrC,QAAI,EAAE,eAAe;AACjB,YAAM,IAAI,4BAA4B;AAC1C,SAAK,SAAS,IAAI,UAAU;AAAA,MACxB;AAAA,MACA,aAAa;AAAA,QACT;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,KACT,SAAmB,CAAC,GACpB,SACmB;AACnB,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AAEA,UAAM,QAAQ;AAAA,MACV,OAAO;AAAA,QAAI,CAAC,UACR,KAAK,QAAQ,OAAO,OAAO,EACtB,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,CAAC,EACtC;AAAA,UAAM,CAAC,UACJ,OAAO,OAAO,KAAK,EAAE,OAAO,OAAO,MAAM,QAAQ,CAAC;AAAA,QACtD;AAAA,MACR;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAaJ","sourcesContent":["import { NotProvidedCredentialsError } from '../../errors';\nimport { ISMSSender } from '../../interfaces';\nimport { SendResult } from '../../types';\nimport { PASSWORD, REGION, USERNAME } from '../../utils/constants';\nimport {\n PublishCommand,\n PublishCommandOutput,\n SNSClient,\n} from '@aws-sdk/client-sns';\n\nexport default class AwsSMSSenderClient implements ISMSSender {\n private client: SNSClient;\n constructor() {\n const accessKeyId = USERNAME || process.env.AWS_ACCESS_KEY_ID;\n const secretAccessKey = PASSWORD || process.env.AWS_SECRET_ACCESS_KEY;\n const region = REGION || process.env.AWS_REGION;\n if (!(accessKeyId && secretAccessKey))\n throw new NotProvidedCredentialsError();\n this.client = new SNSClient({\n region: region,\n credentials: {\n accessKeyId: accessKeyId,\n secretAccessKey: secretAccessKey,\n },\n });\n }\n\n public async send(\n phones: string[] = [],\n message: string,\n ): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n\n await Promise.all(\n phones.map((phone) =>\n this.sendOne(phone, message)\n .then(() => result.sent.push({ phone }))\n .catch((error) =>\n result.failed.push({ phone, error: error.message }),\n ),\n ),\n );\n\n return result;\n }\n\n private sendOne = async (\n phone: string,\n message: string,\n ): Promise<PublishCommandOutput> => {\n const command = new PublishCommand({\n Message: message,\n PhoneNumber: phone,\n });\n\n return await this.client.send(command);\n };\n}\n"]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -12,10 +12,10 @@ var SMSSenderFactory = class {
|
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
SMSSenderFactory.providerModules = {
|
|
15
|
-
twilio: () => import('./twilioSmsSender.client-
|
|
16
|
-
aws: () => import('./awsSmsSender.client-
|
|
15
|
+
twilio: () => import('./twilioSmsSender.client-SSZMXU4M.mjs'),
|
|
16
|
+
aws: () => import('./awsSmsSender.client-KAGNU24Z.mjs'),
|
|
17
17
|
azure: () => import('./azureSmsSender.client-K6MPTIU7.mjs'),
|
|
18
|
-
vonage: () => import('./vonageSmsSender.client-
|
|
18
|
+
vonage: () => import('./vonageSmsSender.client-FSND4BQX.mjs')
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
// src/services/smsSender.service.ts
|
package/dist/esm/{twilioSmsSender.client-OKXZ2R67.mjs → twilioSmsSender.client-SSZMXU4M.mjs}
RENAMED
|
@@ -8,35 +8,27 @@ var TwilioSMSSenderClient = class {
|
|
|
8
8
|
to: phone,
|
|
9
9
|
body: message
|
|
10
10
|
});
|
|
11
|
-
if (USERNAME && PASSWORD)
|
|
11
|
+
if (USERNAME && PASSWORD && FROM)
|
|
12
12
|
this.client = new Twilio(USERNAME, PASSWORD);
|
|
13
13
|
else
|
|
14
14
|
throw new NotProvidedCredentialsError();
|
|
15
15
|
}
|
|
16
16
|
async send(phones = [], message) {
|
|
17
|
-
const sentMessages = await Promise.all(
|
|
18
|
-
phones.map((phone) => this.sendOne(phone, message))
|
|
19
|
-
);
|
|
20
17
|
const result = {
|
|
21
18
|
sent: [],
|
|
22
19
|
failed: []
|
|
23
20
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
result.
|
|
27
|
-
phone:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
result.sent.push({
|
|
32
|
-
phone: message2.to
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
});
|
|
21
|
+
await Promise.all(
|
|
22
|
+
phones.map(
|
|
23
|
+
(phone) => this.sendOne(phone, message).then(() => result.sent.push({ phone })).catch(
|
|
24
|
+
(error) => result.failed.push({ phone, error: error.message })
|
|
25
|
+
)
|
|
26
|
+
)
|
|
27
|
+
);
|
|
36
28
|
return result;
|
|
37
29
|
}
|
|
38
30
|
};
|
|
39
31
|
|
|
40
32
|
export { TwilioSMSSenderClient as default };
|
|
41
33
|
//# sourceMappingURL=out.js.map
|
|
42
|
-
//# sourceMappingURL=twilioSmsSender.client-
|
|
34
|
+
//# sourceMappingURL=twilioSmsSender.client-SSZMXU4M.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/clients/twilioSmsSender.client.ts"],"names":[],"mappings":";;;;;;;;AACA,SAAS,cAAc;AAMvB,IAAqB,wBAArB,MAAiE;AAAA,EAE7D,cAAc;AA4Bd,SAAQ,UAAU,CACd,OACA,YAEA,KAAK,OAAO,SAAS,OAAO;AAAA,MACxB,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM;AAAA,IACV,CAAC;AAnCD,QAAI,YAAY,YAAY;AACxB,WAAK,SAAS,IAAI,OAAO,UAAU,QAAQ;AAAA;AAC1C,YAAM,IAAI,4BAA4B;AAAA,EAC/C;AAAA,EAEA,MAAa,KACT,SAAmB,CAAC,GACpB,SACmB;AACnB,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AAEA,UAAM,QAAQ;AAAA,MACV,OAAO;AAAA,QAAI,CAAC,UACR,KAAK,QAAQ,OAAO,OAAO,EACtB,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,CAAC,EACtC;AAAA,UAAM,CAAC,UACJ,OAAO,OAAO,KAAK,EAAE,OAAO,OAAO,MAAM,QAAQ,CAAC;AAAA,QACtD;AAAA,MACR;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAWJ","sourcesContent":["import { ISMSSender } from '../../interfaces/smsSender.interface';\nimport { Twilio } from 'twilio';\nimport { USERNAME, PASSWORD, FROM } from '../../utils/constants';\nimport { MessageInstance } from 'twilio/lib/rest/api/v2010/account/message';\nimport { SendResult } from '../../types/sendResult.type';\nimport { NotProvidedCredentialsError } from '../../errors';\n\nexport default class TwilioSMSSenderClient implements ISMSSender {\n private client: Twilio;\n constructor() {\n if (USERNAME && PASSWORD && FROM)\n this.client = new Twilio(USERNAME, PASSWORD);\n else throw new NotProvidedCredentialsError();\n }\n\n public async send(\n phones: string[] = [],\n message: string,\n ): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n\n await Promise.all(\n phones.map((phone) =>\n this.sendOne(phone, message)\n .then(() => result.sent.push({ phone }))\n .catch((error) =>\n result.failed.push({ phone, error: error.message }),\n ),\n ),\n );\n\n return result;\n }\n\n private sendOne = (\n phone: string,\n message: string,\n ): Promise<MessageInstance> =>\n this.client.messages.create({\n from: FROM,\n to: phone,\n body: message,\n });\n}\n"]}
|
package/dist/esm/{vonageSmsSender.client-TOAW6CJU.mjs → vonageSmsSender.client-FSND4BQX.mjs}
RENAMED
|
@@ -24,9 +24,17 @@ var VonageSMSSenderClient = class {
|
|
|
24
24
|
};
|
|
25
25
|
await Promise.all(
|
|
26
26
|
phones.map(
|
|
27
|
-
(phone) => this.sendOne(phone, message).then(() =>
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
(phone) => this.sendOne(phone, message).then((data) => {
|
|
28
|
+
var _a;
|
|
29
|
+
if ((_a = data.messages) == null ? void 0 : _a.some((message2) => message2.status !== "0")) {
|
|
30
|
+
result.failed.push({
|
|
31
|
+
phone,
|
|
32
|
+
error: data.messages[0].errorText
|
|
33
|
+
});
|
|
34
|
+
} else {
|
|
35
|
+
result.sent.push({ phone });
|
|
36
|
+
}
|
|
37
|
+
})
|
|
30
38
|
)
|
|
31
39
|
);
|
|
32
40
|
return result;
|
|
@@ -35,4 +43,4 @@ var VonageSMSSenderClient = class {
|
|
|
35
43
|
|
|
36
44
|
export { VonageSMSSenderClient as default };
|
|
37
45
|
//# sourceMappingURL=out.js.map
|
|
38
|
-
//# sourceMappingURL=vonageSmsSender.client-
|
|
46
|
+
//# sourceMappingURL=vonageSmsSender.client-FSND4BQX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/clients/vonageSmsSender.client.ts"],"names":["message"],"mappings":";;;;;;;;AAEA,SAAS,cAAc;AACvB,SAAS,YAAY;AAKrB,IAAqB,wBAArB,MAAiE;AAAA,EAE7D,cAAc;AAoCd,SAAQ,UAAU,CAAC,OAAe,YAC9B,KAAK,OAAO,IAAI,KAAK;AAAA,MACjB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,IACV,CAAC;AAxCD,QAAI,EAAE,YAAY,YAAY;AAC1B,YAAM,IAAI,4BAA4B;AAC1C,UAAM,aAAa,IAAI,KAAK;AAAA,MACxB,QAAQ;AAAA,MACR,WAAW;AAAA,IACf,CAAC;AACD,SAAK,SAAS,IAAI,OAAO,UAAU;AAAA,EACvC;AAAA,EAEA,MAAa,KAAK,QAAkB,SAAsC;AACtE,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AAEA,UAAM,QAAQ;AAAA,MACV,OAAO;AAAA,QAAI,CAAC,UACR,KAAK,QAAQ,OAAO,OAAO,EAAE,KAAK,CAAC,SAAS;AA5B5D;AA6BoB,eACI,UAAK,aAAL,mBAAe,KAAK,CAACA,aAAYA,SAAQ,WAAW,MACtD;AACE,mBAAO,OAAO,KAAK;AAAA,cACf;AAAA,cACA,OAAO,KAAK,SAAS,CAAC,EAAE;AAAA,YAC5B,CAAC;AAAA,UACL,OAAO;AACH,mBAAO,KAAK,KAAK,EAAE,MAAM,CAAC;AAAA,UAC9B;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAQJ","sourcesContent":["import { ISMSSender } from '../../interfaces';\nimport { SendResult } from '../../types';\nimport { Vonage } from '@vonage/server-sdk';\nimport { Auth } from '@vonage/auth';\nimport { USERNAME, PASSWORD, FROM } from '../../utils/constants';\nimport { NotProvidedCredentialsError } from '../../errors';\nimport { SMSMessages } from '@vonage/sms/dist/lib/types/SMSMessages';\n\nexport default class VonageSMSSenderClient implements ISMSSender {\n private client: Vonage;\n constructor() {\n if (!(USERNAME && PASSWORD && FROM))\n throw new NotProvidedCredentialsError();\n const vonageAuth = new Auth({\n apiKey: USERNAME,\n apiSecret: PASSWORD,\n });\n this.client = new Vonage(vonageAuth);\n }\n\n public async send(phones: string[], message: string): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n\n await Promise.all(\n phones.map((phone) =>\n this.sendOne(phone, message).then((data) => {\n if (\n data.messages?.some((message) => message.status !== '0')\n ) {\n result.failed.push({\n phone,\n error: data.messages[0].errorText,\n });\n } else {\n result.sent.push({ phone });\n }\n }),\n ),\n );\n\n return result;\n }\n\n private sendOne = (phone: string, message: string): Promise<SMSMessages> =>\n this.client.sms.send({\n to: phone,\n text: message,\n from: FROM as string,\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -11,12 +11,16 @@ import {
|
|
|
11
11
|
export default class AwsSMSSenderClient implements ISMSSender {
|
|
12
12
|
private client: SNSClient;
|
|
13
13
|
constructor() {
|
|
14
|
-
|
|
14
|
+
const accessKeyId = USERNAME || process.env.AWS_ACCESS_KEY_ID;
|
|
15
|
+
const secretAccessKey = PASSWORD || process.env.AWS_SECRET_ACCESS_KEY;
|
|
16
|
+
const region = REGION || process.env.AWS_REGION;
|
|
17
|
+
if (!(accessKeyId && secretAccessKey))
|
|
18
|
+
throw new NotProvidedCredentialsError();
|
|
15
19
|
this.client = new SNSClient({
|
|
16
|
-
region:
|
|
20
|
+
region: region,
|
|
17
21
|
credentials: {
|
|
18
|
-
accessKeyId:
|
|
19
|
-
secretAccessKey:
|
|
22
|
+
accessKeyId: accessKeyId,
|
|
23
|
+
secretAccessKey: secretAccessKey,
|
|
20
24
|
},
|
|
21
25
|
});
|
|
22
26
|
}
|
|
@@ -8,7 +8,8 @@ import { NotProvidedCredentialsError } from '../../errors';
|
|
|
8
8
|
export default class TwilioSMSSenderClient implements ISMSSender {
|
|
9
9
|
private client: Twilio;
|
|
10
10
|
constructor() {
|
|
11
|
-
if (USERNAME && PASSWORD
|
|
11
|
+
if (USERNAME && PASSWORD && FROM)
|
|
12
|
+
this.client = new Twilio(USERNAME, PASSWORD);
|
|
12
13
|
else throw new NotProvidedCredentialsError();
|
|
13
14
|
}
|
|
14
15
|
|
|
@@ -16,26 +17,20 @@ export default class TwilioSMSSenderClient implements ISMSSender {
|
|
|
16
17
|
phones: string[] = [],
|
|
17
18
|
message: string,
|
|
18
19
|
): Promise<SendResult> {
|
|
19
|
-
const sentMessages = await Promise.all(
|
|
20
|
-
phones.map((phone) => this.sendOne(phone, message)),
|
|
21
|
-
);
|
|
22
|
-
|
|
23
20
|
const result: SendResult = {
|
|
24
21
|
sent: [],
|
|
25
22
|
failed: [],
|
|
26
23
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
});
|
|
24
|
+
|
|
25
|
+
await Promise.all(
|
|
26
|
+
phones.map((phone) =>
|
|
27
|
+
this.sendOne(phone, message)
|
|
28
|
+
.then(() => result.sent.push({ phone }))
|
|
29
|
+
.catch((error) =>
|
|
30
|
+
result.failed.push({ phone, error: error.message }),
|
|
31
|
+
),
|
|
32
|
+
),
|
|
33
|
+
);
|
|
39
34
|
|
|
40
35
|
return result;
|
|
41
36
|
}
|
|
@@ -26,11 +26,18 @@ export default class VonageSMSSenderClient implements ISMSSender {
|
|
|
26
26
|
|
|
27
27
|
await Promise.all(
|
|
28
28
|
phones.map((phone) =>
|
|
29
|
-
this.sendOne(phone, message)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
this.sendOne(phone, message).then((data) => {
|
|
30
|
+
if (
|
|
31
|
+
data.messages?.some((message) => message.status !== '0')
|
|
32
|
+
) {
|
|
33
|
+
result.failed.push({
|
|
34
|
+
phone,
|
|
35
|
+
error: data.messages[0].errorText,
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
result.sent.push({ phone });
|
|
39
|
+
}
|
|
40
|
+
}),
|
|
34
41
|
),
|
|
35
42
|
);
|
|
36
43
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/clients/awsSmsSender.client.ts"],"names":[],"mappings":";;;;;;;;AAIA;AAAA,EACI;AAAA,EAEA;AAAA,OACG;AAEP,IAAqB,qBAArB,MAA8D;AAAA,EAE1D,cAAc;AAiCd,SAAQ,UAAU,OACd,OACA,YACgC;AAChC,YAAM,UAAU,IAAI,eAAe;AAAA,QAC/B,SAAS;AAAA,QACT,aAAa;AAAA,MACjB,CAAC;AAED,aAAO,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,IACzC;AA1CI,QAAI,EAAE,YAAY;AAAW,YAAM,IAAI,4BAA4B;AACnE,SAAK,SAAS,IAAI,UAAU;AAAA,MACxB,QAAQ;AAAA,MACR,aAAa;AAAA,QACT,aAAa;AAAA,QACb,iBAAiB;AAAA,MACrB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,KACT,SAAmB,CAAC,GACpB,SACmB;AACnB,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AAEA,UAAM,QAAQ;AAAA,MACV,OAAO;AAAA,QAAI,CAAC,UACR,KAAK,QAAQ,OAAO,OAAO,EACtB,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,CAAC,EACtC;AAAA,UAAM,CAAC,UACJ,OAAO,OAAO,KAAK,EAAE,OAAO,OAAO,MAAM,QAAQ,CAAC;AAAA,QACtD;AAAA,MACR;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAaJ","sourcesContent":["import { NotProvidedCredentialsError } from '../../errors';\nimport { ISMSSender } from '../../interfaces';\nimport { SendResult } from '../../types';\nimport { PASSWORD, REGION, USERNAME } from '../../utils/constants';\nimport {\n PublishCommand,\n PublishCommandOutput,\n SNSClient,\n} from '@aws-sdk/client-sns';\n\nexport default class AwsSMSSenderClient implements ISMSSender {\n private client: SNSClient;\n constructor() {\n if (!(USERNAME && PASSWORD)) throw new NotProvidedCredentialsError();\n this.client = new SNSClient({\n region: REGION,\n credentials: {\n accessKeyId: USERNAME,\n secretAccessKey: PASSWORD,\n },\n });\n }\n\n public async send(\n phones: string[] = [],\n message: string,\n ): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n\n await Promise.all(\n phones.map((phone) =>\n this.sendOne(phone, message)\n .then(() => result.sent.push({ phone }))\n .catch((error) =>\n result.failed.push({ phone, error: error.message }),\n ),\n ),\n );\n\n return result;\n }\n\n private sendOne = async (\n phone: string,\n message: string,\n ): Promise<PublishCommandOutput> => {\n const command = new PublishCommand({\n Message: message,\n PhoneNumber: phone,\n });\n\n return await this.client.send(command);\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/clients/twilioSmsSender.client.ts"],"names":["message"],"mappings":";;;;;;;;AACA,SAAS,cAAc;AAMvB,IAAqB,wBAArB,MAAiE;AAAA,EAE7D,cAAc;AAiCd,SAAQ,UAAU,CACd,OACA,YAEA,KAAK,OAAO,SAAS,OAAO;AAAA,MACxB,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM;AAAA,IACV,CAAC;AAxCD,QAAI,YAAY;AAAU,WAAK,SAAS,IAAI,OAAO,UAAU,QAAQ;AAAA;AAChE,YAAM,IAAI,4BAA4B;AAAA,EAC/C;AAAA,EAEA,MAAa,KACT,SAAmB,CAAC,GACpB,SACmB;AACnB,UAAM,eAAe,MAAM,QAAQ;AAAA,MAC/B,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,OAAO,OAAO,CAAC;AAAA,IACtD;AAEA,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AACA,iBAAa,QAAQ,CAACA,aAAY;AAC9B,UAAIA,SAAQ,cAAc;AACtB,eAAO,OAAO,KAAK;AAAA,UACf,OAAOA,SAAQ;AAAA,UACf,OAAOA,SAAQ;AAAA,QACnB,CAAC;AAAA,MACL,OAAO;AACH,eAAO,KAAK,KAAK;AAAA,UACb,OAAOA,SAAQ;AAAA,QACnB,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,EACX;AAWJ","sourcesContent":["import { ISMSSender } from '../../interfaces/smsSender.interface';\nimport { Twilio } from 'twilio';\nimport { USERNAME, PASSWORD, FROM } from '../../utils/constants';\nimport { MessageInstance } from 'twilio/lib/rest/api/v2010/account/message';\nimport { SendResult } from '../../types/sendResult.type';\nimport { NotProvidedCredentialsError } from '../../errors';\n\nexport default class TwilioSMSSenderClient implements ISMSSender {\n private client: Twilio;\n constructor() {\n if (USERNAME && PASSWORD) this.client = new Twilio(USERNAME, PASSWORD);\n else throw new NotProvidedCredentialsError();\n }\n\n public async send(\n phones: string[] = [],\n message: string,\n ): Promise<SendResult> {\n const sentMessages = await Promise.all(\n phones.map((phone) => this.sendOne(phone, message)),\n );\n\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n sentMessages.forEach((message) => {\n if (message.errorMessage) {\n result.failed.push({\n phone: message.to,\n error: message.errorMessage,\n });\n } else {\n result.sent.push({\n phone: message.to,\n });\n }\n });\n\n return result;\n }\n\n private sendOne = (\n phone: string,\n message: string,\n ): Promise<MessageInstance> =>\n this.client.messages.create({\n from: FROM,\n to: phone,\n body: message,\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/clients/vonageSmsSender.client.ts"],"names":[],"mappings":";;;;;;;;AAEA,SAAS,cAAc;AACvB,SAAS,YAAY;AAKrB,IAAqB,wBAArB,MAAiE;AAAA,EAE7D,cAAc;AA6Bd,SAAQ,UAAU,CAAC,OAAe,YAC9B,KAAK,OAAO,IAAI,KAAK;AAAA,MACjB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,IACV,CAAC;AAjCD,QAAI,EAAE,YAAY,YAAY;AAC1B,YAAM,IAAI,4BAA4B;AAC1C,UAAM,aAAa,IAAI,KAAK;AAAA,MACxB,QAAQ;AAAA,MACR,WAAW;AAAA,IACf,CAAC;AACD,SAAK,SAAS,IAAI,OAAO,UAAU;AAAA,EACvC;AAAA,EAEA,MAAa,KAAK,QAAkB,SAAsC;AACtE,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AAEA,UAAM,QAAQ;AAAA,MACV,OAAO;AAAA,QAAI,CAAC,UACR,KAAK,QAAQ,OAAO,OAAO,EACtB,KAAK,MAAM,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,CAAC,EACtC;AAAA,UAAM,CAAC,UACJ,OAAO,OAAO,KAAK,EAAE,OAAO,OAAO,MAAM,QAAQ,CAAC;AAAA,QACtD;AAAA,MACR;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAQJ","sourcesContent":["import { ISMSSender } from '../../interfaces';\nimport { SendResult } from '../../types';\nimport { Vonage } from '@vonage/server-sdk';\nimport { Auth } from '@vonage/auth';\nimport { USERNAME, PASSWORD, FROM } from '../../utils/constants';\nimport { NotProvidedCredentialsError } from '../../errors';\nimport { SMSMessages } from '@vonage/sms/dist/lib/types/SMSMessages';\n\nexport default class VonageSMSSenderClient implements ISMSSender {\n private client: Vonage;\n constructor() {\n if (!(USERNAME && PASSWORD && FROM))\n throw new NotProvidedCredentialsError();\n const vonageAuth = new Auth({\n apiKey: USERNAME,\n apiSecret: PASSWORD,\n });\n this.client = new Vonage(vonageAuth);\n }\n\n public async send(phones: string[], message: string): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n\n await Promise.all(\n phones.map((phone) =>\n this.sendOne(phone, message)\n .then(() => result.sent.push({ phone }))\n .catch((error) =>\n result.failed.push({ phone, error: error.message }),\n ),\n ),\n );\n\n return result;\n }\n\n private sendOne = (phone: string, message: string): Promise<SMSMessages> =>\n this.client.sms.send({\n to: phone,\n text: message,\n from: FROM as string,\n });\n}\n"]}
|