@qrvey/sms 0.0.3 → 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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @qrvey/sms
2
2
 
3
3
  ![install size](https://packagephobia.now.sh/badge?p=%40qrvey%2Fsms)
4
- ![coverage](https://img.shields.io/badge/unit_test_coverage-87%25-brightgreen)
4
+ ![coverage](https://img.shields.io/badge/unit_test_coverage-88%25-brightgreen)
5
5
 
6
6
  **@qrvey/sms** is a lightweight and reliable library to send manage sms messages. It supports different clients such SNS (AWS), ACS (Azure), Twilio, and Vonage.
7
7
 
@@ -12,13 +12,16 @@ class AwsSMSSenderClient {
12
12
  });
13
13
  return await this.client.send(command);
14
14
  };
15
- if (!(constants_1.USERNAME && constants_1.PASSWORD))
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: constants_1.REGION,
21
+ region: region,
19
22
  credentials: {
20
- accessKeyId: constants_1.USERNAME,
21
- secretAccessKey: constants_1.PASSWORD,
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;QAiCQ,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;QA1CE,IAAI,CAAC,CAAC,oBAAQ,IAAI,oBAAQ,CAAC;YAAE,MAAM,IAAI,oCAA2B,EAAE,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAS,CAAC;YACxB,MAAM,EAAE,kBAAM;YACd,WAAW,EAAE;gBACT,WAAW,EAAE,oBAAQ;gBACrB,eAAe,EAAE,oBAAQ;aAC5B;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;AA9CD,qCA8CC"}
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"}
@@ -1,4 +1,4 @@
1
- import { USERNAME, PASSWORD, NotProvidedCredentialsError, REGION } from './chunk-NCQDKWNI.mjs';
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
- if (!(USERNAME && PASSWORD))
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: REGION,
19
+ region,
17
20
  credentials: {
18
- accessKeyId: USERNAME,
19
- secretAccessKey: PASSWORD
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-4AURYPI4.mjs.map
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"]}
@@ -13,7 +13,7 @@ var SMSSenderFactory = class {
13
13
  };
14
14
  SMSSenderFactory.providerModules = {
15
15
  twilio: () => import('./twilioSmsSender.client-SSZMXU4M.mjs'),
16
- aws: () => import('./awsSmsSender.client-4AURYPI4.mjs'),
16
+ aws: () => import('./awsSmsSender.client-KAGNU24Z.mjs'),
17
17
  azure: () => import('./azureSmsSender.client-K6MPTIU7.mjs'),
18
18
  vonage: () => import('./vonageSmsSender.client-FSND4BQX.mjs')
19
19
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/sms",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "types": "dist/types/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "exports": {
@@ -11,12 +11,16 @@ import {
11
11
  export default class AwsSMSSenderClient implements ISMSSender {
12
12
  private client: SNSClient;
13
13
  constructor() {
14
- if (!(USERNAME && PASSWORD)) throw new NotProvidedCredentialsError();
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: REGION,
20
+ region: region,
17
21
  credentials: {
18
- accessKeyId: USERNAME,
19
- secretAccessKey: PASSWORD,
22
+ accessKeyId: accessKeyId,
23
+ secretAccessKey: secretAccessKey,
20
24
  },
21
25
  });
22
26
  }
@@ -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"]}