@vritti/api-sdk 0.3.2 → 0.3.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.
- package/dist/auth.cjs +942 -0
- package/dist/auth.cjs.map +1 -0
- package/dist/auth.d.cts +95 -0
- package/dist/auth.d.ts +95 -0
- package/dist/auth.js +884 -0
- package/dist/auth.js.map +1 -0
- package/dist/cache.cjs +182 -14
- package/dist/cache.cjs.map +1 -1
- package/dist/cache.d.cts +48 -4
- package/dist/cache.d.ts +48 -4
- package/dist/cache.js +177 -12
- package/dist/cache.js.map +1 -1
- package/dist/catalog-resolver.cjs +226 -51
- package/dist/catalog-resolver.cjs.map +1 -1
- package/dist/catalog-resolver.d.cts +41 -19
- package/dist/catalog-resolver.d.ts +41 -19
- package/dist/catalog-resolver.js +212 -46
- package/dist/catalog-resolver.js.map +1 -1
- package/dist/code-pattern-BP4zkNtT.d.cts +12 -0
- package/dist/code-pattern-BP4zkNtT.d.ts +12 -0
- package/dist/context.cjs +93 -0
- package/dist/context.cjs.map +1 -0
- package/dist/context.d.cts +19 -0
- package/dist/context.d.ts +19 -0
- package/dist/context.js +64 -0
- package/dist/context.js.map +1 -0
- package/dist/countries.cjs +1559 -0
- package/dist/countries.cjs.map +1 -0
- package/dist/countries.d.cts +13 -0
- package/dist/countries.d.ts +13 -0
- package/dist/countries.js +1532 -0
- package/dist/countries.js.map +1 -0
- package/dist/data-table.cjs +1280 -0
- package/dist/data-table.cjs.map +1 -0
- package/dist/data-table.d.cts +123 -0
- package/dist/data-table.d.ts +123 -0
- package/dist/data-table.js +1260 -0
- package/dist/data-table.js.map +1 -0
- package/dist/database.cjs +1510 -0
- package/dist/database.cjs.map +1 -0
- package/dist/database.d.cts +287 -0
- package/dist/database.d.ts +287 -0
- package/dist/database.js +1469 -0
- package/dist/database.js.map +1 -0
- package/dist/decimal.d.cts +0 -1
- package/dist/decimal.d.ts +0 -1
- package/dist/decorators.cjs +1817 -0
- package/dist/decorators.cjs.map +1 -0
- package/dist/decorators.d.cts +24 -0
- package/dist/decorators.d.ts +24 -0
- package/dist/decorators.js +1780 -0
- package/dist/decorators.js.map +1 -0
- package/dist/document-BoS0NIbf.d.cts +12 -0
- package/dist/document-BoS0NIbf.d.ts +12 -0
- package/dist/drizzle-pg-core.cjs +25 -0
- package/dist/drizzle-pg-core.cjs.map +1 -1
- package/dist/drizzle-pg-core.d.cts +7 -0
- package/dist/drizzle-pg-core.d.ts +7 -0
- package/dist/drizzle-pg-core.js +22 -0
- package/dist/drizzle-pg-core.js.map +1 -1
- package/dist/exceptions.cjs +301 -0
- package/dist/exceptions.cjs.map +1 -0
- package/dist/exceptions.d.cts +90 -0
- package/dist/exceptions.d.ts +90 -0
- package/dist/exceptions.js +257 -0
- package/dist/exceptions.js.map +1 -0
- package/dist/filter.types-PuARU9XD.d.cts +50 -0
- package/dist/filter.types-PuARU9XD.d.ts +50 -0
- package/dist/filters.cjs +407 -0
- package/dist/filters.cjs.map +1 -0
- package/dist/filters.d.cts +55 -0
- package/dist/filters.d.ts +55 -0
- package/dist/filters.js +377 -0
- package/dist/filters.js.map +1 -0
- package/dist/index.cjs +0 -5423
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +93 -854
- package/dist/index.d.ts +93 -854
- package/dist/index.js +0 -5301
- package/dist/index.js.map +1 -1
- package/dist/is-country.decorator-CcNwSSr5.d.cts +5 -0
- package/dist/is-country.decorator-CcNwSSr5.d.ts +5 -0
- package/dist/license.cjs +9 -56
- package/dist/license.cjs.map +1 -1
- package/dist/license.d.cts +3 -14
- package/dist/license.d.ts +3 -14
- package/dist/license.js +8 -51
- package/dist/license.js.map +1 -1
- package/dist/lodash.cjs.map +1 -1
- package/dist/lodash.js.map +1 -1
- package/dist/logger.cjs +862 -0
- package/dist/logger.cjs.map +1 -0
- package/dist/logger.d.cts +118 -0
- package/dist/logger.d.ts +118 -0
- package/dist/logger.js +816 -0
- package/dist/logger.js.map +1 -0
- package/dist/migrate.cjs +2 -2
- package/dist/migrate.cjs.map +1 -1
- package/dist/migrate.d.cts +2 -0
- package/dist/migrate.d.ts +2 -0
- package/dist/migrate.js +2 -2
- package/dist/migrate.js.map +1 -1
- package/dist/money.cjs +18 -3
- package/dist/money.cjs.map +1 -1
- package/dist/money.d.cts +13 -13
- package/dist/money.d.ts +13 -13
- package/dist/money.js +18 -3
- package/dist/money.js.map +1 -1
- package/dist/nats.cjs +34 -35
- package/dist/nats.cjs.map +1 -1
- package/dist/nats.d.cts +14 -14
- package/dist/nats.d.ts +14 -14
- package/dist/nats.js +32 -33
- package/dist/nats.js.map +1 -1
- package/dist/root.cjs +225 -0
- package/dist/root.cjs.map +1 -0
- package/dist/root.d.cts +4 -0
- package/dist/root.d.ts +4 -0
- package/dist/root.js +200 -0
- package/dist/root.js.map +1 -0
- package/dist/signing.cjs +159 -0
- package/dist/signing.cjs.map +1 -0
- package/dist/signing.d.cts +35 -0
- package/dist/signing.d.ts +35 -0
- package/dist/signing.js +128 -0
- package/dist/signing.js.map +1 -0
- package/dist/{types-DQRwj5rr.d.cts → types-C9jPdQqH.d.cts} +32 -6
- package/dist/{types-DQRwj5rr.d.ts → types-C9jPdQqH.d.ts} +32 -6
- package/dist/types.cjs +19 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +17 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.cjs +273 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +8 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.js +245 -0
- package/dist/utils.js.map +1 -0
- package/package.json +132 -1
- package/dist/cache.service-_SuJIcNA.d.cts +0 -20
- package/dist/cache.service-_SuJIcNA.d.ts +0 -20
- package/dist/fastify-augmentation-CQPBNS5a.d.cts +0 -105
- package/dist/fastify-augmentation-CQPBNS5a.d.ts +0 -105
package/dist/utils.cjs
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/utils/index.ts
|
|
22
|
+
var utils_exports = {};
|
|
23
|
+
__export(utils_exports, {
|
|
24
|
+
extractCountryFromPhone: () => extractCountryFromPhone,
|
|
25
|
+
gcd: () => gcd,
|
|
26
|
+
normalizePhoneNumber: () => normalizePhoneNumber,
|
|
27
|
+
parseExpiryToMs: () => parseExpiryToMs
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(utils_exports);
|
|
30
|
+
|
|
31
|
+
// src/utils/math.utils.ts
|
|
32
|
+
function gcd(a, b) {
|
|
33
|
+
return b === 0 ? a : gcd(b, a % b);
|
|
34
|
+
}
|
|
35
|
+
__name(gcd, "gcd");
|
|
36
|
+
|
|
37
|
+
// src/utils/phone.utils.ts
|
|
38
|
+
var CALLING_CODE_TO_COUNTRY = {
|
|
39
|
+
// 3-digit codes
|
|
40
|
+
"355": "AL",
|
|
41
|
+
"213": "DZ",
|
|
42
|
+
"376": "AD",
|
|
43
|
+
"244": "AO",
|
|
44
|
+
"672": "AQ",
|
|
45
|
+
"374": "AM",
|
|
46
|
+
"297": "AW",
|
|
47
|
+
"994": "AZ",
|
|
48
|
+
"973": "BH",
|
|
49
|
+
"880": "BD",
|
|
50
|
+
"375": "BY",
|
|
51
|
+
"501": "BZ",
|
|
52
|
+
"229": "BJ",
|
|
53
|
+
"975": "BT",
|
|
54
|
+
"591": "BO",
|
|
55
|
+
"387": "BA",
|
|
56
|
+
"267": "BW",
|
|
57
|
+
"673": "BN",
|
|
58
|
+
"359": "BG",
|
|
59
|
+
"226": "BF",
|
|
60
|
+
"257": "BI",
|
|
61
|
+
"855": "KH",
|
|
62
|
+
"237": "CM",
|
|
63
|
+
"238": "CV",
|
|
64
|
+
"236": "CF",
|
|
65
|
+
"235": "TD",
|
|
66
|
+
"269": "KM",
|
|
67
|
+
"242": "CG",
|
|
68
|
+
"243": "CD",
|
|
69
|
+
"506": "CR",
|
|
70
|
+
"385": "HR",
|
|
71
|
+
"357": "CY",
|
|
72
|
+
"420": "CZ",
|
|
73
|
+
"253": "DJ",
|
|
74
|
+
"593": "EC",
|
|
75
|
+
"503": "SV",
|
|
76
|
+
"240": "GQ",
|
|
77
|
+
"291": "ER",
|
|
78
|
+
"372": "EE",
|
|
79
|
+
"251": "ET",
|
|
80
|
+
"679": "FJ",
|
|
81
|
+
"358": "FI",
|
|
82
|
+
"241": "GA",
|
|
83
|
+
"220": "GM",
|
|
84
|
+
"995": "GE",
|
|
85
|
+
"233": "GH",
|
|
86
|
+
"350": "GI",
|
|
87
|
+
"299": "GL",
|
|
88
|
+
"502": "GT",
|
|
89
|
+
"224": "GN",
|
|
90
|
+
"245": "GW",
|
|
91
|
+
"592": "GY",
|
|
92
|
+
"509": "HT",
|
|
93
|
+
"504": "HN",
|
|
94
|
+
"354": "IS",
|
|
95
|
+
"964": "IQ",
|
|
96
|
+
"353": "IE",
|
|
97
|
+
"972": "IL",
|
|
98
|
+
"225": "CI",
|
|
99
|
+
"962": "JO",
|
|
100
|
+
"254": "KE",
|
|
101
|
+
"686": "KI",
|
|
102
|
+
"965": "KW",
|
|
103
|
+
"996": "KG",
|
|
104
|
+
"856": "LA",
|
|
105
|
+
"371": "LV",
|
|
106
|
+
"961": "LB",
|
|
107
|
+
"266": "LS",
|
|
108
|
+
"231": "LR",
|
|
109
|
+
"218": "LY",
|
|
110
|
+
"423": "LI",
|
|
111
|
+
"370": "LT",
|
|
112
|
+
"352": "LU",
|
|
113
|
+
"389": "MK",
|
|
114
|
+
"261": "MG",
|
|
115
|
+
"265": "MW",
|
|
116
|
+
"960": "MV",
|
|
117
|
+
"223": "ML",
|
|
118
|
+
"356": "MT",
|
|
119
|
+
"692": "MH",
|
|
120
|
+
"222": "MR",
|
|
121
|
+
"230": "MU",
|
|
122
|
+
"262": "YT",
|
|
123
|
+
"691": "FM",
|
|
124
|
+
"373": "MD",
|
|
125
|
+
"377": "MC",
|
|
126
|
+
"976": "MN",
|
|
127
|
+
"382": "ME",
|
|
128
|
+
"258": "MZ",
|
|
129
|
+
"264": "NA",
|
|
130
|
+
"674": "NR",
|
|
131
|
+
"977": "NP",
|
|
132
|
+
"505": "NI",
|
|
133
|
+
"227": "NE",
|
|
134
|
+
"234": "NG",
|
|
135
|
+
"683": "NU",
|
|
136
|
+
"968": "OM",
|
|
137
|
+
"680": "PW",
|
|
138
|
+
"970": "PS",
|
|
139
|
+
"507": "PA",
|
|
140
|
+
"675": "PG",
|
|
141
|
+
"595": "PY",
|
|
142
|
+
"351": "PT",
|
|
143
|
+
"974": "QA",
|
|
144
|
+
"250": "RW",
|
|
145
|
+
"685": "WS",
|
|
146
|
+
"378": "SM",
|
|
147
|
+
"239": "ST",
|
|
148
|
+
"966": "SA",
|
|
149
|
+
"221": "SN",
|
|
150
|
+
"381": "RS",
|
|
151
|
+
"248": "SC",
|
|
152
|
+
"232": "SL",
|
|
153
|
+
"421": "SK",
|
|
154
|
+
"386": "SI",
|
|
155
|
+
"677": "SB",
|
|
156
|
+
"252": "SO",
|
|
157
|
+
"211": "SS",
|
|
158
|
+
"249": "SD",
|
|
159
|
+
"597": "SR",
|
|
160
|
+
"268": "SZ",
|
|
161
|
+
"963": "SY",
|
|
162
|
+
"992": "TJ",
|
|
163
|
+
"255": "TZ",
|
|
164
|
+
"228": "TG",
|
|
165
|
+
"676": "TO",
|
|
166
|
+
"216": "TN",
|
|
167
|
+
"993": "TM",
|
|
168
|
+
"688": "TV",
|
|
169
|
+
"256": "UG",
|
|
170
|
+
"380": "UA",
|
|
171
|
+
"971": "AE",
|
|
172
|
+
"598": "UY",
|
|
173
|
+
"998": "UZ",
|
|
174
|
+
"678": "VU",
|
|
175
|
+
"379": "VA",
|
|
176
|
+
"967": "YE",
|
|
177
|
+
"260": "ZM",
|
|
178
|
+
"263": "ZW",
|
|
179
|
+
// 2-digit codes
|
|
180
|
+
"93": "AF",
|
|
181
|
+
"54": "AR",
|
|
182
|
+
"61": "AU",
|
|
183
|
+
"43": "AT",
|
|
184
|
+
"32": "BE",
|
|
185
|
+
"55": "BR",
|
|
186
|
+
"56": "CL",
|
|
187
|
+
"86": "CN",
|
|
188
|
+
"57": "CO",
|
|
189
|
+
"53": "CU",
|
|
190
|
+
"45": "DK",
|
|
191
|
+
"20": "EG",
|
|
192
|
+
"33": "FR",
|
|
193
|
+
"49": "DE",
|
|
194
|
+
"30": "GR",
|
|
195
|
+
"36": "HU",
|
|
196
|
+
"91": "IN",
|
|
197
|
+
"62": "ID",
|
|
198
|
+
"98": "IR",
|
|
199
|
+
"39": "IT",
|
|
200
|
+
"81": "JP",
|
|
201
|
+
"82": "KR",
|
|
202
|
+
"60": "MY",
|
|
203
|
+
"52": "MX",
|
|
204
|
+
"31": "NL",
|
|
205
|
+
"64": "NZ",
|
|
206
|
+
"47": "NO",
|
|
207
|
+
"92": "PK",
|
|
208
|
+
"51": "PE",
|
|
209
|
+
"63": "PH",
|
|
210
|
+
"48": "PL",
|
|
211
|
+
"40": "RO",
|
|
212
|
+
"65": "SG",
|
|
213
|
+
"27": "ZA",
|
|
214
|
+
"34": "ES",
|
|
215
|
+
"94": "LK",
|
|
216
|
+
"46": "SE",
|
|
217
|
+
"41": "CH",
|
|
218
|
+
"66": "TH",
|
|
219
|
+
"90": "TR",
|
|
220
|
+
"44": "GB",
|
|
221
|
+
"58": "VE",
|
|
222
|
+
"84": "VN",
|
|
223
|
+
// 1-digit codes (shared codes default to most common country)
|
|
224
|
+
"1": "US",
|
|
225
|
+
"7": "RU"
|
|
226
|
+
};
|
|
227
|
+
function extractCountryFromPhone(phone) {
|
|
228
|
+
const digits = phone.startsWith("+") ? phone.slice(1) : phone;
|
|
229
|
+
for (const length of [
|
|
230
|
+
3,
|
|
231
|
+
2,
|
|
232
|
+
1
|
|
233
|
+
]) {
|
|
234
|
+
const prefix = digits.slice(0, length);
|
|
235
|
+
if (CALLING_CODE_TO_COUNTRY[prefix]) {
|
|
236
|
+
return CALLING_CODE_TO_COUNTRY[prefix];
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return void 0;
|
|
240
|
+
}
|
|
241
|
+
__name(extractCountryFromPhone, "extractCountryFromPhone");
|
|
242
|
+
function normalizePhoneNumber(phone) {
|
|
243
|
+
return phone.startsWith("+") ? phone : `+${phone}`;
|
|
244
|
+
}
|
|
245
|
+
__name(normalizePhoneNumber, "normalizePhoneNumber");
|
|
246
|
+
|
|
247
|
+
// src/utils/time.utils.ts
|
|
248
|
+
function parseExpiryToMs(expiry) {
|
|
249
|
+
const match = expiry.match(/^(\d+)([smhdwy])$/);
|
|
250
|
+
if (!match) throw new Error(`Invalid expiry format: ${expiry}`);
|
|
251
|
+
const [, digits = "", unit = ""] = match;
|
|
252
|
+
const value = Number.parseInt(digits, 10);
|
|
253
|
+
const multipliers = {
|
|
254
|
+
s: 1e3,
|
|
255
|
+
m: 6e4,
|
|
256
|
+
h: 36e5,
|
|
257
|
+
d: 864e5,
|
|
258
|
+
w: 6048e5,
|
|
259
|
+
y: 31536e6
|
|
260
|
+
};
|
|
261
|
+
const multiplier = multipliers[unit];
|
|
262
|
+
if (multiplier === void 0) throw new Error(`Invalid expiry format: ${expiry}`);
|
|
263
|
+
return value * multiplier;
|
|
264
|
+
}
|
|
265
|
+
__name(parseExpiryToMs, "parseExpiryToMs");
|
|
266
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
267
|
+
0 && (module.exports = {
|
|
268
|
+
extractCountryFromPhone,
|
|
269
|
+
gcd,
|
|
270
|
+
normalizePhoneNumber,
|
|
271
|
+
parseExpiryToMs
|
|
272
|
+
});
|
|
273
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/index.ts","../src/utils/math.utils.ts","../src/utils/phone.utils.ts","../src/utils/time.utils.ts"],"sourcesContent":["export { gcd } from './math.utils';\nexport { extractCountryFromPhone, normalizePhoneNumber } from './phone.utils';\nexport { parseExpiryToMs } from './time.utils';\n","// Returns the greatest common divisor of two integers using the Euclidean algorithm\nexport function gcd(a: number, b: number): number {\n return b === 0 ? a : gcd(b, a % b);\n}\n","const CALLING_CODE_TO_COUNTRY: Record<string, string> = {\n // 3-digit codes\n '355': 'AL',\n '213': 'DZ',\n '376': 'AD',\n '244': 'AO',\n '672': 'AQ',\n '374': 'AM',\n '297': 'AW',\n '994': 'AZ',\n '973': 'BH',\n '880': 'BD',\n '375': 'BY',\n '501': 'BZ',\n '229': 'BJ',\n '975': 'BT',\n '591': 'BO',\n '387': 'BA',\n '267': 'BW',\n '673': 'BN',\n '359': 'BG',\n '226': 'BF',\n '257': 'BI',\n '855': 'KH',\n '237': 'CM',\n '238': 'CV',\n '236': 'CF',\n '235': 'TD',\n '269': 'KM',\n '242': 'CG',\n '243': 'CD',\n '506': 'CR',\n '385': 'HR',\n '357': 'CY',\n '420': 'CZ',\n '253': 'DJ',\n '593': 'EC',\n '503': 'SV',\n '240': 'GQ',\n '291': 'ER',\n '372': 'EE',\n '251': 'ET',\n '679': 'FJ',\n '358': 'FI',\n '241': 'GA',\n '220': 'GM',\n '995': 'GE',\n '233': 'GH',\n '350': 'GI',\n '299': 'GL',\n '502': 'GT',\n '224': 'GN',\n '245': 'GW',\n '592': 'GY',\n '509': 'HT',\n '504': 'HN',\n '354': 'IS',\n '964': 'IQ',\n '353': 'IE',\n '972': 'IL',\n '225': 'CI',\n '962': 'JO',\n '254': 'KE',\n '686': 'KI',\n '965': 'KW',\n '996': 'KG',\n '856': 'LA',\n '371': 'LV',\n '961': 'LB',\n '266': 'LS',\n '231': 'LR',\n '218': 'LY',\n '423': 'LI',\n '370': 'LT',\n '352': 'LU',\n '389': 'MK',\n '261': 'MG',\n '265': 'MW',\n '960': 'MV',\n '223': 'ML',\n '356': 'MT',\n '692': 'MH',\n '222': 'MR',\n '230': 'MU',\n '262': 'YT',\n '691': 'FM',\n '373': 'MD',\n '377': 'MC',\n '976': 'MN',\n '382': 'ME',\n '258': 'MZ',\n '264': 'NA',\n '674': 'NR',\n '977': 'NP',\n '505': 'NI',\n '227': 'NE',\n '234': 'NG',\n '683': 'NU',\n '968': 'OM',\n '680': 'PW',\n '970': 'PS',\n '507': 'PA',\n '675': 'PG',\n '595': 'PY',\n '351': 'PT',\n '974': 'QA',\n '250': 'RW',\n '685': 'WS',\n '378': 'SM',\n '239': 'ST',\n '966': 'SA',\n '221': 'SN',\n '381': 'RS',\n '248': 'SC',\n '232': 'SL',\n '421': 'SK',\n '386': 'SI',\n '677': 'SB',\n '252': 'SO',\n '211': 'SS',\n '249': 'SD',\n '597': 'SR',\n '268': 'SZ',\n '963': 'SY',\n '992': 'TJ',\n '255': 'TZ',\n '228': 'TG',\n '676': 'TO',\n '216': 'TN',\n '993': 'TM',\n '688': 'TV',\n '256': 'UG',\n '380': 'UA',\n '971': 'AE',\n '598': 'UY',\n '998': 'UZ',\n '678': 'VU',\n '379': 'VA',\n '967': 'YE',\n '260': 'ZM',\n '263': 'ZW',\n\n // 2-digit codes\n '93': 'AF',\n '54': 'AR',\n '61': 'AU',\n '43': 'AT',\n '32': 'BE',\n '55': 'BR',\n '56': 'CL',\n '86': 'CN',\n '57': 'CO',\n '53': 'CU',\n '45': 'DK',\n '20': 'EG',\n '33': 'FR',\n '49': 'DE',\n '30': 'GR',\n '36': 'HU',\n '91': 'IN',\n '62': 'ID',\n '98': 'IR',\n '39': 'IT',\n '81': 'JP',\n '82': 'KR',\n '60': 'MY',\n '52': 'MX',\n '31': 'NL',\n '64': 'NZ',\n '47': 'NO',\n '92': 'PK',\n '51': 'PE',\n '63': 'PH',\n '48': 'PL',\n '40': 'RO',\n '65': 'SG',\n '27': 'ZA',\n '34': 'ES',\n '94': 'LK',\n '46': 'SE',\n '41': 'CH',\n '66': 'TH',\n '90': 'TR',\n '44': 'GB',\n '58': 'VE',\n '84': 'VN',\n\n // 1-digit codes (shared codes default to most common country)\n '1': 'US', // Also CA, but default to US\n '7': 'RU', // Also KZ, but default to RU\n};\n\n// Extracts ISO 3166-1 alpha-2 country code from an E.164 phone number\nexport function extractCountryFromPhone(phone: string): string | undefined {\n // Remove + prefix if present\n const digits = phone.startsWith('+') ? phone.slice(1) : phone;\n\n // Try matching from longest to shortest prefix (3, 2, 1 digits)\n for (const length of [3, 2, 1]) {\n const prefix = digits.slice(0, length);\n if (CALLING_CODE_TO_COUNTRY[prefix]) {\n return CALLING_CODE_TO_COUNTRY[prefix];\n }\n }\n\n return undefined;\n}\n\n// Normalizes a phone number to E.164 format by ensuring a + prefix\nexport function normalizePhoneNumber(phone: string): string {\n return phone.startsWith('+') ? phone : `+${phone}`;\n}\n","// Parses a duration string (e.g. '10m', '1h', '30s', '7d') to milliseconds\nexport function parseExpiryToMs(expiry: string): number {\n const match = expiry.match(/^(\\d+)([smhdwy])$/);\n if (!match) throw new Error(`Invalid expiry format: ${expiry}`);\n\n const [, digits = '', unit = ''] = match;\n const value = Number.parseInt(digits, 10);\n const multipliers: Record<string, number> = {\n s: 1000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n w: 604_800_000,\n y: 31_536_000_000,\n };\n\n const multiplier = multipliers[unit];\n if (multiplier === undefined) throw new Error(`Invalid expiry format: ${expiry}`);\n\n return value * multiplier;\n}\n"],"mappings":"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","names":["gcd","a","b","CALLING_CODE_TO_COUNTRY","extractCountryFromPhone","phone","digits","startsWith","slice","length","prefix","undefined","normalizePhoneNumber","parseExpiryToMs","expiry","match","Error","digits","unit","value","Number","parseInt","multipliers","s","m","h","d","w","y","multiplier","undefined"]}
|
package/dist/utils.d.cts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare function gcd(a: number, b: number): number;
|
|
2
|
+
|
|
3
|
+
declare function extractCountryFromPhone(phone: string): string | undefined;
|
|
4
|
+
declare function normalizePhoneNumber(phone: string): string;
|
|
5
|
+
|
|
6
|
+
declare function parseExpiryToMs(expiry: string): number;
|
|
7
|
+
|
|
8
|
+
export { extractCountryFromPhone, gcd, normalizePhoneNumber, parseExpiryToMs };
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare function gcd(a: number, b: number): number;
|
|
2
|
+
|
|
3
|
+
declare function extractCountryFromPhone(phone: string): string | undefined;
|
|
4
|
+
declare function normalizePhoneNumber(phone: string): string;
|
|
5
|
+
|
|
6
|
+
declare function parseExpiryToMs(expiry: string): number;
|
|
7
|
+
|
|
8
|
+
export { extractCountryFromPhone, gcd, normalizePhoneNumber, parseExpiryToMs };
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/utils/math.utils.ts
|
|
5
|
+
function gcd(a, b) {
|
|
6
|
+
return b === 0 ? a : gcd(b, a % b);
|
|
7
|
+
}
|
|
8
|
+
__name(gcd, "gcd");
|
|
9
|
+
|
|
10
|
+
// src/utils/phone.utils.ts
|
|
11
|
+
var CALLING_CODE_TO_COUNTRY = {
|
|
12
|
+
// 3-digit codes
|
|
13
|
+
"355": "AL",
|
|
14
|
+
"213": "DZ",
|
|
15
|
+
"376": "AD",
|
|
16
|
+
"244": "AO",
|
|
17
|
+
"672": "AQ",
|
|
18
|
+
"374": "AM",
|
|
19
|
+
"297": "AW",
|
|
20
|
+
"994": "AZ",
|
|
21
|
+
"973": "BH",
|
|
22
|
+
"880": "BD",
|
|
23
|
+
"375": "BY",
|
|
24
|
+
"501": "BZ",
|
|
25
|
+
"229": "BJ",
|
|
26
|
+
"975": "BT",
|
|
27
|
+
"591": "BO",
|
|
28
|
+
"387": "BA",
|
|
29
|
+
"267": "BW",
|
|
30
|
+
"673": "BN",
|
|
31
|
+
"359": "BG",
|
|
32
|
+
"226": "BF",
|
|
33
|
+
"257": "BI",
|
|
34
|
+
"855": "KH",
|
|
35
|
+
"237": "CM",
|
|
36
|
+
"238": "CV",
|
|
37
|
+
"236": "CF",
|
|
38
|
+
"235": "TD",
|
|
39
|
+
"269": "KM",
|
|
40
|
+
"242": "CG",
|
|
41
|
+
"243": "CD",
|
|
42
|
+
"506": "CR",
|
|
43
|
+
"385": "HR",
|
|
44
|
+
"357": "CY",
|
|
45
|
+
"420": "CZ",
|
|
46
|
+
"253": "DJ",
|
|
47
|
+
"593": "EC",
|
|
48
|
+
"503": "SV",
|
|
49
|
+
"240": "GQ",
|
|
50
|
+
"291": "ER",
|
|
51
|
+
"372": "EE",
|
|
52
|
+
"251": "ET",
|
|
53
|
+
"679": "FJ",
|
|
54
|
+
"358": "FI",
|
|
55
|
+
"241": "GA",
|
|
56
|
+
"220": "GM",
|
|
57
|
+
"995": "GE",
|
|
58
|
+
"233": "GH",
|
|
59
|
+
"350": "GI",
|
|
60
|
+
"299": "GL",
|
|
61
|
+
"502": "GT",
|
|
62
|
+
"224": "GN",
|
|
63
|
+
"245": "GW",
|
|
64
|
+
"592": "GY",
|
|
65
|
+
"509": "HT",
|
|
66
|
+
"504": "HN",
|
|
67
|
+
"354": "IS",
|
|
68
|
+
"964": "IQ",
|
|
69
|
+
"353": "IE",
|
|
70
|
+
"972": "IL",
|
|
71
|
+
"225": "CI",
|
|
72
|
+
"962": "JO",
|
|
73
|
+
"254": "KE",
|
|
74
|
+
"686": "KI",
|
|
75
|
+
"965": "KW",
|
|
76
|
+
"996": "KG",
|
|
77
|
+
"856": "LA",
|
|
78
|
+
"371": "LV",
|
|
79
|
+
"961": "LB",
|
|
80
|
+
"266": "LS",
|
|
81
|
+
"231": "LR",
|
|
82
|
+
"218": "LY",
|
|
83
|
+
"423": "LI",
|
|
84
|
+
"370": "LT",
|
|
85
|
+
"352": "LU",
|
|
86
|
+
"389": "MK",
|
|
87
|
+
"261": "MG",
|
|
88
|
+
"265": "MW",
|
|
89
|
+
"960": "MV",
|
|
90
|
+
"223": "ML",
|
|
91
|
+
"356": "MT",
|
|
92
|
+
"692": "MH",
|
|
93
|
+
"222": "MR",
|
|
94
|
+
"230": "MU",
|
|
95
|
+
"262": "YT",
|
|
96
|
+
"691": "FM",
|
|
97
|
+
"373": "MD",
|
|
98
|
+
"377": "MC",
|
|
99
|
+
"976": "MN",
|
|
100
|
+
"382": "ME",
|
|
101
|
+
"258": "MZ",
|
|
102
|
+
"264": "NA",
|
|
103
|
+
"674": "NR",
|
|
104
|
+
"977": "NP",
|
|
105
|
+
"505": "NI",
|
|
106
|
+
"227": "NE",
|
|
107
|
+
"234": "NG",
|
|
108
|
+
"683": "NU",
|
|
109
|
+
"968": "OM",
|
|
110
|
+
"680": "PW",
|
|
111
|
+
"970": "PS",
|
|
112
|
+
"507": "PA",
|
|
113
|
+
"675": "PG",
|
|
114
|
+
"595": "PY",
|
|
115
|
+
"351": "PT",
|
|
116
|
+
"974": "QA",
|
|
117
|
+
"250": "RW",
|
|
118
|
+
"685": "WS",
|
|
119
|
+
"378": "SM",
|
|
120
|
+
"239": "ST",
|
|
121
|
+
"966": "SA",
|
|
122
|
+
"221": "SN",
|
|
123
|
+
"381": "RS",
|
|
124
|
+
"248": "SC",
|
|
125
|
+
"232": "SL",
|
|
126
|
+
"421": "SK",
|
|
127
|
+
"386": "SI",
|
|
128
|
+
"677": "SB",
|
|
129
|
+
"252": "SO",
|
|
130
|
+
"211": "SS",
|
|
131
|
+
"249": "SD",
|
|
132
|
+
"597": "SR",
|
|
133
|
+
"268": "SZ",
|
|
134
|
+
"963": "SY",
|
|
135
|
+
"992": "TJ",
|
|
136
|
+
"255": "TZ",
|
|
137
|
+
"228": "TG",
|
|
138
|
+
"676": "TO",
|
|
139
|
+
"216": "TN",
|
|
140
|
+
"993": "TM",
|
|
141
|
+
"688": "TV",
|
|
142
|
+
"256": "UG",
|
|
143
|
+
"380": "UA",
|
|
144
|
+
"971": "AE",
|
|
145
|
+
"598": "UY",
|
|
146
|
+
"998": "UZ",
|
|
147
|
+
"678": "VU",
|
|
148
|
+
"379": "VA",
|
|
149
|
+
"967": "YE",
|
|
150
|
+
"260": "ZM",
|
|
151
|
+
"263": "ZW",
|
|
152
|
+
// 2-digit codes
|
|
153
|
+
"93": "AF",
|
|
154
|
+
"54": "AR",
|
|
155
|
+
"61": "AU",
|
|
156
|
+
"43": "AT",
|
|
157
|
+
"32": "BE",
|
|
158
|
+
"55": "BR",
|
|
159
|
+
"56": "CL",
|
|
160
|
+
"86": "CN",
|
|
161
|
+
"57": "CO",
|
|
162
|
+
"53": "CU",
|
|
163
|
+
"45": "DK",
|
|
164
|
+
"20": "EG",
|
|
165
|
+
"33": "FR",
|
|
166
|
+
"49": "DE",
|
|
167
|
+
"30": "GR",
|
|
168
|
+
"36": "HU",
|
|
169
|
+
"91": "IN",
|
|
170
|
+
"62": "ID",
|
|
171
|
+
"98": "IR",
|
|
172
|
+
"39": "IT",
|
|
173
|
+
"81": "JP",
|
|
174
|
+
"82": "KR",
|
|
175
|
+
"60": "MY",
|
|
176
|
+
"52": "MX",
|
|
177
|
+
"31": "NL",
|
|
178
|
+
"64": "NZ",
|
|
179
|
+
"47": "NO",
|
|
180
|
+
"92": "PK",
|
|
181
|
+
"51": "PE",
|
|
182
|
+
"63": "PH",
|
|
183
|
+
"48": "PL",
|
|
184
|
+
"40": "RO",
|
|
185
|
+
"65": "SG",
|
|
186
|
+
"27": "ZA",
|
|
187
|
+
"34": "ES",
|
|
188
|
+
"94": "LK",
|
|
189
|
+
"46": "SE",
|
|
190
|
+
"41": "CH",
|
|
191
|
+
"66": "TH",
|
|
192
|
+
"90": "TR",
|
|
193
|
+
"44": "GB",
|
|
194
|
+
"58": "VE",
|
|
195
|
+
"84": "VN",
|
|
196
|
+
// 1-digit codes (shared codes default to most common country)
|
|
197
|
+
"1": "US",
|
|
198
|
+
"7": "RU"
|
|
199
|
+
};
|
|
200
|
+
function extractCountryFromPhone(phone) {
|
|
201
|
+
const digits = phone.startsWith("+") ? phone.slice(1) : phone;
|
|
202
|
+
for (const length of [
|
|
203
|
+
3,
|
|
204
|
+
2,
|
|
205
|
+
1
|
|
206
|
+
]) {
|
|
207
|
+
const prefix = digits.slice(0, length);
|
|
208
|
+
if (CALLING_CODE_TO_COUNTRY[prefix]) {
|
|
209
|
+
return CALLING_CODE_TO_COUNTRY[prefix];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return void 0;
|
|
213
|
+
}
|
|
214
|
+
__name(extractCountryFromPhone, "extractCountryFromPhone");
|
|
215
|
+
function normalizePhoneNumber(phone) {
|
|
216
|
+
return phone.startsWith("+") ? phone : `+${phone}`;
|
|
217
|
+
}
|
|
218
|
+
__name(normalizePhoneNumber, "normalizePhoneNumber");
|
|
219
|
+
|
|
220
|
+
// src/utils/time.utils.ts
|
|
221
|
+
function parseExpiryToMs(expiry) {
|
|
222
|
+
const match = expiry.match(/^(\d+)([smhdwy])$/);
|
|
223
|
+
if (!match) throw new Error(`Invalid expiry format: ${expiry}`);
|
|
224
|
+
const [, digits = "", unit = ""] = match;
|
|
225
|
+
const value = Number.parseInt(digits, 10);
|
|
226
|
+
const multipliers = {
|
|
227
|
+
s: 1e3,
|
|
228
|
+
m: 6e4,
|
|
229
|
+
h: 36e5,
|
|
230
|
+
d: 864e5,
|
|
231
|
+
w: 6048e5,
|
|
232
|
+
y: 31536e6
|
|
233
|
+
};
|
|
234
|
+
const multiplier = multipliers[unit];
|
|
235
|
+
if (multiplier === void 0) throw new Error(`Invalid expiry format: ${expiry}`);
|
|
236
|
+
return value * multiplier;
|
|
237
|
+
}
|
|
238
|
+
__name(parseExpiryToMs, "parseExpiryToMs");
|
|
239
|
+
export {
|
|
240
|
+
extractCountryFromPhone,
|
|
241
|
+
gcd,
|
|
242
|
+
normalizePhoneNumber,
|
|
243
|
+
parseExpiryToMs
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/math.utils.ts","../src/utils/phone.utils.ts","../src/utils/time.utils.ts"],"sourcesContent":["// Returns the greatest common divisor of two integers using the Euclidean algorithm\nexport function gcd(a: number, b: number): number {\n return b === 0 ? a : gcd(b, a % b);\n}\n","const CALLING_CODE_TO_COUNTRY: Record<string, string> = {\n // 3-digit codes\n '355': 'AL',\n '213': 'DZ',\n '376': 'AD',\n '244': 'AO',\n '672': 'AQ',\n '374': 'AM',\n '297': 'AW',\n '994': 'AZ',\n '973': 'BH',\n '880': 'BD',\n '375': 'BY',\n '501': 'BZ',\n '229': 'BJ',\n '975': 'BT',\n '591': 'BO',\n '387': 'BA',\n '267': 'BW',\n '673': 'BN',\n '359': 'BG',\n '226': 'BF',\n '257': 'BI',\n '855': 'KH',\n '237': 'CM',\n '238': 'CV',\n '236': 'CF',\n '235': 'TD',\n '269': 'KM',\n '242': 'CG',\n '243': 'CD',\n '506': 'CR',\n '385': 'HR',\n '357': 'CY',\n '420': 'CZ',\n '253': 'DJ',\n '593': 'EC',\n '503': 'SV',\n '240': 'GQ',\n '291': 'ER',\n '372': 'EE',\n '251': 'ET',\n '679': 'FJ',\n '358': 'FI',\n '241': 'GA',\n '220': 'GM',\n '995': 'GE',\n '233': 'GH',\n '350': 'GI',\n '299': 'GL',\n '502': 'GT',\n '224': 'GN',\n '245': 'GW',\n '592': 'GY',\n '509': 'HT',\n '504': 'HN',\n '354': 'IS',\n '964': 'IQ',\n '353': 'IE',\n '972': 'IL',\n '225': 'CI',\n '962': 'JO',\n '254': 'KE',\n '686': 'KI',\n '965': 'KW',\n '996': 'KG',\n '856': 'LA',\n '371': 'LV',\n '961': 'LB',\n '266': 'LS',\n '231': 'LR',\n '218': 'LY',\n '423': 'LI',\n '370': 'LT',\n '352': 'LU',\n '389': 'MK',\n '261': 'MG',\n '265': 'MW',\n '960': 'MV',\n '223': 'ML',\n '356': 'MT',\n '692': 'MH',\n '222': 'MR',\n '230': 'MU',\n '262': 'YT',\n '691': 'FM',\n '373': 'MD',\n '377': 'MC',\n '976': 'MN',\n '382': 'ME',\n '258': 'MZ',\n '264': 'NA',\n '674': 'NR',\n '977': 'NP',\n '505': 'NI',\n '227': 'NE',\n '234': 'NG',\n '683': 'NU',\n '968': 'OM',\n '680': 'PW',\n '970': 'PS',\n '507': 'PA',\n '675': 'PG',\n '595': 'PY',\n '351': 'PT',\n '974': 'QA',\n '250': 'RW',\n '685': 'WS',\n '378': 'SM',\n '239': 'ST',\n '966': 'SA',\n '221': 'SN',\n '381': 'RS',\n '248': 'SC',\n '232': 'SL',\n '421': 'SK',\n '386': 'SI',\n '677': 'SB',\n '252': 'SO',\n '211': 'SS',\n '249': 'SD',\n '597': 'SR',\n '268': 'SZ',\n '963': 'SY',\n '992': 'TJ',\n '255': 'TZ',\n '228': 'TG',\n '676': 'TO',\n '216': 'TN',\n '993': 'TM',\n '688': 'TV',\n '256': 'UG',\n '380': 'UA',\n '971': 'AE',\n '598': 'UY',\n '998': 'UZ',\n '678': 'VU',\n '379': 'VA',\n '967': 'YE',\n '260': 'ZM',\n '263': 'ZW',\n\n // 2-digit codes\n '93': 'AF',\n '54': 'AR',\n '61': 'AU',\n '43': 'AT',\n '32': 'BE',\n '55': 'BR',\n '56': 'CL',\n '86': 'CN',\n '57': 'CO',\n '53': 'CU',\n '45': 'DK',\n '20': 'EG',\n '33': 'FR',\n '49': 'DE',\n '30': 'GR',\n '36': 'HU',\n '91': 'IN',\n '62': 'ID',\n '98': 'IR',\n '39': 'IT',\n '81': 'JP',\n '82': 'KR',\n '60': 'MY',\n '52': 'MX',\n '31': 'NL',\n '64': 'NZ',\n '47': 'NO',\n '92': 'PK',\n '51': 'PE',\n '63': 'PH',\n '48': 'PL',\n '40': 'RO',\n '65': 'SG',\n '27': 'ZA',\n '34': 'ES',\n '94': 'LK',\n '46': 'SE',\n '41': 'CH',\n '66': 'TH',\n '90': 'TR',\n '44': 'GB',\n '58': 'VE',\n '84': 'VN',\n\n // 1-digit codes (shared codes default to most common country)\n '1': 'US', // Also CA, but default to US\n '7': 'RU', // Also KZ, but default to RU\n};\n\n// Extracts ISO 3166-1 alpha-2 country code from an E.164 phone number\nexport function extractCountryFromPhone(phone: string): string | undefined {\n // Remove + prefix if present\n const digits = phone.startsWith('+') ? phone.slice(1) : phone;\n\n // Try matching from longest to shortest prefix (3, 2, 1 digits)\n for (const length of [3, 2, 1]) {\n const prefix = digits.slice(0, length);\n if (CALLING_CODE_TO_COUNTRY[prefix]) {\n return CALLING_CODE_TO_COUNTRY[prefix];\n }\n }\n\n return undefined;\n}\n\n// Normalizes a phone number to E.164 format by ensuring a + prefix\nexport function normalizePhoneNumber(phone: string): string {\n return phone.startsWith('+') ? phone : `+${phone}`;\n}\n","// Parses a duration string (e.g. '10m', '1h', '30s', '7d') to milliseconds\nexport function parseExpiryToMs(expiry: string): number {\n const match = expiry.match(/^(\\d+)([smhdwy])$/);\n if (!match) throw new Error(`Invalid expiry format: ${expiry}`);\n\n const [, digits = '', unit = ''] = match;\n const value = Number.parseInt(digits, 10);\n const multipliers: Record<string, number> = {\n s: 1000,\n m: 60_000,\n h: 3_600_000,\n d: 86_400_000,\n w: 604_800_000,\n y: 31_536_000_000,\n };\n\n const multiplier = multipliers[unit];\n if (multiplier === undefined) throw new Error(`Invalid expiry format: ${expiry}`);\n\n return value * multiplier;\n}\n"],"mappings":";;;;AACO,SAASA,IAAIC,GAAWC,GAAS;AACtC,SAAOA,MAAM,IAAID,IAAID,IAAIE,GAAGD,IAAIC,CAAAA;AAClC;AAFgBF;;;ACDhB,IAAMG,0BAAkD;;EAEtD,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;;EAGP,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;;EAGN,KAAK;EACL,KAAK;AACP;AAGO,SAASC,wBAAwBC,OAAa;AAEnD,QAAMC,SAASD,MAAME,WAAW,GAAA,IAAOF,MAAMG,MAAM,CAAA,IAAKH;AAGxD,aAAWI,UAAU;IAAC;IAAG;IAAG;KAAI;AAC9B,UAAMC,SAASJ,OAAOE,MAAM,GAAGC,MAAAA;AAC/B,QAAIN,wBAAwBO,MAAAA,GAAS;AACnC,aAAOP,wBAAwBO,MAAAA;IACjC;EACF;AAEA,SAAOC;AACT;AAbgBP;AAgBT,SAASQ,qBAAqBP,OAAa;AAChD,SAAOA,MAAME,WAAW,GAAA,IAAOF,QAAQ,IAAIA,KAAAA;AAC7C;AAFgBO;;;AChNT,SAASC,gBAAgBC,QAAc;AAC5C,QAAMC,QAAQD,OAAOC,MAAM,mBAAA;AAC3B,MAAI,CAACA,MAAO,OAAM,IAAIC,MAAM,0BAA0BF,MAAAA,EAAQ;AAE9D,QAAM,CAAA,EAAGG,SAAS,IAAIC,OAAO,EAAE,IAAIH;AACnC,QAAMI,QAAQC,OAAOC,SAASJ,QAAQ,EAAA;AACtC,QAAMK,cAAsC;IAC1CC,GAAG;IACHC,GAAG;IACHC,GAAG;IACHC,GAAG;IACHC,GAAG;IACHC,GAAG;EACL;AAEA,QAAMC,aAAaP,YAAYJ,IAAAA;AAC/B,MAAIW,eAAeC,OAAW,OAAM,IAAId,MAAM,0BAA0BF,MAAAA,EAAQ;AAEhF,SAAOK,QAAQU;AACjB;AAnBgBhB;","names":["gcd","a","b","CALLING_CODE_TO_COUNTRY","extractCountryFromPhone","phone","digits","startsWith","slice","length","prefix","undefined","normalizePhoneNumber","parseExpiryToMs","expiry","match","Error","digits","unit","value","Number","parseInt","multipliers","s","m","h","d","w","y","multiplier","undefined"]}
|