@polyglot-bundles/ka-lang 1.2.0 → 1.3.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.
@@ -0,0 +1,8 @@
1
+ import { GeorgianConsonantsInfo, GeorgianVowelsInfo } from './types';
2
+ export declare const georgianVowels: GeorgianVowelsInfo[];
3
+ export declare const georgianConsonants: GeorgianConsonantsInfo[];
4
+ export declare function getTraditionalOrderIndex(char: string): number;
5
+ export declare function sortByTraditionalOrder<T extends {
6
+ char: string;
7
+ }>(characters: T[]): T[];
8
+ //# sourceMappingURL=characters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"characters.d.ts","sourceRoot":"","sources":["../src/characters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AASjB,eAAO,MAAM,cAAc,EAAE,kBAAkB,EAmD9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,sBAAsB,EA4VtD,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/D,UAAU,EAAE,CAAC,EAAE,GACd,CAAC,EAAE,CAIL"}
@@ -0,0 +1,542 @@
1
+ //#region src/characters.ts
2
+ var e = /* @__PURE__ */ "ა.ბ.გ.დ.ე.ვ.ზ.თ.ი.კ.ლ.მ.ნ.ო.პ.ჟ.რ.ს.ტ.უ.ფ.ქ.ღ.ყ.შ.ჩ.ც.ძ.წ.ჭ.ხ.ჯ.ჰ".split("."), t = [
3
+ {
4
+ char: "ა",
5
+ id: "ani",
6
+ charType: "vowel",
7
+ name: "Ani",
8
+ georgianName: "ანი",
9
+ transliteration: {
10
+ national: "a",
11
+ iso9984: "a",
12
+ ipa: "a"
13
+ },
14
+ asomtavruli: "Ⴀ",
15
+ nuskhuri: "ⴀ"
16
+ },
17
+ {
18
+ char: "ე",
19
+ id: "eni",
20
+ charType: "vowel",
21
+ name: "Eni",
22
+ georgianName: "ენი",
23
+ transliteration: {
24
+ national: "e",
25
+ iso9984: "e",
26
+ ipa: "ɛ"
27
+ },
28
+ asomtavruli: "Ⴄ",
29
+ nuskhuri: "ⴄ"
30
+ },
31
+ {
32
+ char: "ი",
33
+ id: "ini",
34
+ charType: "vowel",
35
+ name: "Ini",
36
+ georgianName: "ინი",
37
+ transliteration: {
38
+ national: "i",
39
+ iso9984: "i",
40
+ ipa: "i"
41
+ },
42
+ asomtavruli: "Ⴈ",
43
+ nuskhuri: "ⴈ"
44
+ },
45
+ {
46
+ char: "ო",
47
+ id: "oni",
48
+ charType: "vowel",
49
+ name: "Oni",
50
+ georgianName: "ონი",
51
+ transliteration: {
52
+ national: "o",
53
+ iso9984: "o",
54
+ ipa: "ɔ"
55
+ },
56
+ asomtavruli: "Ⴍ",
57
+ nuskhuri: "ⴍ"
58
+ },
59
+ {
60
+ char: "უ",
61
+ id: "uni",
62
+ charType: "vowel",
63
+ name: "Uni",
64
+ georgianName: "უნი",
65
+ transliteration: {
66
+ national: "u",
67
+ iso9984: "u",
68
+ ipa: "u"
69
+ },
70
+ asomtavruli: "Ⴓ",
71
+ nuskhuri: "ⴓ"
72
+ }
73
+ ], n = [
74
+ {
75
+ char: "ბ",
76
+ id: "bani",
77
+ charType: "consonant",
78
+ name: "Bani",
79
+ georgianName: "ბანი",
80
+ transliteration: {
81
+ national: "b",
82
+ iso9984: "b",
83
+ ipa: "b"
84
+ },
85
+ asomtavruli: "Ⴁ",
86
+ nuskhuri: "ⴁ",
87
+ phoneticCategory: "stop",
88
+ voicing: "voiced"
89
+ },
90
+ {
91
+ char: "გ",
92
+ id: "gani",
93
+ charType: "consonant",
94
+ name: "Gani",
95
+ georgianName: "განი",
96
+ transliteration: {
97
+ national: "g",
98
+ iso9984: "g",
99
+ ipa: "ɡ"
100
+ },
101
+ asomtavruli: "Ⴂ",
102
+ nuskhuri: "ⴂ",
103
+ phoneticCategory: "stop",
104
+ voicing: "voiced"
105
+ },
106
+ {
107
+ char: "დ",
108
+ id: "doni",
109
+ charType: "consonant",
110
+ name: "Doni",
111
+ georgianName: "დონი",
112
+ transliteration: {
113
+ national: "d",
114
+ iso9984: "d",
115
+ ipa: "d"
116
+ },
117
+ asomtavruli: "Ⴃ",
118
+ nuskhuri: "ⴃ",
119
+ phoneticCategory: "stop",
120
+ voicing: "voiced"
121
+ },
122
+ {
123
+ char: "ვ",
124
+ id: "vini",
125
+ charType: "consonant",
126
+ name: "Vini",
127
+ georgianName: "ვინი",
128
+ transliteration: {
129
+ national: "v",
130
+ iso9984: "v",
131
+ ipa: "v"
132
+ },
133
+ asomtavruli: "Ⴅ",
134
+ nuskhuri: "ⴅ",
135
+ phoneticCategory: "fricative",
136
+ voicing: "voiced"
137
+ },
138
+ {
139
+ char: "ზ",
140
+ id: "zeni",
141
+ charType: "consonant",
142
+ name: "Zeni",
143
+ georgianName: "ზენი",
144
+ transliteration: {
145
+ national: "z",
146
+ iso9984: "z",
147
+ ipa: "z"
148
+ },
149
+ asomtavruli: "Ⴆ",
150
+ nuskhuri: "ⴆ",
151
+ phoneticCategory: "fricative",
152
+ voicing: "voiced"
153
+ },
154
+ {
155
+ char: "თ",
156
+ id: "tani",
157
+ charType: "consonant",
158
+ name: "Tani",
159
+ georgianName: "თანი",
160
+ transliteration: {
161
+ national: "t",
162
+ iso9984: "t",
163
+ ipa: "tʰ"
164
+ },
165
+ asomtavruli: "Ⴇ",
166
+ nuskhuri: "ⴇ",
167
+ phoneticCategory: "stop",
168
+ voicing: "voiceless",
169
+ notes: "Aspirated"
170
+ },
171
+ {
172
+ char: "კ",
173
+ id: "kani",
174
+ charType: "consonant",
175
+ name: "K'ani",
176
+ georgianName: "კანი",
177
+ transliteration: {
178
+ national: "k",
179
+ iso9984: "k'",
180
+ ipa: "kʼ"
181
+ },
182
+ asomtavruli: "Ⴉ",
183
+ nuskhuri: "ⴉ",
184
+ phoneticCategory: "stop",
185
+ voicing: "ejective",
186
+ notes: "Ejective stop"
187
+ },
188
+ {
189
+ char: "ლ",
190
+ id: "lasi",
191
+ charType: "consonant",
192
+ name: "Lasi",
193
+ georgianName: "ლასი",
194
+ transliteration: {
195
+ national: "l",
196
+ iso9984: "l",
197
+ ipa: "l"
198
+ },
199
+ asomtavruli: "Ⴊ",
200
+ nuskhuri: "ⴊ",
201
+ phoneticCategory: "liquid",
202
+ voicing: "voiced"
203
+ },
204
+ {
205
+ char: "მ",
206
+ id: "mani",
207
+ charType: "consonant",
208
+ name: "Mani",
209
+ georgianName: "მანი",
210
+ transliteration: {
211
+ national: "m",
212
+ iso9984: "m",
213
+ ipa: "m"
214
+ },
215
+ asomtavruli: "Ⴋ",
216
+ nuskhuri: "ⴋ",
217
+ phoneticCategory: "nasal",
218
+ voicing: "voiced"
219
+ },
220
+ {
221
+ char: "ნ",
222
+ id: "nari",
223
+ charType: "consonant",
224
+ name: "Nari",
225
+ georgianName: "ნარი",
226
+ transliteration: {
227
+ national: "n",
228
+ iso9984: "n",
229
+ ipa: "n"
230
+ },
231
+ asomtavruli: "Ⴌ",
232
+ nuskhuri: "ⴌ",
233
+ phoneticCategory: "nasal",
234
+ voicing: "voiced"
235
+ },
236
+ {
237
+ char: "პ",
238
+ id: "pari",
239
+ charType: "consonant",
240
+ name: "P'ari",
241
+ georgianName: "პარი",
242
+ transliteration: {
243
+ national: "p",
244
+ iso9984: "p'",
245
+ ipa: "pʼ"
246
+ },
247
+ asomtavruli: "Ⴎ",
248
+ nuskhuri: "ⴎ",
249
+ phoneticCategory: "stop",
250
+ voicing: "ejective",
251
+ notes: "Ejective stop"
252
+ },
253
+ {
254
+ char: "ჟ",
255
+ id: "zhani",
256
+ charType: "consonant",
257
+ name: "Zhani",
258
+ georgianName: "ჟანი",
259
+ transliteration: {
260
+ national: "zh",
261
+ iso9984: "ž",
262
+ ipa: "ʒ"
263
+ },
264
+ asomtavruli: "Ⴏ",
265
+ nuskhuri: "ⴏ",
266
+ phoneticCategory: "fricative",
267
+ voicing: "voiced"
268
+ },
269
+ {
270
+ char: "რ",
271
+ id: "rae",
272
+ charType: "consonant",
273
+ name: "Rae",
274
+ georgianName: "რაე",
275
+ transliteration: {
276
+ national: "r",
277
+ iso9984: "r",
278
+ ipa: "r"
279
+ },
280
+ asomtavruli: "Ⴐ",
281
+ nuskhuri: "ⴐ",
282
+ phoneticCategory: "liquid",
283
+ voicing: "voiced"
284
+ },
285
+ {
286
+ char: "ს",
287
+ id: "sani",
288
+ charType: "consonant",
289
+ name: "Sani",
290
+ georgianName: "სანი",
291
+ transliteration: {
292
+ national: "s",
293
+ iso9984: "s",
294
+ ipa: "s"
295
+ },
296
+ asomtavruli: "Ⴑ",
297
+ nuskhuri: "ⴑ",
298
+ phoneticCategory: "fricative",
299
+ voicing: "voiceless"
300
+ },
301
+ {
302
+ char: "ტ",
303
+ id: "tari",
304
+ charType: "consonant",
305
+ name: "T'ari",
306
+ georgianName: "ტარი",
307
+ transliteration: {
308
+ national: "t",
309
+ iso9984: "t'",
310
+ ipa: "tʼ"
311
+ },
312
+ asomtavruli: "Ⴒ",
313
+ nuskhuri: "ⴒ",
314
+ phoneticCategory: "stop",
315
+ voicing: "ejective",
316
+ notes: "Ejective stop"
317
+ },
318
+ {
319
+ char: "ფ",
320
+ id: "phari",
321
+ charType: "consonant",
322
+ name: "Pari",
323
+ georgianName: "ფარი",
324
+ transliteration: {
325
+ national: "p",
326
+ iso9984: "p",
327
+ ipa: "pʰ"
328
+ },
329
+ asomtavruli: "Ⴔ",
330
+ nuskhuri: "ⴔ",
331
+ phoneticCategory: "stop",
332
+ voicing: "voiceless",
333
+ notes: "Aspirated"
334
+ },
335
+ {
336
+ char: "ქ",
337
+ id: "qani",
338
+ charType: "consonant",
339
+ name: "Kani",
340
+ georgianName: "ქანი",
341
+ transliteration: {
342
+ national: "k",
343
+ iso9984: "k",
344
+ ipa: "kʰ"
345
+ },
346
+ asomtavruli: "Ⴕ",
347
+ nuskhuri: "ⴕ",
348
+ phoneticCategory: "stop",
349
+ voicing: "voiceless",
350
+ notes: "Aspirated"
351
+ },
352
+ {
353
+ char: "ღ",
354
+ id: "ghani",
355
+ charType: "consonant",
356
+ name: "Ghani",
357
+ georgianName: "ღანი",
358
+ transliteration: {
359
+ national: "gh",
360
+ iso9984: "ḡ",
361
+ ipa: "ɣ"
362
+ },
363
+ asomtavruli: "Ⴖ",
364
+ nuskhuri: "ⴖ",
365
+ phoneticCategory: "fricative",
366
+ voicing: "voiced"
367
+ },
368
+ {
369
+ char: "ყ",
370
+ id: "qari",
371
+ charType: "consonant",
372
+ name: "Q'ari",
373
+ georgianName: "ყარი",
374
+ transliteration: {
375
+ national: "q",
376
+ iso9984: "q'",
377
+ ipa: "qʼ"
378
+ },
379
+ asomtavruli: "Ⴗ",
380
+ nuskhuri: "ⴗ",
381
+ phoneticCategory: "stop",
382
+ voicing: "ejective",
383
+ notes: "Ejective uvular stop"
384
+ },
385
+ {
386
+ char: "შ",
387
+ id: "shini",
388
+ charType: "consonant",
389
+ name: "Shini",
390
+ georgianName: "შინი",
391
+ transliteration: {
392
+ national: "sh",
393
+ iso9984: "š",
394
+ ipa: "ʃ"
395
+ },
396
+ asomtavruli: "Ⴘ",
397
+ nuskhuri: "ⴘ",
398
+ phoneticCategory: "fricative",
399
+ voicing: "voiceless"
400
+ },
401
+ {
402
+ char: "ჩ",
403
+ id: "chini",
404
+ charType: "consonant",
405
+ name: "Chini",
406
+ georgianName: "ჩინი",
407
+ transliteration: {
408
+ national: "ch",
409
+ iso9984: "č",
410
+ ipa: "tʃʰ"
411
+ },
412
+ asomtavruli: "Ⴙ",
413
+ nuskhuri: "ⴙ",
414
+ phoneticCategory: "affricate",
415
+ voicing: "voiceless",
416
+ notes: "Aspirated"
417
+ },
418
+ {
419
+ char: "ც",
420
+ id: "tsani",
421
+ charType: "consonant",
422
+ name: "Tsani",
423
+ georgianName: "ცანი",
424
+ transliteration: {
425
+ national: "ts",
426
+ iso9984: "c",
427
+ ipa: "tsʰ"
428
+ },
429
+ asomtavruli: "Ⴚ",
430
+ nuskhuri: "ⴚ",
431
+ phoneticCategory: "affricate",
432
+ voicing: "voiceless",
433
+ notes: "Aspirated"
434
+ },
435
+ {
436
+ char: "ძ",
437
+ id: "dzili",
438
+ charType: "consonant",
439
+ name: "Dzili",
440
+ georgianName: "ძილი",
441
+ transliteration: {
442
+ national: "dz",
443
+ iso9984: "j",
444
+ ipa: "dz"
445
+ },
446
+ asomtavruli: "Ⴛ",
447
+ nuskhuri: "ⴛ",
448
+ phoneticCategory: "affricate",
449
+ voicing: "voiced"
450
+ },
451
+ {
452
+ char: "წ",
453
+ id: "tsili",
454
+ charType: "consonant",
455
+ name: "Ts'ili",
456
+ georgianName: "წილი",
457
+ transliteration: {
458
+ national: "ts'",
459
+ iso9984: "c'",
460
+ ipa: "tsʼ"
461
+ },
462
+ asomtavruli: "Ⴜ",
463
+ nuskhuri: "ⴜ",
464
+ phoneticCategory: "affricate",
465
+ voicing: "ejective",
466
+ notes: "Ejective affricate"
467
+ },
468
+ {
469
+ char: "ჭ",
470
+ id: "chari",
471
+ charType: "consonant",
472
+ name: "Ch'ari",
473
+ georgianName: "ჭარი",
474
+ transliteration: {
475
+ national: "ch'",
476
+ iso9984: "č'",
477
+ ipa: "tʃʼ"
478
+ },
479
+ asomtavruli: "Ⴝ",
480
+ nuskhuri: "ⴝ",
481
+ phoneticCategory: "affricate",
482
+ voicing: "ejective",
483
+ notes: "Ejective affricate"
484
+ },
485
+ {
486
+ char: "ხ",
487
+ id: "khani",
488
+ charType: "consonant",
489
+ name: "Khani",
490
+ georgianName: "ხანი",
491
+ transliteration: {
492
+ national: "kh",
493
+ iso9984: "x",
494
+ ipa: "x"
495
+ },
496
+ asomtavruli: "Ⴞ",
497
+ nuskhuri: "ⴞ",
498
+ phoneticCategory: "fricative",
499
+ voicing: "voiceless"
500
+ },
501
+ {
502
+ char: "ჯ",
503
+ id: "jani",
504
+ charType: "consonant",
505
+ name: "Jani",
506
+ georgianName: "ჯანი",
507
+ transliteration: {
508
+ national: "j",
509
+ iso9984: "ǰ",
510
+ ipa: "dʒ"
511
+ },
512
+ asomtavruli: "Ⴟ",
513
+ nuskhuri: "ⴟ",
514
+ phoneticCategory: "affricate",
515
+ voicing: "voiced"
516
+ },
517
+ {
518
+ char: "ჰ",
519
+ id: "hae",
520
+ charType: "consonant",
521
+ name: "Hae",
522
+ georgianName: "ჰაე",
523
+ transliteration: {
524
+ national: "h",
525
+ iso9984: "h",
526
+ ipa: "h"
527
+ },
528
+ asomtavruli: "Ⴠ",
529
+ nuskhuri: "ⴠ",
530
+ phoneticCategory: "fricative",
531
+ voicing: "voiceless"
532
+ }
533
+ ];
534
+ function r(t) {
535
+ let n = e.indexOf(t);
536
+ return n === -1 ? 999 : n;
537
+ }
538
+ function i(e) {
539
+ return [...e].sort((e, t) => r(e.char) - r(t.char));
540
+ }
541
+ //#endregion
542
+ export { n as georgianConsonants, t as georgianVowels, r as getTraditionalOrderIndex, i as sortByTraditionalOrder };
package/dist/ids.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Canonical Georgian Character IDs
3
+ *
4
+ * This file exports the canonical IDs used across Georgian language learning content.
5
+ * These IDs are the source of truth for @polyglot-bundles/ka-syllabi and other packages.
6
+ * IDs use traditional Georgian letter names (Mkhedruli alphabet).
7
+ */
8
+ /**
9
+ * Georgian vowel IDs — the 5 vowels of Mkhedruli
10
+ */
11
+ export declare const GEORGIAN_VOWEL_IDS: readonly ["ani", "eni", "ini", "oni", "uni"];
12
+ /**
13
+ * Georgian consonant IDs — 28 consonants of Mkhedruli
14
+ * Ordered by traditional Georgian alphabet order
15
+ */
16
+ export declare const GEORGIAN_CONSONANT_IDS: readonly ["bani", "gani", "doni", "vini", "zeni", "tani", "kani", "lasi", "mani", "nari", "pari", "zhani", "rae", "sani", "tari", "phari", "qani", "ghani", "qari", "shini", "chini", "tsani", "dzili", "tsili", "chari", "khani", "jani", "hae"];
17
+ /**
18
+ * All Georgian character IDs grouped by type
19
+ */
20
+ export declare const GEORGIAN_CHAR_IDS: {
21
+ readonly vowels: readonly ["ani", "eni", "ini", "oni", "uni"];
22
+ readonly consonants: readonly ["bani", "gani", "doni", "vini", "zeni", "tani", "kani", "lasi", "mani", "nari", "pari", "zhani", "rae", "sani", "tari", "phari", "qani", "ghani", "qari", "shini", "chini", "tsani", "dzili", "tsili", "chari", "khani", "jani", "hae"];
23
+ };
24
+ export type GeorgianVowelId = typeof GEORGIAN_VOWEL_IDS[number];
25
+ export type GeorgianConsonantId = typeof GEORGIAN_CONSONANT_IDS[number];
26
+ export type GeorgianCharacterId = GeorgianVowelId | GeorgianConsonantId;
27
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,8CAMrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,mPA6BzB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAGX,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,mBAAmB,CAAC"}
package/dist/ids.js ADDED
@@ -0,0 +1,13 @@
1
+ //#region src/ids.ts
2
+ var e = [
3
+ "ani",
4
+ "eni",
5
+ "ini",
6
+ "oni",
7
+ "uni"
8
+ ], t = /* @__PURE__ */ "bani.gani.doni.vini.zeni.tani.kani.lasi.mani.nari.pari.zhani.rae.sani.tari.phari.qani.ghani.qari.shini.chini.tsani.dzili.tsili.chari.khani.jani.hae".split("."), n = {
9
+ vowels: e,
10
+ consonants: t
11
+ };
12
+ //#endregion
13
+ export { n as GEORGIAN_CHAR_IDS, t as GEORGIAN_CONSONANT_IDS, e as GEORGIAN_VOWEL_IDS };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @polyglot-bundles/ka-lang - Georgian Language Foundation Data
3
+ *
4
+ * Foundational data for Georgian (Mkhedruli script):
5
+ * - Character data: 5 vowels + 28 consonants with full transliteration
6
+ * (national / ISO 9984 / IPA) and historical script equivalents
7
+ * (Asomtavruli, Nuskhuri)
8
+ * - Canonical IDs for cross-package consistency (ka-syllabi, ka-content)
9
+ * - Type definitions and guards
10
+ * - Traditional "song sequence" sort helpers
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { georgianConsonants, georgianVowels } from "@polyglot-bundles/ka-lang";
15
+ * import { GEORGIAN_CHAR_IDS } from "@polyglot-bundles/ka-lang/ids";
16
+ * import type { GeorgianConsonantsInfo } from "@polyglot-bundles/ka-lang/types";
17
+ * ```
18
+ */
19
+ export { georgianConsonants, georgianVowels, getTraditionalOrderIndex, sortByTraditionalOrder, } from './characters';
20
+ export { GEORGIAN_VOWEL_IDS, GEORGIAN_CONSONANT_IDS, GEORGIAN_CHAR_IDS, } from './ids';
21
+ export type { GeorgianConsonantsInfo, GeorgianVowelsInfo, GeorgianCharacter, GeorgianTransliteration, CharacterMnemonic, } from './types';
22
+ export { isVowel, isConsonant, getDisplayCharacter, } from './types';
23
+ export type { GeorgianVowelId, GeorgianConsonantId, GeorgianCharacterId, } from './ids';
24
+ export { georgianSoundsConfig, vowels, stops, fricatives, affricates, sonorants, } from './sounds';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,OAAO,CAAC;AAEf,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,OAAO,EACP,WAAW,EACX,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,oBAAoB,EACpB,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,SAAS,GACV,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ import { georgianConsonants as e, georgianVowels as t, getTraditionalOrderIndex as n, sortByTraditionalOrder as r } from "./characters.js";
2
+ import { GEORGIAN_CHAR_IDS as i, GEORGIAN_CONSONANT_IDS as a, GEORGIAN_VOWEL_IDS as o } from "./ids.js";
3
+ import { getDisplayCharacter as s, isConsonant as c, isVowel as l } from "./types.js";
4
+ import { a as u, i as d, n as f, o as p, r as m, t as h } from "./sounds-DymIRrmY.js";
5
+ export { i as GEORGIAN_CHAR_IDS, a as GEORGIAN_CONSONANT_IDS, o as GEORGIAN_VOWEL_IDS, h as affricates, f as fricatives, e as georgianConsonants, m as georgianSoundsConfig, t as georgianVowels, s as getDisplayCharacter, n as getTraditionalOrderIndex, c as isConsonant, l as isVowel, d as sonorants, r as sortByTraditionalOrder, u as stops, p as vowels };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,113 @@
1
+ import { georgianConsonants as e, georgianVowels as t } from "./characters.js";
2
+ //#region ../../shared/content-shared/dist/types.js
3
+ function n(e, t) {
4
+ let n = /* @__PURE__ */ new Map();
5
+ for (let t of e) n.set(t.id, t);
6
+ return (e) => {
7
+ let r = n.get(e);
8
+ if (r === void 0) {
9
+ let r = Array.from(n.keys()).slice(0, 8).join(", "), i = n.size > 8 ? `, …(+${n.size - 8})` : "";
10
+ throw Error(`${t}: no id '${e}' (have: ${r}${i})`);
11
+ }
12
+ return r;
13
+ };
14
+ }
15
+ //#endregion
16
+ //#region src/sounds.ts
17
+ function r(e) {
18
+ return {
19
+ char: e.char,
20
+ id: e.id,
21
+ charType: "vowel",
22
+ ipa: e.transliteration.ipa
23
+ };
24
+ }
25
+ function i(e) {
26
+ return {
27
+ char: e.char,
28
+ id: e.id,
29
+ charType: "consonant",
30
+ ipa: e.transliteration.ipa
31
+ };
32
+ }
33
+ var a = n(t, "georgianVowels"), o = n(e, "georgianConsonants"), s = {
34
+ id: "vowels",
35
+ label: "Vowels",
36
+ sounds: [
37
+ r(a("ani")),
38
+ r(a("eni")),
39
+ r(a("ini")),
40
+ r(a("oni")),
41
+ r(a("uni"))
42
+ ],
43
+ charType: "vowel",
44
+ color: "green"
45
+ }, c = {
46
+ id: "stops",
47
+ label: "Stops",
48
+ sounds: [
49
+ i(o("bani")),
50
+ i(o("gani")),
51
+ i(o("doni")),
52
+ i(o("pari")),
53
+ i(o("tari")),
54
+ i(o("kani")),
55
+ i(o("qari"))
56
+ ],
57
+ charType: "consonant",
58
+ color: "blue"
59
+ }, l = {
60
+ id: "fricatives",
61
+ label: "Fricatives",
62
+ sounds: [
63
+ i(o("phari")),
64
+ i(o("tani")),
65
+ i(o("khani")),
66
+ i(o("sani")),
67
+ i(o("shini")),
68
+ i(o("vini")),
69
+ i(o("zeni")),
70
+ i(o("zhani")),
71
+ i(o("ghani")),
72
+ i(o("hae"))
73
+ ],
74
+ charType: "consonant",
75
+ color: "red"
76
+ }, u = {
77
+ id: "affricates",
78
+ label: "Affricates & Other",
79
+ sounds: [
80
+ i(o("chini")),
81
+ i(o("tsani")),
82
+ i(o("chari")),
83
+ i(o("tsili")),
84
+ i(o("dzili")),
85
+ i(o("jani")),
86
+ i(o("qani"))
87
+ ],
88
+ charType: "consonant",
89
+ color: "default"
90
+ }, d = {
91
+ id: "sonorants",
92
+ label: "Sonorants",
93
+ sounds: [
94
+ i(o("mani")),
95
+ i(o("nari")),
96
+ i(o("lasi")),
97
+ i(o("rae"))
98
+ ],
99
+ charType: "consonant",
100
+ color: "green"
101
+ }, f = {
102
+ categories: [
103
+ s,
104
+ c,
105
+ l,
106
+ u,
107
+ d
108
+ ],
109
+ audioBasePath: "/assets/audio/ka-GE",
110
+ audioFilePattern: "{charType}/{id}_{variant}_{style}.wav"
111
+ };
112
+ //#endregion
113
+ export { c as a, d as i, l as n, s as o, f as r, u as t };
@@ -0,0 +1,9 @@
1
+ import { SoundCategory, LanguageSoundsConfig } from '@polyglot-bundles/content-shared';
2
+ declare const vowels: SoundCategory;
3
+ declare const stops: SoundCategory;
4
+ declare const fricatives: SoundCategory;
5
+ declare const affricates: SoundCategory;
6
+ declare const sonorants: SoundCategory;
7
+ export declare const georgianSoundsConfig: LanguageSoundsConfig;
8
+ export { vowels, stops, fricatives, affricates, sonorants };
9
+ //# sourceMappingURL=sounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sounds.d.ts","sourceRoot":"","sources":["../src/sounds.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,kCAAkC,CAAC;AAiC1C,QAAA,MAAM,MAAM,EAAE,aAYb,CAAC;AAGF,QAAA,MAAM,KAAK,EAAE,aAcZ,CAAC;AAGF,QAAA,MAAM,UAAU,EAAE,aAiBjB,CAAC;AAGF,QAAA,MAAM,UAAU,EAAE,aAcjB,CAAC;AAGF,QAAA,MAAM,SAAS,EAAE,aAWhB,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,oBAUlC,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC"}
package/dist/sounds.js ADDED
@@ -0,0 +1,3 @@
1
+ import "./characters.js";
2
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./sounds-DymIRrmY.js";
3
+ export { a as affricates, n as fricatives, i as georgianSoundsConfig, t as sonorants, e as stops, r as vowels };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Georgian Character Types
3
+ *
4
+ * Type definitions for Georgian characters (Mkhedruli script).
5
+ * Georgian has a simple phonological system: 5 vowels and 28 consonants
6
+ * with a distinctive three-way stop contrast (voiced/aspirated/ejective).
7
+ */
8
+ /**
9
+ * Georgian transliteration systems:
10
+ * - national: Georgian National transliteration system
11
+ * - iso9984: ISO 9984:1996 official international standard
12
+ * - ipa: International Phonetic Alphabet
13
+ */
14
+ export type GeorgianTransliteration = {
15
+ national: string;
16
+ iso9984: string;
17
+ ipa: string;
18
+ };
19
+ export type CharacterMnemonic = {
20
+ writing?: string;
21
+ pronunciation?: string;
22
+ imageKeywords?: string[];
23
+ };
24
+ type GeorgianCharacterBaseInfo = {
25
+ char: string;
26
+ id: string;
27
+ name: string;
28
+ georgianName: string;
29
+ transliteration: GeorgianTransliteration;
30
+ asomtavruli?: string;
31
+ nuskhuri?: string;
32
+ display?: string;
33
+ audio?: string;
34
+ notes?: string;
35
+ mnemonic?: CharacterMnemonic;
36
+ };
37
+ export type GeorgianVowelsInfo = {
38
+ charType: "vowel";
39
+ } & GeorgianCharacterBaseInfo;
40
+ export type GeorgianConsonantsInfo = {
41
+ charType: "consonant";
42
+ phoneticCategory: "stop" | "fricative" | "affricate" | "nasal" | "liquid";
43
+ voicing?: "voiced" | "voiceless" | "ejective";
44
+ } & GeorgianCharacterBaseInfo;
45
+ export type GeorgianCharacter = GeorgianVowelsInfo | GeorgianConsonantsInfo;
46
+ export declare function isVowel(character: GeorgianCharacter): character is GeorgianVowelsInfo;
47
+ export declare function isConsonant(character: GeorgianCharacter): character is GeorgianConsonantsInfo;
48
+ export declare function getDisplayCharacter(character: GeorgianCharacter): string;
49
+ export {};
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,uBAAuB,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,yBAAyB,CAAC;AAE9B,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,gBAAgB,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC1E,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;CAC/C,GAAG,yBAAyB,CAAC;AAE9B,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,sBAAsB,CAAC;AAE3B,wBAAgB,OAAO,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,IAAI,kBAAkB,CAErF;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,IAAI,sBAAsB,CAE7F;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,GAAG,MAAM,CAExE"}
package/dist/types.js ADDED
@@ -0,0 +1,12 @@
1
+ //#region src/types.ts
2
+ function e(e) {
3
+ return e.charType === "vowel";
4
+ }
5
+ function t(e) {
6
+ return e.charType === "consonant";
7
+ }
8
+ function n(e) {
9
+ return e.display ?? e.char;
10
+ }
11
+ //#endregion
12
+ export { n as getDisplayCharacter, t as isConsonant, e as isVowel };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyglot-bundles/ka-lang",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Georgian language foundation data - characters and transliterations (Mkhedruli script)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -43,18 +43,19 @@
43
43
  "license": "MIT",
44
44
  "repository": {
45
45
  "type": "git",
46
- "url": "https://github.com/fustilio/polyglot-bundles",
46
+ "url": "git+https://github.com/fustilio/polyglot-bundles.git",
47
47
  "directory": "packages/ka/lang"
48
48
  },
49
49
  "devDependencies": {
50
50
  "vite-plugin-dts": "^4.5.4",
51
51
  "vitest": "^4.1.4",
52
52
  "@polyglot-bundles/lang-tooling": "0.0.0",
53
- "@polyglot-bundles/content-shared": "0.6.0"
53
+ "@polyglot-bundles/content-shared": "0.7.1"
54
54
  },
55
55
  "scripts": {
56
56
  "typecheck": "tsc --noEmit",
57
57
  "build": "vite build",
58
- "test": "vitest run"
58
+ "test": "vitest run",
59
+ "clean": "rm -rf dist"
59
60
  }
60
61
  }