@qrvey/sms 0.0.4 → 0.0.5

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.
@@ -40,5 +40,5 @@ var AwsSMSSenderClient = class {
40
40
  };
41
41
 
42
42
  export { AwsSMSSenderClient as default };
43
- //# sourceMappingURL=out.js.map
43
+ //# sourceMappingURL=awsSmsSender.client-KAGNU24Z.mjs.map
44
44
  //# sourceMappingURL=awsSmsSender.client-KAGNU24Z.mjs.map
@@ -1 +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"]}
1
+ {"version":3,"sources":["../../src/services/clients/awsSmsSender.client.ts"],"names":[],"mappings":";;;AAUA,IAAqB,qBAArB,MAA8D;AAAA,EAE1D,WAAc,GAAA;AAqCd,IAAQ,IAAA,CAAA,OAAA,GAAU,OACd,KAAA,EACA,OACgC,KAAA;AAChC,MAAM,MAAA,OAAA,GAAU,IAAI,cAAe,CAAA;AAAA,QAC/B,OAAS,EAAA,OAAA;AAAA,QACT,WAAa,EAAA;AAAA,OAChB,CAAA;AAED,MAAA,OAAO,MAAM,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,OAAO,CAAA;AAAA,KACzC;AA9CI,IAAM,MAAA,WAAA,GAAc,QAAY,IAAA,OAAA,CAAQ,GAAI,CAAA,iBAAA;AAC5C,IAAM,MAAA,eAAA,GAAkB,QAAY,IAAA,OAAA,CAAQ,GAAI,CAAA,qBAAA;AAChD,IAAM,MAAA,MAAA,GAAS,MAAU,IAAA,OAAA,CAAQ,GAAI,CAAA,UAAA;AACrC,IAAA,IAAI,EAAE,WAAe,IAAA,eAAA,CAAA;AACjB,MAAA,MAAM,IAAI,2BAA4B,EAAA;AAC1C,IAAK,IAAA,CAAA,MAAA,GAAS,IAAI,SAAU,CAAA;AAAA,MACxB,MAAA;AAAA,MACA,WAAa,EAAA;AAAA,QACT,WAAA;AAAA,QACA;AAAA;AACJ,KACH,CAAA;AAAA;AACL,EAEA,MAAa,IAAA,CACT,MAAmB,GAAA,IACnB,OACmB,EAAA;AACnB,IAAA,MAAM,MAAqB,GAAA;AAAA,MACvB,MAAM,EAAC;AAAA,MACP,QAAQ;AAAC,KACb;AAEA,IAAA,MAAM,OAAQ,CAAA,GAAA;AAAA,MACV,MAAO,CAAA,GAAA;AAAA,QAAI,CAAC,KACR,KAAA,IAAA,CAAK,OAAQ,CAAA,KAAA,EAAO,OAAO,CACtB,CAAA,IAAA,CAAK,MAAM,MAAA,CAAO,KAAK,IAAK,CAAA,EAAE,KAAM,EAAC,CAAC,CACtC,CAAA,KAAA;AAAA,UAAM,CAAC,KACJ,KAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,EAAE,KAAO,EAAA,KAAA,EAAO,KAAM,CAAA,OAAA,EAAS;AAAA;AACtD;AACR,KACJ;AAEA,IAAO,OAAA,MAAA;AAAA;AAcf","file":"awsSmsSender.client-KAGNU24Z.mjs","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"]}
@@ -24,13 +24,12 @@ var AzureSMSSenderClient = class {
24
24
  phone: smsResult.to,
25
25
  error: smsResult.errorMessage
26
26
  });
27
- else
28
- result.sent.push({ phone: smsResult.to });
27
+ else result.sent.push({ phone: smsResult.to });
29
28
  });
30
29
  return result;
31
30
  }
32
31
  };
33
32
 
34
33
  export { AzureSMSSenderClient as default };
35
- //# sourceMappingURL=out.js.map
36
- //# sourceMappingURL=azureSmsSender.client-K6MPTIU7.mjs.map
34
+ //# sourceMappingURL=azureSmsSender.client-4MHOTRQ7.mjs.map
35
+ //# sourceMappingURL=azureSmsSender.client-4MHOTRQ7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/clients/azureSmsSender.client.ts"],"names":[],"mappings":";;;AAMA,IAAqB,uBAArB,MAAgE;AAAA,EAE5D,WAAc,GAAA;AACV,IAAI,IAAA,EAAE,YAAY,QAAY,IAAA,IAAA,CAAA;AAC1B,MAAA,MAAM,IAAI,2BAA4B,EAAA;AAC1C,IAAA,MAAM,gBAAmB,GAAA,CAAA,iBAAA,EAAoB,QAAQ,CAAA,oCAAA,EAAuC,QAAQ,CAAA,CAAA;AACpG,IAAK,IAAA,CAAA,MAAA,GAAS,IAAI,SAAA,CAAU,gBAAgB,CAAA;AAAA;AAChD,EAEA,MAAa,IAAK,CAAA,MAAA,EAAkB,OAAsC,EAAA;AACtE,IAAA,MAAM,MAAqB,GAAA;AAAA,MACvB,MAAM,EAAC;AAAA,MACP,QAAQ;AAAC,KACb;AACA,IAAA,MAAM,UAAa,GAAA,MAAM,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA;AAAA,MACtC,IAAM,EAAA,IAAA;AAAA,MACN,EAAI,EAAA,MAAA;AAAA,MACJ;AAAA,KACH,CAAA;AAED,IAAW,UAAA,CAAA,OAAA,CAAQ,CAAC,SAAc,KAAA;AAC9B,MAAA,IAAI,SAAU,CAAA,YAAA;AACV,QAAA,MAAA,CAAO,OAAO,IAAK,CAAA;AAAA,UACf,OAAO,SAAU,CAAA,EAAA;AAAA,UACjB,OAAO,SAAU,CAAA;AAAA,SACpB,CAAA;AAAA,kBACO,IAAK,CAAA,IAAA,CAAK,EAAE,KAAO,EAAA,SAAA,CAAU,IAAI,CAAA;AAAA,KAChD,CAAA;AAED,IAAO,OAAA,MAAA;AAAA;AAEf","file":"azureSmsSender.client-4MHOTRQ7.mjs","sourcesContent":["import { NotProvidedCredentialsError } from '../../errors';\nimport { ISMSSender } from '../../interfaces';\nimport { SendResult } from '../../types';\nimport { USERNAME, PASSWORD, FROM } from '../../utils/constants';\nimport { SmsClient } from '@azure/communication-sms';\n\nexport default class AzureSMSSenderClient implements ISMSSender {\n client: SmsClient;\n constructor() {\n if (!(USERNAME && PASSWORD && FROM))\n throw new NotProvidedCredentialsError();\n const connectionString = `endpoint=https://${USERNAME}.communication.azure.com/;accesskey=${PASSWORD}`;\n this.client = new SmsClient(connectionString);\n }\n\n public async send(phones: string[], message: string): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n const smsResults = await this.client.send({\n from: FROM as string,\n to: phones,\n message: message,\n });\n\n smsResults.forEach((smsResult) => {\n if (smsResult.errorMessage)\n result.failed.push({\n phone: smsResult.to,\n error: smsResult.errorMessage,\n });\n else result.sent.push({ phone: smsResult.to });\n });\n\n return result;\n }\n}\n"]}
@@ -22,5 +22,5 @@ var FROM = process.env.SMS_PROVIDER_FROM_NUMBER;
22
22
  var REGION = process.env.SMS_PROVIDER_REGION;
23
23
 
24
24
  export { FROM, NotProvidedCredentialsError, PASSWORD, REGION, SMS_PROVIDER, USERNAME, UnknownProviderError };
25
- //# sourceMappingURL=out.js.map
25
+ //# sourceMappingURL=chunk-NCQDKWNI.mjs.map
26
26
  //# sourceMappingURL=chunk-NCQDKWNI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/errors/notProvidedCredentials.error.ts","../../src/errors/unknownProvider.error.ts","../../src/utils/constants.ts"],"names":[],"mappings":";AAAO,IAAM,8BAAN,cAA0C,MAAM;AAAA,EACnD,cAAc;AACV,UAAM,sCAAsC;AAC5C,SAAK,OAAO;AAAA,EAChB;AACJ;;;ACLO,IAAM,uBAAN,cAAmC,MAAM;AAAA,EAC5C,cAAc;AACV,UAAM,6CAA6C;AACnD,SAAK,OAAO;AAAA,EAChB;AACJ;;;ACLO,IAAM,eAAe,QAAQ,IAAI;AAEjC,IAAM,WAAW,QAAQ,IAAI;AAC7B,IAAM,WAAW,QAAQ,IAAI;AAC7B,IAAM,OAAO,QAAQ,IAAI;AACzB,IAAM,SAAS,QAAQ,IAAI","sourcesContent":["export class NotProvidedCredentialsError extends Error {\n constructor() {\n super('SMS sender credentials not provided.');\n this.name = 'NotProvidedCredentialsError';\n }\n}\n","export class UnknownProviderError extends Error {\n constructor() {\n super('Unknown provider. Set PROVIDER env variable');\n this.name = 'UnknownProviderError';\n }\n}\n","export const SMS_PROVIDER = process.env.SMS_PROVIDER;\n\nexport const USERNAME = process.env.SMS_PROVIDER_USERNAME;\nexport const PASSWORD = process.env.SMS_PROVIDER_PASSWORD;\nexport const FROM = process.env.SMS_PROVIDER_FROM_NUMBER;\nexport const REGION = process.env.SMS_PROVIDER_REGION;\n"]}
1
+ {"version":3,"sources":["../../src/errors/notProvidedCredentials.error.ts","../../src/errors/unknownProvider.error.ts","../../src/utils/constants.ts"],"names":[],"mappings":";AAAa,IAAA,2BAAA,GAAN,cAA0C,KAAM,CAAA;AAAA,EACnD,WAAc,GAAA;AACV,IAAA,KAAA,CAAM,sCAAsC,CAAA;AAC5C,IAAA,IAAA,CAAK,IAAO,GAAA,6BAAA;AAAA;AAEpB;;;ACLa,IAAA,oBAAA,GAAN,cAAmC,KAAM,CAAA;AAAA,EAC5C,WAAc,GAAA;AACV,IAAA,KAAA,CAAM,6CAA6C,CAAA;AACnD,IAAA,IAAA,CAAK,IAAO,GAAA,sBAAA;AAAA;AAEpB;;;ACLa,IAAA,YAAA,GAAe,QAAQ,GAAI,CAAA;AAE3B,IAAA,QAAA,GAAW,QAAQ,GAAI,CAAA;AACvB,IAAA,QAAA,GAAW,QAAQ,GAAI,CAAA;AACvB,IAAA,IAAA,GAAO,QAAQ,GAAI,CAAA;AACnB,IAAA,MAAA,GAAS,QAAQ,GAAI,CAAA","file":"chunk-NCQDKWNI.mjs","sourcesContent":["export class NotProvidedCredentialsError extends Error {\n constructor() {\n super('SMS sender credentials not provided.');\n this.name = 'NotProvidedCredentialsError';\n }\n}\n","export class UnknownProviderError extends Error {\n constructor() {\n super('Unknown provider. Set PROVIDER env variable');\n this.name = 'UnknownProviderError';\n }\n}\n","export const SMS_PROVIDER = process.env.SMS_PROVIDER;\n\nexport const USERNAME = process.env.SMS_PROVIDER_USERNAME;\nexport const PASSWORD = process.env.SMS_PROVIDER_PASSWORD;\nexport const FROM = process.env.SMS_PROVIDER_FROM_NUMBER;\nexport const REGION = process.env.SMS_PROVIDER_REGION;\n"]}
@@ -17,4 +17,4 @@ declare class SMSSenderService {
17
17
  send(phones: string[], message: string): Promise<SendResult>;
18
18
  }
19
19
 
20
- export { SMSSenderService, SendResult };
20
+ export { SMSSenderService, type SendResult };
@@ -5,16 +5,15 @@ var SMSSenderFactory = class {
5
5
  static async getSMSSender() {
6
6
  var _a;
7
7
  const provider = (_a = SMS_PROVIDER) == null ? void 0 : _a.toLowerCase();
8
- if (!provider)
9
- throw new UnknownProviderError();
8
+ if (!provider) throw new UnknownProviderError();
10
9
  const { default: SMSSender } = await this.providerModules[provider]();
11
10
  return new SMSSender();
12
11
  }
13
12
  };
14
13
  SMSSenderFactory.providerModules = {
15
- twilio: () => import('./twilioSmsSender.client-SSZMXU4M.mjs'),
14
+ twilio: () => import('./twilioSmsSender.client-2AYM7Q6Q.mjs'),
16
15
  aws: () => import('./awsSmsSender.client-KAGNU24Z.mjs'),
17
- azure: () => import('./azureSmsSender.client-K6MPTIU7.mjs'),
16
+ azure: () => import('./azureSmsSender.client-4MHOTRQ7.mjs'),
18
17
  vonage: () => import('./vonageSmsSender.client-FSND4BQX.mjs')
19
18
  };
20
19
 
@@ -32,5 +31,5 @@ var SMSSenderService = class {
32
31
  };
33
32
 
34
33
  export { SMSSenderService };
35
- //# sourceMappingURL=out.js.map
34
+ //# sourceMappingURL=index.mjs.map
36
35
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/smsSenderFactory.service.ts","../../src/services/smsSender.service.ts"],"names":[],"mappings":";;;;;;AAKO,IAAM,mBAAN,MAAuB;AAAA,EAW1B,aAAa,eAAoC;AAhBrD;AAiBQ,UAAM,YAAW,yCAAc;AAC/B,QAAI,CAAC;AAAU,YAAM,IAAI,qBAAqB;AAE9C,UAAM,EAAE,SAAS,UAAU,IAAI,MAAM,KAAK,gBAAgB,QAAQ,EAAE;AACpE,WAAO,IAAI,UAAU;AAAA,EACzB;AACJ;AAlBa,iBACM,kBAGX;AAAA,EACA,QAAQ,MAAM,OAAO,uCAAkC;AAAA,EACvD,KAAK,MAAM,OAAO,oCAA+B;AAAA,EACjD,OAAO,MAAM,OAAO,sCAAiC;AAAA,EACrD,QAAQ,MAAM,OAAO,uCAAkC;AAC3D;;;ACXG,IAAM,mBAAN,MAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO1B,MAAa,KAAK,QAAkB,SAAsC;AACtE,YAAQ,MAAM,iBAAiB,aAAa,GAAG,KAAK,QAAQ,OAAO;AAAA,EACvE;AACJ","sourcesContent":["import { UnknownProviderError } from '../errors';\nimport { ISMSSender } from '../interfaces';\nimport { SMSProviderModule } from '../types';\nimport { SMS_PROVIDER } from '../utils/constants';\n\nexport class SMSSenderFactory {\n private static providerModules: Record<\n string,\n () => Promise<SMSProviderModule>\n > = {\n twilio: () => import('./clients/twilioSmsSender.client'),\n aws: () => import('./clients/awsSmsSender.client'),\n azure: () => import('./clients/azureSmsSender.client'),\n vonage: () => import('./clients/vonageSmsSender.client'),\n };\n\n static async getSMSSender(): Promise<ISMSSender> {\n const provider = SMS_PROVIDER?.toLowerCase();\n if (!provider) throw new UnknownProviderError();\n\n const { default: SMSSender } = await this.providerModules[provider]();\n return new SMSSender();\n }\n}\n","import { SendResult } from '../types';\nimport { SMSSenderFactory } from './smsSenderFactory.service';\n\nexport class SMSSenderService {\n /**\n * Send a message to one or more phones.\n * @param phones - phone numbers to send to\n * @param message - message to send\n * @returns {Promise<SendResult>} Send result.\n */\n public async send(phones: string[], message: string): Promise<SendResult> {\n return (await SMSSenderFactory.getSMSSender()).send(phones, message);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/services/smsSenderFactory.service.ts","../../src/services/smsSender.service.ts"],"names":[],"mappings":";;;AAKO,IAAM,mBAAN,MAAuB;AAAA,EAW1B,aAAa,YAAoC,GAAA;AAhBrD,IAAA,IAAA,EAAA;AAiBQ,IAAA,MAAM,YAAW,EAAc,GAAA,YAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,WAAA,EAAA;AAC/B,IAAA,IAAI,CAAC,QAAA,EAAgB,MAAA,IAAI,oBAAqB,EAAA;AAE9C,IAAM,MAAA,EAAE,SAAS,SAAU,EAAA,GAAI,MAAM,IAAK,CAAA,eAAA,CAAgB,QAAQ,CAAE,EAAA;AACpE,IAAA,OAAO,IAAI,SAAU,EAAA;AAAA;AAE7B,CAAA;AAlBa,gBAAA,CACM,eAGX,GAAA;AAAA,EACA,MAAA,EAAQ,MAAM,OAAO,uCAAkC,CAAA;AAAA,EACvD,GAAA,EAAK,MAAM,OAAO,oCAA+B,CAAA;AAAA,EACjD,KAAA,EAAO,MAAM,OAAO,sCAAiC,CAAA;AAAA,EACrD,MAAA,EAAQ,MAAM,OAAO,uCAAkC;AAC3D,CAAA;;;ACXG,IAAM,mBAAN,MAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO1B,MAAa,IAAK,CAAA,MAAA,EAAkB,OAAsC,EAAA;AACtE,IAAA,OAAA,CAAQ,MAAM,gBAAiB,CAAA,YAAA,EAAgB,EAAA,IAAA,CAAK,QAAQ,OAAO,CAAA;AAAA;AAE3E","file":"index.mjs","sourcesContent":["import { UnknownProviderError } from '../errors';\nimport { ISMSSender } from '../interfaces';\nimport { SMSProviderModule } from '../types';\nimport { SMS_PROVIDER } from '../utils/constants';\n\nexport class SMSSenderFactory {\n private static providerModules: Record<\n string,\n () => Promise<SMSProviderModule>\n > = {\n twilio: () => import('./clients/twilioSmsSender.client'),\n aws: () => import('./clients/awsSmsSender.client'),\n azure: () => import('./clients/azureSmsSender.client'),\n vonage: () => import('./clients/vonageSmsSender.client'),\n };\n\n static async getSMSSender(): Promise<ISMSSender> {\n const provider = SMS_PROVIDER?.toLowerCase();\n if (!provider) throw new UnknownProviderError();\n\n const { default: SMSSender } = await this.providerModules[provider]();\n return new SMSSender();\n }\n}\n","import { SendResult } from '../types';\nimport { SMSSenderFactory } from './smsSenderFactory.service';\n\nexport class SMSSenderService {\n /**\n * Send a message to one or more phones.\n * @param phones - phone numbers to send to\n * @param message - message to send\n * @returns {Promise<SendResult>} Send result.\n */\n public async send(phones: string[], message: string): Promise<SendResult> {\n return (await SMSSenderFactory.getSMSSender()).send(phones, message);\n }\n}\n"]}
@@ -10,8 +10,7 @@ var TwilioSMSSenderClient = class {
10
10
  });
11
11
  if (USERNAME && PASSWORD && FROM)
12
12
  this.client = new Twilio(USERNAME, PASSWORD);
13
- else
14
- throw new NotProvidedCredentialsError();
13
+ else throw new NotProvidedCredentialsError();
15
14
  }
16
15
  async send(phones = [], message) {
17
16
  const result = {
@@ -30,5 +29,5 @@ var TwilioSMSSenderClient = class {
30
29
  };
31
30
 
32
31
  export { TwilioSMSSenderClient as default };
33
- //# sourceMappingURL=out.js.map
34
- //# sourceMappingURL=twilioSmsSender.client-SSZMXU4M.mjs.map
32
+ //# sourceMappingURL=twilioSmsSender.client-2AYM7Q6Q.mjs.map
33
+ //# sourceMappingURL=twilioSmsSender.client-2AYM7Q6Q.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/clients/twilioSmsSender.client.ts"],"names":[],"mappings":";;;AAOA,IAAqB,wBAArB,MAAiE;AAAA,EAE7D,WAAc,GAAA;AA4Bd,IAAA,IAAA,CAAQ,UAAU,CACd,KAAA,EACA,YAEA,IAAK,CAAA,MAAA,CAAO,SAAS,MAAO,CAAA;AAAA,MACxB,IAAM,EAAA,IAAA;AAAA,MACN,EAAI,EAAA,KAAA;AAAA,MACJ,IAAM,EAAA;AAAA,KACT,CAAA;AAnCD,IAAA,IAAI,YAAY,QAAY,IAAA,IAAA;AACxB,MAAA,IAAA,CAAK,MAAS,GAAA,IAAI,MAAO,CAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,SAC1C,MAAM,IAAI,2BAA4B,EAAA;AAAA;AAC/C,EAEA,MAAa,IAAA,CACT,MAAmB,GAAA,IACnB,OACmB,EAAA;AACnB,IAAA,MAAM,MAAqB,GAAA;AAAA,MACvB,MAAM,EAAC;AAAA,MACP,QAAQ;AAAC,KACb;AAEA,IAAA,MAAM,OAAQ,CAAA,GAAA;AAAA,MACV,MAAO,CAAA,GAAA;AAAA,QAAI,CAAC,KACR,KAAA,IAAA,CAAK,OAAQ,CAAA,KAAA,EAAO,OAAO,CACtB,CAAA,IAAA,CAAK,MAAM,MAAA,CAAO,KAAK,IAAK,CAAA,EAAE,KAAM,EAAC,CAAC,CACtC,CAAA,KAAA;AAAA,UAAM,CAAC,KACJ,KAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,EAAE,KAAO,EAAA,KAAA,EAAO,KAAM,CAAA,OAAA,EAAS;AAAA;AACtD;AACR,KACJ;AAEA,IAAO,OAAA,MAAA;AAAA;AAYf","file":"twilioSmsSender.client-2AYM7Q6Q.mjs","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"]}
@@ -42,5 +42,5 @@ var VonageSMSSenderClient = class {
42
42
  };
43
43
 
44
44
  export { VonageSMSSenderClient as default };
45
- //# sourceMappingURL=out.js.map
45
+ //# sourceMappingURL=vonageSmsSender.client-FSND4BQX.mjs.map
46
46
  //# sourceMappingURL=vonageSmsSender.client-FSND4BQX.mjs.map
@@ -1 +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"]}
1
+ {"version":3,"sources":["../../src/services/clients/vonageSmsSender.client.ts"],"names":["message"],"mappings":";;;;AAQA,IAAqB,wBAArB,MAAiE;AAAA,EAE7D,WAAc,GAAA;AAoCd,IAAA,IAAA,CAAQ,UAAU,CAAC,KAAA,EAAe,YAC9B,IAAK,CAAA,MAAA,CAAO,IAAI,IAAK,CAAA;AAAA,MACjB,EAAI,EAAA,KAAA;AAAA,MACJ,IAAM,EAAA,OAAA;AAAA,MACN,IAAM,EAAA;AAAA,KACT,CAAA;AAxCD,IAAI,IAAA,EAAE,YAAY,QAAY,IAAA,IAAA,CAAA;AAC1B,MAAA,MAAM,IAAI,2BAA4B,EAAA;AAC1C,IAAM,MAAA,UAAA,GAAa,IAAI,IAAK,CAAA;AAAA,MACxB,MAAQ,EAAA,QAAA;AAAA,MACR,SAAW,EAAA;AAAA,KACd,CAAA;AACD,IAAK,IAAA,CAAA,MAAA,GAAS,IAAI,MAAA,CAAO,UAAU,CAAA;AAAA;AACvC,EAEA,MAAa,IAAK,CAAA,MAAA,EAAkB,OAAsC,EAAA;AACtE,IAAA,MAAM,MAAqB,GAAA;AAAA,MACvB,MAAM,EAAC;AAAA,MACP,QAAQ;AAAC,KACb;AAEA,IAAA,MAAM,OAAQ,CAAA,GAAA;AAAA,MACV,MAAO,CAAA,GAAA;AAAA,QAAI,CAAC,UACR,IAAK,CAAA,OAAA,CAAQ,OAAO,OAAO,CAAA,CAAE,IAAK,CAAA,CAAC,IAAS,KAAA;AA5B5D,UAAA,IAAA,EAAA;AA6BoB,UACI,IAAA,CAAA,EAAA,GAAA,IAAA,CAAK,aAAL,IAAe,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAACA,QAAYA,KAAAA,QAAAA,CAAQ,WAAW,GACtD,CAAA,EAAA;AACE,YAAA,MAAA,CAAO,OAAO,IAAK,CAAA;AAAA,cACf,KAAA;AAAA,cACA,KAAO,EAAA,IAAA,CAAK,QAAS,CAAA,CAAC,CAAE,CAAA;AAAA,aAC3B,CAAA;AAAA,WACE,MAAA;AACH,YAAA,MAAA,CAAO,IAAK,CAAA,IAAA,CAAK,EAAE,KAAA,EAAO,CAAA;AAAA;AAC9B,SACH;AAAA;AACL,KACJ;AAEA,IAAO,OAAA,MAAA;AAAA;AASf","file":"vonageSmsSender.client-FSND4BQX.mjs","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"]}
@@ -17,4 +17,4 @@ declare class SMSSenderService {
17
17
  send(phones: string[], message: string): Promise<SendResult>;
18
18
  }
19
19
 
20
- export { SMSSenderService, SendResult };
20
+ export { SMSSenderService, type SendResult };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/sms",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "types": "dist/types/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "exports": {
@@ -45,8 +45,8 @@
45
45
  "ts-jest": "29.1.1",
46
46
  "tsc": "2.0.4",
47
47
  "tsconfig": "*",
48
- "tsup": "7.2.0",
49
- "twilio": "5.3.5",
48
+ "tsup": "8.5.0",
49
+ "twilio": "5.6.1",
50
50
  "typescript": "5.2.2"
51
51
  },
52
52
  "peerDependencies": {
@@ -54,7 +54,7 @@
54
54
  "@azure/communication-sms": "1.2.0-beta.1",
55
55
  "@vonage/auth": "1.12.0",
56
56
  "@vonage/server-sdk": "3.19.1",
57
- "twilio": "5.3.5"
57
+ "twilio": "5.6.1"
58
58
  },
59
59
  "peerDependenciesMeta": {
60
60
  "@aws-sdk/client-sns": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/services/clients/azureSmsSender.client.ts"],"names":[],"mappings":";;;;;;;;AAIA,SAAS,iBAAiB;AAE1B,IAAqB,uBAArB,MAAgE;AAAA,EAE5D,cAAc;AACV,QAAI,EAAE,YAAY,YAAY;AAC1B,YAAM,IAAI,4BAA4B;AAC1C,UAAM,mBAAmB,oBAAoB,QAAQ,uCAAuC,QAAQ;AACpG,SAAK,SAAS,IAAI,UAAU,gBAAgB;AAAA,EAChD;AAAA,EAEA,MAAa,KAAK,QAAkB,SAAsC;AACtE,UAAM,SAAqB;AAAA,MACvB,MAAM,CAAC;AAAA,MACP,QAAQ,CAAC;AAAA,IACb;AACA,UAAM,aAAa,MAAM,KAAK,OAAO,KAAK;AAAA,MACtC,MAAM;AAAA,MACN,IAAI;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,eAAW,QAAQ,CAAC,cAAc;AAC9B,UAAI,UAAU;AACV,eAAO,OAAO,KAAK;AAAA,UACf,OAAO,UAAU;AAAA,UACjB,OAAO,UAAU;AAAA,QACrB,CAAC;AAAA;AACA,eAAO,KAAK,KAAK,EAAE,OAAO,UAAU,GAAG,CAAC;AAAA,IACjD,CAAC;AAED,WAAO;AAAA,EACX;AACJ","sourcesContent":["import { NotProvidedCredentialsError } from '../../errors';\nimport { ISMSSender } from '../../interfaces';\nimport { SendResult } from '../../types';\nimport { USERNAME, PASSWORD, FROM } from '../../utils/constants';\nimport { SmsClient } from '@azure/communication-sms';\n\nexport default class AzureSMSSenderClient implements ISMSSender {\n client: SmsClient;\n constructor() {\n if (!(USERNAME && PASSWORD && FROM))\n throw new NotProvidedCredentialsError();\n const connectionString = `endpoint=https://${USERNAME}.communication.azure.com/;accesskey=${PASSWORD}`;\n this.client = new SmsClient(connectionString);\n }\n\n public async send(phones: string[], message: string): Promise<SendResult> {\n const result: SendResult = {\n sent: [],\n failed: [],\n };\n const smsResults = await this.client.send({\n from: FROM as string,\n to: phones,\n message: message,\n });\n\n smsResults.forEach((smsResult) => {\n if (smsResult.errorMessage)\n result.failed.push({\n phone: smsResult.to,\n error: smsResult.errorMessage,\n });\n else result.sent.push({ phone: smsResult.to });\n });\n\n return result;\n }\n}\n"]}
@@ -1 +0,0 @@
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"]}