@temboplus/frontend-core 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +63 -14
  2. package/esm/src/data/countries.d.ts +12 -2
  3. package/esm/src/data/countries.js +496 -248
  4. package/esm/src/models/amount/amount.d.ts.map +1 -1
  5. package/esm/src/models/amount/amount.js +1 -1
  6. package/esm/src/models/bank/bank.d.ts +127 -0
  7. package/esm/src/models/bank/bank.d.ts.map +1 -1
  8. package/esm/src/models/bank/bank.js +264 -7
  9. package/esm/src/models/bank/index.d.ts +0 -1
  10. package/esm/src/models/bank/index.d.ts.map +1 -1
  11. package/esm/src/models/bank/index.js +0 -1
  12. package/esm/src/models/country/country.d.ts +162 -24
  13. package/esm/src/models/country/country.d.ts.map +1 -1
  14. package/esm/src/models/country/country.js +442 -42
  15. package/esm/src/models/country/index.d.ts +1 -1
  16. package/esm/src/models/country/index.d.ts.map +1 -1
  17. package/esm/src/models/country/index.js +1 -1
  18. package/esm/src/models/country/types.d.ts +53 -0
  19. package/esm/src/models/country/types.d.ts.map +1 -0
  20. package/esm/src/models/country/types.js +43 -0
  21. package/esm/src/models/currency/currency.d.ts +127 -4
  22. package/esm/src/models/currency/currency.d.ts.map +1 -1
  23. package/esm/src/models/currency/currency.js +229 -11
  24. package/esm/src/models/currency/index.d.ts +1 -1
  25. package/esm/src/models/currency/index.d.ts.map +1 -1
  26. package/esm/src/models/currency/index.js +1 -1
  27. package/esm/src/models/currency/types.d.ts +20 -0
  28. package/esm/src/models/currency/types.d.ts.map +1 -0
  29. package/esm/src/models/currency/types.js +13 -0
  30. package/esm/src/models/phone_number/global/phone_number.d.ts +3 -2
  31. package/esm/src/models/phone_number/global/phone_number.d.ts.map +1 -1
  32. package/esm/src/models/phone_number/global/service.d.ts +27 -20
  33. package/esm/src/models/phone_number/global/service.d.ts.map +1 -1
  34. package/esm/src/models/phone_number/global/service.js +61 -40
  35. package/package.json +1 -1
  36. package/script/src/data/countries.d.ts +12 -2
  37. package/script/src/data/countries.js +496 -248
  38. package/script/src/models/amount/amount.d.ts.map +1 -1
  39. package/script/src/models/amount/amount.js +4 -4
  40. package/script/src/models/bank/bank.d.ts +127 -0
  41. package/script/src/models/bank/bank.d.ts.map +1 -1
  42. package/script/src/models/bank/bank.js +273 -12
  43. package/script/src/models/bank/index.d.ts +0 -1
  44. package/script/src/models/bank/index.d.ts.map +1 -1
  45. package/script/src/models/bank/index.js +0 -1
  46. package/script/src/models/country/country.d.ts +162 -24
  47. package/script/src/models/country/country.d.ts.map +1 -1
  48. package/script/src/models/country/country.js +453 -49
  49. package/script/src/models/country/index.d.ts +1 -1
  50. package/script/src/models/country/index.d.ts.map +1 -1
  51. package/script/src/models/country/index.js +1 -1
  52. package/script/src/models/country/types.d.ts +53 -0
  53. package/script/src/models/country/types.d.ts.map +1 -0
  54. package/script/src/models/country/types.js +46 -0
  55. package/script/src/models/currency/currency.d.ts +127 -4
  56. package/script/src/models/currency/currency.d.ts.map +1 -1
  57. package/script/src/models/currency/currency.js +237 -15
  58. package/script/src/models/currency/index.d.ts +1 -1
  59. package/script/src/models/currency/index.d.ts.map +1 -1
  60. package/script/src/models/currency/index.js +1 -1
  61. package/script/src/models/currency/types.d.ts +20 -0
  62. package/script/src/models/currency/types.d.ts.map +1 -0
  63. package/script/src/models/currency/types.js +14 -0
  64. package/script/src/models/phone_number/global/phone_number.d.ts +3 -2
  65. package/script/src/models/phone_number/global/phone_number.d.ts.map +1 -1
  66. package/script/src/models/phone_number/global/service.d.ts +27 -20
  67. package/script/src/models/phone_number/global/service.d.ts.map +1 -1
  68. package/script/src/models/phone_number/global/service.js +61 -40
  69. package/esm/src/models/bank/service.d.ts +0 -106
  70. package/esm/src/models/bank/service.d.ts.map +0 -1
  71. package/esm/src/models/bank/service.js +0 -240
  72. package/esm/src/models/country/service.d.ts +0 -111
  73. package/esm/src/models/country/service.d.ts.map +0 -1
  74. package/esm/src/models/country/service.js +0 -366
  75. package/esm/src/models/currency/service.d.ts +0 -96
  76. package/esm/src/models/currency/service.d.ts.map +0 -1
  77. package/esm/src/models/currency/service.js +0 -194
  78. package/script/src/models/bank/service.d.ts +0 -106
  79. package/script/src/models/bank/service.d.ts.map +0 -1
  80. package/script/src/models/bank/service.js +0 -247
  81. package/script/src/models/country/service.d.ts +0 -111
  82. package/script/src/models/country/service.d.ts.map +0 -1
  83. package/script/src/models/country/service.js +0 -373
  84. package/script/src/models/currency/service.d.ts +0 -96
  85. package/script/src/models/currency/service.d.ts.map +0 -1
  86. package/script/src/models/currency/service.js +0 -201
package/README.md CHANGED
@@ -101,6 +101,46 @@ if (phoneNumber.validate()) {
101
101
  }
102
102
  ```
103
103
 
104
+ ## Type-Safe String Literals
105
+
106
+ This library provides strongly-typed string literals for standardized codes:
107
+
108
+ * **Country Codes:**
109
+ * `ISO2CountryCode`: Two-letter country codes (e.g., "US", "GB", "DE")
110
+ * `ISO3CountryCode`: Three-letter country codes (e.g., "USA", "GBR", "DEU")
111
+ * `CountryCode`: A union type that accepts either ISO-2 or ISO-3 formats
112
+
113
+ * **Currency Codes:**
114
+ * `CurrencyCode`: Three-letter currency codes (e.g., "USD", "EUR", "JPY")
115
+
116
+ These types provide compile-time validation and auto-completion while having zero runtime overhead:
117
+
118
+ ```typescript
119
+ import {
120
+ ISO2CountryCode,
121
+ ISO3CountryCode,
122
+ CountryCode,
123
+ CurrencyCode
124
+ } from '@temboplus/frontend-core';
125
+
126
+ // Type-safe function parameters
127
+ function processTransaction(
128
+ amount: number,
129
+ currency: CurrencyCode,
130
+ country: CountryCode
131
+ ) {
132
+ // Implementation
133
+ }
134
+
135
+ // Valid calls - compile-time checking ensures only valid codes are accepted
136
+ processTransaction(100, "USD", "US"); // ISO-2 country code
137
+ processTransaction(200, "EUR", "DEU"); // ISO-3 country code
138
+
139
+ // Invalid calls - caught by TypeScript at compile time
140
+ processTransaction(300, "XYZ", "US"); // Error: "XYZ" is not a valid CurrencyCode
141
+ processTransaction(400, "USD", "ZZZ"); // Error: "ZZZ" is not a valid CountryCode
142
+ ```
143
+
104
144
  ## Static Data Access
105
145
 
106
146
  Convenient static properties are available for accessing common data:
@@ -122,25 +162,20 @@ const caribbeanCountries = Country.getByRegion(SUB_REGION.CARIBBEAN);
122
162
  const usd = Currency.USD;
123
163
  const tzs = Currency.TANZANIAN_SHILLING;
124
164
 
165
+ // Access country's currency
166
+ const japan = Country.JP;
167
+ const yen = japan.getCurrency();
168
+ console.log(yen?.code); // "JPY"
169
+
170
+ // Find countries using a specific currency
171
+ const euroCountries = Country.getByCurrencyCode("EUR");
172
+ console.log(`${euroCountries.length} countries use the Euro`);
173
+
125
174
  // Bank access
126
175
  const crdb = Bank.CRDB;
127
176
  const nmb = Bank.NMB;
128
177
  ```
129
178
 
130
- ## Detailed Model Documentation
131
-
132
- * [PhoneNumber](./docs/phone_number.md)
133
- * [Amount](./docs/amount.md)
134
- * [Bank](./docs/bank.md)
135
- * [Currency](./docs/currency.md)
136
- * [Country](./docs/country.md)
137
-
138
- ## Installation
139
-
140
- ```bash
141
- npm install @temboplus/frontend-core
142
- ```
143
-
144
179
  ## Phone Number Usage
145
180
 
146
181
  ```typescript
@@ -154,4 +189,18 @@ console.log(internationalPhone.getWithFormat(PhoneNumberFormat.INTERNATIONAL));
154
189
  const tanzaniaPhone = TZPhoneNumber.from("0712345678");
155
190
  console.log(tanzaniaPhone.getWithFormat(PhoneNumberFormat.INTERNATIONAL)); // +255 712 345 678
156
191
  console.log(tanzaniaPhone.networkOperator.name); // "Yas"
192
+ ```
193
+
194
+ ## Detailed Model Documentation
195
+
196
+ * [PhoneNumber](./docs/phone_number.md)
197
+ * [Amount](./docs/amount.md)
198
+ * [Bank](./docs/bank.md)
199
+ * [Currency](./docs/currency.md)
200
+ * [Country](./docs/country.md)
201
+
202
+ ## Installation
203
+
204
+ ```bash
205
+ npm install @temboplus/frontend-core
157
206
  ```
@@ -15,7 +15,7 @@ declare const _default: {
15
15
  coverage: string;
16
16
  contact_info: string;
17
17
  notes: string;
18
- countries: {
18
+ countries: ({
19
19
  name: string;
20
20
  name_official: string;
21
21
  iso_2: string;
@@ -23,7 +23,17 @@ declare const _default: {
23
23
  flag_emoji: string;
24
24
  continent: string;
25
25
  region: string;
26
- }[];
26
+ currency_iso_code: string;
27
+ } | {
28
+ name: string;
29
+ name_official: string;
30
+ iso_2: string;
31
+ iso_3: string;
32
+ flag_emoji: string;
33
+ continent: string;
34
+ region: string;
35
+ currency_iso_code: null;
36
+ })[];
27
37
  };
28
38
  export default _default;
29
39
  //# sourceMappingURL=countries.d.ts.map