indickit 0.8.0 → 0.10.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/README.md +115 -21
- package/dist/deromanize.js +1 -1129
- package/dist/normalize.js +1 -204
- package/dist/phonetic-search.js +1 -1329
- package/dist/phonetic.js +1 -905
- package/dist/romanize.js +1 -743
- package/dist/segment.js +1 -175
- package/dist/stem.js +1 -48
- package/dist/types/js/phonetic-engine.d.ts +21 -0
- package/dist/types/js/phonetic-search.d.ts +4 -2
- package/dist/types/js/phonetic.d.ts +2 -9
- package/dist/types/js/romanize.d.ts +0 -2
- package/dist/types/js/stem.d.ts +1 -0
- package/dist/types/js/unidata.d.ts +36 -0
- package/dist/types/js/wellformed.d.ts +31 -0
- package/dist/wellformed.js +1 -0
- package/package.json +6 -2
package/dist/phonetic.js
CHANGED
|
@@ -1,905 +1 @@
|
|
|
1
|
-
// phonetic/rules.json
|
|
2
|
-
var rules_default = {
|
|
3
|
-
version: "2026-10-07",
|
|
4
|
-
folds: [
|
|
5
|
-
"bn-case",
|
|
6
|
-
"brahmic-av-u",
|
|
7
|
-
"drop-vowels",
|
|
8
|
-
"drop-y",
|
|
9
|
-
"flap-r",
|
|
10
|
-
"gu-case",
|
|
11
|
-
"latin-ngh",
|
|
12
|
-
"latin-w-u",
|
|
13
|
-
"ml-case",
|
|
14
|
-
"nasal-all",
|
|
15
|
-
"ng-k",
|
|
16
|
-
"or-case",
|
|
17
|
-
"retroflex",
|
|
18
|
-
"s-c",
|
|
19
|
-
"ta-case",
|
|
20
|
-
"ta-k-h",
|
|
21
|
-
"te-case",
|
|
22
|
-
"ur-w-u",
|
|
23
|
-
"v-b"
|
|
24
|
-
],
|
|
25
|
-
brahmic: {
|
|
26
|
-
from: 2304,
|
|
27
|
-
to: 3455,
|
|
28
|
-
class_by_offset: {
|
|
29
|
-
"2": "ṁ",
|
|
30
|
-
"5": "a",
|
|
31
|
-
"6": "a",
|
|
32
|
-
"7": "i",
|
|
33
|
-
"8": "i",
|
|
34
|
-
"9": "u",
|
|
35
|
-
"10": "u",
|
|
36
|
-
"11": "r",
|
|
37
|
-
"12": "l",
|
|
38
|
-
"13": "e",
|
|
39
|
-
"14": "e",
|
|
40
|
-
"15": "e",
|
|
41
|
-
"16": "e",
|
|
42
|
-
"17": "o",
|
|
43
|
-
"18": "o",
|
|
44
|
-
"19": "o",
|
|
45
|
-
"20": "o",
|
|
46
|
-
"21": "k",
|
|
47
|
-
"22": "k",
|
|
48
|
-
"23": "k",
|
|
49
|
-
"24": "k",
|
|
50
|
-
"25": "ṅ",
|
|
51
|
-
"26": "c",
|
|
52
|
-
"27": "c",
|
|
53
|
-
"28": "c",
|
|
54
|
-
"29": "c",
|
|
55
|
-
"30": "ñ",
|
|
56
|
-
"31": "ṭ",
|
|
57
|
-
"32": "ṭ",
|
|
58
|
-
"33": "ṭ",
|
|
59
|
-
"34": "ṭ",
|
|
60
|
-
"35": "ṇ",
|
|
61
|
-
"36": "t",
|
|
62
|
-
"37": "t",
|
|
63
|
-
"38": "t",
|
|
64
|
-
"39": "t",
|
|
65
|
-
"40": "n",
|
|
66
|
-
"41": "n",
|
|
67
|
-
"42": "p",
|
|
68
|
-
"43": "p",
|
|
69
|
-
"44": "p",
|
|
70
|
-
"45": "p",
|
|
71
|
-
"46": "m",
|
|
72
|
-
"47": "y",
|
|
73
|
-
"48": "r",
|
|
74
|
-
"49": "r",
|
|
75
|
-
"50": "l",
|
|
76
|
-
"51": "l",
|
|
77
|
-
"52": "l",
|
|
78
|
-
"53": "v",
|
|
79
|
-
"54": "s",
|
|
80
|
-
"55": "s",
|
|
81
|
-
"56": "s",
|
|
82
|
-
"57": "h",
|
|
83
|
-
"62": "a",
|
|
84
|
-
"63": "i",
|
|
85
|
-
"64": "i",
|
|
86
|
-
"65": "u",
|
|
87
|
-
"66": "u",
|
|
88
|
-
"67": "r",
|
|
89
|
-
"68": "r",
|
|
90
|
-
"69": "e",
|
|
91
|
-
"70": "e",
|
|
92
|
-
"71": "e",
|
|
93
|
-
"72": "e",
|
|
94
|
-
"73": "o",
|
|
95
|
-
"74": "o",
|
|
96
|
-
"75": "o",
|
|
97
|
-
"76": "o",
|
|
98
|
-
"87": "o",
|
|
99
|
-
"96": "r",
|
|
100
|
-
"97": "l",
|
|
101
|
-
"98": "l",
|
|
102
|
-
"99": "l"
|
|
103
|
-
},
|
|
104
|
-
virama_offset: 77,
|
|
105
|
-
candrabindu_offset: 1,
|
|
106
|
-
candrabindu_class: "ṁ",
|
|
107
|
-
nukta_offset: 60,
|
|
108
|
-
flap_offsets: [
|
|
109
|
-
33,
|
|
110
|
-
34
|
|
111
|
-
],
|
|
112
|
-
flap_class: "ṛ"
|
|
113
|
-
},
|
|
114
|
-
extra: {
|
|
115
|
-
ৎ: "t",
|
|
116
|
-
ৰ: "r",
|
|
117
|
-
ৱ: "v",
|
|
118
|
-
ୱ: "v",
|
|
119
|
-
"ੰ": "ṁ",
|
|
120
|
-
"ਂ": "ṁ",
|
|
121
|
-
ൺ: "ṇ",
|
|
122
|
-
ൻ: "n",
|
|
123
|
-
ർ: "r",
|
|
124
|
-
ൽ: "l",
|
|
125
|
-
ൾ: "l",
|
|
126
|
-
ൿ: "k",
|
|
127
|
-
ൔ: "m",
|
|
128
|
-
ൕ: "y",
|
|
129
|
-
ൖ: "l",
|
|
130
|
-
ड़: "ṛ",
|
|
131
|
-
ढ़: "ṛ",
|
|
132
|
-
ড়: "ṛ",
|
|
133
|
-
ঢ়: "ṛ",
|
|
134
|
-
ଡ଼: "ṛ",
|
|
135
|
-
ଢ଼: "ṛ",
|
|
136
|
-
ੜ: "ṛ"
|
|
137
|
-
},
|
|
138
|
-
urdu: {
|
|
139
|
-
from: 1536,
|
|
140
|
-
to: 1791,
|
|
141
|
-
letters: {
|
|
142
|
-
ا: "a",
|
|
143
|
-
آ: "a",
|
|
144
|
-
أ: "a",
|
|
145
|
-
ب: "p",
|
|
146
|
-
پ: "p",
|
|
147
|
-
ت: "t",
|
|
148
|
-
ٹ: "ṭ",
|
|
149
|
-
ث: "s",
|
|
150
|
-
ج: "c",
|
|
151
|
-
چ: "c",
|
|
152
|
-
ح: "h",
|
|
153
|
-
خ: "k",
|
|
154
|
-
د: "t",
|
|
155
|
-
ڈ: "ṭ",
|
|
156
|
-
ذ: "c",
|
|
157
|
-
ر: "r",
|
|
158
|
-
ڑ: "ṛ",
|
|
159
|
-
ز: "c",
|
|
160
|
-
ژ: "c",
|
|
161
|
-
س: "s",
|
|
162
|
-
ش: "s",
|
|
163
|
-
ص: "s",
|
|
164
|
-
ض: "c",
|
|
165
|
-
ط: "t",
|
|
166
|
-
ظ: "c",
|
|
167
|
-
غ: "k",
|
|
168
|
-
ف: "p",
|
|
169
|
-
ق: "k",
|
|
170
|
-
ک: "k",
|
|
171
|
-
ك: "k",
|
|
172
|
-
گ: "k",
|
|
173
|
-
ل: "l",
|
|
174
|
-
م: "m",
|
|
175
|
-
ن: "n",
|
|
176
|
-
ں: "ṁ",
|
|
177
|
-
و: "v",
|
|
178
|
-
ؤ: "u",
|
|
179
|
-
ہ: "h",
|
|
180
|
-
ه: "h",
|
|
181
|
-
ۃ: "a",
|
|
182
|
-
ی: "y",
|
|
183
|
-
ي: "y",
|
|
184
|
-
ى: "y",
|
|
185
|
-
ئ: "y",
|
|
186
|
-
ے: "e",
|
|
187
|
-
ۓ: "e",
|
|
188
|
-
ٻ: "p",
|
|
189
|
-
ڀ: "p",
|
|
190
|
-
ٺ: "ṭ",
|
|
191
|
-
ٽ: "ṭ",
|
|
192
|
-
ٿ: "t",
|
|
193
|
-
ڄ: "c",
|
|
194
|
-
ڃ: "ñ",
|
|
195
|
-
ڇ: "c",
|
|
196
|
-
ڊ: "ṭ",
|
|
197
|
-
ڌ: "t",
|
|
198
|
-
ڍ: "ṭ",
|
|
199
|
-
ڏ: "t",
|
|
200
|
-
ڙ: "ṛ",
|
|
201
|
-
ڦ: "p",
|
|
202
|
-
ڪ: "k",
|
|
203
|
-
ڱ: "ṅ",
|
|
204
|
-
ڳ: "k",
|
|
205
|
-
ڻ: "ṇ",
|
|
206
|
-
ٲ: "a",
|
|
207
|
-
ٳ: "a",
|
|
208
|
-
ۆ: "o",
|
|
209
|
-
ۄ: "o",
|
|
210
|
-
ێ: "e",
|
|
211
|
-
ؠ: "y"
|
|
212
|
-
},
|
|
213
|
-
ain: "ع",
|
|
214
|
-
waw: "و",
|
|
215
|
-
waw_v_before: "اآ",
|
|
216
|
-
final_he: "ہه",
|
|
217
|
-
final_he_h_after: "اآو"
|
|
218
|
-
},
|
|
219
|
-
meetei: {
|
|
220
|
-
ranges: [
|
|
221
|
-
[
|
|
222
|
-
43744,
|
|
223
|
-
43775
|
|
224
|
-
],
|
|
225
|
-
[
|
|
226
|
-
43968,
|
|
227
|
-
44031
|
|
228
|
-
]
|
|
229
|
-
],
|
|
230
|
-
letters: {
|
|
231
|
-
ꯀ: "k",
|
|
232
|
-
ꯁ: "s",
|
|
233
|
-
ꯂ: "l",
|
|
234
|
-
ꯃ: "m",
|
|
235
|
-
ꯄ: "p",
|
|
236
|
-
ꯅ: "n",
|
|
237
|
-
ꯆ: "c",
|
|
238
|
-
ꯇ: "t",
|
|
239
|
-
ꯈ: "k",
|
|
240
|
-
ꯉ: "ṅ",
|
|
241
|
-
ꯊ: "t",
|
|
242
|
-
ꯋ: "v",
|
|
243
|
-
ꯌ: "y",
|
|
244
|
-
ꯍ: "h",
|
|
245
|
-
ꯎ: "u",
|
|
246
|
-
ꯏ: "i",
|
|
247
|
-
ꯐ: "p",
|
|
248
|
-
ꯑ: "a",
|
|
249
|
-
ꯒ: "k",
|
|
250
|
-
ꯓ: "c",
|
|
251
|
-
ꯔ: "r",
|
|
252
|
-
ꯕ: "p",
|
|
253
|
-
ꯖ: "c",
|
|
254
|
-
ꯗ: "t",
|
|
255
|
-
ꯘ: "k",
|
|
256
|
-
ꯙ: "t",
|
|
257
|
-
ꯚ: "p",
|
|
258
|
-
ꯛ: "k",
|
|
259
|
-
ꯜ: "l",
|
|
260
|
-
ꯝ: "m",
|
|
261
|
-
ꯞ: "p",
|
|
262
|
-
ꯟ: "n",
|
|
263
|
-
ꯠ: "t",
|
|
264
|
-
ꯡ: "ṅ",
|
|
265
|
-
ꯢ: "i",
|
|
266
|
-
"ꯣ": "o",
|
|
267
|
-
"ꯤ": "i",
|
|
268
|
-
"ꯥ": "a",
|
|
269
|
-
"ꯦ": "e",
|
|
270
|
-
"ꯧ": "o",
|
|
271
|
-
"ꯨ": "u",
|
|
272
|
-
"ꯩ": "e",
|
|
273
|
-
"ꯪ": "ṁ",
|
|
274
|
-
ꫠ: "e",
|
|
275
|
-
ꫡ: "o",
|
|
276
|
-
ꫢ: "c",
|
|
277
|
-
ꫣ: "ñ",
|
|
278
|
-
ꫤ: "ṭ",
|
|
279
|
-
ꫥ: "ṭ",
|
|
280
|
-
ꫦ: "ṭ",
|
|
281
|
-
ꫧ: "ṭ",
|
|
282
|
-
ꫨ: "ṇ",
|
|
283
|
-
ꫩ: "s",
|
|
284
|
-
ꫪ: "s",
|
|
285
|
-
"ꫫ": "i",
|
|
286
|
-
"ꫬ": "u",
|
|
287
|
-
"ꫭ": "e",
|
|
288
|
-
"ꫮ": "o",
|
|
289
|
-
"ꫯ": "o"
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
ol_chiki: {
|
|
293
|
-
from: 7248,
|
|
294
|
-
to: 7295,
|
|
295
|
-
letters: {
|
|
296
|
-
ᱚ: "o",
|
|
297
|
-
ᱛ: "t",
|
|
298
|
-
ᱜ: "k",
|
|
299
|
-
ᱝ: "ṅ",
|
|
300
|
-
ᱞ: "l",
|
|
301
|
-
ᱟ: "a",
|
|
302
|
-
ᱠ: "k",
|
|
303
|
-
ᱡ: "c",
|
|
304
|
-
ᱢ: "m",
|
|
305
|
-
ᱣ: "v",
|
|
306
|
-
ᱤ: "i",
|
|
307
|
-
ᱥ: "s",
|
|
308
|
-
ᱦ: "h",
|
|
309
|
-
ᱧ: "ñ",
|
|
310
|
-
ᱨ: "r",
|
|
311
|
-
ᱩ: "u",
|
|
312
|
-
ᱪ: "c",
|
|
313
|
-
ᱫ: "t",
|
|
314
|
-
ᱬ: "ṇ",
|
|
315
|
-
ᱭ: "y",
|
|
316
|
-
ᱮ: "e",
|
|
317
|
-
ᱯ: "p",
|
|
318
|
-
ᱰ: "ṭ",
|
|
319
|
-
ᱱ: "n",
|
|
320
|
-
ᱲ: "ṛ",
|
|
321
|
-
ᱳ: "o",
|
|
322
|
-
ᱴ: "ṭ",
|
|
323
|
-
ᱵ: "p",
|
|
324
|
-
ᱶ: "v",
|
|
325
|
-
ᱷ: "h",
|
|
326
|
-
ᱸ: "ṁ"
|
|
327
|
-
},
|
|
328
|
-
aspiration: "ᱷ"
|
|
329
|
-
},
|
|
330
|
-
latin: {
|
|
331
|
-
groups: [
|
|
332
|
-
[
|
|
333
|
-
"ngh",
|
|
334
|
-
"nĝ"
|
|
335
|
-
],
|
|
336
|
-
[
|
|
337
|
-
"chh",
|
|
338
|
-
"c"
|
|
339
|
-
],
|
|
340
|
-
[
|
|
341
|
-
"ch",
|
|
342
|
-
"c"
|
|
343
|
-
],
|
|
344
|
-
[
|
|
345
|
-
"jh",
|
|
346
|
-
"c"
|
|
347
|
-
],
|
|
348
|
-
[
|
|
349
|
-
"kh",
|
|
350
|
-
"k"
|
|
351
|
-
],
|
|
352
|
-
[
|
|
353
|
-
"gh",
|
|
354
|
-
"k"
|
|
355
|
-
],
|
|
356
|
-
[
|
|
357
|
-
"th",
|
|
358
|
-
"t"
|
|
359
|
-
],
|
|
360
|
-
[
|
|
361
|
-
"dh",
|
|
362
|
-
"t"
|
|
363
|
-
],
|
|
364
|
-
[
|
|
365
|
-
"ph",
|
|
366
|
-
"p"
|
|
367
|
-
],
|
|
368
|
-
[
|
|
369
|
-
"bh",
|
|
370
|
-
"p"
|
|
371
|
-
],
|
|
372
|
-
[
|
|
373
|
-
"sh",
|
|
374
|
-
"s"
|
|
375
|
-
],
|
|
376
|
-
[
|
|
377
|
-
"ck",
|
|
378
|
-
"k"
|
|
379
|
-
],
|
|
380
|
-
[
|
|
381
|
-
"aa",
|
|
382
|
-
"a"
|
|
383
|
-
],
|
|
384
|
-
[
|
|
385
|
-
"ai",
|
|
386
|
-
"e"
|
|
387
|
-
],
|
|
388
|
-
[
|
|
389
|
-
"ei",
|
|
390
|
-
"e"
|
|
391
|
-
],
|
|
392
|
-
[
|
|
393
|
-
"au",
|
|
394
|
-
"o"
|
|
395
|
-
],
|
|
396
|
-
[
|
|
397
|
-
"ee",
|
|
398
|
-
"i"
|
|
399
|
-
],
|
|
400
|
-
[
|
|
401
|
-
"oo",
|
|
402
|
-
"u"
|
|
403
|
-
],
|
|
404
|
-
[
|
|
405
|
-
"x",
|
|
406
|
-
"ks"
|
|
407
|
-
]
|
|
408
|
-
],
|
|
409
|
-
letters: {
|
|
410
|
-
a: "a",
|
|
411
|
-
e: "e",
|
|
412
|
-
i: "i",
|
|
413
|
-
o: "o",
|
|
414
|
-
u: "u",
|
|
415
|
-
k: "k",
|
|
416
|
-
g: "k",
|
|
417
|
-
q: "k",
|
|
418
|
-
j: "c",
|
|
419
|
-
z: "c",
|
|
420
|
-
t: "t",
|
|
421
|
-
d: "t",
|
|
422
|
-
n: "n",
|
|
423
|
-
m: "m",
|
|
424
|
-
p: "p",
|
|
425
|
-
b: "p",
|
|
426
|
-
f: "p",
|
|
427
|
-
v: "v",
|
|
428
|
-
w: "v",
|
|
429
|
-
y: "y",
|
|
430
|
-
r: "r",
|
|
431
|
-
l: "l",
|
|
432
|
-
s: "s",
|
|
433
|
-
h: "h"
|
|
434
|
-
},
|
|
435
|
-
w_ambiguous_unless_before: "aeiou"
|
|
436
|
-
},
|
|
437
|
-
class_map: {
|
|
438
|
-
m: "n",
|
|
439
|
-
s: "c",
|
|
440
|
-
v: "p",
|
|
441
|
-
w: "p",
|
|
442
|
-
ñ: "n",
|
|
443
|
-
ĝ: "k",
|
|
444
|
-
ṁ: "n",
|
|
445
|
-
ṅ: "n",
|
|
446
|
-
ṇ: "n",
|
|
447
|
-
ṛ: "t",
|
|
448
|
-
ṭ: "t"
|
|
449
|
-
},
|
|
450
|
-
vowels: "aeiou",
|
|
451
|
-
steps: {
|
|
452
|
-
"ng-k": true,
|
|
453
|
-
"initial-vowels-alike": false,
|
|
454
|
-
"drop-h": false,
|
|
455
|
-
"drop-y": true,
|
|
456
|
-
"drop-y-after-i": false,
|
|
457
|
-
"drop-vowels": true,
|
|
458
|
-
"drop-final-vowel": false
|
|
459
|
-
},
|
|
460
|
-
branches: [
|
|
461
|
-
{
|
|
462
|
-
from: 2304,
|
|
463
|
-
to: 3455,
|
|
464
|
-
class: "v",
|
|
465
|
-
also: "u",
|
|
466
|
-
after: "aṁ",
|
|
467
|
-
not_before: "aieo"
|
|
468
|
-
},
|
|
469
|
-
{
|
|
470
|
-
from: 1536,
|
|
471
|
-
to: 7295,
|
|
472
|
-
class: "ṛ",
|
|
473
|
-
also: "r"
|
|
474
|
-
},
|
|
475
|
-
{
|
|
476
|
-
from: 0,
|
|
477
|
-
to: 127,
|
|
478
|
-
class: "ĝ",
|
|
479
|
-
also: "h"
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
from: 0,
|
|
483
|
-
to: 127,
|
|
484
|
-
class: "w",
|
|
485
|
-
also: "u"
|
|
486
|
-
},
|
|
487
|
-
{
|
|
488
|
-
from: 2944,
|
|
489
|
-
to: 3071,
|
|
490
|
-
class: "k",
|
|
491
|
-
also: "h"
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
from: 1536,
|
|
495
|
-
to: 1791,
|
|
496
|
-
class: "w",
|
|
497
|
-
also: "u"
|
|
498
|
-
}
|
|
499
|
-
],
|
|
500
|
-
joined: {
|
|
501
|
-
min_classes: 8,
|
|
502
|
-
when: "the strict keys find nobody"
|
|
503
|
-
},
|
|
504
|
-
digit_zeros: [
|
|
505
|
-
48,
|
|
506
|
-
1632,
|
|
507
|
-
1776,
|
|
508
|
-
2406,
|
|
509
|
-
2534,
|
|
510
|
-
2662,
|
|
511
|
-
2790,
|
|
512
|
-
2918,
|
|
513
|
-
3046,
|
|
514
|
-
3174,
|
|
515
|
-
3302,
|
|
516
|
-
3430,
|
|
517
|
-
7248,
|
|
518
|
-
44016
|
|
519
|
-
],
|
|
520
|
-
max_keys: 16,
|
|
521
|
-
suffixes: [
|
|
522
|
-
{
|
|
523
|
-
from: 2432,
|
|
524
|
-
to: 2559,
|
|
525
|
-
endings: [
|
|
526
|
-
"য়ের",
|
|
527
|
-
"দের",
|
|
528
|
-
"এর",
|
|
529
|
-
"ের",
|
|
530
|
-
"কে",
|
|
531
|
-
"তে"
|
|
532
|
-
]
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
from: 2688,
|
|
536
|
-
to: 2815,
|
|
537
|
-
endings: [
|
|
538
|
-
"માં",
|
|
539
|
-
"નું",
|
|
540
|
-
"થી",
|
|
541
|
-
"ના",
|
|
542
|
-
"ની",
|
|
543
|
-
"ને"
|
|
544
|
-
]
|
|
545
|
-
},
|
|
546
|
-
{
|
|
547
|
-
from: 3328,
|
|
548
|
-
to: 3455,
|
|
549
|
-
endings: [
|
|
550
|
-
"യ്ക്ക്",
|
|
551
|
-
"ന്റെ",
|
|
552
|
-
"യുടെ",
|
|
553
|
-
"യിലെ",
|
|
554
|
-
"ക്ക്",
|
|
555
|
-
"ുടെ",
|
|
556
|
-
"യിൽ",
|
|
557
|
-
"ിലെ",
|
|
558
|
-
"ോട്",
|
|
559
|
-
"ിന്",
|
|
560
|
-
"ിൽ",
|
|
561
|
-
"നെ",
|
|
562
|
-
"യെ",
|
|
563
|
-
"ും"
|
|
564
|
-
]
|
|
565
|
-
},
|
|
566
|
-
{
|
|
567
|
-
from: 2816,
|
|
568
|
-
to: 2943,
|
|
569
|
-
endings: [
|
|
570
|
-
"ଙ୍କର",
|
|
571
|
-
"ଙ୍କୁ",
|
|
572
|
-
"ଙ୍କ",
|
|
573
|
-
"ରେ",
|
|
574
|
-
"ରୁ",
|
|
575
|
-
"କୁ"
|
|
576
|
-
]
|
|
577
|
-
},
|
|
578
|
-
{
|
|
579
|
-
from: 2944,
|
|
580
|
-
to: 3071,
|
|
581
|
-
endings: [
|
|
582
|
-
"ுக்கு",
|
|
583
|
-
"யின்",
|
|
584
|
-
"வின்",
|
|
585
|
-
"க்கு",
|
|
586
|
-
"யில்",
|
|
587
|
-
"ிடம்",
|
|
588
|
-
"ுடன்",
|
|
589
|
-
"ின்",
|
|
590
|
-
"ில்",
|
|
591
|
-
"ால்",
|
|
592
|
-
"ும்"
|
|
593
|
-
]
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
from: 3072,
|
|
597
|
-
to: 3199,
|
|
598
|
-
endings: [
|
|
599
|
-
"యొక్క",
|
|
600
|
-
"లోని",
|
|
601
|
-
"గారు",
|
|
602
|
-
"లో",
|
|
603
|
-
"కు",
|
|
604
|
-
"కి",
|
|
605
|
-
"ని",
|
|
606
|
-
"తో",
|
|
607
|
-
"ను"
|
|
608
|
-
]
|
|
609
|
-
}
|
|
610
|
-
]
|
|
611
|
-
};
|
|
612
|
-
|
|
613
|
-
// js/phonetic.ts
|
|
614
|
-
var DELETED = "\x00";
|
|
615
|
-
function compile(rules) {
|
|
616
|
-
const b = rules.brahmic;
|
|
617
|
-
const byOffset = new Array(128);
|
|
618
|
-
for (const [o, c] of Object.entries(b.class_by_offset))
|
|
619
|
-
byOffset[Number(o)] = c;
|
|
620
|
-
const extra = new Map(Object.entries(rules.extra));
|
|
621
|
-
const urdu = new Map(Object.entries(rules.urdu.letters));
|
|
622
|
-
const meetei = new Map(Object.entries(rules.meetei.letters));
|
|
623
|
-
const olChiki = new Map(Object.entries(rules.ol_chiki.letters));
|
|
624
|
-
const latin = new Array(128);
|
|
625
|
-
for (const [l, c] of Object.entries(rules.latin.letters))
|
|
626
|
-
latin[l.charCodeAt(0)] = c;
|
|
627
|
-
const groups = rules.latin.groups;
|
|
628
|
-
const wUnlessNext = rules.latin.w_ambiguous_unless_before;
|
|
629
|
-
const classMap = new Map(Object.entries(rules.class_map));
|
|
630
|
-
const vowels = new Set(rules.vowels);
|
|
631
|
-
const steps = rules.steps;
|
|
632
|
-
const u = rules.urdu;
|
|
633
|
-
function inMeetei(o) {
|
|
634
|
-
return rules.meetei.ranges.some(([lo, hi]) => o >= lo && o <= hi);
|
|
635
|
-
}
|
|
636
|
-
function readBrahmic(word) {
|
|
637
|
-
let out = "";
|
|
638
|
-
let last = -1;
|
|
639
|
-
for (let i = 0;i < word.length; i++) {
|
|
640
|
-
const ch = word[i];
|
|
641
|
-
const x = extra.get(ch);
|
|
642
|
-
if (x !== undefined) {
|
|
643
|
-
out += x;
|
|
644
|
-
last = -1;
|
|
645
|
-
continue;
|
|
646
|
-
}
|
|
647
|
-
const o = word.charCodeAt(i);
|
|
648
|
-
if (o < b.from || o > b.to)
|
|
649
|
-
continue;
|
|
650
|
-
const off = o & 127;
|
|
651
|
-
const c = byOffset[off];
|
|
652
|
-
if (off === b.nukta_offset && b.flap_offsets.includes(last) && out) {
|
|
653
|
-
out = out.slice(0, -1) + b.flap_class;
|
|
654
|
-
} else if (off === b.virama_offset) {} else if (off === b.candrabindu_offset) {
|
|
655
|
-
out += b.candrabindu_class;
|
|
656
|
-
} else if (c !== undefined) {
|
|
657
|
-
out += c;
|
|
658
|
-
}
|
|
659
|
-
if (c !== undefined)
|
|
660
|
-
last = off;
|
|
661
|
-
else if (off !== b.nukta_offset && off !== b.virama_offset)
|
|
662
|
-
last = -1;
|
|
663
|
-
}
|
|
664
|
-
return out;
|
|
665
|
-
}
|
|
666
|
-
function readLatin(word) {
|
|
667
|
-
let out = "";
|
|
668
|
-
let i = 0;
|
|
669
|
-
outer:
|
|
670
|
-
while (i < word.length) {
|
|
671
|
-
for (const [g, cls] of groups) {
|
|
672
|
-
if (word.startsWith(g, i)) {
|
|
673
|
-
out += cls;
|
|
674
|
-
i += g.length;
|
|
675
|
-
continue outer;
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
|
-
const ch = word.charCodeAt(i);
|
|
679
|
-
if (ch === 99) {
|
|
680
|
-
const next = word[i + 1];
|
|
681
|
-
out += next === "e" || next === "i" || next === "y" ? "s" : "k";
|
|
682
|
-
} else if (ch === 119 && i > 0 && !wUnlessNext.includes(word[i + 1] ?? " ")) {
|
|
683
|
-
out += "w";
|
|
684
|
-
} else {
|
|
685
|
-
out += latin[ch] ?? "";
|
|
686
|
-
}
|
|
687
|
-
i++;
|
|
688
|
-
}
|
|
689
|
-
return out;
|
|
690
|
-
}
|
|
691
|
-
function readUrdu(word) {
|
|
692
|
-
let out = word[0] === u.ain ? "a" : "";
|
|
693
|
-
for (let i = 0;i < word.length; i++) {
|
|
694
|
-
const ch = word[i];
|
|
695
|
-
if (ch === u.waw && i > 0 && !(i + 1 < word.length && u.waw_v_before.includes(word[i + 1])))
|
|
696
|
-
out += "w";
|
|
697
|
-
else
|
|
698
|
-
out += urdu.get(ch) ?? "";
|
|
699
|
-
}
|
|
700
|
-
const n = word.length;
|
|
701
|
-
if (n > 1 && u.final_he.includes(word[n - 1]) && !u.final_he_h_after.includes(word[n - 2])) {
|
|
702
|
-
out = out.slice(0, -1) + "a";
|
|
703
|
-
}
|
|
704
|
-
return out;
|
|
705
|
-
}
|
|
706
|
-
function readOlChiki(word) {
|
|
707
|
-
let out = "";
|
|
708
|
-
for (const ch of word) {
|
|
709
|
-
if (ch === rules.ol_chiki.aspiration && out && !vowels.has(out[out.length - 1]))
|
|
710
|
-
continue;
|
|
711
|
-
out += olChiki.get(ch) ?? "";
|
|
712
|
-
}
|
|
713
|
-
return out;
|
|
714
|
-
}
|
|
715
|
-
function readMeetei(word) {
|
|
716
|
-
let out = "";
|
|
717
|
-
for (const ch of word)
|
|
718
|
-
out += meetei.get(ch) ?? "";
|
|
719
|
-
return out;
|
|
720
|
-
}
|
|
721
|
-
function read(word) {
|
|
722
|
-
let ascii = true;
|
|
723
|
-
for (let i = 0;i < word.length; i++)
|
|
724
|
-
if (word.charCodeAt(i) > 127) {
|
|
725
|
-
ascii = false;
|
|
726
|
-
break;
|
|
727
|
-
}
|
|
728
|
-
if (ascii)
|
|
729
|
-
return readLatin(word);
|
|
730
|
-
let ol = false, me = false;
|
|
731
|
-
for (let i = 0;i < word.length; i++) {
|
|
732
|
-
const o = word.charCodeAt(i);
|
|
733
|
-
if (o >= u.from && o <= u.to)
|
|
734
|
-
return readUrdu(word);
|
|
735
|
-
if (o >= rules.ol_chiki.from && o <= rules.ol_chiki.to)
|
|
736
|
-
ol = true;
|
|
737
|
-
else if (inMeetei(o))
|
|
738
|
-
me = true;
|
|
739
|
-
}
|
|
740
|
-
if (ol)
|
|
741
|
-
return readOlChiki(word);
|
|
742
|
-
if (me)
|
|
743
|
-
return readMeetei(word);
|
|
744
|
-
return readBrahmic(word);
|
|
745
|
-
}
|
|
746
|
-
function fold(codes) {
|
|
747
|
-
if (steps["ng-k"]) {
|
|
748
|
-
let s = "";
|
|
749
|
-
for (let i = 0;i < codes.length; i++) {
|
|
750
|
-
s += codes[i];
|
|
751
|
-
if (codes[i] === "ṅ" && codes[i + 1] !== "k")
|
|
752
|
-
s += "k";
|
|
753
|
-
}
|
|
754
|
-
codes = s;
|
|
755
|
-
}
|
|
756
|
-
let mapped = "";
|
|
757
|
-
for (let i = 0;i < codes.length; i++)
|
|
758
|
-
mapped += classMap.get(codes[i]) ?? codes[i];
|
|
759
|
-
if (!mapped)
|
|
760
|
-
return mapped;
|
|
761
|
-
let head = mapped[0];
|
|
762
|
-
if (steps["initial-vowels-alike"] && vowels.has(head))
|
|
763
|
-
head = "a";
|
|
764
|
-
let out = head;
|
|
765
|
-
for (let i = 1;i < mapped.length; i++) {
|
|
766
|
-
const c = mapped[i];
|
|
767
|
-
if (steps["drop-h"] && c === "h")
|
|
768
|
-
continue;
|
|
769
|
-
if (steps["drop-y"] && c === "y")
|
|
770
|
-
continue;
|
|
771
|
-
if (steps["drop-vowels"] && vowels.has(c))
|
|
772
|
-
continue;
|
|
773
|
-
out += c;
|
|
774
|
-
}
|
|
775
|
-
if (steps["drop-final-vowel"] && out.length > 1 && vowels.has(out[out.length - 1]))
|
|
776
|
-
out = out.slice(0, -1);
|
|
777
|
-
let runs = out[0];
|
|
778
|
-
for (let i = 1;i < out.length; i++)
|
|
779
|
-
if (out[i] !== out[i - 1])
|
|
780
|
-
runs += out[i];
|
|
781
|
-
return runs;
|
|
782
|
-
}
|
|
783
|
-
function fits(classes, i, br) {
|
|
784
|
-
const prev = i > 0 ? classes[i - 1] : "^";
|
|
785
|
-
const next = i + 1 < classes.length ? classes[i + 1] : "$";
|
|
786
|
-
return (br.after === undefined || br.after.includes(prev)) && (br.before === undefined || br.before.includes(next)) && !(br.not_before ?? "").includes(next);
|
|
787
|
-
}
|
|
788
|
-
function variants(word) {
|
|
789
|
-
const classes = read(word);
|
|
790
|
-
let vs = [classes];
|
|
791
|
-
for (const br of rules.branches) {
|
|
792
|
-
if (!classes.includes(br.class))
|
|
793
|
-
continue;
|
|
794
|
-
let inScript = false;
|
|
795
|
-
for (let i = 0;i < word.length; i++) {
|
|
796
|
-
const o = word.charCodeAt(i);
|
|
797
|
-
if (o >= br.from && o <= br.to) {
|
|
798
|
-
inScript = true;
|
|
799
|
-
break;
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
if (!inScript)
|
|
803
|
-
continue;
|
|
804
|
-
for (let i = 0;i < classes.length; i++) {
|
|
805
|
-
if (classes[i] === br.class && vs.length * 2 <= rules.max_keys && fits(classes, i, br)) {
|
|
806
|
-
const also = br.also || DELETED;
|
|
807
|
-
vs = vs.concat(vs.map((v) => v.slice(0, i) + also + v.slice(i + 1)));
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
return vs.map((v) => v.replaceAll(DELETED, ""));
|
|
812
|
-
}
|
|
813
|
-
function number(word) {
|
|
814
|
-
let out = "";
|
|
815
|
-
for (let i = 0;i < word.length; i++) {
|
|
816
|
-
const o = word.charCodeAt(i);
|
|
817
|
-
const z = rules.digit_zeros.find((z2) => o >= z2 && o <= z2 + 9);
|
|
818
|
-
if (z === undefined)
|
|
819
|
-
return;
|
|
820
|
-
out += String.fromCharCode(48 + o - z);
|
|
821
|
-
}
|
|
822
|
-
return out || undefined;
|
|
823
|
-
}
|
|
824
|
-
return function keys(word) {
|
|
825
|
-
const n = number(word);
|
|
826
|
-
if (n !== undefined)
|
|
827
|
-
return [n];
|
|
828
|
-
const bases = [word];
|
|
829
|
-
const first = word.charCodeAt(0);
|
|
830
|
-
for (const sf of rules.suffixes) {
|
|
831
|
-
if (first < sf.from || first > sf.to)
|
|
832
|
-
continue;
|
|
833
|
-
for (const e of sf.endings) {
|
|
834
|
-
if (word.endsWith(e) && word.length - e.length >= 2) {
|
|
835
|
-
bases.push(word.slice(0, -e.length));
|
|
836
|
-
break;
|
|
837
|
-
}
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
const out = new Set;
|
|
841
|
-
for (const base of bases)
|
|
842
|
-
for (const v of variants(base))
|
|
843
|
-
out.add(fold(v));
|
|
844
|
-
out.delete("");
|
|
845
|
-
return [...out].sort();
|
|
846
|
-
};
|
|
847
|
-
}
|
|
848
|
-
var engine = compile(rules_default);
|
|
849
|
-
var _internal = { compile: (r) => compile(r), normalize: (w) => normalize(w), engine };
|
|
850
|
-
var RULES_VERSION = rules_default.version;
|
|
851
|
-
var MAX_NAME_KEYS = 256;
|
|
852
|
-
function normalize(word) {
|
|
853
|
-
const plain = word.normalize("NFD").replace(/\p{Mn}/gu, "");
|
|
854
|
-
return /^[\x00-\x7f]*$/.test(plain) ? plain.toLowerCase() : word.normalize("NFC");
|
|
855
|
-
}
|
|
856
|
-
function keys(word) {
|
|
857
|
-
const w = normalize(word);
|
|
858
|
-
return w ? engine(w) : [];
|
|
859
|
-
}
|
|
860
|
-
function words(name) {
|
|
861
|
-
return name.replace(/\([^)]*\)/g, " ").split(/[^\S\ufeff]|[\x1c-\x1f\x85.\-,'’]/u).filter(Boolean);
|
|
862
|
-
}
|
|
863
|
-
function nameKeys(name) {
|
|
864
|
-
let out = [""];
|
|
865
|
-
for (const w of words(name)) {
|
|
866
|
-
const ks = keys(w);
|
|
867
|
-
if (!ks.length)
|
|
868
|
-
continue;
|
|
869
|
-
const next = [];
|
|
870
|
-
for (const p of out)
|
|
871
|
-
for (const k of ks) {
|
|
872
|
-
if (next.length < MAX_NAME_KEYS)
|
|
873
|
-
next.push(p ? p + " " + k : k);
|
|
874
|
-
}
|
|
875
|
-
out = next;
|
|
876
|
-
}
|
|
877
|
-
return out[0] === "" ? [] : out;
|
|
878
|
-
}
|
|
879
|
-
var JOINED_MIN_CLASSES = rules_default.joined.min_classes;
|
|
880
|
-
function joinedKeys(name) {
|
|
881
|
-
const joined = words(name).map(normalize).join("");
|
|
882
|
-
if (!joined)
|
|
883
|
-
return [];
|
|
884
|
-
return engine(joined).filter((k) => [...k].length >= JOINED_MIN_CLASSES);
|
|
885
|
-
}
|
|
886
|
-
function match(a, b) {
|
|
887
|
-
const wa = words(a), wb = words(b);
|
|
888
|
-
if (!wa.length || wa.length !== wb.length)
|
|
889
|
-
return false;
|
|
890
|
-
return wa.every((w, i) => {
|
|
891
|
-
const kb = new Set(keys(wb[i]));
|
|
892
|
-
return keys(w).some((k) => kb.has(k));
|
|
893
|
-
});
|
|
894
|
-
}
|
|
895
|
-
export {
|
|
896
|
-
words,
|
|
897
|
-
nameKeys,
|
|
898
|
-
match,
|
|
899
|
-
keys,
|
|
900
|
-
joinedKeys,
|
|
901
|
-
_internal,
|
|
902
|
-
RULES_VERSION,
|
|
903
|
-
MAX_NAME_KEYS,
|
|
904
|
-
JOINED_MIN_CLASSES
|
|
905
|
-
};
|
|
1
|
+
var X={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 W={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 R2=W.unicode,x=1,k2=2,y2=4,O=8,T=new Map,Y=new Map,M=new Map;for(let _=0;_<W.ranges.length;_+=2)for(let g=W.ranges[_];g<=W.ranges[_+1];g++)T.set(g,0);var D=(_,g)=>{for(let f=0;f<_.length;f+=2)for(let G=_[f];G<=_[f+1];G++)T.set(G,T.get(G)|g)};D(W.mn,x);D(W.m,k2);D(W.l,y2);for(let _=0;_<W.ccc.length;_+=3)for(let g=W.ccc[_];g<=W.ccc[_+1];g++)T.set(g,T.get(g)|W.ccc[_+2]<<4);var v2=new Set(W.excl);for(let[_,g]of Object.entries(W.decomp)){let f=Number(_);if(Y.set(f,g),g.length===2&&!v2.has(f))M.set(g[0]*1114112+g[1],f),T.set(g[1],T.get(g[1])|O)}var j=(_)=>String.fromCodePoint(_);function h(_,g,f){let G="";for(let Q=g;Q<f;Q+=8192)G+=String.fromCodePoint(..._.slice(Q,Math.min(f,Q+8192)));return G}function E(_){let g=T.get(_);return g===void 0?/\p{Mn}/u.test(j(_)):(g&x)!==0}function z(_){if(!T.has(_))return Array.from(j(_).normalize("NFD"),(f)=>f.codePointAt(0));let g=Y.get(_);return g?g.flatMap(z):[_]}var m2=(_,g)=>_>>4===0&&(_&O)===0&&!Y.has(g);function n(_){let g=Array.from(_,(G)=>G.codePointAt(0)),f="";for(let G=0;G<g.length;){let Q=G+1,V=T.has(g[G]);for(;Q<g.length;Q++){let Z=T.get(g[Q]);if(Z===void 0)V=!1;else if(m2(Z,g[Q]))break}f+=V?q2(g,G,Q):h(g,G,Q).normalize("NFC"),G=Q}return f}function q2(_,g,f){let G=0,Q=!0;for(let R=g;R<f&&Q;R++){let I=T.get(_[R]),P=I>>4;if(Y.has(_[R])||(I&O)!==0||P!==0&&P<G)Q=!1;G=P}if(Q)return h(_,g,f);let V=[];for(let R=g;R<f;R++)V.push(...z(_[R]));let Z=(R)=>T.get(R)>>4;for(let R=0;R<V.length;){if(Z(V[R])===0){R++;continue}let I=R;while(I<V.length&&Z(V[I])!==0)I++;let P=V.slice(R,I).sort((U,J)=>Z(U)-Z(J));for(let U=0;U<P.length;U++)V[R+U]=P[U];R=I}let B=[],K=-1;for(let R of V){let I=Z(R);if(K>=0&&(B.length-1===K||Z(B[B.length-1])<I)){let P=M.get(B[K]*1114112+R);if(P!==void 0){B[K]=P;continue}}if(I===0)K=B.length;B.push(R)}return h(B,0,B.length)}var a="\x00";function f2(_){let g=_.brahmic,f=Array(128);for(let[y,k]of Object.entries(g.class_by_offset))f[Number(y)]=k;let G=new Map(Object.entries(_.extra)),Q=new Map(Object.entries(_.urdu.letters)),V=new Map(Object.entries(_.meetei.letters)),Z=new Map(Object.entries(_.ol_chiki.letters)),B=Array(128);for(let[y,k]of Object.entries(_.latin.letters))B[y.charCodeAt(0)]=k;let K=_.latin.groups,R=_.latin.w_ambiguous_unless_before,I=new Map(Object.entries(_.class_map)),P=new Set(_.vowels),U=_.steps,J=_.urdu;function t(y){return _.meetei.ranges.some(([k,v])=>y>=k&&y<=v)}function u(y){let k="",v=-1;for(let m=0;m<y.length;m++){let F=y[m],q=G.get(F);if(q!==void 0){k+=q,v=-1;continue}let H=y.charCodeAt(m);if(H<g.from||H>g.to)continue;let $=H&127,L=f[$];if($===g.nukta_offset&&g.flap_offsets.includes(v)&&k)k=k.slice(0,-1)+g.flap_class;else if($===g.virama_offset);else if($===g.candrabindu_offset)k+=g.candrabindu_class;else if(L!==void 0)k+=L;if(L!==void 0)v=$;else if($!==g.nukta_offset&&$!==g.virama_offset)v=-1}return k}function w(y){let k="",v=0;_:while(v<y.length){for(let[F,q]of K)if(y.startsWith(F,v)){k+=q,v+=F.length;continue _}let m=y.charCodeAt(v);if(m===99){let F=y[v+1];k+=F==="e"||F==="i"||F==="y"?"s":"k"}else if(m===119&&v>0&&!R.includes(y[v+1]??" "))k+="w";else k+=B[m]??"";v++}return k}function i(y){let k=y[0]===J.ain?"a":"";for(let m=0;m<y.length;m++){let F=y[m];if(F===J.waw&&m>0&&!(m+1<y.length&&J.waw_v_before.includes(y[m+1])))k+="w";else k+=Q.get(F)??""}let v=y.length;if(v>1&&J.final_he.includes(y[v-1])&&!J.final_he_h_after.includes(y[v-2]))k=k.slice(0,-1)+"a";return k}function p(y){let k="";for(let v of y){if(v===_.ol_chiki.aspiration&&k&&!P.has(k[k.length-1]))continue;k+=Z.get(v)??""}return k}function c(y){let k="";for(let v of y)k+=V.get(v)??"";return k}function e(y){let k=!0;for(let F=0;F<y.length;F++)if(y.charCodeAt(F)>127){k=!1;break}if(k)return w(y);let v=!1,m=!1;for(let F=0;F<y.length;F++){let q=y.charCodeAt(F);if(q>=J.from&&q<=J.to)return i(y);if(q>=_.ol_chiki.from&&q<=_.ol_chiki.to)v=!0;else if(t(q))m=!0}if(v)return p(y);if(m)return c(y);return u(y)}function s(y){if(U["ng-k"]){let q="";for(let H=0;H<y.length;H++)if(q+=y[H],y[H]==="ṅ"&&y[H+1]!=="k")q+="k";y=q}let k="";for(let q=0;q<y.length;q++)k+=I.get(y[q])??y[q];if(!k)return k;let v=k[0];if(U["initial-vowels-alike"]&&P.has(v))v="a";let m=v;for(let q=1;q<k.length;q++){let H=k[q];if(U["drop-h"]&&H==="h")continue;if(U["drop-y"]&&H==="y")continue;if(U["drop-vowels"]&&P.has(H))continue;m+=H}if(U["drop-final-vowel"]&&m.length>1&&P.has(m[m.length-1]))m=m.slice(0,-1);let F=m[0];for(let q=1;q<m.length;q++)if(m[q]!==m[q-1])F+=m[q];return F}function d(y,k,v){let m=k>0?y[k-1]:"^",F=k+1<y.length?y[k+1]:"$";return(v.after===void 0||v.after.includes(m))&&(v.before===void 0||v.before.includes(F))&&!(v.not_before??"").includes(F)}function r(y){let k=e(y),v=[k];for(let m of _.branches){if(!k.includes(m.class))continue;let F=!1;for(let q=0;q<y.length;q++){let H=y.charCodeAt(q);if(H>=m.from&&H<=m.to){F=!0;break}}if(!F)continue;for(let q=0;q<k.length;q++)if(k[q]===m.class&&v.length*2<=_.max_keys&&d(k,q,m)){let H=m.also||a;v=v.concat(v.map(($)=>$.slice(0,q)+H+$.slice(q+1)))}}return v.map((m)=>m.replaceAll(a,""))}function o(y){let k="";for(let v=0;v<y.length;v++){let m=y.charCodeAt(v),F=_.digit_zeros.find((q)=>m>=q&&m<=q+9);if(F===void 0)return;k+=String.fromCharCode(48+m-F)}return k||void 0}return function(k){let v=o(k);if(v!==void 0)return[v];let m=[k],F=k.charCodeAt(0);for(let H of _.suffixes){if(F<H.from||F>H.to)continue;for(let $ of H.endings)if(k.endsWith($)&&k.length-$.length>=2){m.push(k.slice(0,-$.length));break}}let q=new Set;for(let H of m)for(let $ of r(H))q.add(s($));return q.delete(""),[...q].sort()}}var A=f2(X),b=256;function N(_){let g="";for(let f of _)for(let G of z(f.codePointAt(0))){if(E(G))continue;if(G>=128)return n(_);g+=String.fromCodePoint(G)}return g.toLowerCase()}function l(_,g){let f=[""];for(let G of _){let Q=[];for(let V of f)for(let Z of G)if(Q.length<b)Q.push(V?V+g+Z:Z);f=Q}return f[0]===""?[]:f}var I2=X.version;function S(_){let g=N(_);return g?A(g):[]}function C(_){return _.replace(/\([^)]*\)/g," ").split(/[^\S\ufeff]|[\x1c-\x1f\x85.\-,'’]/u).filter(Boolean)}function U2(_){return l(C(_).map(S).filter((g)=>g.length)," ")}var F2=X.joined.min_classes;function T2(_){let g=C(_).map(N).join("");if(!g)return[];return A(g).filter((f)=>[...f].length>=F2)}function J2(_,g){let f=C(_),G=C(g);if(!f.length||f.length!==G.length)return!1;return f.every((Q,V)=>{let Z=new Set(S(G[V]));return S(Q).some((B)=>Z.has(B))})}export{C as words,U2 as nameKeys,J2 as match,S as keys,T2 as joinedKeys,I2 as RULES_VERSION,b as MAX_NAME_KEYS,F2 as JOINED_MIN_CLASSES};
|