@temboplus/frontend-core 0.2.5 → 0.2.6

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,53 @@
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
+ * ISO 3166-1 alpha-2 country codes
16
+ *
17
+ * These two-letter codes represent countries and territories based on the ISO 3166 standard.
18
+ * Example: "US" for United States, "JP" for Japan, "DE" for Germany
19
+ */
20
+ export type ISO2CountryCode = "AF" | "AX" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BA" | "BW" | "BV" | "BR" | "IO" | "VG" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CG" | "CK" | "CR" | "CI" | "HR" | "CU" | "CY" | "CZ" | "CD" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MK" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "RE" | "RO" | "RU" | "RW" | "SH" | "KN" | "LC" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "VI" | "UG" | "UA" | "AE" | "GB" | "US" | "UM" | "UY" | "UZ" | "VU" | "VE" | "VN" | "WF" | "EH" | "YE" | "ZM" | "ZW";
21
+ /**
22
+ * ISO 3166-1 alpha-3 country codes
23
+ *
24
+ * These three-letter codes represent countries and territories based on the ISO 3166 standard.
25
+ * Example: "USA" for United States, "JPN" for Japan, "DEU" for Germany
26
+ */
27
+ export type ISO3CountryCode = "AFG" | "ALA" | "ALB" | "DZA" | "ASM" | "AND" | "AGO" | "AIA" | "ATA" | "ATG" | "ARG" | "ARM" | "ABW" | "AUS" | "AUT" | "AZE" | "BHS" | "BHR" | "BGD" | "BRB" | "BLR" | "BEL" | "BLZ" | "BEN" | "BMU" | "BTN" | "BOL" | "BIH" | "BWA" | "BVT" | "BRA" | "IOT" | "VGB" | "BRN" | "BGR" | "BFA" | "BDI" | "CPV" | "KHM" | "CMR" | "CAN" | "CYM" | "CAF" | "TCD" | "CHL" | "CHN" | "CXR" | "CCK" | "COL" | "COM" | "COG" | "COK" | "CRI" | "CIV" | "HRV" | "CUB" | "CYP" | "CZE" | "COD" | "DNK" | "DJI" | "DMA" | "DOM" | "ECU" | "EGY" | "SLV" | "GNQ" | "ERI" | "EST" | "SWZ" | "ETH" | "FLK" | "FRO" | "FJI" | "FIN" | "FRA" | "GUF" | "PYF" | "ATF" | "GAB" | "GMB" | "GEO" | "DEU" | "GHA" | "GIB" | "GRC" | "GRL" | "GRD" | "GLP" | "GUM" | "GTM" | "GGY" | "GIN" | "GNB" | "GUY" | "HTI" | "HMD" | "VAT" | "HND" | "HKG" | "HUN" | "ISL" | "IND" | "IDN" | "IRN" | "IRQ" | "IRL" | "IMN" | "ISR" | "ITA" | "JAM" | "JPN" | "JEY" | "JOR" | "KAZ" | "KEN" | "KIR" | "KWT" | "KGZ" | "LAO" | "LVA" | "LBN" | "LSO" | "LBR" | "LBY" | "LIE" | "LTU" | "LUX" | "MAC" | "MDG" | "MWI" | "MYS" | "MDV" | "MLI" | "MLT" | "MHL" | "MTQ" | "MRT" | "MUS" | "MYT" | "MEX" | "FSM" | "MDA" | "MCO" | "MNG" | "MNE" | "MSR" | "MAR" | "MOZ" | "MMR" | "NAM" | "NRU" | "NPL" | "NLD" | "NCL" | "NZL" | "NIC" | "NER" | "NGA" | "NIU" | "NFK" | "PRK" | "MKD" | "MNP" | "NOR" | "OMN" | "PAK" | "PLW" | "PSE" | "PAN" | "PNG" | "PRY" | "PER" | "PHL" | "PCN" | "POL" | "PRT" | "PRI" | "QAT" | "REU" | "ROU" | "RUS" | "RWA" | "SHN" | "KNA" | "LCA" | "SPM" | "VCT" | "WSM" | "SMR" | "STP" | "SAU" | "SEN" | "SRB" | "SYC" | "SLE" | "SGP" | "SVK" | "SVN" | "SLB" | "SOM" | "ZAF" | "SGS" | "KOR" | "SSD" | "ESP" | "LKA" | "SDN" | "SUR" | "SJM" | "SWE" | "CHE" | "SYR" | "TWN" | "TJK" | "TZA" | "THA" | "TLS" | "TGO" | "TKL" | "TON" | "TTO" | "TUN" | "TUR" | "TKM" | "TCA" | "TUV" | "VIR" | "UGA" | "UKR" | "ARE" | "GBR" | "USA" | "UMI" | "URY" | "UZB" | "VUT" | "VEN" | "VNM" | "WLF" | "ESH" | "YEM" | "ZMB" | "ZWE";
28
+ /**
29
+ * Maps ISO-2 country codes to ISO-3 country codes
30
+ */
31
+ export declare const ISO2_TO_ISO3_MAP: Record<ISO2CountryCode, ISO3CountryCode>;
32
+ /**
33
+ * Represents an ISO country code, accepting either ISO 3166-1 alpha-2 (two-letter)
34
+ * or ISO 3166-1 alpha-3 (three-letter) formats.
35
+ *
36
+ * This union type allows functions to accept either format for flexibility,
37
+ * while still maintaining type safety and validation.
38
+ *
39
+ * @example
40
+ * // Valid uses:
41
+ * const usa1: CountryCode = "US"; // ISO2
42
+ * const usa2: CountryCode = "USA"; // ISO3
43
+ * const japan1: CountryCode = "JP"; // ISO2
44
+ * const japan2: CountryCode = "JPN"; // ISO3
45
+ *
46
+ * // Type checking will catch invalid codes:
47
+ * const invalid: CountryCode = "INVALID"; // Error
48
+ *
49
+ * @see ISO2CountryCode - For two-letter country codes only
50
+ * @see ISO3CountryCode - For three-letter country codes only
51
+ */
52
+ export type CountryCode = ISO2CountryCode | ISO3CountryCode;
53
+ //# sourceMappingURL=types.d.ts.map
@@ -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,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GACnE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAC7E,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAElC;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAE,eAAe,CA0BrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,eAAe,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Type definitions for ISO country codes
4
+ *
5
+ * These types provide type-safe representations of standard ISO codes:
6
+ * - CountryCode: ISO 3166-1 alpha-2 country codes
7
+ * - CountryCodeISO3: ISO 3166-1 alpha-3 country codes (three letters)
8
+ *
9
+ * Benefits:
10
+ * - Type-safety at compile time
11
+ * - Zero runtime overhead (compile away to strings)
12
+ * - Autocompletion in modern IDEs
13
+ * - Protection against typos and invalid values
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ISO2_TO_ISO3_MAP = void 0;
17
+ /**
18
+ * Maps ISO-2 country codes to ISO-3 country codes
19
+ */
20
+ exports.ISO2_TO_ISO3_MAP = {
21
+ "AF": "AFG", "AX": "ALA", "AL": "ALB", "DZ": "DZA", "AS": "ASM", "AD": "AND", "AO": "AGO", "AI": "AIA", "AQ": "ATA", "AG": "ATG",
22
+ "AR": "ARG", "AM": "ARM", "AW": "ABW", "AU": "AUS", "AT": "AUT", "AZ": "AZE", "BS": "BHS", "BH": "BHR", "BD": "BGD", "BB": "BRB",
23
+ "BY": "BLR", "BE": "BEL", "BZ": "BLZ", "BJ": "BEN", "BM": "BMU", "BT": "BTN", "BO": "BOL", "BA": "BIH", "BW": "BWA", "BV": "BVT",
24
+ "BR": "BRA", "IO": "IOT", "VG": "VGB", "BN": "BRN", "BG": "BGR", "BF": "BFA", "BI": "BDI", "CV": "CPV", "KH": "KHM", "CM": "CMR",
25
+ "CA": "CAN", "KY": "CYM", "CF": "CAF", "TD": "TCD", "CL": "CHL", "CN": "CHN", "CX": "CXR", "CC": "CCK", "CO": "COL", "KM": "COM",
26
+ "CG": "COG", "CK": "COK", "CR": "CRI", "CI": "CIV", "HR": "HRV", "CU": "CUB", "CY": "CYP", "CZ": "CZE", "CD": "COD", "DK": "DNK",
27
+ "DJ": "DJI", "DM": "DMA", "DO": "DOM", "EC": "ECU", "EG": "EGY", "SV": "SLV", "GQ": "GNQ", "ER": "ERI", "EE": "EST", "SZ": "SWZ",
28
+ "ET": "ETH", "FK": "FLK", "FO": "FRO", "FJ": "FJI", "FI": "FIN", "FR": "FRA", "GF": "GUF", "PF": "PYF", "TF": "ATF", "GA": "GAB",
29
+ "GM": "GMB", "GE": "GEO", "DE": "DEU", "GH": "GHA", "GI": "GIB", "GR": "GRC", "GL": "GRL", "GD": "GRD", "GP": "GLP", "GU": "GUM",
30
+ "GT": "GTM", "GG": "GGY", "GN": "GIN", "GW": "GNB", "GY": "GUY", "HT": "HTI", "HM": "HMD", "VA": "VAT", "HN": "HND", "HK": "HKG",
31
+ "HU": "HUN", "IS": "ISL", "IN": "IND", "ID": "IDN", "IR": "IRN", "IQ": "IRQ", "IE": "IRL", "IM": "IMN", "IL": "ISR", "IT": "ITA",
32
+ "JM": "JAM", "JP": "JPN", "JE": "JEY", "JO": "JOR", "KZ": "KAZ", "KE": "KEN", "KI": "KIR", "KW": "KWT", "KG": "KGZ", "LA": "LAO",
33
+ "LV": "LVA", "LB": "LBN", "LS": "LSO", "LR": "LBR", "LY": "LBY", "LI": "LIE", "LT": "LTU", "LU": "LUX", "MO": "MAC", "MG": "MDG",
34
+ "MW": "MWI", "MY": "MYS", "MV": "MDV", "ML": "MLI", "MT": "MLT", "MH": "MHL", "MQ": "MTQ", "MR": "MRT", "MU": "MUS", "YT": "MYT",
35
+ "MX": "MEX", "FM": "FSM", "MD": "MDA", "MC": "MCO", "MN": "MNG", "ME": "MNE", "MS": "MSR", "MA": "MAR", "MZ": "MOZ", "MM": "MMR",
36
+ "NA": "NAM", "NR": "NRU", "NP": "NPL", "NL": "NLD", "NC": "NCL", "NZ": "NZL", "NI": "NIC", "NE": "NER", "NG": "NGA", "NU": "NIU",
37
+ "NF": "NFK", "KP": "PRK", "MK": "MKD", "MP": "MNP", "NO": "NOR", "OM": "OMN", "PK": "PAK", "PW": "PLW", "PS": "PSE", "PA": "PAN",
38
+ "PG": "PNG", "PY": "PRY", "PE": "PER", "PH": "PHL", "PN": "PCN", "PL": "POL", "PT": "PRT", "PR": "PRI", "QA": "QAT", "RE": "REU",
39
+ "RO": "ROU", "RU": "RUS", "RW": "RWA", "SH": "SHN", "KN": "KNA", "LC": "LCA", "PM": "SPM", "VC": "VCT", "WS": "WSM", "SM": "SMR",
40
+ "ST": "STP", "SA": "SAU", "SN": "SEN", "RS": "SRB", "SC": "SYC", "SL": "SLE", "SG": "SGP", "SK": "SVK", "SI": "SVN", "SB": "SLB",
41
+ "SO": "SOM", "ZA": "ZAF", "GS": "SGS", "KR": "KOR", "SS": "SSD", "ES": "ESP", "LK": "LKA", "SD": "SDN", "SR": "SUR", "SJ": "SJM",
42
+ "SE": "SWE", "CH": "CHE", "SY": "SYR", "TW": "TWN", "TJ": "TJK", "TZ": "TZA", "TH": "THA", "TL": "TLS", "TG": "TGO", "TK": "TKL",
43
+ "TO": "TON", "TT": "TTO", "TN": "TUN", "TR": "TUR", "TM": "TKM", "TC": "TCA", "TV": "TUV", "VI": "VIR", "UG": "UGA", "UA": "UKR",
44
+ "AE": "ARE", "GB": "GBR", "US": "USA", "UM": "UMI", "UY": "URY", "UZ": "UZB", "VU": "VUT", "VE": "VEN", "VN": "VNM", "WF": "WLF",
45
+ "EH": "ESH", "YE": "YEM", "ZM": "ZMB", "ZW": "ZWE"
46
+ };
@@ -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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"}
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,7 +1,38 @@
1
1
  "use strict";
2
+ /**
3
+ * @fileoverview This file contains both the Currency class and CurrencyService class.
4
+ *
5
+ * ARCHITECTURE NOTE: Currency and CurrencyService Classes
6
+ * ======================================================
7
+ *
8
+ * These two classes have been intentionally placed in the same file to resolve
9
+ * a circular dependency issue. The original implementation had these in separate files:
10
+ *
11
+ * - Currency class: Defines currency properties and static accessors
12
+ * - CurrencyService class: Loads currency data and provides instance methods
13
+ *
14
+ * The circular dependency occurred because:
15
+ * 1. Currency needed CurrencyService to initialize its static properties
16
+ * 2. CurrencyService needed Currency to create Currency instances
17
+ *
18
+ * Previous attempts to solve this used setTimeout(0) to defer static initialization,
19
+ * but this created race conditions where static properties weren't immediately available
20
+ * after import (Currency.AFN would be undefined on first access).
21
+ *
22
+ * By combining both classes in a single file:
23
+ * - We ensure proper initialization order
24
+ * - All static properties are immediately available after import
25
+ * - The public API remains unchanged
26
+ *
27
+ * This approach follows the principle that closely related classes with circular
28
+ * dependencies are best managed in a unified module.
29
+ */
30
+ var __importDefault = (this && this.__importDefault) || function (mod) {
31
+ return (mod && mod.__esModule) ? mod : { "default": mod };
32
+ };
2
33
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Currency = void 0;
4
- const service_js_1 = require("./service.js");
34
+ exports.CurrencyService = exports.Currency = void 0;
35
+ const currencies_js_1 = __importDefault(require("../../data/currencies.js"));
5
36
  /**
6
37
  * Represents a currency with essential details.
7
38
  * @class Currency
@@ -119,11 +150,11 @@ class Currency {
119
150
  }
120
151
  /**
121
152
  * Retrieves a currency by its ISO code.
122
- * @param {string} code The ISO code of the currency.
153
+ * @param {CurrencyCode} code The ISO code of the currency.
123
154
  * @returns {Currency | undefined} The currency corresponding to the ISO code or `undefined` if not found.
124
155
  */
125
156
  static fromCode(code) {
126
- return service_js_1.CurrencyService.getInstance().fromCode(code);
157
+ return CurrencyService.getInstance().fromCode(code);
127
158
  }
128
159
  /**
129
160
  * Retrieves a currency by its name.
@@ -131,14 +162,14 @@ class Currency {
131
162
  * @returns {Currency | undefined} The currency corresponding to the name or `undefined` if not found.
132
163
  */
133
164
  static fromName(currencyName) {
134
- return service_js_1.CurrencyService.getInstance().fromName(currencyName);
165
+ return CurrencyService.getInstance().fromName(currencyName);
135
166
  }
136
167
  /**
137
168
  * Returns all available currencies.
138
169
  * @returns {Currency[]} Array of all currencies
139
170
  */
140
171
  static getAll() {
141
- return service_js_1.CurrencyService.getInstance().getAll();
172
+ return CurrencyService.getInstance().getAll();
142
173
  }
143
174
  /**
144
175
  * Validates if a given currency code is valid
@@ -173,6 +204,7 @@ class Currency {
173
204
  const text = input.trim();
174
205
  if (text.length === 0)
175
206
  return undefined;
207
+ // deno-lint-ignore no-explicit-any
176
208
  const currency1 = Currency.fromCode(text);
177
209
  if (currency1)
178
210
  return currency1;
@@ -211,19 +243,209 @@ class Currency {
211
243
  }
212
244
  }
213
245
  exports.Currency = Currency;
246
+ /**
247
+ * Service for managing currency data.
248
+ * @class CurrencyService
249
+ */
250
+ class CurrencyService {
251
+ constructor() {
252
+ Object.defineProperty(this, "currencyList", {
253
+ enumerable: true,
254
+ configurable: true,
255
+ writable: true,
256
+ value: []
257
+ });
258
+ Object.defineProperty(this, "currencyRecord", {
259
+ enumerable: true,
260
+ configurable: true,
261
+ writable: true,
262
+ value: {}
263
+ });
264
+ Object.defineProperty(this, "nameRecord", {
265
+ enumerable: true,
266
+ configurable: true,
267
+ writable: true,
268
+ value: {}
269
+ });
270
+ // Static references for direct access through Currency class
271
+ Object.defineProperty(this, "staticReferences", {
272
+ enumerable: true,
273
+ configurable: true,
274
+ writable: true,
275
+ value: new Map()
276
+ });
277
+ }
278
+ /**
279
+ * Gets the singleton instance of CurrencyService.
280
+ * Creates the instance if it doesn't exist.
281
+ * @static
282
+ * @returns {CurrencyService} The singleton instance
283
+ */
284
+ static getInstance() {
285
+ if (!CurrencyService.instance) {
286
+ CurrencyService.instance = new CurrencyService();
287
+ CurrencyService.instance.initialize();
288
+ }
289
+ return CurrencyService.instance;
290
+ }
291
+ /**
292
+ * Initializes the service with currency data.
293
+ * Should be called once when your application starts.
294
+ */
295
+ initialize() {
296
+ try {
297
+ const data = JSON.parse(JSON.stringify(currencies_js_1.default));
298
+ 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));
299
+ const codeRecord = {};
300
+ const nameRecord = {};
301
+ currencies.forEach((currency) => {
302
+ // Populate code record
303
+ codeRecord[currency.code] = currency;
304
+ // Add to record by name
305
+ nameRecord[currency.name.toUpperCase()] = currency;
306
+ const upperCode = currency.code.toUpperCase();
307
+ // Add to static references for uppercase code
308
+ this.staticReferences.set(upperCode, currency);
309
+ // Add formatted full name static reference based on name property
310
+ // Transform from "US Dollar" to "US_DOLLAR"
311
+ const nameKey = currency.name
312
+ .toUpperCase()
313
+ .replace(/\s+/g, "_")
314
+ .replace(/[-(),.']/g, "")
315
+ .replace(/&/g, "AND");
316
+ this.staticReferences.set(nameKey, currency);
317
+ });
318
+ this.currencyRecord = codeRecord;
319
+ this.nameRecord = nameRecord;
320
+ this.currencyList = currencies;
321
+ }
322
+ catch (error) {
323
+ console.error("Failed to initialize CurrencyService:", error);
324
+ }
325
+ }
326
+ /**
327
+ * Gets all currencies.
328
+ * @returns {Currency[]} Array of all currencies
329
+ */
330
+ getAll() {
331
+ return this.currencyList;
332
+ }
333
+ /**
334
+ * Gets all currencies as a record.
335
+ * @returns {Record<string, Currency>} Record of currency codes and currency objects
336
+ */
337
+ getAllAsRecord() {
338
+ return this.currencyRecord;
339
+ }
340
+ /**
341
+ * Gets static currency references to be used by the Currency class.
342
+ * @returns {Map<string, Currency>} Map of static references
343
+ */
344
+ getStaticReferences() {
345
+ return this.staticReferences;
346
+ }
347
+ /**
348
+ * Retrieves a currency by its ISO code.
349
+ * @param {string} code The ISO code of the currency.
350
+ * @returns {Currency | undefined} The currency corresponding to the ISO code or `undefined` if not found.
351
+ */
352
+ fromCode(code) {
353
+ return this.currencyRecord[code.trim().toUpperCase()];
354
+ }
355
+ /**
356
+ * Retrieves a currency by its name.
357
+ * @param {string} currencyName The name of the currency.
358
+ * @returns {Currency | undefined} The currency corresponding to the name or `undefined` if not found.
359
+ */
360
+ fromName(currencyName) {
361
+ const input = currencyName.trim().toUpperCase();
362
+ // First try direct lookup in name record
363
+ const directMatch = this.nameRecord[input];
364
+ if (directMatch)
365
+ return directMatch;
366
+ // If not found, try more lenient matching
367
+ for (const [name, currObj] of Object.entries(this.nameRecord)) {
368
+ if (name.toUpperCase() === input) {
369
+ return currObj;
370
+ }
371
+ }
372
+ // Finally, try case-insensitive exact match
373
+ return this.currencyList.find((currency) => currency.name.toUpperCase() === input);
374
+ }
375
+ /**
376
+ * Validates if a given ISO currency code is valid
377
+ *
378
+ * @param {string | null | undefined} code - The currency code to validate.
379
+ * Should be a three-letter ISO currency code (e.g., 'USD', 'EUR').
380
+ *
381
+ * @returns {boolean} Returns true if:
382
+ * - The currency code is not null/undefined
383
+ * - The currency code successfully resolves to a valid Currency instance
384
+ * Returns false otherwise.
385
+ */
386
+ isValidCode(code) {
387
+ if (!code)
388
+ return false;
389
+ const currency = this.fromCode(code);
390
+ return !!currency;
391
+ }
392
+ /**
393
+ * Validates if a given currency name is valid
394
+ *
395
+ * @param {string | null | undefined} currencyName - The currency name to validate.
396
+ *
397
+ * @returns {boolean} Returns true if:
398
+ * - The currency name is not null/undefined
399
+ * - The currency name successfully resolves to a valid Currency instance
400
+ * Returns false otherwise.
401
+ */
402
+ isValidName(currencyName) {
403
+ if (!currencyName)
404
+ return false;
405
+ const currency = this.fromName(currencyName);
406
+ return !!currency;
407
+ }
408
+ /**
409
+ * Gets a regex-ready pattern matching all currency symbols
410
+ * Pattern is memoized for performance
411
+ * @returns {string} Pipe-separated pattern of escaped currency symbols
412
+ *
413
+ * @example
414
+ * const pattern = currencyService.getCurrencySymbolPattern();
415
+ * // Returns something like: "\$|€|\£|¥"
416
+ */
417
+ getCurrencySymbolPattern() {
418
+ const symbols = new Set();
419
+ Object.values(this.currencyList).forEach((currency) => {
420
+ symbols.add(this.escapeRegExp(currency.symbol));
421
+ symbols.add(this.escapeRegExp(currency.symbolNative));
422
+ });
423
+ return Array.from(symbols).join("|");
424
+ }
425
+ /**
426
+ * Escapes special characters in a string for use in regular expressions
427
+ * @private
428
+ * @param {string} string - The string to escape
429
+ * @returns {string} The escaped string
430
+ *
431
+ * @example
432
+ * private escapeRegExp("$") // Returns "\$"
433
+ */
434
+ escapeRegExp(string) {
435
+ return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
436
+ }
437
+ }
438
+ exports.CurrencyService = CurrencyService;
214
439
  // Initialize static properties by applying the references from CurrencyService.
215
- // zero-timeout to defer the initialization until after both modules have been fully loaded.
216
- // The setTimeout pushes the initialization code to the end of the JavaScript event loop,
217
- // which happens after all modules are loaded.
218
- setTimeout(() => {
440
+ (function setupStaticReferences() {
219
441
  try {
220
- const staticRefs = service_js_1.CurrencyService.getInstance().getStaticReferences();
221
- staticRefs.forEach((currency, key) => {
442
+ const refs = CurrencyService.getInstance().getStaticReferences();
443
+ refs.forEach((country, key) => {
222
444
  // deno-lint-ignore no-explicit-any
223
- Currency[key] = currency;
445
+ Currency[key] = country;
224
446
  });
225
447
  }
226
448
  catch (error) {
227
- console.error("Failed to initialize Currency static properties:", error);
449
+ console.log("Failed to set up static references: ", error);
228
450
  }
229
- }, 0);
451
+ })();