Skip to content

Commit fd09595

Browse files
committed
refactor: extract ISO country code schema
1 parent 93f6913 commit fd09595

3 files changed

Lines changed: 260 additions & 252 deletions

File tree

packages/core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export * from './helpers/normalizeRecurringPeriod.js';
22
export * from './helpers/resolvePeriods.js';
33
export * from './schema/common.js';
4+
export * from './schema/IsoCountryCode.js';
45
export * from './schema/issue/bundle.js';
56
export * from './schema/issue/cause.js';
67
export * from './schema/issue/claim.js';
Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
import z from 'zod';
2+
3+
// ISO 3166-1 alpha-2 country codes. Keep this list in one place so station
4+
// schemas can validate real country codes without a runtime dependency.
5+
export const IsoCountryCodeSchema = z.enum([
6+
'AD',
7+
'AE',
8+
'AF',
9+
'AG',
10+
'AI',
11+
'AL',
12+
'AM',
13+
'AO',
14+
'AQ',
15+
'AR',
16+
'AS',
17+
'AT',
18+
'AU',
19+
'AW',
20+
'AX',
21+
'AZ',
22+
'BA',
23+
'BB',
24+
'BD',
25+
'BE',
26+
'BF',
27+
'BG',
28+
'BH',
29+
'BI',
30+
'BJ',
31+
'BL',
32+
'BM',
33+
'BN',
34+
'BO',
35+
'BQ',
36+
'BR',
37+
'BS',
38+
'BT',
39+
'BV',
40+
'BW',
41+
'BY',
42+
'BZ',
43+
'CA',
44+
'CC',
45+
'CD',
46+
'CF',
47+
'CG',
48+
'CH',
49+
'CI',
50+
'CK',
51+
'CL',
52+
'CM',
53+
'CN',
54+
'CO',
55+
'CR',
56+
'CU',
57+
'CV',
58+
'CW',
59+
'CX',
60+
'CY',
61+
'CZ',
62+
'DE',
63+
'DJ',
64+
'DK',
65+
'DM',
66+
'DO',
67+
'DZ',
68+
'EC',
69+
'EE',
70+
'EG',
71+
'EH',
72+
'ER',
73+
'ES',
74+
'ET',
75+
'FI',
76+
'FJ',
77+
'FK',
78+
'FM',
79+
'FO',
80+
'FR',
81+
'GA',
82+
'GB',
83+
'GD',
84+
'GE',
85+
'GF',
86+
'GG',
87+
'GH',
88+
'GI',
89+
'GL',
90+
'GM',
91+
'GN',
92+
'GP',
93+
'GQ',
94+
'GR',
95+
'GS',
96+
'GT',
97+
'GU',
98+
'GW',
99+
'GY',
100+
'HK',
101+
'HM',
102+
'HN',
103+
'HR',
104+
'HT',
105+
'HU',
106+
'ID',
107+
'IE',
108+
'IL',
109+
'IM',
110+
'IN',
111+
'IO',
112+
'IQ',
113+
'IR',
114+
'IS',
115+
'IT',
116+
'JE',
117+
'JM',
118+
'JO',
119+
'JP',
120+
'KE',
121+
'KG',
122+
'KH',
123+
'KI',
124+
'KM',
125+
'KN',
126+
'KP',
127+
'KR',
128+
'KW',
129+
'KY',
130+
'KZ',
131+
'LA',
132+
'LB',
133+
'LC',
134+
'LI',
135+
'LK',
136+
'LR',
137+
'LS',
138+
'LT',
139+
'LU',
140+
'LV',
141+
'LY',
142+
'MA',
143+
'MC',
144+
'MD',
145+
'ME',
146+
'MF',
147+
'MG',
148+
'MH',
149+
'MK',
150+
'ML',
151+
'MM',
152+
'MN',
153+
'MO',
154+
'MP',
155+
'MQ',
156+
'MR',
157+
'MS',
158+
'MT',
159+
'MU',
160+
'MV',
161+
'MW',
162+
'MX',
163+
'MY',
164+
'MZ',
165+
'NA',
166+
'NC',
167+
'NE',
168+
'NF',
169+
'NG',
170+
'NI',
171+
'NL',
172+
'NO',
173+
'NP',
174+
'NR',
175+
'NU',
176+
'NZ',
177+
'OM',
178+
'PA',
179+
'PE',
180+
'PF',
181+
'PG',
182+
'PH',
183+
'PK',
184+
'PL',
185+
'PM',
186+
'PN',
187+
'PR',
188+
'PS',
189+
'PT',
190+
'PW',
191+
'PY',
192+
'QA',
193+
'RE',
194+
'RO',
195+
'RS',
196+
'RU',
197+
'RW',
198+
'SA',
199+
'SB',
200+
'SC',
201+
'SD',
202+
'SE',
203+
'SG',
204+
'SH',
205+
'SI',
206+
'SJ',
207+
'SK',
208+
'SL',
209+
'SM',
210+
'SN',
211+
'SO',
212+
'SR',
213+
'SS',
214+
'ST',
215+
'SV',
216+
'SX',
217+
'SY',
218+
'SZ',
219+
'TC',
220+
'TD',
221+
'TF',
222+
'TG',
223+
'TH',
224+
'TJ',
225+
'TK',
226+
'TL',
227+
'TM',
228+
'TN',
229+
'TO',
230+
'TR',
231+
'TT',
232+
'TV',
233+
'TW',
234+
'TZ',
235+
'UA',
236+
'UG',
237+
'UM',
238+
'US',
239+
'UY',
240+
'UZ',
241+
'VA',
242+
'VC',
243+
'VE',
244+
'VG',
245+
'VI',
246+
'VN',
247+
'VU',
248+
'WF',
249+
'WS',
250+
'YE',
251+
'YT',
252+
'ZA',
253+
'ZM',
254+
'ZW',
255+
]);
256+
export type IsoCountryCode = z.infer<typeof IsoCountryCodeSchema>;

0 commit comments

Comments
 (0)