@lokascript/domain-learn 2.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 (44) hide show
  1. package/dist/generators/gloss-generator.d.ts +18 -0
  2. package/dist/generators/learn-renderer.d.ts +13 -0
  3. package/dist/generators/sentence-generator.d.ts +34 -0
  4. package/dist/index.cjs +6116 -0
  5. package/dist/index.cjs.map +1 -0
  6. package/dist/index.d.cts +441 -0
  7. package/dist/index.d.ts +55 -0
  8. package/dist/index.js +6056 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/profiles/ar.d.ts +2 -0
  11. package/dist/profiles/de.d.ts +2 -0
  12. package/dist/profiles/en.d.ts +2 -0
  13. package/dist/profiles/es.d.ts +2 -0
  14. package/dist/profiles/fr.d.ts +2 -0
  15. package/dist/profiles/index.d.ts +20 -0
  16. package/dist/profiles/ja.d.ts +2 -0
  17. package/dist/profiles/ko.d.ts +2 -0
  18. package/dist/profiles/pt.d.ts +2 -0
  19. package/dist/profiles/tr.d.ts +2 -0
  20. package/dist/profiles/zh.d.ts +2 -0
  21. package/dist/schemas/index.d.ts +31 -0
  22. package/dist/tokenizers/index.d.ts +23 -0
  23. package/dist/types.d.ts +266 -0
  24. package/package.json +63 -0
  25. package/src/__tests__/schemas.test.ts +145 -0
  26. package/src/__tests__/sentence-generation.test.ts +189 -0
  27. package/src/generators/gloss-generator.ts +145 -0
  28. package/src/generators/learn-renderer.ts +291 -0
  29. package/src/generators/sentence-generator.ts +501 -0
  30. package/src/index.ts +237 -0
  31. package/src/profiles/ar.ts +526 -0
  32. package/src/profiles/de.ts +481 -0
  33. package/src/profiles/en.ts +181 -0
  34. package/src/profiles/es.ts +829 -0
  35. package/src/profiles/fr.ts +466 -0
  36. package/src/profiles/index.ts +34 -0
  37. package/src/profiles/ja.ts +301 -0
  38. package/src/profiles/ko.ts +286 -0
  39. package/src/profiles/pt.ts +484 -0
  40. package/src/profiles/tr.ts +511 -0
  41. package/src/profiles/zh.ts +256 -0
  42. package/src/schemas/index.ts +576 -0
  43. package/src/tokenizers/index.ts +409 -0
  44. package/src/types.ts +321 -0
@@ -0,0 +1,526 @@
1
+ import type { LearnLanguageProfile } from '../types';
2
+
3
+ export const arProfile: LearnLanguageProfile = {
4
+ patternProfile: {
5
+ code: 'ar',
6
+ wordOrder: 'VSO',
7
+ keywords: {
8
+ add: { primary: 'أضف' },
9
+ remove: { primary: 'احذف' },
10
+ toggle: { primary: 'بدّل' },
11
+ put: { primary: 'ضع' },
12
+ set: { primary: 'عيّن' },
13
+ show: { primary: 'أظهر' },
14
+ hide: { primary: 'أخفِ' },
15
+ get: { primary: 'احصل' },
16
+ wait: { primary: 'انتظر' },
17
+ fetch: { primary: 'أحضر' },
18
+ send: { primary: 'أرسل' },
19
+ go: { primary: 'اذهب' },
20
+ increment: { primary: 'زد' },
21
+ decrement: { primary: 'أنقص' },
22
+ take: { primary: 'خذ' },
23
+ },
24
+ },
25
+ morphologyTable: {
26
+ add: {
27
+ root: 'ض-ي-ف',
28
+ form: 'IV',
29
+ past: {
30
+ howa: 'أضافَ',
31
+ hiya: 'أضافَت',
32
+ anta: 'أضَفتَ',
33
+ anti: 'أضَفتِ',
34
+ ana: 'أضَفتُ',
35
+ hum: 'أضافوا',
36
+ nahnu: 'أضَفنا',
37
+ },
38
+ present: {
39
+ howa: 'يُضيفُ',
40
+ hiya: 'تُضيفُ',
41
+ anta: 'تُضيفُ',
42
+ anti: 'تُضيفينَ',
43
+ ana: 'أُضيفُ',
44
+ hum: 'يُضيفونَ',
45
+ nahnu: 'نُضيفُ',
46
+ },
47
+ imperative: {
48
+ ms: 'أضِف',
49
+ fs: 'أضيفي',
50
+ mp: 'أضيفوا',
51
+ },
52
+ activeParticiple: 'مُضيف',
53
+ passiveParticiple: 'مُضاف',
54
+ masdar: 'إضافة',
55
+ },
56
+ remove: {
57
+ root: 'ح-ذ-ف',
58
+ form: 'I',
59
+ past: {
60
+ howa: 'حَذَفَ',
61
+ hiya: 'حَذَفَت',
62
+ anta: 'حَذَفتَ',
63
+ anti: 'حَذَفتِ',
64
+ ana: 'حَذَفتُ',
65
+ hum: 'حَذَفوا',
66
+ nahnu: 'حَذَفنا',
67
+ },
68
+ present: {
69
+ howa: 'يَحذِفُ',
70
+ hiya: 'تَحذِفُ',
71
+ anta: 'تَحذِفُ',
72
+ anti: 'تَحذِفينَ',
73
+ ana: 'أَحذِفُ',
74
+ hum: 'يَحذِفونَ',
75
+ nahnu: 'نَحذِفُ',
76
+ },
77
+ imperative: {
78
+ ms: 'احذِف',
79
+ fs: 'احذِفي',
80
+ mp: 'احذِفوا',
81
+ },
82
+ activeParticiple: 'حاذِف',
83
+ passiveParticiple: 'مَحذوف',
84
+ masdar: 'حَذف',
85
+ },
86
+ toggle: {
87
+ root: 'ب-د-ل',
88
+ form: 'II',
89
+ past: {
90
+ howa: 'بَدَّلَ',
91
+ hiya: 'بَدَّلَت',
92
+ anta: 'بَدَّلتَ',
93
+ anti: 'بَدَّلتِ',
94
+ ana: 'بَدَّلتُ',
95
+ hum: 'بَدَّلوا',
96
+ nahnu: 'بَدَّلنا',
97
+ },
98
+ present: {
99
+ howa: 'يُبَدِّلُ',
100
+ hiya: 'تُبَدِّلُ',
101
+ anta: 'تُبَدِّلُ',
102
+ anti: 'تُبَدِّلينَ',
103
+ ana: 'أُبَدِّلُ',
104
+ hum: 'يُبَدِّلونَ',
105
+ nahnu: 'نُبَدِّلُ',
106
+ },
107
+ imperative: {
108
+ ms: 'بَدِّل',
109
+ fs: 'بَدِّلي',
110
+ mp: 'بَدِّلوا',
111
+ },
112
+ activeParticiple: 'مُبَدِّل',
113
+ passiveParticiple: 'مُبَدَّل',
114
+ masdar: 'تبديل',
115
+ },
116
+ put: {
117
+ root: 'و-ض-ع',
118
+ form: 'I',
119
+ past: {
120
+ howa: 'وَضَعَ',
121
+ hiya: 'وَضَعَت',
122
+ anta: 'وَضَعتَ',
123
+ anti: 'وَضَعتِ',
124
+ ana: 'وَضَعتُ',
125
+ hum: 'وَضَعوا',
126
+ nahnu: 'وَضَعنا',
127
+ },
128
+ present: {
129
+ howa: 'يَضَعُ',
130
+ hiya: 'تَضَعُ',
131
+ anta: 'تَضَعُ',
132
+ anti: 'تَضَعينَ',
133
+ ana: 'أَضَعُ',
134
+ hum: 'يَضَعونَ',
135
+ nahnu: 'نَضَعُ',
136
+ },
137
+ imperative: {
138
+ ms: 'ضَع',
139
+ fs: 'ضَعي',
140
+ mp: 'ضَعوا',
141
+ },
142
+ activeParticiple: 'واضِع',
143
+ passiveParticiple: 'مَوضوع',
144
+ masdar: 'وَضع',
145
+ },
146
+ set: {
147
+ root: 'ع-ي-ن',
148
+ form: 'II',
149
+ past: {
150
+ howa: 'عَيَّنَ',
151
+ hiya: 'عَيَّنَت',
152
+ anta: 'عَيَّنتَ',
153
+ anti: 'عَيَّنتِ',
154
+ ana: 'عَيَّنتُ',
155
+ hum: 'عَيَّنوا',
156
+ nahnu: 'عَيَّنا',
157
+ },
158
+ present: {
159
+ howa: 'يُعَيِّنُ',
160
+ hiya: 'تُعَيِّنُ',
161
+ anta: 'تُعَيِّنُ',
162
+ anti: 'تُعَيِّنينَ',
163
+ ana: 'أُعَيِّنُ',
164
+ hum: 'يُعَيِّنونَ',
165
+ nahnu: 'نُعَيِّنُ',
166
+ },
167
+ imperative: {
168
+ ms: 'عَيِّن',
169
+ fs: 'عَيِّني',
170
+ mp: 'عَيِّنوا',
171
+ },
172
+ activeParticiple: 'مُعَيِّن',
173
+ passiveParticiple: 'مُعَيَّن',
174
+ masdar: 'تعيين',
175
+ },
176
+ show: {
177
+ root: 'ظ-ه-ر',
178
+ form: 'IV',
179
+ past: {
180
+ howa: 'أظهَرَ',
181
+ hiya: 'أظهَرَت',
182
+ anta: 'أظهَرتَ',
183
+ anti: 'أظهَرتِ',
184
+ ana: 'أظهَرتُ',
185
+ hum: 'أظهَروا',
186
+ nahnu: 'أظهَرنا',
187
+ },
188
+ present: {
189
+ howa: 'يُظهِرُ',
190
+ hiya: 'تُظهِرُ',
191
+ anta: 'تُظهِرُ',
192
+ anti: 'تُظهِرينَ',
193
+ ana: 'أُظهِرُ',
194
+ hum: 'يُظهِرونَ',
195
+ nahnu: 'نُظهِرُ',
196
+ },
197
+ imperative: {
198
+ ms: 'أظهِر',
199
+ fs: 'أظهِري',
200
+ mp: 'أظهِروا',
201
+ },
202
+ activeParticiple: 'مُظهِر',
203
+ passiveParticiple: 'مُظهَر',
204
+ masdar: 'إظهار',
205
+ },
206
+ hide: {
207
+ root: 'خ-ف-ي',
208
+ form: 'IV',
209
+ past: {
210
+ howa: 'أخفى',
211
+ hiya: 'أخفَت',
212
+ anta: 'أخفَيتَ',
213
+ anti: 'أخفَيتِ',
214
+ ana: 'أخفَيتُ',
215
+ hum: 'أخفَوا',
216
+ nahnu: 'أخفَينا',
217
+ },
218
+ present: {
219
+ howa: 'يُخفي',
220
+ hiya: 'تُخفي',
221
+ anta: 'تُخفي',
222
+ anti: 'تُخفينَ',
223
+ ana: 'أُخفي',
224
+ hum: 'يُخفونَ',
225
+ nahnu: 'نُخفي',
226
+ },
227
+ imperative: {
228
+ ms: 'أخفِ',
229
+ fs: 'أخفي',
230
+ mp: 'أخفوا',
231
+ },
232
+ activeParticiple: 'مُخفٍ',
233
+ passiveParticiple: 'مُخفى',
234
+ masdar: 'إخفاء',
235
+ },
236
+ get: {
237
+ root: 'ح-ص-ل',
238
+ form: 'I',
239
+ past: {
240
+ howa: 'حَصَلَ',
241
+ hiya: 'حَصَلَت',
242
+ anta: 'حَصَلتَ',
243
+ anti: 'حَصَلتِ',
244
+ ana: 'حَصَلتُ',
245
+ hum: 'حَصَلوا',
246
+ nahnu: 'حَصَلنا',
247
+ },
248
+ present: {
249
+ howa: 'يَحصُلُ',
250
+ hiya: 'تَحصُلُ',
251
+ anta: 'تَحصُلُ',
252
+ anti: 'تَحصُلينَ',
253
+ ana: 'أَحصُلُ',
254
+ hum: 'يَحصُلونَ',
255
+ nahnu: 'نَحصُلُ',
256
+ },
257
+ imperative: {
258
+ ms: 'احصُل',
259
+ fs: 'احصُلي',
260
+ mp: 'احصُلوا',
261
+ },
262
+ activeParticiple: 'حاصِل',
263
+ passiveParticiple: 'مَحصول',
264
+ masdar: 'حُصول',
265
+ },
266
+ wait: {
267
+ root: 'ن-ظ-ر',
268
+ form: 'VIII',
269
+ past: {
270
+ howa: 'انتَظَرَ',
271
+ hiya: 'انتَظَرَت',
272
+ anta: 'انتَظَرتَ',
273
+ anti: 'انتَظَرتِ',
274
+ ana: 'انتَظَرتُ',
275
+ hum: 'انتَظَروا',
276
+ nahnu: 'انتَظَرنا',
277
+ },
278
+ present: {
279
+ howa: 'يَنتَظِرُ',
280
+ hiya: 'تَنتَظِرُ',
281
+ anta: 'تَنتَظِرُ',
282
+ anti: 'تَنتَظِرينَ',
283
+ ana: 'أَنتَظِرُ',
284
+ hum: 'يَنتَظِرونَ',
285
+ nahnu: 'نَنتَظِرُ',
286
+ },
287
+ imperative: {
288
+ ms: 'انتَظِر',
289
+ fs: 'انتَظِري',
290
+ mp: 'انتَظِروا',
291
+ },
292
+ activeParticiple: 'مُنتَظِر',
293
+ passiveParticiple: 'مُنتَظَر',
294
+ masdar: 'انتِظار',
295
+ },
296
+ fetch: {
297
+ root: 'ح-ض-ر',
298
+ form: 'IV',
299
+ past: {
300
+ howa: 'أحضَرَ',
301
+ hiya: 'أحضَرَت',
302
+ anta: 'أحضَرتَ',
303
+ anti: 'أحضَرتِ',
304
+ ana: 'أحضَرتُ',
305
+ hum: 'أحضَروا',
306
+ nahnu: 'أحضَرنا',
307
+ },
308
+ present: {
309
+ howa: 'يُحضِرُ',
310
+ hiya: 'تُحضِرُ',
311
+ anta: 'تُحضِرُ',
312
+ anti: 'تُحضِرينَ',
313
+ ana: 'أُحضِرُ',
314
+ hum: 'يُحضِرونَ',
315
+ nahnu: 'نُحضِرُ',
316
+ },
317
+ imperative: {
318
+ ms: 'أحضِر',
319
+ fs: 'أحضِري',
320
+ mp: 'أحضِروا',
321
+ },
322
+ activeParticiple: 'مُحضِر',
323
+ passiveParticiple: 'مُحضَر',
324
+ masdar: 'إحضار',
325
+ },
326
+ send: {
327
+ root: 'ر-س-ل',
328
+ form: 'IV',
329
+ past: {
330
+ howa: 'أرسَلَ',
331
+ hiya: 'أرسَلَت',
332
+ anta: 'أرسَلتَ',
333
+ anti: 'أرسَلتِ',
334
+ ana: 'أرسَلتُ',
335
+ hum: 'أرسَلوا',
336
+ nahnu: 'أرسَلنا',
337
+ },
338
+ present: {
339
+ howa: 'يُرسِلُ',
340
+ hiya: 'تُرسِلُ',
341
+ anta: 'تُرسِلُ',
342
+ anti: 'تُرسِلينَ',
343
+ ana: 'أُرسِلُ',
344
+ hum: 'يُرسِلونَ',
345
+ nahnu: 'نُرسِلُ',
346
+ },
347
+ imperative: {
348
+ ms: 'أرسِل',
349
+ fs: 'أرسِلي',
350
+ mp: 'أرسِلوا',
351
+ },
352
+ activeParticiple: 'مُرسِل',
353
+ passiveParticiple: 'مُرسَل',
354
+ masdar: 'إرسال',
355
+ },
356
+ go: {
357
+ root: 'ذ-ه-ب',
358
+ form: 'I',
359
+ past: {
360
+ howa: 'ذَهَبَ',
361
+ hiya: 'ذَهَبَت',
362
+ anta: 'ذَهَبتَ',
363
+ anti: 'ذَهَبتِ',
364
+ ana: 'ذَهَبتُ',
365
+ hum: 'ذَهَبوا',
366
+ nahnu: 'ذَهَبنا',
367
+ },
368
+ present: {
369
+ howa: 'يَذهَبُ',
370
+ hiya: 'تَذهَبُ',
371
+ anta: 'تَذهَبُ',
372
+ anti: 'تَذهَبينَ',
373
+ ana: 'أَذهَبُ',
374
+ hum: 'يَذهَبونَ',
375
+ nahnu: 'نَذهَبُ',
376
+ },
377
+ imperative: {
378
+ ms: 'اذهَب',
379
+ fs: 'اذهَبي',
380
+ mp: 'اذهَبوا',
381
+ },
382
+ activeParticiple: 'ذاهِب',
383
+ passiveParticiple: 'مَذهوب',
384
+ masdar: 'ذَهاب',
385
+ },
386
+ increment: {
387
+ root: 'ز-ي-د',
388
+ form: 'I',
389
+ past: {
390
+ howa: 'زادَ',
391
+ hiya: 'زادَت',
392
+ anta: 'زِدتَ',
393
+ anti: 'زِدتِ',
394
+ ana: 'زِدتُ',
395
+ hum: 'زادوا',
396
+ nahnu: 'زِدنا',
397
+ },
398
+ present: {
399
+ howa: 'يَزيدُ',
400
+ hiya: 'تَزيدُ',
401
+ anta: 'تَزيدُ',
402
+ anti: 'تَزيدينَ',
403
+ ana: 'أَزيدُ',
404
+ hum: 'يَزيدونَ',
405
+ nahnu: 'نَزيدُ',
406
+ },
407
+ imperative: {
408
+ ms: 'زِد',
409
+ fs: 'زيدي',
410
+ mp: 'زيدوا',
411
+ },
412
+ activeParticiple: 'زائِد',
413
+ passiveParticiple: 'مَزيد',
414
+ masdar: 'زِيادة',
415
+ },
416
+ decrement: {
417
+ root: 'ن-ق-ص',
418
+ form: 'IV',
419
+ past: {
420
+ howa: 'أنقَصَ',
421
+ hiya: 'أنقَصَت',
422
+ anta: 'أنقَصتَ',
423
+ anti: 'أنقَصتِ',
424
+ ana: 'أنقَصتُ',
425
+ hum: 'أنقَصوا',
426
+ nahnu: 'أنقَصنا',
427
+ },
428
+ present: {
429
+ howa: 'يُنقِصُ',
430
+ hiya: 'تُنقِصُ',
431
+ anta: 'تُنقِصُ',
432
+ anti: 'تُنقِصينَ',
433
+ ana: 'أُنقِصُ',
434
+ hum: 'يُنقِصونَ',
435
+ nahnu: 'نُنقِصُ',
436
+ },
437
+ imperative: {
438
+ ms: 'أنقِص',
439
+ fs: 'أنقِصي',
440
+ mp: 'أنقِصوا',
441
+ },
442
+ activeParticiple: 'مُنقِص',
443
+ passiveParticiple: 'مُنقَص',
444
+ masdar: 'إنقاص',
445
+ },
446
+ take: {
447
+ root: 'أ-خ-ذ',
448
+ form: 'I',
449
+ past: {
450
+ howa: 'أخَذَ',
451
+ hiya: 'أخَذَت',
452
+ anta: 'أخَذتَ',
453
+ anti: 'أخَذتِ',
454
+ ana: 'أخَذتُ',
455
+ hum: 'أخَذوا',
456
+ nahnu: 'أخَذنا',
457
+ },
458
+ present: {
459
+ howa: 'يَأخُذُ',
460
+ hiya: 'تَأخُذُ',
461
+ anta: 'تَأخُذُ',
462
+ anti: 'تَأخُذينَ',
463
+ ana: 'آخُذُ',
464
+ hum: 'يَأخُذونَ',
465
+ nahnu: 'نَأخُذُ',
466
+ },
467
+ imperative: {
468
+ ms: 'خُذ',
469
+ fs: 'خُذي',
470
+ mp: 'خُذوا',
471
+ },
472
+ activeParticiple: 'آخِذ',
473
+ passiveParticiple: 'مَأخوذ',
474
+ masdar: 'أخذ',
475
+ },
476
+ },
477
+ frames: {
478
+ code: 'ar',
479
+ wordOrder: 'VSO',
480
+ frames: [
481
+ {
482
+ function: 'commanding',
483
+ template: '{verb.imperative.ms} {patient} {target}',
484
+ verbForm: 'imperative.ms',
485
+ example: 'أضِف .active إلى #button',
486
+ },
487
+ {
488
+ function: 'describing',
489
+ template: '{verb.present.howa} {subject} {patient} {target}',
490
+ verbForm: 'present.howa',
491
+ example: 'يُضيفُ النظامُ .active إلى #button',
492
+ },
493
+ {
494
+ function: 'narrating',
495
+ template: '{verb.past.howa} {subject} {patient} {target}',
496
+ verbForm: 'past.howa',
497
+ example: 'أضافَ النظامُ .active إلى #button',
498
+ },
499
+ {
500
+ function: 'questioning',
501
+ template: 'هل {verb.past.howa} {subject} {patient} {target}؟',
502
+ verbForm: 'past.howa',
503
+ example: 'هل أضافَ النظامُ .active إلى #button؟',
504
+ },
505
+ {
506
+ function: 'negating',
507
+ template: 'لم {verb.present.howa} {subject} {patient} {target}',
508
+ verbForm: 'present.howa',
509
+ example: 'لم يُضِف النظامُ .active إلى #button',
510
+ },
511
+ {
512
+ function: 'planning',
513
+ template: 'سوف {verb.present.howa} {subject} {patient} {target}',
514
+ verbForm: 'present.howa',
515
+ example: 'سوف يُضيفُ النظامُ .active إلى #button',
516
+ },
517
+ {
518
+ function: 'progressing',
519
+ template: '{subject} {verb.activeParticiple} {patient} {target}',
520
+ verbForm: 'activeParticiple',
521
+ example: 'النظامُ مُضيفٌ .active إلى #button',
522
+ },
523
+ ],
524
+ },
525
+ defaultSubject: 'النظامُ',
526
+ };