@polyglot-bundles/ms-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
|
+
* Malay Word Lists
|
|
3
|
+
*
|
|
4
|
+
* CEFR-aligned vocabulary collections for Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 Malay 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 malayWordListCatalog = 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
|
+
} = malayWordListCatalog;
|
|
498
|
+
|
|
499
|
+
export type { ExamGrade, WordListDifficulty, WordListItem, WordListSet };
|