indickit 0.6.0 → 0.9.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/dist/phonetic.js CHANGED
@@ -1,836 +1 @@
1
- // phonetic/rules.json
2
- var rules_default = {
3
- version: "2026-10-06.1",
4
- folds: [
5
- "bn-case",
6
- "drop-vowels",
7
- "drop-y",
8
- "gu-case",
9
- "latin-w-u",
10
- "ml-case",
11
- "nasal-all",
12
- "ng-k",
13
- "or-case",
14
- "retroflex",
15
- "s-c",
16
- "ta-case",
17
- "ta-k-h",
18
- "te-case",
19
- "ur-w-u",
20
- "v-b"
21
- ],
22
- brahmic: {
23
- from: 2304,
24
- to: 3455,
25
- class_by_offset: {
26
- "2": "ṁ",
27
- "5": "a",
28
- "6": "a",
29
- "7": "i",
30
- "8": "i",
31
- "9": "u",
32
- "10": "u",
33
- "11": "r",
34
- "12": "l",
35
- "13": "e",
36
- "14": "e",
37
- "15": "e",
38
- "16": "e",
39
- "17": "o",
40
- "18": "o",
41
- "19": "o",
42
- "20": "o",
43
- "21": "k",
44
- "22": "k",
45
- "23": "k",
46
- "24": "k",
47
- "25": "ṅ",
48
- "26": "c",
49
- "27": "c",
50
- "28": "c",
51
- "29": "c",
52
- "30": "ñ",
53
- "31": "ṭ",
54
- "32": "ṭ",
55
- "33": "ṭ",
56
- "34": "ṭ",
57
- "35": "ṇ",
58
- "36": "t",
59
- "37": "t",
60
- "38": "t",
61
- "39": "t",
62
- "40": "n",
63
- "41": "n",
64
- "42": "p",
65
- "43": "p",
66
- "44": "p",
67
- "45": "p",
68
- "46": "m",
69
- "47": "y",
70
- "48": "r",
71
- "49": "r",
72
- "50": "l",
73
- "51": "l",
74
- "52": "l",
75
- "53": "v",
76
- "54": "s",
77
- "55": "s",
78
- "56": "s",
79
- "57": "h",
80
- "62": "a",
81
- "63": "i",
82
- "64": "i",
83
- "65": "u",
84
- "66": "u",
85
- "67": "r",
86
- "68": "r",
87
- "69": "e",
88
- "70": "e",
89
- "71": "e",
90
- "72": "e",
91
- "73": "o",
92
- "74": "o",
93
- "75": "o",
94
- "76": "o",
95
- "87": "o",
96
- "96": "r",
97
- "97": "l",
98
- "98": "l",
99
- "99": "l"
100
- },
101
- virama_offset: 77,
102
- candrabindu_offset: 1,
103
- candrabindu_class: "ṁ"
104
- },
105
- extra: {
106
- ৎ: "t",
107
- ৰ: "r",
108
- ৱ: "v",
109
- ୱ: "v",
110
- "ੰ": "ṁ",
111
- "ਂ": "ṁ",
112
- ൺ: "ṇ",
113
- ൻ: "n",
114
- ർ: "r",
115
- ൽ: "l",
116
- ൾ: "l",
117
- ൿ: "k",
118
- ൔ: "m",
119
- ൕ: "y",
120
- ൖ: "l"
121
- },
122
- urdu: {
123
- from: 1536,
124
- to: 1791,
125
- letters: {
126
- ا: "a",
127
- آ: "a",
128
- أ: "a",
129
- ب: "p",
130
- پ: "p",
131
- ت: "t",
132
- ٹ: "ṭ",
133
- ث: "s",
134
- ج: "c",
135
- چ: "c",
136
- ح: "h",
137
- خ: "k",
138
- د: "t",
139
- ڈ: "ṭ",
140
- ذ: "c",
141
- ر: "r",
142
- ڑ: "ṭ",
143
- ز: "c",
144
- ژ: "c",
145
- س: "s",
146
- ش: "s",
147
- ص: "s",
148
- ض: "c",
149
- ط: "t",
150
- ظ: "c",
151
- غ: "k",
152
- ف: "p",
153
- ق: "k",
154
- ک: "k",
155
- ك: "k",
156
- گ: "k",
157
- ل: "l",
158
- م: "m",
159
- ن: "n",
160
- ں: "ṁ",
161
- و: "v",
162
- ؤ: "u",
163
- ہ: "h",
164
- ه: "h",
165
- ۃ: "a",
166
- ی: "y",
167
- ي: "y",
168
- ى: "y",
169
- ئ: "y",
170
- ے: "e",
171
- ۓ: "e",
172
- ٻ: "p",
173
- ڀ: "p",
174
- ٺ: "ṭ",
175
- ٽ: "ṭ",
176
- ٿ: "t",
177
- ڄ: "c",
178
- ڃ: "ñ",
179
- ڇ: "c",
180
- ڊ: "ṭ",
181
- ڌ: "t",
182
- ڍ: "ṭ",
183
- ڏ: "t",
184
- ڙ: "ṭ",
185
- ڦ: "p",
186
- ڪ: "k",
187
- ڱ: "ṅ",
188
- ڳ: "k",
189
- ڻ: "ṇ",
190
- ٲ: "a",
191
- ٳ: "a",
192
- ۆ: "o",
193
- ۄ: "o",
194
- ێ: "e",
195
- ؠ: "y"
196
- },
197
- ain: "ع",
198
- waw: "و",
199
- waw_v_before: "اآ",
200
- final_he: "ہه",
201
- final_he_h_after: "اآو"
202
- },
203
- meetei: {
204
- ranges: [
205
- [
206
- 43744,
207
- 43775
208
- ],
209
- [
210
- 43968,
211
- 44031
212
- ]
213
- ],
214
- letters: {
215
- ꯀ: "k",
216
- ꯁ: "s",
217
- ꯂ: "l",
218
- ꯃ: "m",
219
- ꯄ: "p",
220
- ꯅ: "n",
221
- ꯆ: "c",
222
- ꯇ: "t",
223
- ꯈ: "k",
224
- ꯉ: "ṅ",
225
- ꯊ: "t",
226
- ꯋ: "v",
227
- ꯌ: "y",
228
- ꯍ: "h",
229
- ꯎ: "u",
230
- ꯏ: "i",
231
- ꯐ: "p",
232
- ꯑ: "a",
233
- ꯒ: "k",
234
- ꯓ: "c",
235
- ꯔ: "r",
236
- ꯕ: "p",
237
- ꯖ: "c",
238
- ꯗ: "t",
239
- ꯘ: "k",
240
- ꯙ: "t",
241
- ꯚ: "p",
242
- ꯛ: "k",
243
- ꯜ: "l",
244
- ꯝ: "m",
245
- ꯞ: "p",
246
- ꯟ: "n",
247
- ꯠ: "t",
248
- ꯡ: "ṅ",
249
- ꯢ: "i",
250
- "ꯣ": "o",
251
- "ꯤ": "i",
252
- "ꯥ": "a",
253
- "ꯦ": "e",
254
- "ꯧ": "o",
255
- "ꯨ": "u",
256
- "ꯩ": "e",
257
- "ꯪ": "ṁ",
258
- ꫠ: "e",
259
- ꫡ: "o",
260
- ꫢ: "c",
261
- ꫣ: "ñ",
262
- ꫤ: "ṭ",
263
- ꫥ: "ṭ",
264
- ꫦ: "ṭ",
265
- ꫧ: "ṭ",
266
- ꫨ: "ṇ",
267
- ꫩ: "s",
268
- ꫪ: "s",
269
- "ꫫ": "i",
270
- "ꫬ": "u",
271
- "ꫭ": "e",
272
- "ꫮ": "o",
273
- "ꫯ": "o"
274
- }
275
- },
276
- ol_chiki: {
277
- from: 7248,
278
- to: 7295,
279
- letters: {
280
- ᱚ: "o",
281
- ᱛ: "t",
282
- ᱜ: "k",
283
- ᱝ: "ṅ",
284
- ᱞ: "l",
285
- ᱟ: "a",
286
- ᱠ: "k",
287
- ᱡ: "c",
288
- ᱢ: "m",
289
- ᱣ: "v",
290
- ᱤ: "i",
291
- ᱥ: "s",
292
- ᱦ: "h",
293
- ᱧ: "ñ",
294
- ᱨ: "r",
295
- ᱩ: "u",
296
- ᱪ: "c",
297
- ᱫ: "t",
298
- ᱬ: "ṇ",
299
- ᱭ: "y",
300
- ᱮ: "e",
301
- ᱯ: "p",
302
- ᱰ: "ṭ",
303
- ᱱ: "n",
304
- ᱲ: "ṭ",
305
- ᱳ: "o",
306
- ᱴ: "ṭ",
307
- ᱵ: "p",
308
- ᱶ: "v",
309
- ᱷ: "h",
310
- ᱸ: "ṁ"
311
- },
312
- aspiration: "ᱷ"
313
- },
314
- latin: {
315
- groups: [
316
- [
317
- "chh",
318
- "c"
319
- ],
320
- [
321
- "ch",
322
- "c"
323
- ],
324
- [
325
- "jh",
326
- "c"
327
- ],
328
- [
329
- "kh",
330
- "k"
331
- ],
332
- [
333
- "gh",
334
- "k"
335
- ],
336
- [
337
- "th",
338
- "t"
339
- ],
340
- [
341
- "dh",
342
- "t"
343
- ],
344
- [
345
- "ph",
346
- "p"
347
- ],
348
- [
349
- "bh",
350
- "p"
351
- ],
352
- [
353
- "sh",
354
- "s"
355
- ],
356
- [
357
- "ck",
358
- "k"
359
- ],
360
- [
361
- "aa",
362
- "a"
363
- ],
364
- [
365
- "ai",
366
- "e"
367
- ],
368
- [
369
- "ei",
370
- "e"
371
- ],
372
- [
373
- "au",
374
- "o"
375
- ],
376
- [
377
- "ee",
378
- "i"
379
- ],
380
- [
381
- "oo",
382
- "u"
383
- ],
384
- [
385
- "x",
386
- "ks"
387
- ]
388
- ],
389
- letters: {
390
- a: "a",
391
- e: "e",
392
- i: "i",
393
- o: "o",
394
- u: "u",
395
- k: "k",
396
- g: "k",
397
- q: "k",
398
- j: "c",
399
- z: "c",
400
- t: "t",
401
- d: "t",
402
- n: "n",
403
- m: "m",
404
- p: "p",
405
- b: "p",
406
- f: "p",
407
- v: "v",
408
- w: "v",
409
- y: "y",
410
- r: "r",
411
- l: "l",
412
- s: "s",
413
- h: "h"
414
- },
415
- w_ambiguous_unless_before: "aeiou"
416
- },
417
- class_map: {
418
- m: "n",
419
- s: "c",
420
- v: "p",
421
- w: "p",
422
- ñ: "n",
423
- ṁ: "n",
424
- ṅ: "n",
425
- ṇ: "n",
426
- ṭ: "t"
427
- },
428
- vowels: "aeiou",
429
- steps: {
430
- "ng-k": true,
431
- "initial-vowels-alike": false,
432
- "drop-h": false,
433
- "drop-y": true,
434
- "drop-y-after-i": false,
435
- "drop-vowels": true,
436
- "drop-final-vowel": false
437
- },
438
- branches: [
439
- {
440
- from: 0,
441
- to: 127,
442
- class: "w",
443
- also: "u"
444
- },
445
- {
446
- from: 2944,
447
- to: 3071,
448
- class: "k",
449
- also: "h"
450
- },
451
- {
452
- from: 1536,
453
- to: 1791,
454
- class: "w",
455
- also: "u"
456
- }
457
- ],
458
- digit_zeros: [
459
- 48,
460
- 1632,
461
- 1776,
462
- 2406,
463
- 2534,
464
- 2662,
465
- 2790,
466
- 2918,
467
- 3046,
468
- 3174,
469
- 3302,
470
- 3430,
471
- 7248,
472
- 44016
473
- ],
474
- max_keys: 16,
475
- suffixes: [
476
- {
477
- from: 2432,
478
- to: 2559,
479
- endings: [
480
- "য়ের",
481
- "দের",
482
- "এর",
483
- "ের",
484
- "কে",
485
- "তে"
486
- ]
487
- },
488
- {
489
- from: 2688,
490
- to: 2815,
491
- endings: [
492
- "માં",
493
- "નું",
494
- "થી",
495
- "ના",
496
- "ની",
497
- "ને"
498
- ]
499
- },
500
- {
501
- from: 3328,
502
- to: 3455,
503
- endings: [
504
- "യ്ക്ക്",
505
- "ന്റെ",
506
- "യുടെ",
507
- "യിലെ",
508
- "ക്ക്",
509
- "ുടെ",
510
- "യിൽ",
511
- "ിലെ",
512
- "ോട്",
513
- "ിന്",
514
- "ിൽ",
515
- "നെ",
516
- "യെ",
517
- "ും"
518
- ]
519
- },
520
- {
521
- from: 2816,
522
- to: 2943,
523
- endings: [
524
- "ଙ୍କର",
525
- "ଙ୍କୁ",
526
- "ଙ୍କ",
527
- "ରେ",
528
- "ରୁ",
529
- "କୁ"
530
- ]
531
- },
532
- {
533
- from: 2944,
534
- to: 3071,
535
- endings: [
536
- "ுக்கு",
537
- "யின்",
538
- "வின்",
539
- "க்கு",
540
- "யில்",
541
- "ிடம்",
542
- "ுடன்",
543
- "ின்",
544
- "ில்",
545
- "ால்",
546
- "ும்"
547
- ]
548
- },
549
- {
550
- from: 3072,
551
- to: 3199,
552
- endings: [
553
- "యొక్క",
554
- "లోని",
555
- "గారు",
556
- "లో",
557
- "కు",
558
- "కి",
559
- "ని",
560
- "తో",
561
- "ను"
562
- ]
563
- }
564
- ]
565
- };
566
-
567
- // js/phonetic.ts
568
- function compile(rules) {
569
- const b = rules.brahmic;
570
- const byOffset = new Array(128);
571
- for (const [o, c] of Object.entries(b.class_by_offset))
572
- byOffset[Number(o)] = c;
573
- const extra = new Map(Object.entries(rules.extra));
574
- const urdu = new Map(Object.entries(rules.urdu.letters));
575
- const meetei = new Map(Object.entries(rules.meetei.letters));
576
- const olChiki = new Map(Object.entries(rules.ol_chiki.letters));
577
- const latin = new Array(128);
578
- for (const [l, c] of Object.entries(rules.latin.letters))
579
- latin[l.charCodeAt(0)] = c;
580
- const groups = rules.latin.groups;
581
- const wUnlessNext = rules.latin.w_ambiguous_unless_before;
582
- const classMap = new Map(Object.entries(rules.class_map));
583
- const vowels = new Set(rules.vowels);
584
- const steps = rules.steps;
585
- const u = rules.urdu;
586
- function inMeetei(o) {
587
- return rules.meetei.ranges.some(([lo, hi]) => o >= lo && o <= hi);
588
- }
589
- function readBrahmic(word) {
590
- let out = "";
591
- for (let i = 0;i < word.length; i++) {
592
- const ch = word[i];
593
- const x = extra.get(ch);
594
- if (x !== undefined) {
595
- out += x;
596
- continue;
597
- }
598
- const o = word.charCodeAt(i);
599
- if (o < b.from || o > b.to)
600
- continue;
601
- const off = o & 127;
602
- if (off === b.virama_offset)
603
- continue;
604
- if (off === b.candrabindu_offset) {
605
- out += b.candrabindu_class;
606
- continue;
607
- }
608
- const c = byOffset[off];
609
- if (c !== undefined)
610
- out += c;
611
- }
612
- return out;
613
- }
614
- function readLatin(word) {
615
- let out = "";
616
- let i = 0;
617
- outer:
618
- while (i < word.length) {
619
- for (const [g, cls] of groups) {
620
- if (word.startsWith(g, i)) {
621
- out += cls;
622
- i += g.length;
623
- continue outer;
624
- }
625
- }
626
- const ch = word.charCodeAt(i);
627
- if (ch === 99) {
628
- const next = word[i + 1];
629
- out += next === "e" || next === "i" || next === "y" ? "s" : "k";
630
- } else if (ch === 119 && i > 0 && !wUnlessNext.includes(word[i + 1] ?? " ")) {
631
- out += "w";
632
- } else {
633
- out += latin[ch] ?? "";
634
- }
635
- i++;
636
- }
637
- return out;
638
- }
639
- function readUrdu(word) {
640
- let out = word[0] === u.ain ? "a" : "";
641
- for (let i = 0;i < word.length; i++) {
642
- const ch = word[i];
643
- if (ch === u.waw && i > 0 && !(i + 1 < word.length && u.waw_v_before.includes(word[i + 1])))
644
- out += "w";
645
- else
646
- out += urdu.get(ch) ?? "";
647
- }
648
- const n = word.length;
649
- if (n > 1 && u.final_he.includes(word[n - 1]) && !u.final_he_h_after.includes(word[n - 2])) {
650
- out = out.slice(0, -1) + "a";
651
- }
652
- return out;
653
- }
654
- function readOlChiki(word) {
655
- let out = "";
656
- for (const ch of word) {
657
- if (ch === rules.ol_chiki.aspiration && out && !vowels.has(out[out.length - 1]))
658
- continue;
659
- out += olChiki.get(ch) ?? "";
660
- }
661
- return out;
662
- }
663
- function readMeetei(word) {
664
- let out = "";
665
- for (const ch of word)
666
- out += meetei.get(ch) ?? "";
667
- return out;
668
- }
669
- function read(word) {
670
- let ascii = true;
671
- for (let i = 0;i < word.length; i++)
672
- if (word.charCodeAt(i) > 127) {
673
- ascii = false;
674
- break;
675
- }
676
- if (ascii)
677
- return readLatin(word);
678
- let ol = false, me = false;
679
- for (let i = 0;i < word.length; i++) {
680
- const o = word.charCodeAt(i);
681
- if (o >= u.from && o <= u.to)
682
- return readUrdu(word);
683
- if (o >= rules.ol_chiki.from && o <= rules.ol_chiki.to)
684
- ol = true;
685
- else if (inMeetei(o))
686
- me = true;
687
- }
688
- if (ol)
689
- return readOlChiki(word);
690
- if (me)
691
- return readMeetei(word);
692
- return readBrahmic(word);
693
- }
694
- function fold(codes) {
695
- if (steps["ng-k"]) {
696
- let s = "";
697
- for (let i = 0;i < codes.length; i++) {
698
- s += codes[i];
699
- if (codes[i] === "ṅ" && codes[i + 1] !== "k")
700
- s += "k";
701
- }
702
- codes = s;
703
- }
704
- let mapped = "";
705
- for (let i = 0;i < codes.length; i++)
706
- mapped += classMap.get(codes[i]) ?? codes[i];
707
- if (!mapped)
708
- return mapped;
709
- let head = mapped[0];
710
- if (steps["initial-vowels-alike"] && vowels.has(head))
711
- head = "a";
712
- let out = head;
713
- for (let i = 1;i < mapped.length; i++) {
714
- const c = mapped[i];
715
- if (steps["drop-h"] && c === "h")
716
- continue;
717
- if (steps["drop-y"] && c === "y")
718
- continue;
719
- if (steps["drop-vowels"] && vowels.has(c))
720
- continue;
721
- out += c;
722
- }
723
- if (steps["drop-final-vowel"] && out.length > 1 && vowels.has(out[out.length - 1]))
724
- out = out.slice(0, -1);
725
- let runs = out[0];
726
- for (let i = 1;i < out.length; i++)
727
- if (out[i] !== out[i - 1])
728
- runs += out[i];
729
- return runs;
730
- }
731
- function variants(word) {
732
- const classes = read(word);
733
- let vs = [classes];
734
- for (const br of rules.branches) {
735
- if (!classes.includes(br.class))
736
- continue;
737
- let inScript = false;
738
- for (let i = 0;i < word.length; i++) {
739
- const o = word.charCodeAt(i);
740
- if (o >= br.from && o <= br.to) {
741
- inScript = true;
742
- break;
743
- }
744
- }
745
- if (!inScript)
746
- continue;
747
- for (let i = 0;i < classes.length; i++) {
748
- if (classes[i] === br.class && vs.length * 2 <= rules.max_keys) {
749
- vs = vs.concat(vs.map((v) => v.slice(0, i) + br.also + v.slice(i + 1)));
750
- }
751
- }
752
- }
753
- return vs;
754
- }
755
- function number(word) {
756
- let out = "";
757
- for (let i = 0;i < word.length; i++) {
758
- const o = word.charCodeAt(i);
759
- const z = rules.digit_zeros.find((z2) => o >= z2 && o <= z2 + 9);
760
- if (z === undefined)
761
- return;
762
- out += String.fromCharCode(48 + o - z);
763
- }
764
- return out || undefined;
765
- }
766
- return function keys(word) {
767
- const n = number(word);
768
- if (n !== undefined)
769
- return [n];
770
- const bases = [word];
771
- const first = word.charCodeAt(0);
772
- for (const sf of rules.suffixes) {
773
- if (first < sf.from || first > sf.to)
774
- continue;
775
- for (const e of sf.endings) {
776
- if (word.endsWith(e) && word.length - e.length >= 2) {
777
- bases.push(word.slice(0, -e.length));
778
- break;
779
- }
780
- }
781
- }
782
- const out = new Set;
783
- for (const base of bases)
784
- for (const v of variants(base))
785
- out.add(fold(v));
786
- out.delete("");
787
- return [...out].sort();
788
- };
789
- }
790
- var engine = compile(rules_default);
791
- var RULES_VERSION = rules_default.version;
792
- var MAX_NAME_KEYS = 256;
793
- function normalize(word) {
794
- const plain = word.normalize("NFD").replace(/\p{Mn}/gu, "");
795
- return /^[\x00-\x7f]*$/.test(plain) ? plain.toLowerCase() : word.normalize("NFC");
796
- }
797
- function keys(word) {
798
- const w = normalize(word);
799
- return w ? engine(w) : [];
800
- }
801
- function words(name) {
802
- return name.replace(/\([^)]*\)/g, " ").split(/[^\S\ufeff]|[\x1c-\x1f\x85.\-,'’]/u).filter(Boolean);
803
- }
804
- function nameKeys(name) {
805
- let out = [""];
806
- for (const w of words(name)) {
807
- const ks = keys(w);
808
- if (!ks.length)
809
- continue;
810
- const next = [];
811
- for (const p of out)
812
- for (const k of ks) {
813
- if (next.length < MAX_NAME_KEYS)
814
- next.push(p ? p + " " + k : k);
815
- }
816
- out = next;
817
- }
818
- return out[0] === "" ? [] : out;
819
- }
820
- function match(a, b) {
821
- const wa = words(a), wb = words(b);
822
- if (!wa.length || wa.length !== wb.length)
823
- return false;
824
- return wa.every((w, i) => {
825
- const kb = new Set(keys(wb[i]));
826
- return keys(w).some((k) => kb.has(k));
827
- });
828
- }
829
- export {
830
- words,
831
- nameKeys,
832
- match,
833
- keys,
834
- RULES_VERSION,
835
- MAX_NAME_KEYS
836
- };
1
+ var T={version:"2026-10-07",folds:["bn-case","brahmic-av-u","drop-vowels","drop-y","flap-r","gu-case","latin-ngh","latin-w-u","ml-case","nasal-all","ng-k","or-case","retroflex","s-c","ta-case","ta-k-h","te-case","ur-w-u","v-b"],brahmic:{from:2304,to:3455,class_by_offset:{"2":"ṁ","5":"a","6":"a","7":"i","8":"i","9":"u","10":"u","11":"r","12":"l","13":"e","14":"e","15":"e","16":"e","17":"o","18":"o","19":"o","20":"o","21":"k","22":"k","23":"k","24":"k","25":"ṅ","26":"c","27":"c","28":"c","29":"c","30":"ñ","31":"ṭ","32":"ṭ","33":"ṭ","34":"ṭ","35":"ṇ","36":"t","37":"t","38":"t","39":"t","40":"n","41":"n","42":"p","43":"p","44":"p","45":"p","46":"m","47":"y","48":"r","49":"r","50":"l","51":"l","52":"l","53":"v","54":"s","55":"s","56":"s","57":"h","62":"a","63":"i","64":"i","65":"u","66":"u","67":"r","68":"r","69":"e","70":"e","71":"e","72":"e","73":"o","74":"o","75":"o","76":"o","87":"o","96":"r","97":"l","98":"l","99":"l"},virama_offset:77,candrabindu_offset:1,candrabindu_class:"ṁ",nukta_offset:60,flap_offsets:[33,34],flap_class:"ṛ"},extra:{ৎ:"t",ৰ:"r",ৱ:"v",ୱ:"v","ੰ":"ṁ","ਂ":"ṁ",ൺ:"ṇ",ൻ:"n",ർ:"r",ൽ:"l",ൾ:"l",ൿ:"k",ൔ:"m",ൕ:"y",ൖ:"l",ड़:"ṛ",ढ़:"ṛ",ড়:"ṛ",ঢ়:"ṛ",ଡ଼:"ṛ",ଢ଼:"ṛ",ੜ:"ṛ"},urdu:{from:1536,to:1791,letters:{ا:"a",آ:"a",أ:"a",ب:"p",پ:"p",ت:"t",ٹ:"ṭ",ث:"s",ج:"c",چ:"c",ح:"h",خ:"k",د:"t",ڈ:"ṭ",ذ:"c",ر:"r",ڑ:"ṛ",ز:"c",ژ:"c",س:"s",ش:"s",ص:"s",ض:"c",ط:"t",ظ:"c",غ:"k",ف:"p",ق:"k",ک:"k",ك:"k",گ:"k",ل:"l",م:"m",ن:"n",ں:"ṁ",و:"v",ؤ:"u",ہ:"h",ه:"h",ۃ:"a",ی:"y",ي:"y",ى:"y",ئ:"y",ے:"e",ۓ:"e",ٻ:"p",ڀ:"p",ٺ:"ṭ",ٽ:"ṭ",ٿ:"t",ڄ:"c",ڃ:"ñ",ڇ:"c",ڊ:"ṭ",ڌ:"t",ڍ:"ṭ",ڏ:"t",ڙ:"ṛ",ڦ:"p",ڪ:"k",ڱ:"ṅ",ڳ:"k",ڻ:"ṇ",ٲ:"a",ٳ:"a",ۆ:"o",ۄ:"o",ێ:"e",ؠ:"y"},ain:"ع",waw:"و",waw_v_before:"اآ",final_he:"ہه",final_he_h_after:"اآو"},meetei:{ranges:[[43744,43775],[43968,44031]],letters:{ꯀ:"k",ꯁ:"s",ꯂ:"l",ꯃ:"m",ꯄ:"p",ꯅ:"n",ꯆ:"c",ꯇ:"t",ꯈ:"k",ꯉ:"ṅ",ꯊ:"t",ꯋ:"v",ꯌ:"y",ꯍ:"h",ꯎ:"u",ꯏ:"i",ꯐ:"p",ꯑ:"a",ꯒ:"k",ꯓ:"c",ꯔ:"r",ꯕ:"p",ꯖ:"c",ꯗ:"t",ꯘ:"k",ꯙ:"t",ꯚ:"p",ꯛ:"k",ꯜ:"l",ꯝ:"m",ꯞ:"p",ꯟ:"n",ꯠ:"t",ꯡ:"ṅ",ꯢ:"i","ꯣ":"o","ꯤ":"i","ꯥ":"a","ꯦ":"e","ꯧ":"o","ꯨ":"u","ꯩ":"e","ꯪ":"ṁ",ꫠ:"e",ꫡ:"o",ꫢ:"c",ꫣ:"ñ",ꫤ:"ṭ",ꫥ:"ṭ",ꫦ:"ṭ",ꫧ:"ṭ",ꫨ:"ṇ",ꫩ:"s",ꫪ:"s","ꫫ":"i","ꫬ":"u","ꫭ":"e","ꫮ":"o","ꫯ":"o"}},ol_chiki:{from:7248,to:7295,letters:{ᱚ:"o",ᱛ:"t",ᱜ:"k",ᱝ:"ṅ",ᱞ:"l",ᱟ:"a",ᱠ:"k",ᱡ:"c",ᱢ:"m",ᱣ:"v",ᱤ:"i",ᱥ:"s",ᱦ:"h",ᱧ:"ñ",ᱨ:"r",ᱩ:"u",ᱪ:"c",ᱫ:"t",ᱬ:"ṇ",ᱭ:"y",ᱮ:"e",ᱯ:"p",ᱰ:"ṭ",ᱱ:"n",ᱲ:"ṛ",ᱳ:"o",ᱴ:"ṭ",ᱵ:"p",ᱶ:"v",ᱷ:"h",ᱸ:"ṁ"},aspiration:"ᱷ"},latin:{groups:[["ngh","nĝ"],["chh","c"],["ch","c"],["jh","c"],["kh","k"],["gh","k"],["th","t"],["dh","t"],["ph","p"],["bh","p"],["sh","s"],["ck","k"],["aa","a"],["ai","e"],["ei","e"],["au","o"],["ee","i"],["oo","u"],["x","ks"]],letters:{a:"a",e:"e",i:"i",o:"o",u:"u",k:"k",g:"k",q:"k",j:"c",z:"c",t:"t",d:"t",n:"n",m:"m",p:"p",b:"p",f:"p",v:"v",w:"v",y:"y",r:"r",l:"l",s:"s",h:"h"},w_ambiguous_unless_before:"aeiou"},class_map:{m:"n",s:"c",v:"p",w:"p",ñ:"n",ĝ:"k",ṁ:"n",ṅ:"n",ṇ:"n",ṛ:"t",ṭ:"t"},vowels:"aeiou",steps:{"ng-k":!0,"initial-vowels-alike":!1,"drop-h":!1,"drop-y":!0,"drop-y-after-i":!1,"drop-vowels":!0,"drop-final-vowel":!1},branches:[{from:2304,to:3455,class:"v",also:"u",after:"aṁ",not_before:"aieo"},{from:1536,to:7295,class:"ṛ",also:"r"},{from:0,to:127,class:"ĝ",also:"h"},{from:0,to:127,class:"w",also:"u"},{from:2944,to:3071,class:"k",also:"h"},{from:1536,to:1791,class:"w",also:"u"}],joined:{min_classes:8,when:"the strict keys find nobody"},digit_zeros:[48,1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,7248,44016],max_keys:16,suffixes:[{from:2432,to:2559,endings:["য়ের","দের","এর","ের","কে","তে"]},{from:2688,to:2815,endings:["માં","નું","થી","ના","ની","ને"]},{from:3328,to:3455,endings:["യ്ക്ക്","ന്റെ","യുടെ","യിലെ","ക്ക്","ുടെ","യിൽ","ിലെ","ോട്","ിന്","ിൽ","നെ","യെ","ും"]},{from:2816,to:2943,endings:["ଙ୍କର","ଙ୍କୁ","ଙ୍କ","ରେ","ରୁ","କୁ"]},{from:2944,to:3071,endings:["ுக்கு","யின்","வின்","க்கு","யில்","ிடம்","ுடன்","ின்","ில்","ால்","ும்"]},{from:3072,to:3199,endings:["యొక్క","లోని","గారు","లో","కు","కి","ని","తో","ను"]}]};var B={unicode:"15.0.0",python:"3.12.13",ranges:[1536,1791,1872,1919,2304,3455,7248,7295,7376,7423,43232,43263,43744,44031,64336,65023,65136,65279,72448,72543],mn:[1552,1562,1611,1631,1648,1648,1750,1756,1759,1764,1767,1768,1770,1773,2304,2306,2362,2362,2364,2364,2369,2376,2381,2381,2385,2391,2402,2403,2433,2433,2492,2492,2497,2500,2509,2509,2530,2531,2558,2558,2561,2562,2620,2620,2625,2626,2631,2632,2635,2637,2641,2641,2672,2673,2677,2677,2689,2690,2748,2748,2753,2757,2759,2760,2765,2765,2786,2787,2810,2815,2817,2817,2876,2876,2879,2879,2881,2884,2893,2893,2901,2902,2914,2915,2946,2946,3008,3008,3021,3021,3072,3072,3076,3076,3132,3132,3134,3136,3142,3144,3146,3149,3157,3158,3170,3171,3201,3201,3260,3260,3263,3263,3270,3270,3276,3277,3298,3299,3328,3329,3387,3388,3393,3396,3405,3405,3426,3427,7376,7378,7380,7392,7394,7400,7405,7405,7412,7412,7416,7417,43232,43249,43263,43263,43756,43757,43766,43766,44005,44005,44008,44008,44013,44013],m:[1552,1562,1611,1631,1648,1648,1750,1756,1759,1764,1767,1768,1770,1773,2304,2307,2362,2364,2366,2383,2385,2391,2402,2403,2433,2435,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2530,2531,2558,2558,2561,2563,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2672,2673,2677,2677,2689,2691,2748,2748,2750,2757,2759,2761,2763,2765,2786,2787,2810,2815,2817,2819,2876,2876,2878,2884,2887,2888,2891,2893,2901,2903,2914,2915,2946,2946,3006,3010,3014,3016,3018,3021,3031,3031,3072,3076,3132,3132,3134,3140,3142,3144,3146,3149,3157,3158,3170,3171,3201,3203,3260,3260,3262,3268,3270,3272,3274,3277,3285,3286,3298,3299,3315,3315,3328,3331,3387,3388,3390,3396,3398,3400,3402,3405,3415,3415,3426,3427,7376,7378,7380,7400,7405,7405,7412,7412,7415,7417,43232,43249,43263,43263,43755,43759,43765,43766,44003,44010,44012,44013],l:[1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1872,1919,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,7258,7293,7401,7404,7406,7411,7413,7414,7418,7418,43250,43255,43259,43259,43261,43262,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,64336,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276],ccc:[1552,1559,230,1560,1560,30,1561,1561,31,1562,1562,32,1611,1611,27,1612,1612,28,1613,1613,29,1614,1614,30,1615,1615,31,1616,1616,32,1617,1617,33,1618,1618,34,1619,1620,230,1621,1622,220,1623,1627,230,1628,1628,220,1629,1630,230,1631,1631,220,1648,1648,35,1750,1756,230,1759,1762,230,1763,1763,220,1764,1764,230,1767,1768,230,1770,1770,220,1771,1772,230,1773,1773,220,2364,2364,7,2381,2381,9,2385,2385,230,2386,2386,220,2387,2388,230,2492,2492,7,2509,2509,9,2558,2558,230,2620,2620,7,2637,2637,9,2748,2748,7,2765,2765,9,2876,2876,7,2893,2893,9,3021,3021,9,3132,3132,7,3149,3149,9,3157,3157,84,3158,3158,91,3260,3260,7,3277,3277,9,3387,3388,9,3405,3405,9,7376,7378,230,7380,7380,1,7381,7385,220,7386,7387,230,7388,7391,220,7392,7392,230,7394,7400,1,7405,7405,220,7412,7412,230,7416,7417,230,43232,43249,230,43766,43766,9,44013,44013,9],decomp:{"1570":[1575,1619],"1571":[1575,1620],"1572":[1608,1620],"1573":[1575,1621],"1574":[1610,1620],"1728":[1749,1620],"1730":[1729,1620],"1747":[1746,1620],"2345":[2344,2364],"2353":[2352,2364],"2356":[2355,2364],"2392":[2325,2364],"2393":[2326,2364],"2394":[2327,2364],"2395":[2332,2364],"2396":[2337,2364],"2397":[2338,2364],"2398":[2347,2364],"2399":[2351,2364],"2507":[2503,2494],"2508":[2503,2519],"2524":[2465,2492],"2525":[2466,2492],"2527":[2479,2492],"2611":[2610,2620],"2614":[2616,2620],"2649":[2582,2620],"2650":[2583,2620],"2651":[2588,2620],"2654":[2603,2620],"2888":[2887,2902],"2891":[2887,2878],"2892":[2887,2903],"2908":[2849,2876],"2909":[2850,2876],"2964":[2962,3031],"3018":[3014,3006],"3019":[3015,3006],"3020":[3014,3031],"3144":[3142,3158],"3264":[3263,3285],"3271":[3270,3285],"3272":[3270,3286],"3274":[3270,3266],"3275":[3274,3285],"3402":[3398,3390],"3403":[3399,3390],"3404":[3398,3415]},excl:[2392,2393,2394,2395,2396,2397,2398,2399,2524,2525,2527,2611,2614,2649,2650,2651,2654,2908,2909]};var H2=B.unicode,n=1,k2=2,g2=4,z=8,X=new Map,U=new Map,M=new Map;for(let _=0;_<B.ranges.length;_+=2)for(let k=B.ranges[_];k<=B.ranges[_+1];k++)X.set(k,0);var O=(_,k)=>{for(let q=0;q<_.length;q+=2)for(let F=_[q];F<=_[q+1];F++)X.set(F,X.get(F)|k)};O(B.mn,n);O(B.m,k2);O(B.l,g2);for(let _=0;_<B.ccc.length;_+=3)for(let k=B.ccc[_];k<=B.ccc[_+1];k++)X.set(k,X.get(k)|B.ccc[_+2]<<4);var y2=new Set(B.excl);for(let[_,k]of Object.entries(B.decomp)){let q=Number(_);if(U.set(q,k),k.length===2&&!y2.has(q))M.set(k[0]*1114112+k[1],q),X.set(k[1],X.get(k[1])|z)}var x=(_)=>String.fromCodePoint(_);function L(_,k,q){let F="";for(let H=k;H<q;H+=8192)F+=String.fromCodePoint(..._.slice(H,Math.min(q,H+8192)));return F}function E(_){let k=X.get(_);return k===void 0?/\p{Mn}/u.test(x(_)):(k&n)!==0}function A(_){if(!X.has(_))return Array.from(x(_).normalize("NFD"),(q)=>q.codePointAt(0));let k=U.get(_);return k?k.flatMap(A):[_]}var h2=(_,k)=>_>>4===0&&(_&z)===0&&!U.has(k);function j(_){let k=Array.from(_,(F)=>F.codePointAt(0)),q="";for(let F=0;F<k.length;){let H=F+1,Q=X.has(k[F]);for(;H<k.length;H++){let R=X.get(k[H]);if(R===void 0)Q=!1;else if(h2(R,k[H]))break}q+=Q?f2(k,F,H):L(k,F,H).normalize("NFC"),F=H}return q}function f2(_,k,q){let F=0,H=!0;for(let P=k;P<q&&H;P++){let K=X.get(_[P]),$=K>>4;if(U.has(_[P])||(K&z)!==0||$!==0&&$<F)H=!1;F=$}if(H)return L(_,k,q);let Q=[];for(let P=k;P<q;P++)Q.push(...A(_[P]));let R=(P)=>X.get(P)>>4;for(let P=0;P<Q.length;){if(R(Q[P])===0){P++;continue}let K=P;while(K<Q.length&&R(Q[K])!==0)K++;let $=Q.slice(P,K).sort((W,Y)=>R(W)-R(Y));for(let W=0;W<$.length;W++)Q[P+W]=$[W];P=K}let Z=[],I=-1;for(let P of Q){let K=R(P);if(I>=0&&(Z.length-1===I||R(Z[Z.length-1])<K)){let $=M.get(Z[I]*1114112+P);if($!==void 0){Z[I]=$;continue}}if(K===0)I=Z.length;Z.push(P)}return L(Z,0,Z.length)}var a="\x00";function b(_){let k=_.brahmic,q=Array(128);for(let[y,g]of Object.entries(k.class_by_offset))q[Number(y)]=g;let F=new Map(Object.entries(_.extra)),H=new Map(Object.entries(_.urdu.letters)),Q=new Map(Object.entries(_.meetei.letters)),R=new Map(Object.entries(_.ol_chiki.letters)),Z=Array(128);for(let[y,g]of Object.entries(_.latin.letters))Z[y.charCodeAt(0)]=g;let I=_.latin.groups,P=_.latin.w_ambiguous_unless_before,K=new Map(Object.entries(_.class_map)),$=new Set(_.vowels),W=_.steps,Y=_.urdu;function l(y){return _.meetei.ranges.some(([g,h])=>y>=g&&y<=h)}function t(y){let g="",h=-1;for(let f=0;f<y.length;f++){let v=y[f],m=F.get(v);if(m!==void 0){g+=m,h=-1;continue}let G=y.charCodeAt(f);if(G<k.from||G>k.to)continue;let V=G&127,C=q[V];if(V===k.nukta_offset&&k.flap_offsets.includes(h)&&g)g=g.slice(0,-1)+k.flap_class;else if(V===k.virama_offset);else if(V===k.candrabindu_offset)g+=k.candrabindu_class;else if(C!==void 0)g+=C;if(C!==void 0)h=V;else if(V!==k.nukta_offset&&V!==k.virama_offset)h=-1}return g}function i(y){let g="",h=0;_:while(h<y.length){for(let[v,m]of I)if(y.startsWith(v,h)){g+=m,h+=v.length;continue _}let f=y.charCodeAt(h);if(f===99){let v=y[h+1];g+=v==="e"||v==="i"||v==="y"?"s":"k"}else if(f===119&&h>0&&!P.includes(y[h+1]??" "))g+="w";else g+=Z[f]??"";h++}return g}function u(y){let g=y[0]===Y.ain?"a":"";for(let f=0;f<y.length;f++){let v=y[f];if(v===Y.waw&&f>0&&!(f+1<y.length&&Y.waw_v_before.includes(y[f+1])))g+="w";else g+=H.get(v)??""}let h=y.length;if(h>1&&Y.final_he.includes(y[h-1])&&!Y.final_he_h_after.includes(y[h-2]))g=g.slice(0,-1)+"a";return g}function w(y){let g="";for(let h of y){if(h===_.ol_chiki.aspiration&&g&&!$.has(g[g.length-1]))continue;g+=R.get(h)??""}return g}function p(y){let g="";for(let h of y)g+=Q.get(h)??"";return g}function e(y){let g=!0;for(let v=0;v<y.length;v++)if(y.charCodeAt(v)>127){g=!1;break}if(g)return i(y);let h=!1,f=!1;for(let v=0;v<y.length;v++){let m=y.charCodeAt(v);if(m>=Y.from&&m<=Y.to)return u(y);if(m>=_.ol_chiki.from&&m<=_.ol_chiki.to)h=!0;else if(l(m))f=!0}if(h)return w(y);if(f)return p(y);return t(y)}function c(y){if(W["ng-k"]){let m="";for(let G=0;G<y.length;G++)if(m+=y[G],y[G]==="ṅ"&&y[G+1]!=="k")m+="k";y=m}let g="";for(let m=0;m<y.length;m++)g+=K.get(y[m])??y[m];if(!g)return g;let h=g[0];if(W["initial-vowels-alike"]&&$.has(h))h="a";let f=h;for(let m=1;m<g.length;m++){let G=g[m];if(W["drop-h"]&&G==="h")continue;if(W["drop-y"]&&G==="y")continue;if(W["drop-vowels"]&&$.has(G))continue;f+=G}if(W["drop-final-vowel"]&&f.length>1&&$.has(f[f.length-1]))f=f.slice(0,-1);let v=f[0];for(let m=1;m<f.length;m++)if(f[m]!==f[m-1])v+=f[m];return v}function s(y,g,h){let f=g>0?y[g-1]:"^",v=g+1<y.length?y[g+1]:"$";return(h.after===void 0||h.after.includes(f))&&(h.before===void 0||h.before.includes(v))&&!(h.not_before??"").includes(v)}function d(y){let g=e(y),h=[g];for(let f of _.branches){if(!g.includes(f.class))continue;let v=!1;for(let m=0;m<y.length;m++){let G=y.charCodeAt(m);if(G>=f.from&&G<=f.to){v=!0;break}}if(!v)continue;for(let m=0;m<g.length;m++)if(g[m]===f.class&&h.length*2<=_.max_keys&&s(g,m,f)){let G=f.also||a;h=h.concat(h.map((V)=>V.slice(0,m)+G+V.slice(m+1)))}}return h.map((f)=>f.replaceAll(a,""))}function o(y){let g="";for(let h=0;h<y.length;h++){let f=y.charCodeAt(h),v=_.digit_zeros.find((m)=>f>=m&&f<=m+9);if(v===void 0)return;g+=String.fromCharCode(48+f-v)}return g||void 0}return function(g){let h=o(g);if(h!==void 0)return[h];let f=[g],v=g.charCodeAt(0);for(let G of _.suffixes){if(v<G.from||v>G.to)continue;for(let V of G.endings)if(g.endsWith(V)&&g.length-V.length>=2){f.push(g.slice(0,-V.length));break}}let m=new Set;for(let G of f)for(let V of d(G))m.add(c(V));return m.delete(""),[...m].sort()}}var N=b(T),V2={compile:(_)=>b(_),normalize:(_)=>S(_),engine:N},Z2=T.version,m2=256;function S(_){let k="";for(let q of _)for(let F of A(q.codePointAt(0))){if(E(F))continue;if(F>=128)return j(_);k+=String.fromCodePoint(F)}return k.toLowerCase()}function D(_){let k=S(_);return k?N(k):[]}function J(_){return _.replace(/\([^)]*\)/g," ").split(/[^\S\ufeff]|[\x1c-\x1f\x85.\-,'’]/u).filter(Boolean)}function $2(_){let k=[""];for(let q of J(_)){let F=D(q);if(!F.length)continue;let H=[];for(let Q of k)for(let R of F)if(H.length<m2)H.push(Q?Q+" "+R:R);k=H}return k[0]===""?[]:k}var v2=T.joined.min_classes;function B2(_){let k=J(_).map(S).join("");if(!k)return[];return N(k).filter((q)=>[...q].length>=v2)}function K2(_,k){let q=J(_),F=J(k);if(!q.length||q.length!==F.length)return!1;return q.every((H,Q)=>{let R=new Set(D(F[Q]));return D(H).some((Z)=>R.has(Z))})}export{J as words,$2 as nameKeys,K2 as match,D as keys,B2 as joinedKeys,V2 as _internal,Z2 as RULES_VERSION,m2 as MAX_NAME_KEYS,v2 as JOINED_MIN_CLASSES};