@groundbrick/sms-service 1.2.1 → 1.2.2
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/interfaces/ISmsProvider.d.ts +2 -0
- package/dist/interfaces/ISmsProvider.d.ts.map +1 -1
- package/dist/providers/GatewayApiSmsProvider.d.ts +4 -2
- package/dist/providers/GatewayApiSmsProvider.d.ts.map +1 -1
- package/dist/providers/GatewayApiSmsProvider.js +15 -7
- package/dist/providers/GatewayApiSmsProvider.js.map +1 -1
- package/dist/providers/SweegoSmsProvider.d.ts +4 -2
- package/dist/providers/SweegoSmsProvider.d.ts.map +1 -1
- package/dist/providers/SweegoSmsProvider.js +15 -15
- package/dist/providers/SweegoSmsProvider.js.map +1 -1
- package/package.json +1 -1
|
@@ -52,6 +52,7 @@ export interface GatewayApiConfig {
|
|
|
52
52
|
token: string;
|
|
53
53
|
baseUrl?: string;
|
|
54
54
|
webhookSecret?: string;
|
|
55
|
+
defaultCallingCode?: string;
|
|
55
56
|
}
|
|
56
57
|
export interface TwilioConfig {
|
|
57
58
|
accountSid: string;
|
|
@@ -68,5 +69,6 @@ export interface SweegoConfig {
|
|
|
68
69
|
campaignType?: string;
|
|
69
70
|
baseUrl?: string;
|
|
70
71
|
providerSlug?: string;
|
|
72
|
+
defaultCallingCode?: string;
|
|
71
73
|
}
|
|
72
74
|
//# sourceMappingURL=ISmsProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ISmsProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/ISmsProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrE,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC;CAC5E;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB;AAED,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ISmsProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/ISmsProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrE,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC;CAC5E;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB;AAED,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -3,6 +3,7 @@ export declare class GatewayApiSmsProvider implements ISmsProvider {
|
|
|
3
3
|
private token;
|
|
4
4
|
private baseUrl;
|
|
5
5
|
private webhookSecret?;
|
|
6
|
+
private defaultCallingCode;
|
|
6
7
|
private static readonly GSM7_BASIC_CHARS;
|
|
7
8
|
private static readonly GSM7_EXTENDED_CHARS;
|
|
8
9
|
constructor(config: GatewayApiConfig);
|
|
@@ -13,8 +14,9 @@ export declare class GatewayApiSmsProvider implements ISmsProvider {
|
|
|
13
14
|
getDeliveryReport(messageId: string): Promise<DeliveryReport | null>;
|
|
14
15
|
validateWebhook(payload: any, signature?: string): WebhookValidationResult;
|
|
15
16
|
/**
|
|
16
|
-
* Normalize phone number to
|
|
17
|
-
*
|
|
17
|
+
* Normalize a recipient phone number to GatewayAPI's MSISDN format (digits only, no '+').
|
|
18
|
+
* Numbers already carry their country code in E.164 form ("+351..."); the configured
|
|
19
|
+
* default calling code is only prepended to legacy national numbers without a prefix.
|
|
18
20
|
*/
|
|
19
21
|
private normalizePhoneNumber;
|
|
20
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatewayApiSmsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GatewayApiSmsProvider.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAGnB,MAAM,+BAA+B,CAAC;AAGvC,qBAAa,qBAAsB,YAAW,YAAY;IACtD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAwI;IAChL,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;gBAE/C,MAAM,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"GatewayApiSmsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GatewayApiSmsProvider.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAGnB,MAAM,+BAA+B,CAAC;AAGvC,qBAAa,qBAAsB,YAAW,YAAY;IACtD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAwI;IAChL,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAgB;gBAE/C,MAAM,EAAE,gBAAgB;IAO9B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAgEnD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,uBAAuB;IAezB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA6B1E,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB;IA8D1E;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa9B"}
|
|
@@ -4,12 +4,14 @@ export class GatewayApiSmsProvider {
|
|
|
4
4
|
token;
|
|
5
5
|
baseUrl;
|
|
6
6
|
webhookSecret;
|
|
7
|
+
defaultCallingCode;
|
|
7
8
|
static GSM7_BASIC_CHARS = "@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà";
|
|
8
9
|
static GSM7_EXTENDED_CHARS = "^{}\\[~]|€";
|
|
9
10
|
constructor(config) {
|
|
10
11
|
this.token = config.token;
|
|
11
12
|
this.baseUrl = config.baseUrl || 'https://gatewayapi.com';
|
|
12
13
|
this.webhookSecret = config.webhookSecret;
|
|
14
|
+
this.defaultCallingCode = config.defaultCallingCode || '351';
|
|
13
15
|
}
|
|
14
16
|
async send(message) {
|
|
15
17
|
try {
|
|
@@ -173,18 +175,24 @@ export class GatewayApiSmsProvider {
|
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
177
|
/**
|
|
176
|
-
* Normalize phone number to
|
|
177
|
-
*
|
|
178
|
+
* Normalize a recipient phone number to GatewayAPI's MSISDN format (digits only, no '+').
|
|
179
|
+
* Numbers already carry their country code in E.164 form ("+351..."); the configured
|
|
180
|
+
* default calling code is only prepended to legacy national numbers without a prefix.
|
|
178
181
|
*/
|
|
179
182
|
normalizePhoneNumber(phone) {
|
|
180
|
-
|
|
181
|
-
|
|
183
|
+
const trimmed = phone.trim();
|
|
184
|
+
// A leading '+' or '00' means the country code is already present.
|
|
185
|
+
const hasCountryCode = trimmed.startsWith('+') || trimmed.startsWith('00');
|
|
186
|
+
let normalized = trimmed.replace(/\D/g, '');
|
|
187
|
+
// "00" international prefix becomes nothing (the country code follows it).
|
|
188
|
+
if (trimmed.startsWith('00')) {
|
|
189
|
+
normalized = normalized.replace(/^00/, '');
|
|
190
|
+
}
|
|
182
191
|
if (!normalized) {
|
|
183
192
|
throw new Error('Invalid phone number');
|
|
184
193
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
normalized = `351${normalized}`;
|
|
194
|
+
if (!hasCountryCode) {
|
|
195
|
+
normalized = `${this.defaultCallingCode}${normalized}`;
|
|
188
196
|
}
|
|
189
197
|
return normalized;
|
|
190
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatewayApiSmsProvider.js","sourceRoot":"","sources":["../../src/providers/GatewayApiSmsProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAOH,SAAS,EAEZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,GAAG,MAAM,cAAc,CAAC;AAE/B,MAAM,OAAO,qBAAqB;IACtB,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,aAAa,CAAU;IACvB,MAAM,CAAU,gBAAgB,GAAG,oIAAoI,CAAC;IACxK,MAAM,CAAU,mBAAmB,GAAG,YAAY,CAAC;IAE3D,YAAY,MAAwB;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,wBAAwB,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"GatewayApiSmsProvider.js","sourceRoot":"","sources":["../../src/providers/GatewayApiSmsProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,15 @@ export declare class SweegoSmsProvider implements ISmsProvider {
|
|
|
5
5
|
private region;
|
|
6
6
|
private campaignType;
|
|
7
7
|
private providerSlug;
|
|
8
|
+
private defaultCallingCode;
|
|
8
9
|
constructor(config: SweegoConfig);
|
|
9
10
|
send(message: SmsMessage): Promise<SmsResult>;
|
|
10
11
|
getDeliveryReport(messageId: string): Promise<DeliveryReport | null>;
|
|
11
12
|
validateWebhook(payload: any, signature?: string): WebhookValidationResult;
|
|
12
13
|
/**
|
|
13
|
-
* Normalize phone number to
|
|
14
|
-
*
|
|
14
|
+
* Normalize a recipient phone number to Sweego's E.164 format (leading '+').
|
|
15
|
+
* Numbers already carry their country code in E.164 form ("+351..."); the configured
|
|
16
|
+
* default calling code is only prepended to legacy national numbers without a prefix.
|
|
15
17
|
*/
|
|
16
18
|
private normalizePhoneNumber;
|
|
17
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SweegoSmsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SweegoSmsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,YAAY,EAEf,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,iBAAkB,YAAW,YAAY;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;
|
|
1
|
+
{"version":3,"file":"SweegoSmsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/SweegoSmsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,YAAY,EAEf,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,iBAAkB,YAAW,YAAY;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,YAAY;IAS1B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAyD7C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA8B1E,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB;IAgC1E;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAiB5B;;OAEG;IACH,OAAO,CAAC,eAAe;CAa1B"}
|
|
@@ -5,12 +5,14 @@ export class SweegoSmsProvider {
|
|
|
5
5
|
region;
|
|
6
6
|
campaignType;
|
|
7
7
|
providerSlug;
|
|
8
|
+
defaultCallingCode;
|
|
8
9
|
constructor(config) {
|
|
9
10
|
this.apiKey = config.apiKey;
|
|
10
11
|
this.baseUrl = config.baseUrl || 'https://api.sweego.io';
|
|
11
12
|
this.region = config.region || 'PT';
|
|
12
13
|
this.campaignType = config.campaignType || 'transac';
|
|
13
14
|
this.providerSlug = config.providerSlug || 'sweego';
|
|
15
|
+
this.defaultCallingCode = config.defaultCallingCode || '351';
|
|
14
16
|
}
|
|
15
17
|
async send(message) {
|
|
16
18
|
try {
|
|
@@ -119,24 +121,22 @@ export class SweegoSmsProvider {
|
|
|
119
121
|
}
|
|
120
122
|
}
|
|
121
123
|
/**
|
|
122
|
-
* Normalize phone number to
|
|
123
|
-
*
|
|
124
|
+
* Normalize a recipient phone number to Sweego's E.164 format (leading '+').
|
|
125
|
+
* Numbers already carry their country code in E.164 form ("+351..."); the configured
|
|
126
|
+
* default calling code is only prepended to legacy national numbers without a prefix.
|
|
124
127
|
*/
|
|
125
128
|
normalizePhoneNumber(phone) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
// Default to Portugal
|
|
136
|
-
normalized = `+351${normalized}`;
|
|
137
|
-
}
|
|
129
|
+
const trimmed = phone.trim();
|
|
130
|
+
// Already E.164 — just strip separators.
|
|
131
|
+
if (trimmed.startsWith('+')) {
|
|
132
|
+
return `+${trimmed.replace(/\D/g, '')}`;
|
|
133
|
+
}
|
|
134
|
+
// "00" international prefix -> "+" and the country code follows.
|
|
135
|
+
if (trimmed.startsWith('00')) {
|
|
136
|
+
return `+${trimmed.replace(/\D/g, '').replace(/^00/, '')}`;
|
|
138
137
|
}
|
|
139
|
-
|
|
138
|
+
// Legacy national number without a country code: prepend the default.
|
|
139
|
+
return `+${this.defaultCallingCode}${trimmed.replace(/\D/g, '')}`;
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
142
142
|
* Map Sweego status codes to our SmsStatus enum
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SweegoSmsProvider.js","sourceRoot":"","sources":["../../src/providers/SweegoSmsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,SAAS,EACZ,MAAM,+BAA+B,CAAC;AAEvC,MAAM,OAAO,iBAAiB;IAClB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,YAAY,CAAS;IACrB,YAAY,CAAS;
|
|
1
|
+
{"version":3,"file":"SweegoSmsProvider.js","sourceRoot":"","sources":["../../src/providers/SweegoSmsProvider.ts"],"names":[],"mappings":"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"}
|