@temboplus/frontend-core 0.2.7 → 0.2.8
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/esm/src/data/currencies.d.ts +86 -86
- package/esm/src/data/currencies.js +47 -47
- package/esm/src/models/bank/index.d.ts +2 -0
- package/esm/src/models/bank/index.d.ts.map +1 -1
- package/esm/src/models/bank/index.js +2 -0
- package/esm/src/models/bank/types.d.ts +7 -0
- package/esm/src/models/bank/types.d.ts.map +1 -0
- package/esm/src/models/bank/types.js +45 -0
- package/esm/src/models/bank/utils.d.ts +8 -0
- package/esm/src/models/bank/utils.d.ts.map +1 -0
- package/esm/src/models/bank/utils.js +9 -0
- package/esm/src/models/country/country.js +1 -1
- package/esm/src/models/country/index.d.ts +1 -0
- package/esm/src/models/country/index.d.ts.map +1 -1
- package/esm/src/models/country/index.js +1 -0
- package/esm/src/models/country/types.d.ts +10 -0
- package/esm/src/models/country/types.d.ts.map +1 -1
- package/esm/src/models/country/types.js +62 -0
- package/esm/src/models/country/utils.d.ts +21 -0
- package/esm/src/models/country/utils.d.ts.map +1 -0
- package/esm/src/models/country/utils.js +25 -0
- package/esm/src/models/currency/currency.d.ts +7 -6
- package/esm/src/models/currency/currency.d.ts.map +1 -1
- package/esm/src/models/currency/currency.js +42 -14
- package/esm/src/models/currency/index.d.ts +1 -0
- package/esm/src/models/currency/index.d.ts.map +1 -1
- package/esm/src/models/currency/index.js +1 -0
- package/esm/src/models/currency/types.d.ts +2 -1
- package/esm/src/models/currency/types.d.ts.map +1 -1
- package/esm/src/models/currency/types.js +16 -1
- package/esm/src/models/currency/utils.d.ts +8 -0
- package/esm/src/models/currency/utils.d.ts.map +1 -0
- package/esm/src/models/currency/utils.js +9 -0
- package/package.json +1 -1
- package/script/src/data/currencies.d.ts +86 -86
- package/script/src/data/currencies.js +47 -47
- package/script/src/models/bank/index.d.ts +2 -0
- package/script/src/models/bank/index.d.ts.map +1 -1
- package/script/src/models/bank/index.js +2 -0
- package/script/src/models/bank/types.d.ts +7 -0
- package/script/src/models/bank/types.d.ts.map +1 -0
- package/script/src/models/bank/types.js +48 -0
- package/script/src/models/bank/utils.d.ts +8 -0
- package/script/src/models/bank/utils.d.ts.map +1 -0
- package/script/src/models/bank/utils.js +12 -0
- package/script/src/models/country/country.js +1 -1
- package/script/src/models/country/index.d.ts +1 -0
- package/script/src/models/country/index.d.ts.map +1 -1
- package/script/src/models/country/index.js +1 -0
- package/script/src/models/country/types.d.ts +10 -0
- package/script/src/models/country/types.d.ts.map +1 -1
- package/script/src/models/country/types.js +63 -1
- package/script/src/models/country/utils.d.ts +21 -0
- package/script/src/models/country/utils.d.ts.map +1 -0
- package/script/src/models/country/utils.js +30 -0
- package/script/src/models/currency/currency.d.ts +7 -6
- package/script/src/models/currency/currency.d.ts.map +1 -1
- package/script/src/models/currency/currency.js +42 -14
- package/script/src/models/currency/index.d.ts +1 -0
- package/script/src/models/currency/index.d.ts.map +1 -1
- package/script/src/models/currency/index.js +1 -0
- package/script/src/models/currency/types.d.ts +2 -1
- package/script/src/models/currency/types.d.ts.map +1 -1
- package/script/src/models/currency/types.js +17 -0
- package/script/src/models/currency/utils.d.ts +8 -0
- package/script/src/models/currency/utils.d.ts.map +1 -0
- package/script/src/models/currency/utils.js +12 -0
|
@@ -33,6 +33,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
34
|
exports.CurrencyService = exports.Currency = void 0;
|
|
35
35
|
const currencies_js_1 = __importDefault(require("../../data/currencies.js"));
|
|
36
|
+
const utils_js_1 = require("./utils.js");
|
|
36
37
|
/**
|
|
37
38
|
* Represents a currency with essential details.
|
|
38
39
|
* @class Currency
|
|
@@ -45,7 +46,7 @@ class Currency {
|
|
|
45
46
|
* @param {string} _symbolNative - The native symbol of the currency
|
|
46
47
|
* @param {number} _decimalDigits - Number of decimal places typically used with this currency
|
|
47
48
|
* @param {number} _rounding - Rounding increment used for this currency
|
|
48
|
-
* @param {
|
|
49
|
+
* @param {CurrencyCode} _code - The ISO 4217 currency code
|
|
49
50
|
* @param {string} _namePlural - The plural form of the currency name
|
|
50
51
|
*/
|
|
51
52
|
constructor(_symbol, _name, _symbolNative, _decimalDigits, _rounding, _code, _namePlural) {
|
|
@@ -194,23 +195,41 @@ class Currency {
|
|
|
194
195
|
return !!currency;
|
|
195
196
|
}
|
|
196
197
|
/**
|
|
197
|
-
* Attempts to create a Currency instance from a currency name or ISO code
|
|
198
|
-
*
|
|
199
|
-
* @
|
|
198
|
+
* Attempts to create a Currency instance from a currency name or ISO code string.
|
|
199
|
+
* The `CurrencyCode` type provides type hints for valid ISO codes but resolves to `string`.
|
|
200
|
+
* @param input The currency name or ISO code string.
|
|
201
|
+
* @returns A Currency instance if valid input, undefined otherwise.
|
|
200
202
|
*/
|
|
201
203
|
static from(input) {
|
|
202
|
-
|
|
204
|
+
// Handle null or undefined input explicitly
|
|
205
|
+
if (!input || typeof input === "object") {
|
|
203
206
|
return undefined;
|
|
207
|
+
}
|
|
208
|
+
// Input is guaranteed to be a string here. Trim whitespace.
|
|
204
209
|
const text = input.trim();
|
|
205
|
-
|
|
210
|
+
// Check for empty string after trimming
|
|
211
|
+
if (text.length === 0) {
|
|
206
212
|
return undefined;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return
|
|
213
|
+
}
|
|
214
|
+
// Check if the input string matches a known CurrencyCode
|
|
215
|
+
if ((0, utils_js_1.isCurrencyCode)(text)) {
|
|
216
|
+
// If it's a valid code format, try creating from code.
|
|
217
|
+
// 'text' is now known to be of type CurrencyCode within this block.
|
|
218
|
+
const currency = Currency.fromCode(text);
|
|
219
|
+
// Return if successful. Note: fromCode itself might return undefined
|
|
220
|
+
// even for a valid code if it's e.g., not supported/enabled.
|
|
221
|
+
if (currency) {
|
|
222
|
+
return currency;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// If input wasn't a valid CurrencyCode recognized by the type guard,
|
|
226
|
+
// OR if isCurrencyCode returned true but Currency.fromCode(text) returned undefined,
|
|
227
|
+
// then try interpreting the original input string as a name.
|
|
228
|
+
const currencyFromName = Currency.fromName(text);
|
|
229
|
+
if (currencyFromName) {
|
|
230
|
+
return currencyFromName;
|
|
231
|
+
}
|
|
232
|
+
// If neither code nor name interpretation worked
|
|
214
233
|
return undefined;
|
|
215
234
|
}
|
|
216
235
|
/**
|
|
@@ -295,7 +314,16 @@ class CurrencyService {
|
|
|
295
314
|
initialize() {
|
|
296
315
|
try {
|
|
297
316
|
const data = JSON.parse(JSON.stringify(currencies_js_1.default));
|
|
298
|
-
const currencies = Object.values(data).map((c)
|
|
317
|
+
const currencies = Object.values(data).map(function (c) {
|
|
318
|
+
let code;
|
|
319
|
+
if ((0, utils_js_1.isCurrencyCode)(c.code)) {
|
|
320
|
+
code = c.code;
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
throw new Error(`Unknown currency code: ${c.code}`);
|
|
324
|
+
}
|
|
325
|
+
return new Currency(c.symbol, c.name, c.symbol_native, c.decimal_digits, c.rounding, code, c.name_plural);
|
|
326
|
+
});
|
|
299
327
|
const codeRecord = {};
|
|
300
328
|
const nameRecord = {};
|
|
301
329
|
currencies.forEach((currency) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
|
|
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./currency.js"), exports);
|
|
18
18
|
__exportStar(require("./types.js"), exports);
|
|
19
|
+
__exportStar(require("./utils.js"), exports);
|
|
@@ -16,5 +16,6 @@
|
|
|
16
16
|
* These three-letter codes represent currencies based on the ISO 4217 standard.
|
|
17
17
|
* Example: "USD" for US Dollar, "EUR" for Euro, "JPY" for Japanese Yen
|
|
18
18
|
*/
|
|
19
|
-
export type CurrencyCode = "USD" | "CAD" | "EUR" | "AED" | "AFN" | "ALL" | "AMD" | "ARS" | "AUD" | "AZN" | "BAM" | "BDT" | "BGN" | "BHD" | "BIF" | "BND" | "BOB" | "BRL" | "BWP" | "BYN" | "BZD" | "CDF" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "
|
|
19
|
+
export type CurrencyCode = "USD" | "CAD" | "EUR" | "AED" | "AFN" | "ALL" | "AMD" | "ARS" | "AUD" | "AZN" | "BAM" | "BDT" | "BGN" | "BHD" | "BIF" | "BND" | "BOB" | "BRL" | "BWP" | "BYN" | "BZD" | "CDF" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "GBP" | "GEL" | "GHS" | "GNF" | "GTQ" | "HKD" | "HNL" | "HRK" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KHR" | "KMF" | "KRW" | "KWD" | "KZT" | "LBP" | "LKR" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MOP" | "MUR" | "MXN" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SDG" | "SEK" | "SGD" | "SOS" | "SSP" | "SYP" | "THB" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "UYU" | "UZS" | "VES" | "VND" | "XAF" | "XOF" | "YER" | "ZAR" | "ZMW" | "STN" | "MRU" | "ZWG";
|
|
20
|
+
export declare const ValidCurrencyCodesSet: Set<CurrencyCode>;
|
|
20
21
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrE,KAAK,GAAG,KAAK,CAAC;AAElB,eAAO,MAAM,qBAAqB,mBAehC,CAAC"}
|
|
@@ -12,3 +12,20 @@
|
|
|
12
12
|
* - Protection against typos and invalid values
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ValidCurrencyCodesSet = void 0;
|
|
16
|
+
exports.ValidCurrencyCodesSet = new Set([
|
|
17
|
+
"USD", "CAD", "EUR", "AED", "AFN", "ALL", "AMD", "ARS", "AUD",
|
|
18
|
+
"AZN", "BAM", "BDT", "BGN", "BHD", "BIF", "BND", "BOB", "BRL",
|
|
19
|
+
"BWP", "BYN", "BZD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC",
|
|
20
|
+
"CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB",
|
|
21
|
+
"GBP", "GEL", "GHS", "GNF", "GTQ", "HKD", "HNL", "HRK", "HUF",
|
|
22
|
+
"IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY",
|
|
23
|
+
"KES", "KHR", "KMF", "KRW", "KWD", "KZT", "LBP", "LKR", "LYD",
|
|
24
|
+
"MAD", "MDL", "MGA", "MKD", "MMK", "MOP", "MUR", "MXN", "MYR",
|
|
25
|
+
"MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB",
|
|
26
|
+
"PEN", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB",
|
|
27
|
+
"RWF", "SAR", "SDG", "SEK", "SGD", "SOS", "SSP", "SYP", "THB",
|
|
28
|
+
"TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "UYU",
|
|
29
|
+
"UZS", "VES", "VND", "XAF", "XOF", "YER", "ZAR", "ZMW", "STN",
|
|
30
|
+
"MRU", "ZWG"
|
|
31
|
+
]);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CurrencyCode } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Type guard to check if a string is a valid CurrencyCode.
|
|
4
|
+
* @param code The string to check.
|
|
5
|
+
* @returns True if the string is a member of the CurrencyCode union type, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isCurrencyCode(code: string): code is CurrencyCode;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY,CAEjE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCurrencyCode = isCurrencyCode;
|
|
4
|
+
const index_js_1 = require("./index.js");
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to check if a string is a valid CurrencyCode.
|
|
7
|
+
* @param code The string to check.
|
|
8
|
+
* @returns True if the string is a member of the CurrencyCode union type, false otherwise.
|
|
9
|
+
*/
|
|
10
|
+
function isCurrencyCode(code) {
|
|
11
|
+
return index_js_1.ValidCurrencyCodesSet.has(code);
|
|
12
|
+
}
|