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