@voyantjs/utils 0.1.0

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 (191) hide show
  1. package/LICENSE +109 -0
  2. package/README.md +42 -0
  3. package/dist/accounting-countries.d.ts +12 -0
  4. package/dist/accounting-countries.d.ts.map +1 -0
  5. package/dist/accounting-countries.js +307 -0
  6. package/dist/accounting-countries.js.map +1 -0
  7. package/dist/accounting-regions.d.ts +103 -0
  8. package/dist/accounting-regions.d.ts.map +1 -0
  9. package/dist/accounting-regions.js +38 -0
  10. package/dist/accounting-regions.js.map +1 -0
  11. package/dist/airlines.d.ts +960 -0
  12. package/dist/airlines.d.ts.map +1 -0
  13. package/dist/airlines.js +989 -0
  14. package/dist/airlines.js.map +1 -0
  15. package/dist/analytics/api-key-events.d.ts +89 -0
  16. package/dist/analytics/api-key-events.d.ts.map +1 -0
  17. package/dist/analytics/api-key-events.js +99 -0
  18. package/dist/analytics/api-key-events.js.map +1 -0
  19. package/dist/api-keys-client.d.ts +40 -0
  20. package/dist/api-keys-client.d.ts.map +1 -0
  21. package/dist/api-keys-client.js +63 -0
  22. package/dist/api-keys-client.js.map +1 -0
  23. package/dist/api-keys.d.ts +48 -0
  24. package/dist/api-keys.d.ts.map +1 -0
  25. package/dist/api-keys.js +108 -0
  26. package/dist/api-keys.js.map +1 -0
  27. package/dist/cache.d.ts +123 -0
  28. package/dist/cache.d.ts.map +1 -0
  29. package/dist/cache.js +182 -0
  30. package/dist/cache.js.map +1 -0
  31. package/dist/checkout-signature.d.ts +15 -0
  32. package/dist/checkout-signature.d.ts.map +1 -0
  33. package/dist/checkout-signature.js +64 -0
  34. package/dist/checkout-signature.js.map +1 -0
  35. package/dist/conditions.d.ts +36 -0
  36. package/dist/conditions.d.ts.map +1 -0
  37. package/dist/conditions.js +396 -0
  38. package/dist/conditions.js.map +1 -0
  39. package/dist/countries.d.ts +5 -0
  40. package/dist/countries.d.ts.map +1 -0
  41. package/dist/countries.js +251 -0
  42. package/dist/countries.js.map +1 -0
  43. package/dist/currencies.d.ts +1011 -0
  44. package/dist/currencies.d.ts.map +1 -0
  45. package/dist/currencies.js +1011 -0
  46. package/dist/currencies.js.map +1 -0
  47. package/dist/email/send.d.ts +20 -0
  48. package/dist/email/send.d.ts.map +1 -0
  49. package/dist/email/send.js +53 -0
  50. package/dist/email/send.js.map +1 -0
  51. package/dist/form-runtime.d.ts +38 -0
  52. package/dist/form-runtime.d.ts.map +1 -0
  53. package/dist/form-runtime.js +174 -0
  54. package/dist/form-runtime.js.map +1 -0
  55. package/dist/gcs/storage.d.ts +23 -0
  56. package/dist/gcs/storage.d.ts.map +1 -0
  57. package/dist/gcs/storage.js +25 -0
  58. package/dist/gcs/storage.js.map +1 -0
  59. package/dist/geo.d.ts +85 -0
  60. package/dist/geo.d.ts.map +1 -0
  61. package/dist/geo.js +141 -0
  62. package/dist/geo.js.map +1 -0
  63. package/dist/geographic-regions.d.ts +66 -0
  64. package/dist/geographic-regions.d.ts.map +1 -0
  65. package/dist/geographic-regions.js +326 -0
  66. package/dist/geographic-regions.js.map +1 -0
  67. package/dist/index.d.ts +9 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +9 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/kms-aws.d.ts +26 -0
  72. package/dist/kms-aws.d.ts.map +1 -0
  73. package/dist/kms-aws.js +133 -0
  74. package/dist/kms-aws.js.map +1 -0
  75. package/dist/kms-crypto.d.ts +20 -0
  76. package/dist/kms-crypto.d.ts.map +1 -0
  77. package/dist/kms-crypto.js +108 -0
  78. package/dist/kms-crypto.js.map +1 -0
  79. package/dist/kms-env.d.ts +13 -0
  80. package/dist/kms-env.d.ts.map +1 -0
  81. package/dist/kms-env.js +13 -0
  82. package/dist/kms-env.js.map +1 -0
  83. package/dist/kms-gcp.d.ts +32 -0
  84. package/dist/kms-gcp.d.ts.map +1 -0
  85. package/dist/kms-gcp.js +116 -0
  86. package/dist/kms-gcp.js.map +1 -0
  87. package/dist/kms-local.d.ts +13 -0
  88. package/dist/kms-local.d.ts.map +1 -0
  89. package/dist/kms-local.js +13 -0
  90. package/dist/kms-local.js.map +1 -0
  91. package/dist/kms-symmetric.d.ts +14 -0
  92. package/dist/kms-symmetric.d.ts.map +1 -0
  93. package/dist/kms-symmetric.js +67 -0
  94. package/dist/kms-symmetric.js.map +1 -0
  95. package/dist/kms.d.ts +66 -0
  96. package/dist/kms.d.ts.map +1 -0
  97. package/dist/kms.js +169 -0
  98. package/dist/kms.js.map +1 -0
  99. package/dist/kv-codecs.d.ts +6 -0
  100. package/dist/kv-codecs.d.ts.map +1 -0
  101. package/dist/kv-codecs.js +4 -0
  102. package/dist/kv-codecs.js.map +1 -0
  103. package/dist/kv.d.ts +10 -0
  104. package/dist/kv.d.ts.map +1 -0
  105. package/dist/kv.js +18 -0
  106. package/dist/kv.js.map +1 -0
  107. package/dist/languages.d.ts +187 -0
  108. package/dist/languages.d.ts.map +1 -0
  109. package/dist/languages.js +187 -0
  110. package/dist/languages.js.map +1 -0
  111. package/dist/localized-countries-regions.d.ts +15 -0
  112. package/dist/localized-countries-regions.d.ts.map +1 -0
  113. package/dist/localized-countries-regions.js +674 -0
  114. package/dist/localized-countries-regions.js.map +1 -0
  115. package/dist/localized-regions.d.ts +33 -0
  116. package/dist/localized-regions.d.ts.map +1 -0
  117. package/dist/localized-regions.js +63 -0
  118. package/dist/localized-regions.js.map +1 -0
  119. package/dist/price/resolve.d.ts +91 -0
  120. package/dist/price/resolve.d.ts.map +1 -0
  121. package/dist/price/resolve.js +227 -0
  122. package/dist/price/resolve.js.map +1 -0
  123. package/dist/rate-limits.d.ts +39 -0
  124. package/dist/rate-limits.d.ts.map +1 -0
  125. package/dist/rate-limits.js +86 -0
  126. package/dist/rate-limits.js.map +1 -0
  127. package/dist/redis.d.ts +13 -0
  128. package/dist/redis.d.ts.map +1 -0
  129. package/dist/redis.js +16 -0
  130. package/dist/redis.js.map +1 -0
  131. package/dist/region-only.d.ts +11 -0
  132. package/dist/region-only.d.ts.map +1 -0
  133. package/dist/region-only.js +49 -0
  134. package/dist/region-only.js.map +1 -0
  135. package/dist/region.d.ts +11 -0
  136. package/dist/region.d.ts.map +1 -0
  137. package/dist/region.js +47 -0
  138. package/dist/region.js.map +1 -0
  139. package/dist/romania-bucharest-sectors.d.ts +6 -0
  140. package/dist/romania-bucharest-sectors.d.ts.map +1 -0
  141. package/dist/romania-bucharest-sectors.js +27 -0
  142. package/dist/romania-bucharest-sectors.js.map +1 -0
  143. package/dist/romania-counties.d.ts +6 -0
  144. package/dist/romania-counties.d.ts.map +1 -0
  145. package/dist/romania-counties.js +171 -0
  146. package/dist/romania-counties.js.map +1 -0
  147. package/dist/session-claims.d.ts +40 -0
  148. package/dist/session-claims.d.ts.map +1 -0
  149. package/dist/session-claims.js +184 -0
  150. package/dist/session-claims.js.map +1 -0
  151. package/dist/sms/provider.d.ts +28 -0
  152. package/dist/sms/provider.d.ts.map +1 -0
  153. package/dist/sms/provider.js +50 -0
  154. package/dist/sms/provider.js.map +1 -0
  155. package/dist/sms/segments.d.ts +3 -0
  156. package/dist/sms/segments.d.ts.map +1 -0
  157. package/dist/sms/segments.js +33 -0
  158. package/dist/sms/segments.js.map +1 -0
  159. package/dist/temporal.d.ts +2 -0
  160. package/dist/temporal.d.ts.map +1 -0
  161. package/dist/temporal.js +6 -0
  162. package/dist/temporal.js.map +1 -0
  163. package/dist/timezones.d.ts +9 -0
  164. package/dist/timezones.d.ts.map +1 -0
  165. package/dist/timezones.js +1217 -0
  166. package/dist/timezones.js.map +1 -0
  167. package/dist/twilio/client.d.ts +13 -0
  168. package/dist/twilio/client.d.ts.map +1 -0
  169. package/dist/twilio/client.js +26 -0
  170. package/dist/twilio/client.js.map +1 -0
  171. package/dist/usage/index.d.ts +34 -0
  172. package/dist/usage/index.d.ts.map +1 -0
  173. package/dist/usage/index.js +18 -0
  174. package/dist/usage/index.js.map +1 -0
  175. package/dist/usage/policy.d.ts +27 -0
  176. package/dist/usage/policy.d.ts.map +1 -0
  177. package/dist/usage/policy.js +17 -0
  178. package/dist/usage/policy.js.map +1 -0
  179. package/dist/validation/log.d.ts +10 -0
  180. package/dist/validation/log.d.ts.map +1 -0
  181. package/dist/validation/log.js +37 -0
  182. package/dist/validation/log.js.map +1 -0
  183. package/dist/with-timeout.d.ts +2 -0
  184. package/dist/with-timeout.d.ts.map +1 -0
  185. package/dist/with-timeout.js +15 -0
  186. package/dist/with-timeout.js.map +1 -0
  187. package/dist/zod-form-builder.d.ts +45 -0
  188. package/dist/zod-form-builder.d.ts.map +1 -0
  189. package/dist/zod-form-builder.js +216 -0
  190. package/dist/zod-form-builder.js.map +1 -0
  191. package/package.json +92 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Geographic region utilities for filtering products by world regions.
3
+ *
4
+ * Regions follow the UN geoscheme (M49) standard:
5
+ * - af: Africa
6
+ * - an: Antarctica
7
+ * - as: Asia
8
+ * - eu: Europe
9
+ * - na: North America
10
+ * - oc: Oceania
11
+ * - sa: South America
12
+ * - me: Middle East (custom, subset of Asia/Africa)
13
+ */
14
+ /**
15
+ * Geographic region codes
16
+ */
17
+ export type GeographicRegionCode = "af" | "an" | "as" | "eu" | "na" | "oc" | "sa" | "me";
18
+ /**
19
+ * Geographic region metadata
20
+ */
21
+ export interface GeographicRegion {
22
+ code: GeographicRegionCode;
23
+ name: string;
24
+ }
25
+ /**
26
+ * All available geographic regions
27
+ */
28
+ export declare const GEOGRAPHIC_REGIONS: GeographicRegion[];
29
+ /**
30
+ * Get the geographic region for a country code.
31
+ *
32
+ * @param countryCode - ISO 3166-1 alpha-2 country code (e.g., "RO", "EG")
33
+ * @returns Geographic region code or null if not found
34
+ *
35
+ * @example
36
+ * getGeographicRegion("RO") // "eu"
37
+ * getGeographicRegion("EG") // "af"
38
+ * getGeographicRegion("AE") // "me"
39
+ */
40
+ export declare function getGeographicRegion(countryCode: string): GeographicRegionCode | null;
41
+ /**
42
+ * Get all country codes for a geographic region.
43
+ *
44
+ * @param region - Geographic region code (e.g., "eu", "af")
45
+ * @returns Array of ISO 3166-1 alpha-2 country codes
46
+ *
47
+ * @example
48
+ * getCountriesByRegion("eu") // ["AL", "AD", "AT", ...]
49
+ * getCountriesByRegion("me") // ["BH", "IR", "IQ", ...]
50
+ */
51
+ export declare function getCountriesByRegion(region: GeographicRegionCode): string[];
52
+ /**
53
+ * Check if a string is a valid geographic region code.
54
+ *
55
+ * @param code - String to check
56
+ * @returns True if the code is a valid region code
57
+ */
58
+ export declare function isValidRegionCode(code: string): code is GeographicRegionCode;
59
+ /**
60
+ * Get region metadata by code.
61
+ *
62
+ * @param code - Geographic region code
63
+ * @returns Region metadata or null if not found
64
+ */
65
+ export declare function getRegionByCode(code: string): GeographicRegion | null;
66
+ //# sourceMappingURL=geographic-regions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geographic-regions.d.ts","sourceRoot":"","sources":["../src/geographic-regions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAShD,CAAA;AAuQD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAIpF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,oBAAoB,CAE5E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAErE"}
@@ -0,0 +1,326 @@
1
+ /**
2
+ * Geographic region utilities for filtering products by world regions.
3
+ *
4
+ * Regions follow the UN geoscheme (M49) standard:
5
+ * - af: Africa
6
+ * - an: Antarctica
7
+ * - as: Asia
8
+ * - eu: Europe
9
+ * - na: North America
10
+ * - oc: Oceania
11
+ * - sa: South America
12
+ * - me: Middle East (custom, subset of Asia/Africa)
13
+ */
14
+ /**
15
+ * All available geographic regions
16
+ */
17
+ export const GEOGRAPHIC_REGIONS = [
18
+ { code: "af", name: "Africa" },
19
+ { code: "an", name: "Antarctica" },
20
+ { code: "as", name: "Asia" },
21
+ { code: "eu", name: "Europe" },
22
+ { code: "na", name: "North America" },
23
+ { code: "oc", name: "Oceania" },
24
+ { code: "sa", name: "South America" },
25
+ { code: "me", name: "Middle East" },
26
+ ];
27
+ /**
28
+ * Country codes grouped by geographic region
29
+ * ISO 3166-1 alpha-2 country codes
30
+ */
31
+ const REGION_COUNTRIES = {
32
+ // Africa
33
+ af: [
34
+ "DZ",
35
+ "AO",
36
+ "BJ",
37
+ "BW",
38
+ "BF",
39
+ "BI",
40
+ "CV",
41
+ "CM",
42
+ "CF",
43
+ "TD",
44
+ "KM",
45
+ "CG",
46
+ "CD",
47
+ "CI",
48
+ "DJ",
49
+ "EG",
50
+ "GQ",
51
+ "ER",
52
+ "SZ",
53
+ "ET",
54
+ "GA",
55
+ "GM",
56
+ "GH",
57
+ "GN",
58
+ "GW",
59
+ "KE",
60
+ "LS",
61
+ "LR",
62
+ "LY",
63
+ "MG",
64
+ "MW",
65
+ "ML",
66
+ "MR",
67
+ "MU",
68
+ "YT",
69
+ "MA",
70
+ "MZ",
71
+ "NA",
72
+ "NE",
73
+ "NG",
74
+ "RW",
75
+ "RE",
76
+ "SH",
77
+ "ST",
78
+ "SN",
79
+ "SC",
80
+ "SL",
81
+ "SO",
82
+ "ZA",
83
+ "SS",
84
+ "SD",
85
+ "TZ",
86
+ "TG",
87
+ "TN",
88
+ "UG",
89
+ "EH",
90
+ "ZM",
91
+ "ZW",
92
+ ],
93
+ // Antarctica
94
+ an: ["AQ", "BV", "GS", "HM", "TF"],
95
+ // Asia (excluding Middle East countries)
96
+ as: [
97
+ "AF",
98
+ "AM",
99
+ "AZ",
100
+ "BD",
101
+ "BT",
102
+ "BN",
103
+ "KH",
104
+ "CN",
105
+ "CY",
106
+ "GE",
107
+ "HK",
108
+ "IN",
109
+ "ID",
110
+ "JP",
111
+ "KZ",
112
+ "KP",
113
+ "KR",
114
+ "KG",
115
+ "LA",
116
+ "MO",
117
+ "MY",
118
+ "MV",
119
+ "MN",
120
+ "MM",
121
+ "NP",
122
+ "PK",
123
+ "PH",
124
+ "SG",
125
+ "LK",
126
+ "TW",
127
+ "TJ",
128
+ "TH",
129
+ "TL",
130
+ "TM",
131
+ "UZ",
132
+ "VN",
133
+ ],
134
+ // Europe
135
+ eu: [
136
+ "AL",
137
+ "AD",
138
+ "AT",
139
+ "BY",
140
+ "BE",
141
+ "BA",
142
+ "BG",
143
+ "HR",
144
+ "CZ",
145
+ "DK",
146
+ "EE",
147
+ "FO",
148
+ "FI",
149
+ "FR",
150
+ "DE",
151
+ "GI",
152
+ "GR",
153
+ "GG",
154
+ "HU",
155
+ "IS",
156
+ "IE",
157
+ "IM",
158
+ "IT",
159
+ "JE",
160
+ "XK",
161
+ "LV",
162
+ "LI",
163
+ "LT",
164
+ "LU",
165
+ "MT",
166
+ "MD",
167
+ "MC",
168
+ "ME",
169
+ "NL",
170
+ "MK",
171
+ "NO",
172
+ "PL",
173
+ "PT",
174
+ "RO",
175
+ "RU",
176
+ "SM",
177
+ "RS",
178
+ "SK",
179
+ "SI",
180
+ "ES",
181
+ "SJ",
182
+ "SE",
183
+ "CH",
184
+ "UA",
185
+ "GB",
186
+ "VA",
187
+ "AX",
188
+ ],
189
+ // North America (including Central America and Caribbean)
190
+ na: [
191
+ "AI",
192
+ "AG",
193
+ "AW",
194
+ "BS",
195
+ "BB",
196
+ "BZ",
197
+ "BM",
198
+ "CA",
199
+ "KY",
200
+ "CR",
201
+ "CU",
202
+ "CW",
203
+ "DM",
204
+ "DO",
205
+ "SV",
206
+ "GL",
207
+ "GD",
208
+ "GP",
209
+ "GT",
210
+ "HT",
211
+ "HN",
212
+ "JM",
213
+ "MQ",
214
+ "MX",
215
+ "MS",
216
+ "NI",
217
+ "PA",
218
+ "PR",
219
+ "BL",
220
+ "KN",
221
+ "LC",
222
+ "MF",
223
+ "PM",
224
+ "VC",
225
+ "SX",
226
+ "TT",
227
+ "TC",
228
+ "US",
229
+ "VI",
230
+ "VG",
231
+ ],
232
+ // Oceania (Australia, New Zealand, Pacific Islands)
233
+ oc: [
234
+ "AS",
235
+ "AU",
236
+ "CK",
237
+ "FJ",
238
+ "PF",
239
+ "GU",
240
+ "KI",
241
+ "MH",
242
+ "FM",
243
+ "NR",
244
+ "NC",
245
+ "NZ",
246
+ "NU",
247
+ "NF",
248
+ "MP",
249
+ "PW",
250
+ "PG",
251
+ "PN",
252
+ "WS",
253
+ "SB",
254
+ "TK",
255
+ "TO",
256
+ "TV",
257
+ "UM",
258
+ "VU",
259
+ "WF",
260
+ "CX",
261
+ "CC",
262
+ ],
263
+ // South America
264
+ sa: ["AR", "BO", "BR", "CL", "CO", "EC", "FK", "GF", "GY", "PY", "PE", "SR", "UY", "VE"],
265
+ // Middle East (custom region for travel industry)
266
+ me: ["BH", "IR", "IQ", "IL", "JO", "KW", "LB", "OM", "PS", "QA", "SA", "SY", "TR", "AE", "YE"],
267
+ };
268
+ /**
269
+ * Reverse lookup: country code to region
270
+ */
271
+ const COUNTRY_TO_REGION = new Map();
272
+ // Build reverse lookup
273
+ for (const [region, countries] of Object.entries(REGION_COUNTRIES)) {
274
+ for (const country of countries) {
275
+ COUNTRY_TO_REGION.set(country, region);
276
+ }
277
+ }
278
+ /**
279
+ * Get the geographic region for a country code.
280
+ *
281
+ * @param countryCode - ISO 3166-1 alpha-2 country code (e.g., "RO", "EG")
282
+ * @returns Geographic region code or null if not found
283
+ *
284
+ * @example
285
+ * getGeographicRegion("RO") // "eu"
286
+ * getGeographicRegion("EG") // "af"
287
+ * getGeographicRegion("AE") // "me"
288
+ */
289
+ export function getGeographicRegion(countryCode) {
290
+ const normalized = countryCode?.trim().toUpperCase();
291
+ if (!normalized)
292
+ return null;
293
+ return COUNTRY_TO_REGION.get(normalized) ?? null;
294
+ }
295
+ /**
296
+ * Get all country codes for a geographic region.
297
+ *
298
+ * @param region - Geographic region code (e.g., "eu", "af")
299
+ * @returns Array of ISO 3166-1 alpha-2 country codes
300
+ *
301
+ * @example
302
+ * getCountriesByRegion("eu") // ["AL", "AD", "AT", ...]
303
+ * getCountriesByRegion("me") // ["BH", "IR", "IQ", ...]
304
+ */
305
+ export function getCountriesByRegion(region) {
306
+ return REGION_COUNTRIES[region] ?? [];
307
+ }
308
+ /**
309
+ * Check if a string is a valid geographic region code.
310
+ *
311
+ * @param code - String to check
312
+ * @returns True if the code is a valid region code
313
+ */
314
+ export function isValidRegionCode(code) {
315
+ return GEOGRAPHIC_REGIONS.some((r) => r.code === code);
316
+ }
317
+ /**
318
+ * Get region metadata by code.
319
+ *
320
+ * @param code - Geographic region code
321
+ * @returns Region metadata or null if not found
322
+ */
323
+ export function getRegionByCode(code) {
324
+ return GEOGRAPHIC_REGIONS.find((r) => r.code === code) ?? null;
325
+ }
326
+ //# sourceMappingURL=geographic-regions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geographic-regions.js","sourceRoot":"","sources":["../src/geographic-regions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./countries.js";
2
+ export * from "./currencies.js";
3
+ export * from "./geographic-regions.js";
4
+ export * from "./kms.js";
5
+ export * from "./kv.js";
6
+ export * from "./languages.js";
7
+ export * from "./localized-countries-regions.js";
8
+ export * from "./timezones.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kCAAkC,CAAA;AAChD,cAAc,gBAAgB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export * from "./countries.js";
2
+ export * from "./currencies.js";
3
+ export * from "./geographic-regions.js";
4
+ export * from "./kms.js";
5
+ export * from "./kv.js";
6
+ export * from "./languages.js";
7
+ export * from "./localized-countries-regions.js";
8
+ export * from "./timezones.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kCAAkC,CAAA;AAChD,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * AWS KMS provider using SigV4-signed HTTPS requests.
3
+ *
4
+ * Works in Workers and modern Node without AWS SDK dependencies.
5
+ */
6
+ import type { KeyRef, KmsKeyType, KmsProvider } from "./kms.js";
7
+ export interface AwsKmsConfig {
8
+ region: string;
9
+ accessKeyId: string;
10
+ secretAccessKey: string;
11
+ sessionToken?: string;
12
+ endpoint?: string;
13
+ keyIdByType: Record<KmsKeyType, string>;
14
+ }
15
+ export declare class AwsKmsProvider implements KmsProvider {
16
+ private readonly config;
17
+ readonly name: "aws";
18
+ constructor(config: AwsKmsConfig);
19
+ private resolveKeyId;
20
+ private resolveEndpoint;
21
+ private signedHeaders;
22
+ private callAws;
23
+ encrypt(plaintext: string, key: KeyRef): Promise<string>;
24
+ decrypt(ciphertext: string, key: KeyRef): Promise<string>;
25
+ }
26
+ //# sourceMappingURL=kms-aws.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms-aws.d.ts","sourceRoot":"","sources":["../src/kms-aws.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAM/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;CACxC;AAkDD,qBAAa,cAAe,YAAW,WAAW;IAGpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAS;gBAED,MAAM,EAAE,YAAY;IAEjD,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,eAAe;YAIT,aAAa;YAyDb,OAAO;IAgBf,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAchE"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * AWS KMS provider using SigV4-signed HTTPS requests.
3
+ *
4
+ * Works in Workers and modern Node without AWS SDK dependencies.
5
+ */
6
+ const PREFIX = "aws:v1:";
7
+ const SERVICE = "kms";
8
+ const JSON_CONTENT_TYPE = "application/x-amz-json-1.1";
9
+ function toHex(bytes) {
10
+ return Array.from(bytes)
11
+ .map((byte) => byte.toString(16).padStart(2, "0"))
12
+ .join("");
13
+ }
14
+ async function sha256Hex(input) {
15
+ const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(input));
16
+ return toHex(new Uint8Array(digest));
17
+ }
18
+ async function hmacSha256Raw(key, message) {
19
+ const raw = new Uint8Array(key.byteLength);
20
+ raw.set(key);
21
+ const cryptoKey = await crypto.subtle.importKey("raw", raw.buffer, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
22
+ const signature = await crypto.subtle.sign("HMAC", cryptoKey, new TextEncoder().encode(message));
23
+ return new Uint8Array(signature);
24
+ }
25
+ async function deriveSigningKey(secretAccessKey, dateStamp, region) {
26
+ const kDate = await hmacSha256Raw(new TextEncoder().encode(`AWS4${secretAccessKey}`), dateStamp);
27
+ const kRegion = await hmacSha256Raw(kDate, region);
28
+ const kService = await hmacSha256Raw(kRegion, SERVICE);
29
+ return hmacSha256Raw(kService, "aws4_request");
30
+ }
31
+ function formatAmzDate(date) {
32
+ const iso = date.toISOString().replace(/[:-]|\.\d{3}/g, "");
33
+ return {
34
+ amzDate: iso,
35
+ dateStamp: iso.slice(0, 8),
36
+ };
37
+ }
38
+ function joinHeaders(headers) {
39
+ return headers.map(([name, value]) => `${name}:${value.trim()}\n`).join("");
40
+ }
41
+ export class AwsKmsProvider {
42
+ config;
43
+ name = "aws";
44
+ constructor(config) {
45
+ this.config = config;
46
+ }
47
+ resolveKeyId(key) {
48
+ return this.config.keyIdByType[key.keyType];
49
+ }
50
+ resolveEndpoint() {
51
+ return this.config.endpoint ?? `https://kms.${this.config.region}.amazonaws.com/`;
52
+ }
53
+ async signedHeaders(target, body) {
54
+ const endpoint = new URL(this.resolveEndpoint());
55
+ const now = new Date();
56
+ const { amzDate, dateStamp } = formatAmzDate(now);
57
+ const payloadHash = await sha256Hex(body);
58
+ const headers = [
59
+ ["content-type", JSON_CONTENT_TYPE],
60
+ ["host", endpoint.host],
61
+ ["x-amz-date", amzDate],
62
+ ["x-amz-target", target],
63
+ ];
64
+ if (this.config.sessionToken) {
65
+ headers.push(["x-amz-security-token", this.config.sessionToken]);
66
+ }
67
+ headers.sort(([a], [b]) => a.localeCompare(b));
68
+ const canonicalHeaders = joinHeaders(headers);
69
+ const signedHeaders = headers.map(([name]) => name).join(";");
70
+ const canonicalRequest = [
71
+ "POST",
72
+ endpoint.pathname || "/",
73
+ "",
74
+ canonicalHeaders,
75
+ signedHeaders,
76
+ payloadHash,
77
+ ].join("\n");
78
+ const credentialScope = `${dateStamp}/${this.config.region}/${SERVICE}/aws4_request`;
79
+ const stringToSign = [
80
+ "AWS4-HMAC-SHA256",
81
+ amzDate,
82
+ credentialScope,
83
+ await sha256Hex(canonicalRequest),
84
+ ].join("\n");
85
+ const signingKey = await deriveSigningKey(this.config.secretAccessKey, dateStamp, this.config.region);
86
+ const signature = toHex(await hmacSha256Raw(signingKey, stringToSign));
87
+ const authorization = [
88
+ `AWS4-HMAC-SHA256 Credential=${this.config.accessKeyId}/${credentialScope}`,
89
+ `SignedHeaders=${signedHeaders}`,
90
+ `Signature=${signature}`,
91
+ ].join(", ");
92
+ return {
93
+ endpoint: endpoint.toString(),
94
+ headers: Object.fromEntries([
95
+ ...headers,
96
+ ["authorization", authorization],
97
+ ]),
98
+ };
99
+ }
100
+ async callAws(target, body) {
101
+ const signed = await this.signedHeaders(target, body);
102
+ const res = await fetch(signed.endpoint, {
103
+ method: "POST",
104
+ headers: signed.headers,
105
+ body,
106
+ });
107
+ if (!res.ok) {
108
+ const text = await res.text();
109
+ throw new Error(`AWS KMS ${target} failed (${res.status}): ${text}`);
110
+ }
111
+ return (await res.json());
112
+ }
113
+ async encrypt(plaintext, key) {
114
+ const body = JSON.stringify({
115
+ KeyId: this.resolveKeyId(key),
116
+ Plaintext: btoa(plaintext),
117
+ });
118
+ const data = await this.callAws("TrentService.Encrypt", body);
119
+ return `${PREFIX}${data.CiphertextBlob}`;
120
+ }
121
+ async decrypt(ciphertext, key) {
122
+ if (!ciphertext.startsWith(PREFIX)) {
123
+ throw new Error(`AwsKmsProvider: ciphertext missing "${PREFIX}" prefix — was it encrypted by a different provider?`);
124
+ }
125
+ const body = JSON.stringify({
126
+ KeyId: this.resolveKeyId(key),
127
+ CiphertextBlob: ciphertext.slice(PREFIX.length),
128
+ });
129
+ const data = await this.callAws("TrentService.Decrypt", body);
130
+ return atob(data.Plaintext);
131
+ }
132
+ }
133
+ //# sourceMappingURL=kms-aws.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms-aws.js","sourceRoot":"","sources":["../src/kms-aws.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,MAAM,GAAG,SAAS,CAAA;AACxB,MAAM,OAAO,GAAG,KAAK,CAAA;AACrB,MAAM,iBAAiB,GAAG,4BAA4B,CAAA;AAWtD,SAAS,KAAK,CAAC,KAAiB;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACrF,OAAO,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAe,EAAE,OAAe;IAC3D,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC1C,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACZ,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC7C,KAAK,EACL,GAAG,CAAC,MAAM,EACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAChG,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,eAAuB,EACvB,SAAiB,EACjB,MAAc;IAEd,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,eAAe,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IAChG,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACtD,OAAO,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAC3D,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3B,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,OAAO,cAAc;IAGI;IAFpB,IAAI,GAAG,KAAc,CAAA;IAE9B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE7C,YAAY,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,eAAe,IAAI,CAAC,MAAM,CAAC,MAAM,iBAAiB,CAAA;IACnF,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,IAAY;QACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;QAChD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;QAEzC,MAAM,OAAO,GAA4B;YACvC,CAAC,cAAc,EAAE,iBAAiB,CAAC;YACnC,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC,YAAY,EAAE,OAAO,CAAC;YACvB,CAAC,cAAc,EAAE,MAAM,CAAC;SACzB,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7D,MAAM,gBAAgB,GAAG;YACvB,MAAM;YACN,QAAQ,CAAC,QAAQ,IAAI,GAAG;YACxB,EAAE;YACF,gBAAgB;YAChB,aAAa;YACb,WAAW;SACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,eAAe,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,eAAe,CAAA;QACpF,MAAM,YAAY,GAAG;YACnB,kBAAkB;YAClB,OAAO;YACP,eAAe;YACf,MAAM,SAAS,CAAC,gBAAgB,CAAC;SAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,UAAU,GAAG,MAAM,gBAAgB,CACvC,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,SAAS,EACT,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAA;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;QACtE,MAAM,aAAa,GAAG;YACpB,+BAA+B,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,eAAe,EAAE;YAC3E,iBAAiB,aAAa,EAAE;YAChC,aAAa,SAAS,EAAE;SACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC;gBAC1B,GAAG,OAAO;gBACV,CAAC,eAAe,EAAE,aAAa,CAAC;aACjC,CAAC;SACH,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAY,MAAuD,EAAE,IAAY;QACpG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAc,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,GAAW;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;SAC3B,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAA6B,sBAAsB,EAAE,IAAI,CAAC,CAAA;QACzF,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,GAAW;QAC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,uCAAuC,MAAM,sDAAsD,CACpG,CAAA;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAC7B,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;SAChD,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAwB,sBAAsB,EAAE,IAAI,CAAC,CAAA;QACpF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7B,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Edge-compatible GCP KMS encryption/decryption using Web Crypto API.
3
+ * No Node.js dependencies — works in Cloudflare Workers.
4
+ */
5
+ /**
6
+ * Creates a signed JWT assertion and exchanges it at Google's OAuth2 endpoint
7
+ * for a short-lived access token. Caches the token at module level.
8
+ */
9
+ export declare function getGcpAccessToken(email: string, privateKeyPem: string): Promise<string>;
10
+ /**
11
+ * Encrypt plaintext using GCP Cloud KMS.
12
+ * Returns base64 ciphertext string.
13
+ */
14
+ export declare function kmsEncrypt(plaintext: string, keyName: string, accessToken: string): Promise<string>;
15
+ /**
16
+ * Decrypt ciphertext using GCP Cloud KMS.
17
+ * Returns plaintext string.
18
+ */
19
+ export declare function kmsDecrypt(ciphertext: string, keyName: string, accessToken: string): Promise<string>;
20
+ //# sourceMappingURL=kms-crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms-crypto.d.ts","sourceRoot":"","sources":["../src/kms-crypto.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0CH;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C7F;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAiBjB"}