@delali/narsil 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +201 -0
  2. package/dist/adapters/filesystem.d.ts +8 -0
  3. package/dist/adapters/filesystem.mjs +107 -0
  4. package/dist/adapters/indexeddb.d.ts +9 -0
  5. package/dist/adapters/indexeddb.mjs +153 -0
  6. package/dist/adapters/memory.d.ts +5 -0
  7. package/dist/adapters/memory.mjs +30 -0
  8. package/dist/adapters-XODT2F3h.d.ts +30 -0
  9. package/dist/chunk-5HXMVMSM.mjs +3147 -0
  10. package/dist/chunk-JKIBUPAY.mjs +42 -0
  11. package/dist/chunk-N37VMC62.mjs +18 -0
  12. package/dist/chunk-WYC635GI.mjs +335 -0
  13. package/dist/direct-executor-MQD7JRD4.mjs +3 -0
  14. package/dist/index.d.ts +386 -0
  15. package/dist/index.mjs +1099 -0
  16. package/dist/invalidation/broadcast-channel.d.ts +8 -0
  17. package/dist/invalidation/broadcast-channel.mjs +46 -0
  18. package/dist/invalidation/filesystem.d.ts +10 -0
  19. package/dist/invalidation/filesystem.mjs +159 -0
  20. package/dist/invalidation/noop.d.ts +5 -0
  21. package/dist/invalidation/noop.mjs +13 -0
  22. package/dist/language-ClUGLuoC.d.ts +13 -0
  23. package/dist/languages/arabic.d.ts +5 -0
  24. package/dist/languages/arabic.mjs +631 -0
  25. package/dist/languages/armenian.d.ts +5 -0
  26. package/dist/languages/armenian.mjs +306 -0
  27. package/dist/languages/bulgarian.d.ts +5 -0
  28. package/dist/languages/bulgarian.mjs +330 -0
  29. package/dist/languages/chinese.d.ts +5 -0
  30. package/dist/languages/chinese.mjs +250 -0
  31. package/dist/languages/dagbani.d.ts +5 -0
  32. package/dist/languages/dagbani.mjs +85 -0
  33. package/dist/languages/danish.d.ts +5 -0
  34. package/dist/languages/danish.mjs +224 -0
  35. package/dist/languages/dutch.d.ts +5 -0
  36. package/dist/languages/dutch.mjs +296 -0
  37. package/dist/languages/english.d.ts +5 -0
  38. package/dist/languages/english.mjs +1 -0
  39. package/dist/languages/ewe.d.ts +5 -0
  40. package/dist/languages/ewe.mjs +85 -0
  41. package/dist/languages/finnish.d.ts +5 -0
  42. package/dist/languages/finnish.mjs +536 -0
  43. package/dist/languages/french.d.ts +5 -0
  44. package/dist/languages/french.mjs +635 -0
  45. package/dist/languages/ga.d.ts +5 -0
  46. package/dist/languages/ga.mjs +69 -0
  47. package/dist/languages/german.d.ts +5 -0
  48. package/dist/languages/german.mjs +414 -0
  49. package/dist/languages/greek.d.ts +5 -0
  50. package/dist/languages/greek.mjs +888 -0
  51. package/dist/languages/hausa.d.ts +5 -0
  52. package/dist/languages/hausa.mjs +243 -0
  53. package/dist/languages/hindi.d.ts +5 -0
  54. package/dist/languages/hindi.mjs +333 -0
  55. package/dist/languages/hungarian.d.ts +5 -0
  56. package/dist/languages/hungarian.mjs +600 -0
  57. package/dist/languages/igbo.d.ts +5 -0
  58. package/dist/languages/igbo.mjs +96 -0
  59. package/dist/languages/indonesian.d.ts +5 -0
  60. package/dist/languages/indonesian.mjs +896 -0
  61. package/dist/languages/irish.d.ts +5 -0
  62. package/dist/languages/irish.mjs +268 -0
  63. package/dist/languages/italian.d.ts +5 -0
  64. package/dist/languages/italian.mjs +713 -0
  65. package/dist/languages/japanese.d.ts +5 -0
  66. package/dist/languages/japanese.mjs +210 -0
  67. package/dist/languages/nepali.d.ts +5 -0
  68. package/dist/languages/nepali.mjs +262 -0
  69. package/dist/languages/norwegian.d.ts +5 -0
  70. package/dist/languages/norwegian.mjs +274 -0
  71. package/dist/languages/portuguese.d.ts +5 -0
  72. package/dist/languages/portuguese.mjs +606 -0
  73. package/dist/languages/romanian.d.ts +5 -0
  74. package/dist/languages/romanian.mjs +634 -0
  75. package/dist/languages/russian.d.ts +5 -0
  76. package/dist/languages/russian.mjs +424 -0
  77. package/dist/languages/sanskrit.d.ts +5 -0
  78. package/dist/languages/sanskrit.mjs +155 -0
  79. package/dist/languages/serbian.d.ts +5 -0
  80. package/dist/languages/serbian.mjs +277 -0
  81. package/dist/languages/slovenian.d.ts +5 -0
  82. package/dist/languages/slovenian.mjs +522 -0
  83. package/dist/languages/spanish.d.ts +5 -0
  84. package/dist/languages/spanish.mjs +606 -0
  85. package/dist/languages/swahili.d.ts +5 -0
  86. package/dist/languages/swahili.mjs +212 -0
  87. package/dist/languages/swedish.d.ts +5 -0
  88. package/dist/languages/swedish.mjs +224 -0
  89. package/dist/languages/tamil.d.ts +5 -0
  90. package/dist/languages/tamil.mjs +186 -0
  91. package/dist/languages/turkish.d.ts +5 -0
  92. package/dist/languages/turkish.mjs +675 -0
  93. package/dist/languages/twi.d.ts +5 -0
  94. package/dist/languages/twi.mjs +84 -0
  95. package/dist/languages/ukrainian.d.ts +5 -0
  96. package/dist/languages/ukrainian.mjs +444 -0
  97. package/dist/languages/yoruba.d.ts +5 -0
  98. package/dist/languages/yoruba.mjs +103 -0
  99. package/dist/languages/zulu.d.ts +5 -0
  100. package/dist/languages/zulu.mjs +113 -0
  101. package/dist/workers/entry.d.ts +3 -0
  102. package/dist/workers/entry.mjs +106 -0
  103. package/package.json +87 -0
@@ -0,0 +1,414 @@
1
+ // src/languages/german.ts
2
+ var VOWELS = "aeiouy\xE4\xF6\xFC";
3
+ function isVowel(ch) {
4
+ return VOWELS.includes(ch);
5
+ }
6
+ function findRegions(word) {
7
+ let r1 = word.length;
8
+ let r2 = word.length;
9
+ let i = 1;
10
+ while (i < word.length) {
11
+ if (!isVowel(word[i]) && isVowel(word[i - 1])) {
12
+ r1 = i + 1;
13
+ break;
14
+ }
15
+ i++;
16
+ }
17
+ if (r1 < 3) r1 = 3;
18
+ i = r1;
19
+ while (i < word.length) {
20
+ if (!isVowel(word[i]) && i > 0 && isVowel(word[i - 1])) {
21
+ r2 = i + 1;
22
+ break;
23
+ }
24
+ i++;
25
+ }
26
+ return { r1, r2 };
27
+ }
28
+ function markConsonantUY(word) {
29
+ const chars = word.split("");
30
+ for (let i = 1; i < chars.length - 1; i++) {
31
+ if (chars[i] === "u" && isVowel(chars[i - 1]) && isVowel(chars[i + 1])) {
32
+ chars[i] = "U";
33
+ }
34
+ if (chars[i] === "y" && isVowel(chars[i - 1]) && isVowel(chars[i + 1])) {
35
+ chars[i] = "Y";
36
+ }
37
+ }
38
+ return chars.join("");
39
+ }
40
+ var S_ENDING_VALID = "bdfghklmnrt";
41
+ function isValidSEnding(word, beforeSuffix) {
42
+ if (beforeSuffix <= 0) return false;
43
+ return S_ENDING_VALID.includes(word[beforeSuffix - 1]);
44
+ }
45
+ var ST_ENDING_VALID = "bdfghklmnt";
46
+ var STEP1_SUFFIXES = ["em", "ern", "er", "en", "es", "e", "s"];
47
+ var STEP2_SUFFIXES = ["est", "en", "er", "st"];
48
+ var RE_ESZETT = /ß/g;
49
+ var RE_UPPER_Y = /Y/g;
50
+ var RE_UPPER_U = /U/g;
51
+ var RE_UMLAUT_A = /ä/g;
52
+ var RE_UMLAUT_O = /ö/g;
53
+ var RE_UMLAUT_U = /ü/g;
54
+ function isValidStEnding(word, beforeSuffix) {
55
+ if (beforeSuffix <= 0) return false;
56
+ return ST_ENDING_VALID.includes(word[beforeSuffix - 1]);
57
+ }
58
+ function step1(word, r1) {
59
+ for (const suffix of STEP1_SUFFIXES) {
60
+ if (word.endsWith(suffix) && word.length - suffix.length >= r1) {
61
+ if (suffix === "s") {
62
+ const cutPos = word.length - 1;
63
+ if (isValidSEnding(word, cutPos)) {
64
+ return word.slice(0, cutPos);
65
+ }
66
+ return word;
67
+ }
68
+ const stripped = word.slice(0, word.length - suffix.length);
69
+ if (suffix === "en" || suffix === "e" || suffix === "es") {
70
+ if (stripped.endsWith("niss")) {
71
+ return stripped.slice(0, -1);
72
+ }
73
+ }
74
+ return stripped;
75
+ }
76
+ }
77
+ return word;
78
+ }
79
+ function step2(word, r1) {
80
+ for (const suffix of STEP2_SUFFIXES) {
81
+ if (word.endsWith(suffix) && word.length - suffix.length >= r1) {
82
+ if (suffix === "st") {
83
+ const cutPos = word.length - 2;
84
+ if (cutPos >= 3 && isValidStEnding(word, cutPos)) {
85
+ return word.slice(0, cutPos);
86
+ }
87
+ return word;
88
+ }
89
+ return word.slice(0, word.length - suffix.length);
90
+ }
91
+ }
92
+ return word;
93
+ }
94
+ function step3(word, r1, r2) {
95
+ if (word.endsWith("keit") && word.length - 4 >= r2) {
96
+ word = word.slice(0, -4);
97
+ if (word.endsWith("lich") && word.length - 4 >= r2) {
98
+ return word.slice(0, -4);
99
+ }
100
+ if (word.endsWith("ig") && word.length - 2 >= r2) {
101
+ return word.slice(0, -2);
102
+ }
103
+ return word;
104
+ }
105
+ if (word.endsWith("heit") && word.length - 4 >= r2) {
106
+ word = word.slice(0, -4);
107
+ if (word.endsWith("er") && word.length - 2 >= r1) {
108
+ return word.slice(0, -2);
109
+ }
110
+ if (word.endsWith("en") && word.length - 2 >= r1) {
111
+ return word.slice(0, -2);
112
+ }
113
+ return word;
114
+ }
115
+ if (word.endsWith("isch") && word.length - 4 >= r2) {
116
+ if (!word.endsWith("eisch")) {
117
+ return word.slice(0, -4);
118
+ }
119
+ return word;
120
+ }
121
+ if (word.endsWith("lich") && word.length - 4 >= r2) {
122
+ word = word.slice(0, -4);
123
+ if (word.endsWith("er") && word.length - 2 >= r1) {
124
+ return word.slice(0, -2);
125
+ }
126
+ if (word.endsWith("en") && word.length - 2 >= r1) {
127
+ return word.slice(0, -2);
128
+ }
129
+ return word;
130
+ }
131
+ if (word.endsWith("end") && word.length - 3 >= r2) {
132
+ word = word.slice(0, -3);
133
+ if (word.endsWith("ig") && word.length - 2 >= r2 && !word.endsWith("eig")) {
134
+ return word.slice(0, -2);
135
+ }
136
+ return word;
137
+ }
138
+ if (word.endsWith("ung") && word.length - 3 >= r2) {
139
+ word = word.slice(0, -3);
140
+ if (word.endsWith("ig") && word.length - 2 >= r2 && !word.endsWith("eig")) {
141
+ return word.slice(0, -2);
142
+ }
143
+ return word;
144
+ }
145
+ if (word.endsWith("ig") && word.length - 2 >= r2) {
146
+ if (!word.endsWith("eig")) {
147
+ return word.slice(0, -2);
148
+ }
149
+ return word;
150
+ }
151
+ if (word.endsWith("ik") && word.length - 2 >= r2) {
152
+ if (!word.endsWith("eik")) {
153
+ return word.slice(0, -2);
154
+ }
155
+ return word;
156
+ }
157
+ return word;
158
+ }
159
+ function restoreLowercase(word) {
160
+ return word.replace(RE_UPPER_Y, "y").replace(RE_UPPER_U, "u").replace(RE_UMLAUT_A, "a").replace(RE_UMLAUT_O, "o").replace(RE_UMLAUT_U, "u");
161
+ }
162
+ function stem(word) {
163
+ if (word.length < 3) return word;
164
+ word = word.toLowerCase();
165
+ word = word.replace(RE_ESZETT, "ss");
166
+ word = markConsonantUY(word);
167
+ const { r1, r2 } = findRegions(word);
168
+ word = step1(word, r1);
169
+ word = step2(word, r1);
170
+ word = step3(word, r1, r2);
171
+ word = restoreLowercase(word);
172
+ return word;
173
+ }
174
+ var stopWords = /* @__PURE__ */ new Set([
175
+ "aber",
176
+ "alle",
177
+ "allem",
178
+ "allen",
179
+ "aller",
180
+ "alles",
181
+ "als",
182
+ "also",
183
+ "am",
184
+ "an",
185
+ "ander",
186
+ "andere",
187
+ "anderem",
188
+ "anderen",
189
+ "anderer",
190
+ "anderes",
191
+ "anderm",
192
+ "andern",
193
+ "anderr",
194
+ "anders",
195
+ "auch",
196
+ "auf",
197
+ "aus",
198
+ "bei",
199
+ "bin",
200
+ "bis",
201
+ "bist",
202
+ "da",
203
+ "damit",
204
+ "dann",
205
+ "der",
206
+ "den",
207
+ "des",
208
+ "dem",
209
+ "die",
210
+ "das",
211
+ "da\xDF",
212
+ "derselbe",
213
+ "derselben",
214
+ "denselben",
215
+ "desselben",
216
+ "demselben",
217
+ "dieselbe",
218
+ "dieselben",
219
+ "dasselbe",
220
+ "dazu",
221
+ "dein",
222
+ "deine",
223
+ "deinem",
224
+ "deinen",
225
+ "deiner",
226
+ "deines",
227
+ "denn",
228
+ "derer",
229
+ "dessen",
230
+ "dich",
231
+ "dir",
232
+ "du",
233
+ "dies",
234
+ "diese",
235
+ "diesem",
236
+ "diesen",
237
+ "dieser",
238
+ "dieses",
239
+ "doch",
240
+ "dort",
241
+ "durch",
242
+ "ein",
243
+ "eine",
244
+ "einem",
245
+ "einen",
246
+ "einer",
247
+ "eines",
248
+ "einig",
249
+ "einige",
250
+ "einigem",
251
+ "einigen",
252
+ "einiger",
253
+ "einiges",
254
+ "einmal",
255
+ "er",
256
+ "ihn",
257
+ "ihm",
258
+ "es",
259
+ "etwas",
260
+ "euer",
261
+ "eure",
262
+ "eurem",
263
+ "euren",
264
+ "eurer",
265
+ "eures",
266
+ "f\xFCr",
267
+ "gegen",
268
+ "gewesen",
269
+ "hab",
270
+ "habe",
271
+ "haben",
272
+ "hat",
273
+ "hatte",
274
+ "hatten",
275
+ "hier",
276
+ "hin",
277
+ "hinter",
278
+ "ich",
279
+ "mich",
280
+ "mir",
281
+ "ihr",
282
+ "ihre",
283
+ "ihrem",
284
+ "ihren",
285
+ "ihrer",
286
+ "ihres",
287
+ "euch",
288
+ "im",
289
+ "in",
290
+ "indem",
291
+ "ins",
292
+ "ist",
293
+ "jede",
294
+ "jedem",
295
+ "jeden",
296
+ "jeder",
297
+ "jedes",
298
+ "jene",
299
+ "jenem",
300
+ "jenen",
301
+ "jener",
302
+ "jenes",
303
+ "jetzt",
304
+ "kann",
305
+ "kein",
306
+ "keine",
307
+ "keinem",
308
+ "keinen",
309
+ "keiner",
310
+ "keines",
311
+ "k\xF6nnen",
312
+ "k\xF6nnte",
313
+ "machen",
314
+ "man",
315
+ "manche",
316
+ "manchem",
317
+ "manchen",
318
+ "mancher",
319
+ "manches",
320
+ "mein",
321
+ "meine",
322
+ "meinem",
323
+ "meinen",
324
+ "meiner",
325
+ "meines",
326
+ "mit",
327
+ "muss",
328
+ "musste",
329
+ "nach",
330
+ "nicht",
331
+ "nichts",
332
+ "noch",
333
+ "nun",
334
+ "nur",
335
+ "ob",
336
+ "oder",
337
+ "ohne",
338
+ "sehr",
339
+ "sein",
340
+ "seine",
341
+ "seinem",
342
+ "seinen",
343
+ "seiner",
344
+ "seines",
345
+ "selbst",
346
+ "sich",
347
+ "sie",
348
+ "ihnen",
349
+ "sind",
350
+ "so",
351
+ "solche",
352
+ "solchem",
353
+ "solchen",
354
+ "solcher",
355
+ "solches",
356
+ "soll",
357
+ "sollte",
358
+ "sondern",
359
+ "sonst",
360
+ "\xFCber",
361
+ "um",
362
+ "und",
363
+ "uns",
364
+ "unse",
365
+ "unsem",
366
+ "unsen",
367
+ "unser",
368
+ "unses",
369
+ "unter",
370
+ "viel",
371
+ "vom",
372
+ "von",
373
+ "vor",
374
+ "w\xE4hrend",
375
+ "war",
376
+ "waren",
377
+ "warst",
378
+ "was",
379
+ "weg",
380
+ "weil",
381
+ "weiter",
382
+ "welche",
383
+ "welchem",
384
+ "welchen",
385
+ "welcher",
386
+ "welches",
387
+ "wenn",
388
+ "werde",
389
+ "werden",
390
+ "wie",
391
+ "wieder",
392
+ "will",
393
+ "wir",
394
+ "wird",
395
+ "wirst",
396
+ "wo",
397
+ "wollen",
398
+ "wollte",
399
+ "w\xFCrde",
400
+ "w\xFCrden",
401
+ "zu",
402
+ "zum",
403
+ "zur",
404
+ "zwar",
405
+ "zwischen"
406
+ ]);
407
+ var german = {
408
+ name: "german",
409
+ stemmer: stem,
410
+ stopWords,
411
+ tokenizer: { splitPattern: /[^a-z0-9äöüß]+/gi }
412
+ };
413
+
414
+ export { german };
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-ClUGLuoC.js';
2
+
3
+ declare const greek: LanguageModule;
4
+
5
+ export { greek };