@polyglot-bundles/vi-word-lists 0.1.1
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.
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +471 -0
- package/dist/index.js.map +1 -0
- package/dist/levels/a1.d.ts +10 -0
- package/dist/levels/a1.d.ts.map +1 -0
- package/dist/levels/a1.js +7 -0
- package/dist/levels/a1.js.map +1 -0
- package/package.json +51 -0
- package/src/index.ts +499 -0
- package/src/json/a1/a1-vocabulary-01.json +412 -0
- package/src/json/a1/a1-vocabulary-02.json +412 -0
- package/src/json/a1/a1-vocabulary-03.json +412 -0
- package/src/json/a1/a1-vocabulary-04.json +412 -0
- package/src/json/a1/a1-vocabulary-05.json +20 -0
- package/src/json/a1/basic-greetings.json +60 -0
- package/src/json/a1/colors.json +60 -0
- package/src/json/a1/family-members.json +50 -0
- package/src/json/a1/food-basics.json +60 -0
- package/src/json/a1/numbers-1-10.json +60 -0
- package/src/json/a2/a2-vocabulary-01.json +412 -0
- package/src/json/a2/a2-vocabulary-02.json +412 -0
- package/src/json/a2/a2-vocabulary-03.json +412 -0
- package/src/json/a2/a2-vocabulary-04.json +412 -0
- package/src/json/a2/a2-vocabulary-05.json +412 -0
- package/src/json/a2/a2-vocabulary-06.json +412 -0
- package/src/json/a2/a2-vocabulary-07.json +412 -0
- package/src/json/a2/a2-vocabulary-08.json +412 -0
- package/src/json/a2/a2-vocabulary-09.json +412 -0
- package/src/json/a2/a2-vocabulary-10.json +412 -0
- package/src/json/a2/a2-vocabulary-11.json +412 -0
- package/src/json/a2/a2-vocabulary-12.json +412 -0
- package/src/json/b1/b1-vocabulary-01.json +412 -0
- package/src/json/b1/b1-vocabulary-02.json +412 -0
- package/src/json/b1/b1-vocabulary-03.json +412 -0
- package/src/json/b1/b1-vocabulary-04.json +412 -0
- package/src/json/b1/b1-vocabulary-05.json +412 -0
- package/src/json/b1/b1-vocabulary-06.json +412 -0
- package/src/json/b1/b1-vocabulary-07.json +412 -0
- package/src/json/b1/b1-vocabulary-08.json +412 -0
- package/src/json/b1/b1-vocabulary-09.json +412 -0
- package/src/json/b1/b1-vocabulary-10.json +412 -0
- package/src/json/b1/b1-vocabulary-11.json +412 -0
- package/src/json/b1/b1-vocabulary-12.json +412 -0
- package/src/json/b1/b1-vocabulary-13.json +412 -0
- package/src/json/b1/b1-vocabulary-14.json +412 -0
- package/src/json/b1/b1-vocabulary-15.json +412 -0
- package/src/json/b1/b1-vocabulary-16.json +412 -0
- package/src/json/b1/b1-vocabulary-17.json +412 -0
- package/src/json/b1/b1-vocabulary-18.json +412 -0
- package/src/json/b1/b1-vocabulary-19.json +412 -0
- package/src/json/b1/b1-vocabulary-20.json +412 -0
- package/src/json/b1/b1-vocabulary-21.json +412 -0
- package/src/json/b1/b1-vocabulary-22.json +412 -0
- package/src/json/b1/b1-vocabulary-23.json +412 -0
- package/src/json/b1/b1-vocabulary-24.json +404 -0
- package/src/levels/a1.ts +23 -0
package/src/index.ts
ADDED
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vietnamese Word Lists
|
|
3
|
+
*
|
|
4
|
+
* CEFR-aligned vocabulary collections for Vietnamese language learning.
|
|
5
|
+
* Uses descriptor-based lazy loading: metadata is eager, each set's
|
|
6
|
+
* JSON is loaded on demand via `descriptor.load()`.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
createWordListCatalog,
|
|
11
|
+
jsonDescriptor,
|
|
12
|
+
type ExamGrade,
|
|
13
|
+
type WordListDifficulty,
|
|
14
|
+
type WordListItem,
|
|
15
|
+
type WordListSet,
|
|
16
|
+
} from "@syllst/word-lists";
|
|
17
|
+
|
|
18
|
+
// ─── Sources ───────────────────────────────────────────────────────────────
|
|
19
|
+
|
|
20
|
+
const SUBTITLE_FREQUENCY_LIST = { name: "Subtitle frequency list", url: "https://github.com/hermitdave/FrequencyWords" };
|
|
21
|
+
const UNKNOWN_SOURCE = { name: "Unknown source" };
|
|
22
|
+
|
|
23
|
+
// ─── Descriptors ───────────────────────────────────────────────────────────
|
|
24
|
+
|
|
25
|
+
const descriptors = [
|
|
26
|
+
jsonDescriptor({
|
|
27
|
+
id: "a1-vocabulary-01",
|
|
28
|
+
name: "A1 Vocabulary 01",
|
|
29
|
+
description: "A1 level Vietnamese frequency vocabulary (50 words)",
|
|
30
|
+
examGrade: "A1",
|
|
31
|
+
category: "general",
|
|
32
|
+
difficulty: "beginner",
|
|
33
|
+
itemCount: 50,
|
|
34
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
35
|
+
}, "./json/a1/a1-vocabulary-01.json"),
|
|
36
|
+
jsonDescriptor({
|
|
37
|
+
id: "a1-vocabulary-02",
|
|
38
|
+
name: "A1 Vocabulary 02",
|
|
39
|
+
description: "A1 level Vietnamese frequency vocabulary (50 words)",
|
|
40
|
+
examGrade: "A1",
|
|
41
|
+
category: "general",
|
|
42
|
+
difficulty: "beginner",
|
|
43
|
+
itemCount: 50,
|
|
44
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
45
|
+
}, "./json/a1/a1-vocabulary-02.json"),
|
|
46
|
+
jsonDescriptor({
|
|
47
|
+
id: "a1-vocabulary-03",
|
|
48
|
+
name: "A1 Vocabulary 03",
|
|
49
|
+
description: "A1 level Vietnamese frequency vocabulary (50 words)",
|
|
50
|
+
examGrade: "A1",
|
|
51
|
+
category: "general",
|
|
52
|
+
difficulty: "beginner",
|
|
53
|
+
itemCount: 50,
|
|
54
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
55
|
+
}, "./json/a1/a1-vocabulary-03.json"),
|
|
56
|
+
jsonDescriptor({
|
|
57
|
+
id: "a1-vocabulary-04",
|
|
58
|
+
name: "A1 Vocabulary 04",
|
|
59
|
+
description: "A1 level Vietnamese frequency vocabulary (50 words)",
|
|
60
|
+
examGrade: "A1",
|
|
61
|
+
category: "general",
|
|
62
|
+
difficulty: "beginner",
|
|
63
|
+
itemCount: 50,
|
|
64
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
65
|
+
}, "./json/a1/a1-vocabulary-04.json"),
|
|
66
|
+
jsonDescriptor({
|
|
67
|
+
id: "a1-vocabulary-05",
|
|
68
|
+
name: "A1 Vocabulary 05",
|
|
69
|
+
description: "A1 level Vietnamese frequency vocabulary (1 words)",
|
|
70
|
+
examGrade: "A1",
|
|
71
|
+
category: "general",
|
|
72
|
+
difficulty: "beginner",
|
|
73
|
+
itemCount: 1,
|
|
74
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
75
|
+
}, "./json/a1/a1-vocabulary-05.json"),
|
|
76
|
+
jsonDescriptor({
|
|
77
|
+
id: "a1-basic-greetings",
|
|
78
|
+
name: "Basic Greetings",
|
|
79
|
+
description: "Basic Greetings vocabulary list",
|
|
80
|
+
examGrade: "A1",
|
|
81
|
+
category: "general",
|
|
82
|
+
difficulty: "beginner",
|
|
83
|
+
itemCount: 10,
|
|
84
|
+
source: UNKNOWN_SOURCE,
|
|
85
|
+
}, "./json/a1/basic-greetings.json"),
|
|
86
|
+
jsonDescriptor({
|
|
87
|
+
id: "a1-colors",
|
|
88
|
+
name: "Colors",
|
|
89
|
+
description: "Colors vocabulary list",
|
|
90
|
+
examGrade: "A1",
|
|
91
|
+
category: "general",
|
|
92
|
+
difficulty: "beginner",
|
|
93
|
+
itemCount: 10,
|
|
94
|
+
source: UNKNOWN_SOURCE,
|
|
95
|
+
}, "./json/a1/colors.json"),
|
|
96
|
+
jsonDescriptor({
|
|
97
|
+
id: "a1-family-members",
|
|
98
|
+
name: "Family Members",
|
|
99
|
+
description: "Family Members vocabulary list",
|
|
100
|
+
examGrade: "A1",
|
|
101
|
+
category: "general",
|
|
102
|
+
difficulty: "beginner",
|
|
103
|
+
itemCount: 8,
|
|
104
|
+
source: UNKNOWN_SOURCE,
|
|
105
|
+
}, "./json/a1/family-members.json"),
|
|
106
|
+
jsonDescriptor({
|
|
107
|
+
id: "a1-food-basics",
|
|
108
|
+
name: "Food Basics",
|
|
109
|
+
description: "Food Basics vocabulary list",
|
|
110
|
+
examGrade: "A1",
|
|
111
|
+
category: "general",
|
|
112
|
+
difficulty: "beginner",
|
|
113
|
+
itemCount: 10,
|
|
114
|
+
source: UNKNOWN_SOURCE,
|
|
115
|
+
}, "./json/a1/food-basics.json"),
|
|
116
|
+
jsonDescriptor({
|
|
117
|
+
id: "a1-numbers-1-10",
|
|
118
|
+
name: "Numbers 1-10",
|
|
119
|
+
description: "Numbers 1-10 vocabulary list",
|
|
120
|
+
examGrade: "A1",
|
|
121
|
+
category: "general",
|
|
122
|
+
difficulty: "beginner",
|
|
123
|
+
itemCount: 10,
|
|
124
|
+
source: UNKNOWN_SOURCE,
|
|
125
|
+
}, "./json/a1/numbers-1-10.json"),
|
|
126
|
+
jsonDescriptor({
|
|
127
|
+
id: "a2-vocabulary-01",
|
|
128
|
+
name: "A2 Vocabulary 01",
|
|
129
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
130
|
+
examGrade: "A2",
|
|
131
|
+
category: "general",
|
|
132
|
+
difficulty: "intermediate",
|
|
133
|
+
itemCount: 50,
|
|
134
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
135
|
+
}, "./json/a2/a2-vocabulary-01.json"),
|
|
136
|
+
jsonDescriptor({
|
|
137
|
+
id: "a2-vocabulary-02",
|
|
138
|
+
name: "A2 Vocabulary 02",
|
|
139
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
140
|
+
examGrade: "A2",
|
|
141
|
+
category: "general",
|
|
142
|
+
difficulty: "intermediate",
|
|
143
|
+
itemCount: 50,
|
|
144
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
145
|
+
}, "./json/a2/a2-vocabulary-02.json"),
|
|
146
|
+
jsonDescriptor({
|
|
147
|
+
id: "a2-vocabulary-03",
|
|
148
|
+
name: "A2 Vocabulary 03",
|
|
149
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
150
|
+
examGrade: "A2",
|
|
151
|
+
category: "general",
|
|
152
|
+
difficulty: "intermediate",
|
|
153
|
+
itemCount: 50,
|
|
154
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
155
|
+
}, "./json/a2/a2-vocabulary-03.json"),
|
|
156
|
+
jsonDescriptor({
|
|
157
|
+
id: "a2-vocabulary-04",
|
|
158
|
+
name: "A2 Vocabulary 04",
|
|
159
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
160
|
+
examGrade: "A2",
|
|
161
|
+
category: "general",
|
|
162
|
+
difficulty: "intermediate",
|
|
163
|
+
itemCount: 50,
|
|
164
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
165
|
+
}, "./json/a2/a2-vocabulary-04.json"),
|
|
166
|
+
jsonDescriptor({
|
|
167
|
+
id: "a2-vocabulary-05",
|
|
168
|
+
name: "A2 Vocabulary 05",
|
|
169
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
170
|
+
examGrade: "A2",
|
|
171
|
+
category: "general",
|
|
172
|
+
difficulty: "intermediate",
|
|
173
|
+
itemCount: 50,
|
|
174
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
175
|
+
}, "./json/a2/a2-vocabulary-05.json"),
|
|
176
|
+
jsonDescriptor({
|
|
177
|
+
id: "a2-vocabulary-06",
|
|
178
|
+
name: "A2 Vocabulary 06",
|
|
179
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
180
|
+
examGrade: "A2",
|
|
181
|
+
category: "general",
|
|
182
|
+
difficulty: "intermediate",
|
|
183
|
+
itemCount: 50,
|
|
184
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
185
|
+
}, "./json/a2/a2-vocabulary-06.json"),
|
|
186
|
+
jsonDescriptor({
|
|
187
|
+
id: "a2-vocabulary-07",
|
|
188
|
+
name: "A2 Vocabulary 07",
|
|
189
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
190
|
+
examGrade: "A2",
|
|
191
|
+
category: "general",
|
|
192
|
+
difficulty: "intermediate",
|
|
193
|
+
itemCount: 50,
|
|
194
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
195
|
+
}, "./json/a2/a2-vocabulary-07.json"),
|
|
196
|
+
jsonDescriptor({
|
|
197
|
+
id: "a2-vocabulary-08",
|
|
198
|
+
name: "A2 Vocabulary 08",
|
|
199
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
200
|
+
examGrade: "A2",
|
|
201
|
+
category: "general",
|
|
202
|
+
difficulty: "intermediate",
|
|
203
|
+
itemCount: 50,
|
|
204
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
205
|
+
}, "./json/a2/a2-vocabulary-08.json"),
|
|
206
|
+
jsonDescriptor({
|
|
207
|
+
id: "a2-vocabulary-09",
|
|
208
|
+
name: "A2 Vocabulary 09",
|
|
209
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
210
|
+
examGrade: "A2",
|
|
211
|
+
category: "general",
|
|
212
|
+
difficulty: "intermediate",
|
|
213
|
+
itemCount: 50,
|
|
214
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
215
|
+
}, "./json/a2/a2-vocabulary-09.json"),
|
|
216
|
+
jsonDescriptor({
|
|
217
|
+
id: "a2-vocabulary-10",
|
|
218
|
+
name: "A2 Vocabulary 10",
|
|
219
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
220
|
+
examGrade: "A2",
|
|
221
|
+
category: "general",
|
|
222
|
+
difficulty: "intermediate",
|
|
223
|
+
itemCount: 50,
|
|
224
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
225
|
+
}, "./json/a2/a2-vocabulary-10.json"),
|
|
226
|
+
jsonDescriptor({
|
|
227
|
+
id: "a2-vocabulary-11",
|
|
228
|
+
name: "A2 Vocabulary 11",
|
|
229
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
230
|
+
examGrade: "A2",
|
|
231
|
+
category: "general",
|
|
232
|
+
difficulty: "intermediate",
|
|
233
|
+
itemCount: 50,
|
|
234
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
235
|
+
}, "./json/a2/a2-vocabulary-11.json"),
|
|
236
|
+
jsonDescriptor({
|
|
237
|
+
id: "a2-vocabulary-12",
|
|
238
|
+
name: "A2 Vocabulary 12",
|
|
239
|
+
description: "A2 level Vietnamese frequency vocabulary (50 words)",
|
|
240
|
+
examGrade: "A2",
|
|
241
|
+
category: "general",
|
|
242
|
+
difficulty: "intermediate",
|
|
243
|
+
itemCount: 50,
|
|
244
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
245
|
+
}, "./json/a2/a2-vocabulary-12.json"),
|
|
246
|
+
jsonDescriptor({
|
|
247
|
+
id: "b1-vocabulary-01",
|
|
248
|
+
name: "B1 Vocabulary 01",
|
|
249
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
250
|
+
examGrade: "B1",
|
|
251
|
+
category: "general",
|
|
252
|
+
difficulty: "intermediate",
|
|
253
|
+
itemCount: 50,
|
|
254
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
255
|
+
}, "./json/b1/b1-vocabulary-01.json"),
|
|
256
|
+
jsonDescriptor({
|
|
257
|
+
id: "b1-vocabulary-02",
|
|
258
|
+
name: "B1 Vocabulary 02",
|
|
259
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
260
|
+
examGrade: "B1",
|
|
261
|
+
category: "general",
|
|
262
|
+
difficulty: "intermediate",
|
|
263
|
+
itemCount: 50,
|
|
264
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
265
|
+
}, "./json/b1/b1-vocabulary-02.json"),
|
|
266
|
+
jsonDescriptor({
|
|
267
|
+
id: "b1-vocabulary-03",
|
|
268
|
+
name: "B1 Vocabulary 03",
|
|
269
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
270
|
+
examGrade: "B1",
|
|
271
|
+
category: "general",
|
|
272
|
+
difficulty: "intermediate",
|
|
273
|
+
itemCount: 50,
|
|
274
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
275
|
+
}, "./json/b1/b1-vocabulary-03.json"),
|
|
276
|
+
jsonDescriptor({
|
|
277
|
+
id: "b1-vocabulary-04",
|
|
278
|
+
name: "B1 Vocabulary 04",
|
|
279
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
280
|
+
examGrade: "B1",
|
|
281
|
+
category: "general",
|
|
282
|
+
difficulty: "intermediate",
|
|
283
|
+
itemCount: 50,
|
|
284
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
285
|
+
}, "./json/b1/b1-vocabulary-04.json"),
|
|
286
|
+
jsonDescriptor({
|
|
287
|
+
id: "b1-vocabulary-05",
|
|
288
|
+
name: "B1 Vocabulary 05",
|
|
289
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
290
|
+
examGrade: "B1",
|
|
291
|
+
category: "general",
|
|
292
|
+
difficulty: "intermediate",
|
|
293
|
+
itemCount: 50,
|
|
294
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
295
|
+
}, "./json/b1/b1-vocabulary-05.json"),
|
|
296
|
+
jsonDescriptor({
|
|
297
|
+
id: "b1-vocabulary-06",
|
|
298
|
+
name: "B1 Vocabulary 06",
|
|
299
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
300
|
+
examGrade: "B1",
|
|
301
|
+
category: "general",
|
|
302
|
+
difficulty: "intermediate",
|
|
303
|
+
itemCount: 50,
|
|
304
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
305
|
+
}, "./json/b1/b1-vocabulary-06.json"),
|
|
306
|
+
jsonDescriptor({
|
|
307
|
+
id: "b1-vocabulary-07",
|
|
308
|
+
name: "B1 Vocabulary 07",
|
|
309
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
310
|
+
examGrade: "B1",
|
|
311
|
+
category: "general",
|
|
312
|
+
difficulty: "intermediate",
|
|
313
|
+
itemCount: 50,
|
|
314
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
315
|
+
}, "./json/b1/b1-vocabulary-07.json"),
|
|
316
|
+
jsonDescriptor({
|
|
317
|
+
id: "b1-vocabulary-08",
|
|
318
|
+
name: "B1 Vocabulary 08",
|
|
319
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
320
|
+
examGrade: "B1",
|
|
321
|
+
category: "general",
|
|
322
|
+
difficulty: "intermediate",
|
|
323
|
+
itemCount: 50,
|
|
324
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
325
|
+
}, "./json/b1/b1-vocabulary-08.json"),
|
|
326
|
+
jsonDescriptor({
|
|
327
|
+
id: "b1-vocabulary-09",
|
|
328
|
+
name: "B1 Vocabulary 09",
|
|
329
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
330
|
+
examGrade: "B1",
|
|
331
|
+
category: "general",
|
|
332
|
+
difficulty: "intermediate",
|
|
333
|
+
itemCount: 50,
|
|
334
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
335
|
+
}, "./json/b1/b1-vocabulary-09.json"),
|
|
336
|
+
jsonDescriptor({
|
|
337
|
+
id: "b1-vocabulary-10",
|
|
338
|
+
name: "B1 Vocabulary 10",
|
|
339
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
340
|
+
examGrade: "B1",
|
|
341
|
+
category: "general",
|
|
342
|
+
difficulty: "intermediate",
|
|
343
|
+
itemCount: 50,
|
|
344
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
345
|
+
}, "./json/b1/b1-vocabulary-10.json"),
|
|
346
|
+
jsonDescriptor({
|
|
347
|
+
id: "b1-vocabulary-11",
|
|
348
|
+
name: "B1 Vocabulary 11",
|
|
349
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
350
|
+
examGrade: "B1",
|
|
351
|
+
category: "general",
|
|
352
|
+
difficulty: "intermediate",
|
|
353
|
+
itemCount: 50,
|
|
354
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
355
|
+
}, "./json/b1/b1-vocabulary-11.json"),
|
|
356
|
+
jsonDescriptor({
|
|
357
|
+
id: "b1-vocabulary-12",
|
|
358
|
+
name: "B1 Vocabulary 12",
|
|
359
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
360
|
+
examGrade: "B1",
|
|
361
|
+
category: "general",
|
|
362
|
+
difficulty: "intermediate",
|
|
363
|
+
itemCount: 50,
|
|
364
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
365
|
+
}, "./json/b1/b1-vocabulary-12.json"),
|
|
366
|
+
jsonDescriptor({
|
|
367
|
+
id: "b1-vocabulary-13",
|
|
368
|
+
name: "B1 Vocabulary 13",
|
|
369
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
370
|
+
examGrade: "B1",
|
|
371
|
+
category: "general",
|
|
372
|
+
difficulty: "intermediate",
|
|
373
|
+
itemCount: 50,
|
|
374
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
375
|
+
}, "./json/b1/b1-vocabulary-13.json"),
|
|
376
|
+
jsonDescriptor({
|
|
377
|
+
id: "b1-vocabulary-14",
|
|
378
|
+
name: "B1 Vocabulary 14",
|
|
379
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
380
|
+
examGrade: "B1",
|
|
381
|
+
category: "general",
|
|
382
|
+
difficulty: "intermediate",
|
|
383
|
+
itemCount: 50,
|
|
384
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
385
|
+
}, "./json/b1/b1-vocabulary-14.json"),
|
|
386
|
+
jsonDescriptor({
|
|
387
|
+
id: "b1-vocabulary-15",
|
|
388
|
+
name: "B1 Vocabulary 15",
|
|
389
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
390
|
+
examGrade: "B1",
|
|
391
|
+
category: "general",
|
|
392
|
+
difficulty: "intermediate",
|
|
393
|
+
itemCount: 50,
|
|
394
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
395
|
+
}, "./json/b1/b1-vocabulary-15.json"),
|
|
396
|
+
jsonDescriptor({
|
|
397
|
+
id: "b1-vocabulary-16",
|
|
398
|
+
name: "B1 Vocabulary 16",
|
|
399
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
400
|
+
examGrade: "B1",
|
|
401
|
+
category: "general",
|
|
402
|
+
difficulty: "intermediate",
|
|
403
|
+
itemCount: 50,
|
|
404
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
405
|
+
}, "./json/b1/b1-vocabulary-16.json"),
|
|
406
|
+
jsonDescriptor({
|
|
407
|
+
id: "b1-vocabulary-17",
|
|
408
|
+
name: "B1 Vocabulary 17",
|
|
409
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
410
|
+
examGrade: "B1",
|
|
411
|
+
category: "general",
|
|
412
|
+
difficulty: "intermediate",
|
|
413
|
+
itemCount: 50,
|
|
414
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
415
|
+
}, "./json/b1/b1-vocabulary-17.json"),
|
|
416
|
+
jsonDescriptor({
|
|
417
|
+
id: "b1-vocabulary-18",
|
|
418
|
+
name: "B1 Vocabulary 18",
|
|
419
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
420
|
+
examGrade: "B1",
|
|
421
|
+
category: "general",
|
|
422
|
+
difficulty: "intermediate",
|
|
423
|
+
itemCount: 50,
|
|
424
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
425
|
+
}, "./json/b1/b1-vocabulary-18.json"),
|
|
426
|
+
jsonDescriptor({
|
|
427
|
+
id: "b1-vocabulary-19",
|
|
428
|
+
name: "B1 Vocabulary 19",
|
|
429
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
430
|
+
examGrade: "B1",
|
|
431
|
+
category: "general",
|
|
432
|
+
difficulty: "intermediate",
|
|
433
|
+
itemCount: 50,
|
|
434
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
435
|
+
}, "./json/b1/b1-vocabulary-19.json"),
|
|
436
|
+
jsonDescriptor({
|
|
437
|
+
id: "b1-vocabulary-20",
|
|
438
|
+
name: "B1 Vocabulary 20",
|
|
439
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
440
|
+
examGrade: "B1",
|
|
441
|
+
category: "general",
|
|
442
|
+
difficulty: "intermediate",
|
|
443
|
+
itemCount: 50,
|
|
444
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
445
|
+
}, "./json/b1/b1-vocabulary-20.json"),
|
|
446
|
+
jsonDescriptor({
|
|
447
|
+
id: "b1-vocabulary-21",
|
|
448
|
+
name: "B1 Vocabulary 21",
|
|
449
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
450
|
+
examGrade: "B1",
|
|
451
|
+
category: "general",
|
|
452
|
+
difficulty: "intermediate",
|
|
453
|
+
itemCount: 50,
|
|
454
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
455
|
+
}, "./json/b1/b1-vocabulary-21.json"),
|
|
456
|
+
jsonDescriptor({
|
|
457
|
+
id: "b1-vocabulary-22",
|
|
458
|
+
name: "B1 Vocabulary 22",
|
|
459
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
460
|
+
examGrade: "B1",
|
|
461
|
+
category: "general",
|
|
462
|
+
difficulty: "intermediate",
|
|
463
|
+
itemCount: 50,
|
|
464
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
465
|
+
}, "./json/b1/b1-vocabulary-22.json"),
|
|
466
|
+
jsonDescriptor({
|
|
467
|
+
id: "b1-vocabulary-23",
|
|
468
|
+
name: "B1 Vocabulary 23",
|
|
469
|
+
description: "B1 level Vietnamese frequency vocabulary (50 words)",
|
|
470
|
+
examGrade: "B1",
|
|
471
|
+
category: "general",
|
|
472
|
+
difficulty: "intermediate",
|
|
473
|
+
itemCount: 50,
|
|
474
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
475
|
+
}, "./json/b1/b1-vocabulary-23.json"),
|
|
476
|
+
jsonDescriptor({
|
|
477
|
+
id: "b1-vocabulary-24",
|
|
478
|
+
name: "B1 Vocabulary 24",
|
|
479
|
+
description: "B1 level Vietnamese frequency vocabulary (49 words)",
|
|
480
|
+
examGrade: "B1",
|
|
481
|
+
category: "general",
|
|
482
|
+
difficulty: "intermediate",
|
|
483
|
+
itemCount: 49,
|
|
484
|
+
source: SUBTITLE_FREQUENCY_LIST,
|
|
485
|
+
}, "./json/b1/b1-vocabulary-24.json"),
|
|
486
|
+
] as const;
|
|
487
|
+
|
|
488
|
+
export const vietnameseWordListCatalog = createWordListCatalog([...descriptors]);
|
|
489
|
+
|
|
490
|
+
// Backward-compatible re-exports (deprecated — prefer catalog API)
|
|
491
|
+
export const {
|
|
492
|
+
getDescriptorById,
|
|
493
|
+
getDescriptorsByExamGrade,
|
|
494
|
+
getDescriptorsByCategory,
|
|
495
|
+
getDescriptorsByDifficulty,
|
|
496
|
+
getCategories,
|
|
497
|
+
} = vietnameseWordListCatalog;
|
|
498
|
+
|
|
499
|
+
export type { ExamGrade, WordListDifficulty, WordListItem, WordListSet };
|