@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.
Files changed (145) hide show
  1. package/dist/auth.cjs +942 -0
  2. package/dist/auth.cjs.map +1 -0
  3. package/dist/auth.d.cts +95 -0
  4. package/dist/auth.d.ts +95 -0
  5. package/dist/auth.js +884 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/cache.cjs +182 -14
  8. package/dist/cache.cjs.map +1 -1
  9. package/dist/cache.d.cts +48 -4
  10. package/dist/cache.d.ts +48 -4
  11. package/dist/cache.js +177 -12
  12. package/dist/cache.js.map +1 -1
  13. package/dist/catalog-resolver.cjs +226 -51
  14. package/dist/catalog-resolver.cjs.map +1 -1
  15. package/dist/catalog-resolver.d.cts +41 -19
  16. package/dist/catalog-resolver.d.ts +41 -19
  17. package/dist/catalog-resolver.js +212 -46
  18. package/dist/catalog-resolver.js.map +1 -1
  19. package/dist/code-pattern-BP4zkNtT.d.cts +12 -0
  20. package/dist/code-pattern-BP4zkNtT.d.ts +12 -0
  21. package/dist/context.cjs +93 -0
  22. package/dist/context.cjs.map +1 -0
  23. package/dist/context.d.cts +19 -0
  24. package/dist/context.d.ts +19 -0
  25. package/dist/context.js +64 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/countries.cjs +1559 -0
  28. package/dist/countries.cjs.map +1 -0
  29. package/dist/countries.d.cts +13 -0
  30. package/dist/countries.d.ts +13 -0
  31. package/dist/countries.js +1532 -0
  32. package/dist/countries.js.map +1 -0
  33. package/dist/data-table.cjs +1280 -0
  34. package/dist/data-table.cjs.map +1 -0
  35. package/dist/data-table.d.cts +123 -0
  36. package/dist/data-table.d.ts +123 -0
  37. package/dist/data-table.js +1260 -0
  38. package/dist/data-table.js.map +1 -0
  39. package/dist/database.cjs +1510 -0
  40. package/dist/database.cjs.map +1 -0
  41. package/dist/database.d.cts +287 -0
  42. package/dist/database.d.ts +287 -0
  43. package/dist/database.js +1469 -0
  44. package/dist/database.js.map +1 -0
  45. package/dist/decimal.d.cts +0 -1
  46. package/dist/decimal.d.ts +0 -1
  47. package/dist/decorators.cjs +1817 -0
  48. package/dist/decorators.cjs.map +1 -0
  49. package/dist/decorators.d.cts +24 -0
  50. package/dist/decorators.d.ts +24 -0
  51. package/dist/decorators.js +1780 -0
  52. package/dist/decorators.js.map +1 -0
  53. package/dist/document-BoS0NIbf.d.cts +12 -0
  54. package/dist/document-BoS0NIbf.d.ts +12 -0
  55. package/dist/drizzle-pg-core.cjs +25 -0
  56. package/dist/drizzle-pg-core.cjs.map +1 -1
  57. package/dist/drizzle-pg-core.d.cts +7 -0
  58. package/dist/drizzle-pg-core.d.ts +7 -0
  59. package/dist/drizzle-pg-core.js +22 -0
  60. package/dist/drizzle-pg-core.js.map +1 -1
  61. package/dist/exceptions.cjs +301 -0
  62. package/dist/exceptions.cjs.map +1 -0
  63. package/dist/exceptions.d.cts +90 -0
  64. package/dist/exceptions.d.ts +90 -0
  65. package/dist/exceptions.js +257 -0
  66. package/dist/exceptions.js.map +1 -0
  67. package/dist/filter.types-PuARU9XD.d.cts +50 -0
  68. package/dist/filter.types-PuARU9XD.d.ts +50 -0
  69. package/dist/filters.cjs +407 -0
  70. package/dist/filters.cjs.map +1 -0
  71. package/dist/filters.d.cts +55 -0
  72. package/dist/filters.d.ts +55 -0
  73. package/dist/filters.js +377 -0
  74. package/dist/filters.js.map +1 -0
  75. package/dist/index.cjs +0 -5423
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.d.cts +93 -854
  78. package/dist/index.d.ts +93 -854
  79. package/dist/index.js +0 -5301
  80. package/dist/index.js.map +1 -1
  81. package/dist/is-country.decorator-CcNwSSr5.d.cts +5 -0
  82. package/dist/is-country.decorator-CcNwSSr5.d.ts +5 -0
  83. package/dist/license.cjs +9 -56
  84. package/dist/license.cjs.map +1 -1
  85. package/dist/license.d.cts +3 -14
  86. package/dist/license.d.ts +3 -14
  87. package/dist/license.js +8 -51
  88. package/dist/license.js.map +1 -1
  89. package/dist/lodash.cjs.map +1 -1
  90. package/dist/lodash.js.map +1 -1
  91. package/dist/logger.cjs +862 -0
  92. package/dist/logger.cjs.map +1 -0
  93. package/dist/logger.d.cts +118 -0
  94. package/dist/logger.d.ts +118 -0
  95. package/dist/logger.js +816 -0
  96. package/dist/logger.js.map +1 -0
  97. package/dist/migrate.cjs +2 -2
  98. package/dist/migrate.cjs.map +1 -1
  99. package/dist/migrate.d.cts +2 -0
  100. package/dist/migrate.d.ts +2 -0
  101. package/dist/migrate.js +2 -2
  102. package/dist/migrate.js.map +1 -1
  103. package/dist/money.cjs +18 -3
  104. package/dist/money.cjs.map +1 -1
  105. package/dist/money.d.cts +13 -13
  106. package/dist/money.d.ts +13 -13
  107. package/dist/money.js +18 -3
  108. package/dist/money.js.map +1 -1
  109. package/dist/nats.cjs +34 -35
  110. package/dist/nats.cjs.map +1 -1
  111. package/dist/nats.d.cts +14 -14
  112. package/dist/nats.d.ts +14 -14
  113. package/dist/nats.js +32 -33
  114. package/dist/nats.js.map +1 -1
  115. package/dist/root.cjs +225 -0
  116. package/dist/root.cjs.map +1 -0
  117. package/dist/root.d.cts +4 -0
  118. package/dist/root.d.ts +4 -0
  119. package/dist/root.js +200 -0
  120. package/dist/root.js.map +1 -0
  121. package/dist/signing.cjs +159 -0
  122. package/dist/signing.cjs.map +1 -0
  123. package/dist/signing.d.cts +35 -0
  124. package/dist/signing.d.ts +35 -0
  125. package/dist/signing.js +128 -0
  126. package/dist/signing.js.map +1 -0
  127. package/dist/{types-DQRwj5rr.d.cts → types-C9jPdQqH.d.cts} +32 -6
  128. package/dist/{types-DQRwj5rr.d.ts → types-C9jPdQqH.d.ts} +32 -6
  129. package/dist/types.cjs +19 -0
  130. package/dist/types.cjs.map +1 -0
  131. package/dist/types.d.cts +17 -0
  132. package/dist/types.d.ts +17 -0
  133. package/dist/types.js +1 -0
  134. package/dist/types.js.map +1 -0
  135. package/dist/utils.cjs +273 -0
  136. package/dist/utils.cjs.map +1 -0
  137. package/dist/utils.d.cts +8 -0
  138. package/dist/utils.d.ts +8 -0
  139. package/dist/utils.js +245 -0
  140. package/dist/utils.js.map +1 -0
  141. package/package.json +132 -1
  142. package/dist/cache.service-_SuJIcNA.d.cts +0 -20
  143. package/dist/cache.service-_SuJIcNA.d.ts +0 -20
  144. package/dist/fastify-augmentation-CQPBNS5a.d.cts +0 -105
  145. 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"]}
@@ -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 };
@@ -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"]}