@temboplus/frontend-core 0.2.4 → 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 +74 -20
  2. package/esm/src/data/countries.d.ts +36 -3
  3. package/esm/src/data/countries.js +2475 -974
  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 +278 -24
  13. package/esm/src/models/country/country.d.ts.map +1 -1
  14. package/esm/src/models/country/country.js +603 -31
  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 +36 -3
  37. package/script/src/data/countries.js +2475 -974
  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 +278 -24
  47. package/script/src/models/country/country.d.ts.map +1 -1
  48. package/script/src/models/country/country.js +611 -35
  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 -75
  73. package/esm/src/models/country/service.d.ts.map +0 -1
  74. package/esm/src/models/country/service.js +0 -267
  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 -75
  82. package/script/src/models/country/service.d.ts.map +0 -1
  83. package/script/src/models/country/service.js +0 -274
  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
@@ -1,3 +1,3 @@
1
1
  export * from "./country.js";
2
- export * from "./service.js";
2
+ export * from "./index.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/country/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/models/country/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA"}
@@ -1,2 +1,2 @@
1
1
  export * from "./country.js";
2
- export * from "./service.js";
2
+ export * from "./index.js";
@@ -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,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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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,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"}