@temboplus/frontend-core 0.2.5 → 0.2.7

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 (86) hide show
  1. package/README.md +63 -14
  2. package/esm/src/data/countries.d.ts +12 -2
  3. package/esm/src/data/countries.js +496 -248
  4. package/esm/src/models/amount/amount.d.ts.map +1 -1
  5. package/esm/src/models/amount/amount.js +1 -1
  6. package/esm/src/models/bank/bank.d.ts +127 -0
  7. package/esm/src/models/bank/bank.d.ts.map +1 -1
  8. package/esm/src/models/bank/bank.js +264 -7
  9. package/esm/src/models/bank/index.d.ts +0 -1
  10. package/esm/src/models/bank/index.d.ts.map +1 -1
  11. package/esm/src/models/bank/index.js +0 -1
  12. package/esm/src/models/country/country.d.ts +162 -24
  13. package/esm/src/models/country/country.d.ts.map +1 -1
  14. package/esm/src/models/country/country.js +442 -42
  15. package/esm/src/models/country/index.d.ts +1 -1
  16. package/esm/src/models/country/index.d.ts.map +1 -1
  17. package/esm/src/models/country/index.js +1 -1
  18. package/esm/src/models/country/types.d.ts +53 -0
  19. package/esm/src/models/country/types.d.ts.map +1 -0
  20. package/esm/src/models/country/types.js +43 -0
  21. package/esm/src/models/currency/currency.d.ts +127 -4
  22. package/esm/src/models/currency/currency.d.ts.map +1 -1
  23. package/esm/src/models/currency/currency.js +229 -11
  24. package/esm/src/models/currency/index.d.ts +1 -1
  25. package/esm/src/models/currency/index.d.ts.map +1 -1
  26. package/esm/src/models/currency/index.js +1 -1
  27. package/esm/src/models/currency/types.d.ts +20 -0
  28. package/esm/src/models/currency/types.d.ts.map +1 -0
  29. package/esm/src/models/currency/types.js +13 -0
  30. package/esm/src/models/phone_number/global/phone_number.d.ts +3 -2
  31. package/esm/src/models/phone_number/global/phone_number.d.ts.map +1 -1
  32. package/esm/src/models/phone_number/global/service.d.ts +27 -20
  33. package/esm/src/models/phone_number/global/service.d.ts.map +1 -1
  34. package/esm/src/models/phone_number/global/service.js +61 -40
  35. package/package.json +1 -1
  36. package/script/src/data/countries.d.ts +12 -2
  37. package/script/src/data/countries.js +496 -248
  38. package/script/src/models/amount/amount.d.ts.map +1 -1
  39. package/script/src/models/amount/amount.js +4 -4
  40. package/script/src/models/bank/bank.d.ts +127 -0
  41. package/script/src/models/bank/bank.d.ts.map +1 -1
  42. package/script/src/models/bank/bank.js +273 -12
  43. package/script/src/models/bank/index.d.ts +0 -1
  44. package/script/src/models/bank/index.d.ts.map +1 -1
  45. package/script/src/models/bank/index.js +0 -1
  46. package/script/src/models/country/country.d.ts +162 -24
  47. package/script/src/models/country/country.d.ts.map +1 -1
  48. package/script/src/models/country/country.js +453 -49
  49. package/script/src/models/country/index.d.ts +1 -1
  50. package/script/src/models/country/index.d.ts.map +1 -1
  51. package/script/src/models/country/index.js +1 -1
  52. package/script/src/models/country/types.d.ts +53 -0
  53. package/script/src/models/country/types.d.ts.map +1 -0
  54. package/script/src/models/country/types.js +46 -0
  55. package/script/src/models/currency/currency.d.ts +127 -4
  56. package/script/src/models/currency/currency.d.ts.map +1 -1
  57. package/script/src/models/currency/currency.js +237 -15
  58. package/script/src/models/currency/index.d.ts +1 -1
  59. package/script/src/models/currency/index.d.ts.map +1 -1
  60. package/script/src/models/currency/index.js +1 -1
  61. package/script/src/models/currency/types.d.ts +20 -0
  62. package/script/src/models/currency/types.d.ts.map +1 -0
  63. package/script/src/models/currency/types.js +14 -0
  64. package/script/src/models/phone_number/global/phone_number.d.ts +3 -2
  65. package/script/src/models/phone_number/global/phone_number.d.ts.map +1 -1
  66. package/script/src/models/phone_number/global/service.d.ts +27 -20
  67. package/script/src/models/phone_number/global/service.d.ts.map +1 -1
  68. package/script/src/models/phone_number/global/service.js +61 -40
  69. package/esm/src/models/bank/service.d.ts +0 -106
  70. package/esm/src/models/bank/service.d.ts.map +0 -1
  71. package/esm/src/models/bank/service.js +0 -240
  72. package/esm/src/models/country/service.d.ts +0 -111
  73. package/esm/src/models/country/service.d.ts.map +0 -1
  74. package/esm/src/models/country/service.js +0 -366
  75. package/esm/src/models/currency/service.d.ts +0 -96
  76. package/esm/src/models/currency/service.d.ts.map +0 -1
  77. package/esm/src/models/currency/service.js +0 -194
  78. package/script/src/models/bank/service.d.ts +0 -106
  79. package/script/src/models/bank/service.d.ts.map +0 -1
  80. package/script/src/models/bank/service.js +0 -247
  81. package/script/src/models/country/service.d.ts +0 -111
  82. package/script/src/models/country/service.d.ts.map +0 -1
  83. package/script/src/models/country/service.js +0 -373
  84. package/script/src/models/currency/service.d.ts +0 -96
  85. package/script/src/models/currency/service.d.ts.map +0 -1
  86. package/script/src/models/currency/service.js +0 -201
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/models/country/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,G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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @fileoverview Type definitions for ISO country codes
3
+ *
4
+ * These types provide type-safe representations of standard ISO codes:
5
+ * - CountryCode: ISO 3166-1 alpha-2 country codes
6
+ * - CountryCodeISO3: ISO 3166-1 alpha-3 country codes (three letters)
7
+ *
8
+ * Benefits:
9
+ * - Type-safety at compile time
10
+ * - Zero runtime overhead (compile away to strings)
11
+ * - Autocompletion in modern IDEs
12
+ * - Protection against typos and invalid values
13
+ */
14
+ /**
15
+ * Maps ISO-2 country codes to ISO-3 country codes
16
+ */
17
+ export const ISO2_TO_ISO3_MAP = {
18
+ "AF": "AFG", "AX": "ALA", "AL": "ALB", "DZ": "DZA", "AS": "ASM", "AD": "AND", "AO": "AGO", "AI": "AIA", "AQ": "ATA", "AG": "ATG",
19
+ "AR": "ARG", "AM": "ARM", "AW": "ABW", "AU": "AUS", "AT": "AUT", "AZ": "AZE", "BS": "BHS", "BH": "BHR", "BD": "BGD", "BB": "BRB",
20
+ "BY": "BLR", "BE": "BEL", "BZ": "BLZ", "BJ": "BEN", "BM": "BMU", "BT": "BTN", "BO": "BOL", "BA": "BIH", "BW": "BWA", "BV": "BVT",
21
+ "BR": "BRA", "IO": "IOT", "VG": "VGB", "BN": "BRN", "BG": "BGR", "BF": "BFA", "BI": "BDI", "CV": "CPV", "KH": "KHM", "CM": "CMR",
22
+ "CA": "CAN", "KY": "CYM", "CF": "CAF", "TD": "TCD", "CL": "CHL", "CN": "CHN", "CX": "CXR", "CC": "CCK", "CO": "COL", "KM": "COM",
23
+ "CG": "COG", "CK": "COK", "CR": "CRI", "CI": "CIV", "HR": "HRV", "CU": "CUB", "CY": "CYP", "CZ": "CZE", "CD": "COD", "DK": "DNK",
24
+ "DJ": "DJI", "DM": "DMA", "DO": "DOM", "EC": "ECU", "EG": "EGY", "SV": "SLV", "GQ": "GNQ", "ER": "ERI", "EE": "EST", "SZ": "SWZ",
25
+ "ET": "ETH", "FK": "FLK", "FO": "FRO", "FJ": "FJI", "FI": "FIN", "FR": "FRA", "GF": "GUF", "PF": "PYF", "TF": "ATF", "GA": "GAB",
26
+ "GM": "GMB", "GE": "GEO", "DE": "DEU", "GH": "GHA", "GI": "GIB", "GR": "GRC", "GL": "GRL", "GD": "GRD", "GP": "GLP", "GU": "GUM",
27
+ "GT": "GTM", "GG": "GGY", "GN": "GIN", "GW": "GNB", "GY": "GUY", "HT": "HTI", "HM": "HMD", "VA": "VAT", "HN": "HND", "HK": "HKG",
28
+ "HU": "HUN", "IS": "ISL", "IN": "IND", "ID": "IDN", "IR": "IRN", "IQ": "IRQ", "IE": "IRL", "IM": "IMN", "IL": "ISR", "IT": "ITA",
29
+ "JM": "JAM", "JP": "JPN", "JE": "JEY", "JO": "JOR", "KZ": "KAZ", "KE": "KEN", "KI": "KIR", "KW": "KWT", "KG": "KGZ", "LA": "LAO",
30
+ "LV": "LVA", "LB": "LBN", "LS": "LSO", "LR": "LBR", "LY": "LBY", "LI": "LIE", "LT": "LTU", "LU": "LUX", "MO": "MAC", "MG": "MDG",
31
+ "MW": "MWI", "MY": "MYS", "MV": "MDV", "ML": "MLI", "MT": "MLT", "MH": "MHL", "MQ": "MTQ", "MR": "MRT", "MU": "MUS", "YT": "MYT",
32
+ "MX": "MEX", "FM": "FSM", "MD": "MDA", "MC": "MCO", "MN": "MNG", "ME": "MNE", "MS": "MSR", "MA": "MAR", "MZ": "MOZ", "MM": "MMR",
33
+ "NA": "NAM", "NR": "NRU", "NP": "NPL", "NL": "NLD", "NC": "NCL", "NZ": "NZL", "NI": "NIC", "NE": "NER", "NG": "NGA", "NU": "NIU",
34
+ "NF": "NFK", "KP": "PRK", "MK": "MKD", "MP": "MNP", "NO": "NOR", "OM": "OMN", "PK": "PAK", "PW": "PLW", "PS": "PSE", "PA": "PAN",
35
+ "PG": "PNG", "PY": "PRY", "PE": "PER", "PH": "PHL", "PN": "PCN", "PL": "POL", "PT": "PRT", "PR": "PRI", "QA": "QAT", "RE": "REU",
36
+ "RO": "ROU", "RU": "RUS", "RW": "RWA", "SH": "SHN", "KN": "KNA", "LC": "LCA", "PM": "SPM", "VC": "VCT", "WS": "WSM", "SM": "SMR",
37
+ "ST": "STP", "SA": "SAU", "SN": "SEN", "RS": "SRB", "SC": "SYC", "SL": "SLE", "SG": "SGP", "SK": "SVK", "SI": "SVN", "SB": "SLB",
38
+ "SO": "SOM", "ZA": "ZAF", "GS": "SGS", "KR": "KOR", "SS": "SSD", "ES": "ESP", "LK": "LKA", "SD": "SDN", "SR": "SUR", "SJ": "SJM",
39
+ "SE": "SWE", "CH": "CHE", "SY": "SYR", "TW": "TWN", "TJ": "TJK", "TZ": "TZA", "TH": "THA", "TL": "TLS", "TG": "TGO", "TK": "TKL",
40
+ "TO": "TON", "TT": "TTO", "TN": "TUN", "TR": "TUR", "TM": "TKM", "TC": "TCA", "TV": "TUV", "VI": "VIR", "UG": "UGA", "UA": "UKR",
41
+ "AE": "ARE", "GB": "GBR", "US": "USA", "UM": "UMI", "UY": "URY", "UZ": "UZB", "VU": "VUT", "VE": "VEN", "VN": "VNM", "WF": "WLF",
42
+ "EH": "ESH", "YE": "YEM", "ZM": "ZMB", "ZW": "ZWE"
43
+ };
@@ -1,3 +1,32 @@
1
+ /**
2
+ * @fileoverview This file contains both the Currency class and CurrencyService class.
3
+ *
4
+ * ARCHITECTURE NOTE: Currency and CurrencyService Classes
5
+ * ======================================================
6
+ *
7
+ * These two classes have been intentionally placed in the same file to resolve
8
+ * a circular dependency issue. The original implementation had these in separate files:
9
+ *
10
+ * - Currency class: Defines currency properties and static accessors
11
+ * - CurrencyService class: Loads currency data and provides instance methods
12
+ *
13
+ * The circular dependency occurred because:
14
+ * 1. Currency needed CurrencyService to initialize its static properties
15
+ * 2. CurrencyService needed Currency to create Currency instances
16
+ *
17
+ * Previous attempts to solve this used setTimeout(0) to defer static initialization,
18
+ * but this created race conditions where static properties weren't immediately available
19
+ * after import (Currency.AFN would be undefined on first access).
20
+ *
21
+ * By combining both classes in a single file:
22
+ * - We ensure proper initialization order
23
+ * - All static properties are immediately available after import
24
+ * - The public API remains unchanged
25
+ *
26
+ * This approach follows the principle that closely related classes with circular
27
+ * dependencies are best managed in a unified module.
28
+ */
29
+ import type { CurrencyCode } from "./types.js";
1
30
  /**
2
31
  * Represents a currency with essential details.
3
32
  * @class Currency
@@ -298,10 +327,10 @@ export declare class Currency {
298
327
  toString(): string;
299
328
  /**
300
329
  * Retrieves a currency by its ISO code.
301
- * @param {string} code The ISO code of the currency.
330
+ * @param {CurrencyCode} code The ISO code of the currency.
302
331
  * @returns {Currency | undefined} The currency corresponding to the ISO code or `undefined` if not found.
303
332
  */
304
- static fromCode(code: string): Currency | undefined;
333
+ static fromCode(code: CurrencyCode): Currency | undefined;
305
334
  /**
306
335
  * Retrieves a currency by its name.
307
336
  * @param {string} currencyName The name of the currency.
@@ -318,7 +347,7 @@ export declare class Currency {
318
347
  * @param code The currency code to validate
319
348
  * @returns True if the currency code is valid
320
349
  */
321
- static isValidCode(code?: string | null): boolean;
350
+ static isValidCode(code?: CurrencyCode | null): boolean;
322
351
  /**
323
352
  * Validates if a given currency name is valid
324
353
  * @param currencyName The currency name to validate
@@ -330,7 +359,7 @@ export declare class Currency {
330
359
  * @param input The currency name or ISO code
331
360
  * @returns A Currency instance if valid input, undefined otherwise
332
361
  */
333
- static from(input: string): Currency | undefined;
362
+ static from(input: string | CurrencyCode): Currency | undefined;
334
363
  /**
335
364
  * Checks if an unknown value is a Currency instance
336
365
  * @param obj The value to validate
@@ -338,4 +367,98 @@ export declare class Currency {
338
367
  */
339
368
  static is(obj: unknown): obj is Currency;
340
369
  }
370
+ /**
371
+ * Service for managing currency data.
372
+ * @class CurrencyService
373
+ */
374
+ export declare class CurrencyService {
375
+ private static instance;
376
+ private currencyList;
377
+ private currencyRecord;
378
+ private nameRecord;
379
+ private staticReferences;
380
+ private constructor();
381
+ /**
382
+ * Gets the singleton instance of CurrencyService.
383
+ * Creates the instance if it doesn't exist.
384
+ * @static
385
+ * @returns {CurrencyService} The singleton instance
386
+ */
387
+ static getInstance(): CurrencyService;
388
+ /**
389
+ * Initializes the service with currency data.
390
+ * Should be called once when your application starts.
391
+ */
392
+ private initialize;
393
+ /**
394
+ * Gets all currencies.
395
+ * @returns {Currency[]} Array of all currencies
396
+ */
397
+ getAll(): Currency[];
398
+ /**
399
+ * Gets all currencies as a record.
400
+ * @returns {Record<string, Currency>} Record of currency codes and currency objects
401
+ */
402
+ getAllAsRecord(): Record<string, Currency>;
403
+ /**
404
+ * Gets static currency references to be used by the Currency class.
405
+ * @returns {Map<string, Currency>} Map of static references
406
+ */
407
+ getStaticReferences(): Map<string, Currency>;
408
+ /**
409
+ * Retrieves a currency by its ISO code.
410
+ * @param {string} code The ISO code of the currency.
411
+ * @returns {Currency | undefined} The currency corresponding to the ISO code or `undefined` if not found.
412
+ */
413
+ fromCode(code: string): Currency | undefined;
414
+ /**
415
+ * Retrieves a currency by its name.
416
+ * @param {string} currencyName The name of the currency.
417
+ * @returns {Currency | undefined} The currency corresponding to the name or `undefined` if not found.
418
+ */
419
+ fromName(currencyName: string): Currency | undefined;
420
+ /**
421
+ * Validates if a given ISO currency code is valid
422
+ *
423
+ * @param {string | null | undefined} code - The currency code to validate.
424
+ * Should be a three-letter ISO currency code (e.g., 'USD', 'EUR').
425
+ *
426
+ * @returns {boolean} Returns true if:
427
+ * - The currency code is not null/undefined
428
+ * - The currency code successfully resolves to a valid Currency instance
429
+ * Returns false otherwise.
430
+ */
431
+ isValidCode(code?: string | null): boolean;
432
+ /**
433
+ * Validates if a given currency name is valid
434
+ *
435
+ * @param {string | null | undefined} currencyName - The currency name to validate.
436
+ *
437
+ * @returns {boolean} Returns true if:
438
+ * - The currency name is not null/undefined
439
+ * - The currency name successfully resolves to a valid Currency instance
440
+ * Returns false otherwise.
441
+ */
442
+ isValidName(currencyName?: string | null): boolean;
443
+ /**
444
+ * Gets a regex-ready pattern matching all currency symbols
445
+ * Pattern is memoized for performance
446
+ * @returns {string} Pipe-separated pattern of escaped currency symbols
447
+ *
448
+ * @example
449
+ * const pattern = currencyService.getCurrencySymbolPattern();
450
+ * // Returns something like: "\$|€|\£|¥"
451
+ */
452
+ getCurrencySymbolPattern(): string;
453
+ /**
454
+ * Escapes special characters in a string for use in regular expressions
455
+ * @private
456
+ * @param {string} string - The string to escape
457
+ * @returns {string} The escaped string
458
+ *
459
+ * @example
460
+ * private escapeRegExp("$") // Returns "\$"
461
+ */
462
+ private escapeRegExp;
463
+ }
341
464
  //# sourceMappingURL=currency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/currency.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,QAAQ;IA2PjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IA/P9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAG9B,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IACpC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IACrC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC;IACjD,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IAChD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IAC9C,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC;IACnD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC;IACxC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,EAAE,QAAQ,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC/B,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IACpC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC5C,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;IAE1C;;;;;;;;;OASG;gBAEgB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM;IAGtC;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAInD;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI3D;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE;IAI3B;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAMjD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAMzD;;;;OAIG;WACW,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAevD;;;;OAIG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ;CAmBhD"}
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../../../src/src/models/currency/currency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;GAGG;AACH,qBAAa,QAAQ;IA2PjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IA/P9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IAC9B,MA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"}
@@ -1,4 +1,32 @@
1
- import { CurrencyService } from "./service.js";
1
+ /**
2
+ * @fileoverview This file contains both the Currency class and CurrencyService class.
3
+ *
4
+ * ARCHITECTURE NOTE: Currency and CurrencyService Classes
5
+ * ======================================================
6
+ *
7
+ * These two classes have been intentionally placed in the same file to resolve
8
+ * a circular dependency issue. The original implementation had these in separate files:
9
+ *
10
+ * - Currency class: Defines currency properties and static accessors
11
+ * - CurrencyService class: Loads currency data and provides instance methods
12
+ *
13
+ * The circular dependency occurred because:
14
+ * 1. Currency needed CurrencyService to initialize its static properties
15
+ * 2. CurrencyService needed Currency to create Currency instances
16
+ *
17
+ * Previous attempts to solve this used setTimeout(0) to defer static initialization,
18
+ * but this created race conditions where static properties weren't immediately available
19
+ * after import (Currency.AFN would be undefined on first access).
20
+ *
21
+ * By combining both classes in a single file:
22
+ * - We ensure proper initialization order
23
+ * - All static properties are immediately available after import
24
+ * - The public API remains unchanged
25
+ *
26
+ * This approach follows the principle that closely related classes with circular
27
+ * dependencies are best managed in a unified module.
28
+ */
29
+ import file from "../../data/currencies.js";
2
30
  /**
3
31
  * Represents a currency with essential details.
4
32
  * @class Currency
@@ -116,7 +144,7 @@ export class Currency {
116
144
  }
117
145
  /**
118
146
  * Retrieves a currency by its ISO code.
119
- * @param {string} code The ISO code of the currency.
147
+ * @param {CurrencyCode} code The ISO code of the currency.
120
148
  * @returns {Currency | undefined} The currency corresponding to the ISO code or `undefined` if not found.
121
149
  */
122
150
  static fromCode(code) {
@@ -170,6 +198,7 @@ export class Currency {
170
198
  const text = input.trim();
171
199
  if (text.length === 0)
172
200
  return undefined;
201
+ // deno-lint-ignore no-explicit-any
173
202
  const currency1 = Currency.fromCode(text);
174
203
  if (currency1)
175
204
  return currency1;
@@ -207,19 +236,208 @@ export class Currency {
207
236
  return Boolean(currencyFromCode);
208
237
  }
209
238
  }
239
+ /**
240
+ * Service for managing currency data.
241
+ * @class CurrencyService
242
+ */
243
+ export class CurrencyService {
244
+ constructor() {
245
+ Object.defineProperty(this, "currencyList", {
246
+ enumerable: true,
247
+ configurable: true,
248
+ writable: true,
249
+ value: []
250
+ });
251
+ Object.defineProperty(this, "currencyRecord", {
252
+ enumerable: true,
253
+ configurable: true,
254
+ writable: true,
255
+ value: {}
256
+ });
257
+ Object.defineProperty(this, "nameRecord", {
258
+ enumerable: true,
259
+ configurable: true,
260
+ writable: true,
261
+ value: {}
262
+ });
263
+ // Static references for direct access through Currency class
264
+ Object.defineProperty(this, "staticReferences", {
265
+ enumerable: true,
266
+ configurable: true,
267
+ writable: true,
268
+ value: new Map()
269
+ });
270
+ }
271
+ /**
272
+ * Gets the singleton instance of CurrencyService.
273
+ * Creates the instance if it doesn't exist.
274
+ * @static
275
+ * @returns {CurrencyService} The singleton instance
276
+ */
277
+ static getInstance() {
278
+ if (!CurrencyService.instance) {
279
+ CurrencyService.instance = new CurrencyService();
280
+ CurrencyService.instance.initialize();
281
+ }
282
+ return CurrencyService.instance;
283
+ }
284
+ /**
285
+ * Initializes the service with currency data.
286
+ * Should be called once when your application starts.
287
+ */
288
+ initialize() {
289
+ try {
290
+ const data = JSON.parse(JSON.stringify(file));
291
+ const currencies = Object.values(data).map((c) => new Currency(c.symbol, c.name, c.symbol_native, c.decimal_digits, c.rounding, c.code, c.name_plural));
292
+ const codeRecord = {};
293
+ const nameRecord = {};
294
+ currencies.forEach((currency) => {
295
+ // Populate code record
296
+ codeRecord[currency.code] = currency;
297
+ // Add to record by name
298
+ nameRecord[currency.name.toUpperCase()] = currency;
299
+ const upperCode = currency.code.toUpperCase();
300
+ // Add to static references for uppercase code
301
+ this.staticReferences.set(upperCode, currency);
302
+ // Add formatted full name static reference based on name property
303
+ // Transform from "US Dollar" to "US_DOLLAR"
304
+ const nameKey = currency.name
305
+ .toUpperCase()
306
+ .replace(/\s+/g, "_")
307
+ .replace(/[-(),.']/g, "")
308
+ .replace(/&/g, "AND");
309
+ this.staticReferences.set(nameKey, currency);
310
+ });
311
+ this.currencyRecord = codeRecord;
312
+ this.nameRecord = nameRecord;
313
+ this.currencyList = currencies;
314
+ }
315
+ catch (error) {
316
+ console.error("Failed to initialize CurrencyService:", error);
317
+ }
318
+ }
319
+ /**
320
+ * Gets all currencies.
321
+ * @returns {Currency[]} Array of all currencies
322
+ */
323
+ getAll() {
324
+ return this.currencyList;
325
+ }
326
+ /**
327
+ * Gets all currencies as a record.
328
+ * @returns {Record<string, Currency>} Record of currency codes and currency objects
329
+ */
330
+ getAllAsRecord() {
331
+ return this.currencyRecord;
332
+ }
333
+ /**
334
+ * Gets static currency references to be used by the Currency class.
335
+ * @returns {Map<string, Currency>} Map of static references
336
+ */
337
+ getStaticReferences() {
338
+ return this.staticReferences;
339
+ }
340
+ /**
341
+ * Retrieves a currency by its ISO code.
342
+ * @param {string} code The ISO code of the currency.
343
+ * @returns {Currency | undefined} The currency corresponding to the ISO code or `undefined` if not found.
344
+ */
345
+ fromCode(code) {
346
+ return this.currencyRecord[code.trim().toUpperCase()];
347
+ }
348
+ /**
349
+ * Retrieves a currency by its name.
350
+ * @param {string} currencyName The name of the currency.
351
+ * @returns {Currency | undefined} The currency corresponding to the name or `undefined` if not found.
352
+ */
353
+ fromName(currencyName) {
354
+ const input = currencyName.trim().toUpperCase();
355
+ // First try direct lookup in name record
356
+ const directMatch = this.nameRecord[input];
357
+ if (directMatch)
358
+ return directMatch;
359
+ // If not found, try more lenient matching
360
+ for (const [name, currObj] of Object.entries(this.nameRecord)) {
361
+ if (name.toUpperCase() === input) {
362
+ return currObj;
363
+ }
364
+ }
365
+ // Finally, try case-insensitive exact match
366
+ return this.currencyList.find((currency) => currency.name.toUpperCase() === input);
367
+ }
368
+ /**
369
+ * Validates if a given ISO currency code is valid
370
+ *
371
+ * @param {string | null | undefined} code - The currency code to validate.
372
+ * Should be a three-letter ISO currency code (e.g., 'USD', 'EUR').
373
+ *
374
+ * @returns {boolean} Returns true if:
375
+ * - The currency code is not null/undefined
376
+ * - The currency code successfully resolves to a valid Currency instance
377
+ * Returns false otherwise.
378
+ */
379
+ isValidCode(code) {
380
+ if (!code)
381
+ return false;
382
+ const currency = this.fromCode(code);
383
+ return !!currency;
384
+ }
385
+ /**
386
+ * Validates if a given currency name is valid
387
+ *
388
+ * @param {string | null | undefined} currencyName - The currency name to validate.
389
+ *
390
+ * @returns {boolean} Returns true if:
391
+ * - The currency name is not null/undefined
392
+ * - The currency name successfully resolves to a valid Currency instance
393
+ * Returns false otherwise.
394
+ */
395
+ isValidName(currencyName) {
396
+ if (!currencyName)
397
+ return false;
398
+ const currency = this.fromName(currencyName);
399
+ return !!currency;
400
+ }
401
+ /**
402
+ * Gets a regex-ready pattern matching all currency symbols
403
+ * Pattern is memoized for performance
404
+ * @returns {string} Pipe-separated pattern of escaped currency symbols
405
+ *
406
+ * @example
407
+ * const pattern = currencyService.getCurrencySymbolPattern();
408
+ * // Returns something like: "\$|€|\£|¥"
409
+ */
410
+ getCurrencySymbolPattern() {
411
+ const symbols = new Set();
412
+ Object.values(this.currencyList).forEach((currency) => {
413
+ symbols.add(this.escapeRegExp(currency.symbol));
414
+ symbols.add(this.escapeRegExp(currency.symbolNative));
415
+ });
416
+ return Array.from(symbols).join("|");
417
+ }
418
+ /**
419
+ * Escapes special characters in a string for use in regular expressions
420
+ * @private
421
+ * @param {string} string - The string to escape
422
+ * @returns {string} The escaped string
423
+ *
424
+ * @example
425
+ * private escapeRegExp("$") // Returns "\$"
426
+ */
427
+ escapeRegExp(string) {
428
+ return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
429
+ }
430
+ }
210
431
  // Initialize static properties by applying the references from CurrencyService.
211
- // zero-timeout to defer the initialization until after both modules have been fully loaded.
212
- // The setTimeout pushes the initialization code to the end of the JavaScript event loop,
213
- // which happens after all modules are loaded.
214
- setTimeout(() => {
432
+ (function setupStaticReferences() {
215
433
  try {
216
- const staticRefs = CurrencyService.getInstance().getStaticReferences();
217
- staticRefs.forEach((currency, key) => {
434
+ const refs = CurrencyService.getInstance().getStaticReferences();
435
+ refs.forEach((country, key) => {
218
436
  // deno-lint-ignore no-explicit-any
219
- Currency[key] = currency;
437
+ Currency[key] = country;
220
438
  });
221
439
  }
222
440
  catch (error) {
223
- console.error("Failed to initialize Currency static properties:", error);
441
+ console.log("Failed to set up static references: ", error);
224
442
  }
225
- }, 0);
443
+ })();
@@ -1,3 +1,3 @@
1
1
  export * from "./currency.js";
2
- export * from "./service.js";
2
+ export * from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -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,cAAc,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"}
@@ -1,2 +1,2 @@
1
1
  export * from "./currency.js";
2
- export * from "./service.js";
2
+ export * from "./types.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview Type definitions for ISO currency codes
3
+ *
4
+ * These types provide type-safe representations of standard ISO codes:
5
+ * - CurrencyCode: ISO 4217 currency codes
6
+ *
7
+ * Benefits:
8
+ * - Type-safety at compile time
9
+ * - Zero runtime overhead (compile away to strings)
10
+ * - Autocompletion in modern IDEs
11
+ * - Protection against typos and invalid values
12
+ */
13
+ /**
14
+ * ISO 4217 currency codes
15
+ *
16
+ * These three-letter codes represent currencies based on the ISO 4217 standard.
17
+ * Example: "USD" for US Dollar, "EUR" for Euro, "JPY" for Japanese Yen
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" | "EEK" | "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" | "LTL" | "LVL" | "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" | "SYP" | "THB" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "UYU" | "UZS" | "VEF" | "VND" | "XAF" | "XOF" | "YER" | "ZAR" | "ZMK" | "ZWL";
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview Type definitions for ISO currency codes
3
+ *
4
+ * These types provide type-safe representations of standard ISO codes:
5
+ * - CurrencyCode: ISO 4217 currency codes
6
+ *
7
+ * Benefits:
8
+ * - Type-safety at compile time
9
+ * - Zero runtime overhead (compile away to strings)
10
+ * - Autocompletion in modern IDEs
11
+ * - Protection against typos and invalid values
12
+ */
13
+ export {};
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import { Country } from "../../country/country.js";
18
18
  import { PhoneNumberFormat } from "../format.js";
19
+ import type { CountryCode, ISO2CountryCode } from "../../country/types.js";
19
20
  /**
20
21
  * Options for parsing phone numbers
21
22
  */
@@ -24,7 +25,7 @@ export interface PhoneNumberParseOptions {
24
25
  * Default country to use when a dial code is shared by multiple countries
25
26
  * This can be either a Country object or an ISO country code string
26
27
  */
27
- defaultCountry?: Country | string;
28
+ defaultCountry?: Country | CountryCode;
28
29
  /**
29
30
  * Whether to throw an error when encountering an ambiguous phone number
30
31
  * with a shared dial code
@@ -54,7 +55,7 @@ export declare class PhoneNumber {
54
55
  /**
55
56
  * Gets the country code (ISO) of the phone number
56
57
  */
57
- get countryCode(): string;
58
+ get countryCode(): ISO2CountryCode;
58
59
  /**
59
60
  * Gets the dial code (numeric) of the phone number
60
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"phone_number.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/phone_number/global/phone_number.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAElC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAU;IAC1B,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAAS;IAE/B;;;;;;OAMG;IACH,OAAO;IAKP;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAKrB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAoBhD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;;OAKG;IACH,QAAQ,IAAI,OAAO;IAuCnB;;;;;;;;;OASG;WACW,IAAI,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,uBAAuB,GAChC,WAAW,GAAG,SAAS;IAsG1B;;;;;;;;;;;;;OAaG;WACW,eAAe,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,WAAW,GAAG,SAAS;IA0D1B;;;;;;OAMG;WACW,YAAY,CACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO;IAsBV;;;;;;OAMG;WACW,uBAAuB,CACnC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,GACvB,OAAO;IAaV;;;;;OAKG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW;IA2BlD;;;;;;;;;OASG;WACW,UAAU,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,GAAG,SAAS;CAwDvB"}
1
+ {"version":3,"file":"phone_number.d.ts","sourceRoot":"","sources":["../../../../../src/src/models/phone_number/global/phone_number.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAEvC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,oCAAoC;IACpC,OAAO,CAAC,QAAQ,CAAU;IAC1B,gEAAgE;IAChE,OAAO,CAAC,cAAc,CAAS;IAE/B;;;;;;OAMG;IACH,OAAO;IAKP;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,eAAe,CAEjC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAKrB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAoBhD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;;OAKG;IACH,QAAQ,IAAI,OAAO;IAuCnB;;;;;;;;;OASG;WACW,IAAI,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,uBAAuB,GAChC,WAAW,GAAG,SAAS;IAsG1B;;;;;;;;;;;;;OAaG;WACW,eAAe,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,WAAW,GAAG,SAAS;IA0D1B;;;;;;OAMG;WACW,YAAY,CACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO;IAsBV;;;;;;OAMG;WACW,uBAAuB,CACnC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,GACvB,OAAO;IAaV;;;;;OAKG;WACW,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW;IA2BlD;;;;;;;;;OASG;WACW,UAAU,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,GAAG,SAAS;CAwDvB"}