@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,296 @@
1
+ // src/languages/dutch.ts
2
+ var VOWELS = "aeiouy\xE8";
3
+ function isVowel(ch) {
4
+ return VOWELS.includes(ch);
5
+ }
6
+ function isVowelOrJ(ch) {
7
+ return VOWELS.includes(ch) || ch === "j";
8
+ }
9
+ function findRegions(word) {
10
+ let r1 = word.length;
11
+ let r2 = word.length;
12
+ let i = 1;
13
+ while (i < word.length) {
14
+ if (!isVowel(word[i]) && isVowel(word[i - 1])) {
15
+ r1 = i + 1;
16
+ break;
17
+ }
18
+ i++;
19
+ }
20
+ if (r1 < 3) r1 = 3;
21
+ i = r1;
22
+ while (i < word.length) {
23
+ if (!isVowel(word[i]) && i > 0 && isVowel(word[i - 1])) {
24
+ r2 = i + 1;
25
+ break;
26
+ }
27
+ i++;
28
+ }
29
+ return { r1, r2 };
30
+ }
31
+ function markConsonantIY(word) {
32
+ const chars = word.split("");
33
+ if (chars.length > 0 && chars[0] === "y") {
34
+ chars[0] = "Y";
35
+ }
36
+ for (let i = 1; i < chars.length; i++) {
37
+ if (chars[i] === "y" && isVowel(chars[i - 1])) {
38
+ chars[i] = "Y";
39
+ }
40
+ if (chars[i] === "i" && isVowel(chars[i - 1]) && i + 1 < chars.length && isVowel(chars[i + 1])) {
41
+ chars[i] = "I";
42
+ }
43
+ }
44
+ return chars.join("");
45
+ }
46
+ function undouble(word) {
47
+ if (word.endsWith("kk") || word.endsWith("dd") || word.endsWith("tt")) {
48
+ return word.slice(0, -1);
49
+ }
50
+ return word;
51
+ }
52
+ function removeEnSuffix(word, r1) {
53
+ if (!word.endsWith("en")) return word;
54
+ if (word.length - 2 < r1) return word;
55
+ const beforeSuffix = word.length - 2;
56
+ if (beforeSuffix <= 0 || isVowel(word[beforeSuffix - 1])) return word;
57
+ const base = word.slice(0, -2);
58
+ if (base.endsWith("gem")) return word;
59
+ return undouble(base);
60
+ }
61
+ function step1(word, r1) {
62
+ if (word.endsWith("heden") && word.length - 5 >= r1) {
63
+ return `${word.slice(0, -5)}heid`;
64
+ }
65
+ if (word.endsWith("ene") && word.length - 3 >= r1) {
66
+ const beforeSuffix = word.length - 3;
67
+ if (beforeSuffix > 0 && !isVowel(word[beforeSuffix - 1])) {
68
+ const base = word.slice(0, -3);
69
+ if (!base.endsWith("gem")) {
70
+ return undouble(base);
71
+ }
72
+ }
73
+ }
74
+ if (word.endsWith("en") && !word.endsWith("ene") && word.length - 2 >= r1) {
75
+ const beforeSuffix = word.length - 2;
76
+ if (beforeSuffix > 0 && !isVowel(word[beforeSuffix - 1])) {
77
+ const base = word.slice(0, -2);
78
+ if (!base.endsWith("gem")) {
79
+ return undouble(base);
80
+ }
81
+ }
82
+ }
83
+ if (word.endsWith("se") && word.length - 2 >= r1) {
84
+ const beforeSuffix = word.length - 2;
85
+ if (beforeSuffix > 0 && !isVowelOrJ(word[beforeSuffix - 1])) {
86
+ return word.slice(0, -2);
87
+ }
88
+ }
89
+ if (word.endsWith("s") && !word.endsWith("se") && word.length - 1 >= r1) {
90
+ const beforeSuffix = word.length - 1;
91
+ if (beforeSuffix > 0 && !isVowelOrJ(word[beforeSuffix - 1])) {
92
+ return word.slice(0, -1);
93
+ }
94
+ }
95
+ return word;
96
+ }
97
+ function step2(word, r1) {
98
+ if (word.endsWith("e") && word.length - 1 >= r1) {
99
+ const beforeSuffix = word.length - 1;
100
+ if (beforeSuffix > 0 && !isVowel(word[beforeSuffix - 1])) {
101
+ return { word: undouble(word.slice(0, -1)), removedE: true };
102
+ }
103
+ }
104
+ return { word, removedE: false };
105
+ }
106
+ function step3a(word, r2) {
107
+ if (word.endsWith("heid") && word.length - 4 >= r2) {
108
+ if (!word.slice(0, -4).endsWith("c")) {
109
+ return word.slice(0, -4);
110
+ }
111
+ }
112
+ return word;
113
+ }
114
+ function step3b(word, r1, r2, removedE) {
115
+ if (word.endsWith("end") && word.length - 3 >= r2) {
116
+ word = word.slice(0, -3);
117
+ if (word.endsWith("ig") && word.length - 2 >= r2 && !word.endsWith("eig")) {
118
+ return word.slice(0, -2);
119
+ }
120
+ return undouble(word);
121
+ }
122
+ if (word.endsWith("ing") && word.length - 3 >= r2) {
123
+ word = word.slice(0, -3);
124
+ if (word.endsWith("ig") && word.length - 2 >= r2 && !word.endsWith("eig")) {
125
+ return word.slice(0, -2);
126
+ }
127
+ return undouble(word);
128
+ }
129
+ if (word.endsWith("ig") && word.length - 2 >= r2) {
130
+ if (!word.endsWith("eig")) {
131
+ return word.slice(0, -2);
132
+ }
133
+ return word;
134
+ }
135
+ if (word.endsWith("lijk") && word.length - 4 >= r2) {
136
+ word = word.slice(0, -4);
137
+ const result = step2(word, r1);
138
+ return result.word;
139
+ }
140
+ if (word.endsWith("baar") && word.length - 4 >= r2) {
141
+ return word.slice(0, -4);
142
+ }
143
+ if (word.endsWith("bar") && word.length - 3 >= r2) {
144
+ if (removedE) {
145
+ return word.slice(0, -3);
146
+ }
147
+ return word;
148
+ }
149
+ return word;
150
+ }
151
+ var DOUBLE_VOWELS = ["aa", "ee", "oo", "uu"];
152
+ function undoubleVowel(word) {
153
+ if (word.length < 4) return word;
154
+ const lastChar = word[word.length - 1];
155
+ if (isVowel(lastChar) || lastChar === "I" || lastChar === "Y") return word;
156
+ const penultimate = word.slice(word.length - 3, word.length - 1);
157
+ if (!DOUBLE_VOWELS.includes(penultimate)) return word;
158
+ const charBeforeDouble = word[word.length - 4];
159
+ if (charBeforeDouble === void 0 || isVowel(charBeforeDouble)) return word;
160
+ return word.slice(0, word.length - 2) + word[word.length - 1];
161
+ }
162
+ var RE_UPPERCASE_I = /I/g;
163
+ var RE_UPPERCASE_Y = /Y/g;
164
+ function restoreCase(word) {
165
+ return word.replace(RE_UPPERCASE_I, "i").replace(RE_UPPERCASE_Y, "y");
166
+ }
167
+ function stem(word) {
168
+ if (word.length < 3) return word;
169
+ word = word.toLowerCase();
170
+ word = markConsonantIY(word);
171
+ const { r1, r2 } = findRegions(word);
172
+ word = step1(word, r1);
173
+ const step2Result = step2(word, r1);
174
+ word = step2Result.word;
175
+ const removedE = step2Result.removedE;
176
+ const beforeStep3a = word;
177
+ word = step3a(word, r2);
178
+ if (word !== beforeStep3a) {
179
+ word = removeEnSuffix(word, r1);
180
+ }
181
+ word = step3b(word, r1, r2, removedE);
182
+ word = undoubleVowel(word);
183
+ word = restoreCase(word);
184
+ return word;
185
+ }
186
+ var stopWords = /* @__PURE__ */ new Set([
187
+ "de",
188
+ "en",
189
+ "van",
190
+ "ik",
191
+ "te",
192
+ "dat",
193
+ "die",
194
+ "in",
195
+ "een",
196
+ "hij",
197
+ "het",
198
+ "niet",
199
+ "zijn",
200
+ "is",
201
+ "was",
202
+ "op",
203
+ "aan",
204
+ "met",
205
+ "als",
206
+ "voor",
207
+ "had",
208
+ "er",
209
+ "maar",
210
+ "om",
211
+ "hem",
212
+ "dan",
213
+ "zou",
214
+ "of",
215
+ "wat",
216
+ "mijn",
217
+ "men",
218
+ "dit",
219
+ "zo",
220
+ "door",
221
+ "over",
222
+ "ze",
223
+ "zich",
224
+ "bij",
225
+ "ook",
226
+ "tot",
227
+ "je",
228
+ "mij",
229
+ "uit",
230
+ "der",
231
+ "daar",
232
+ "haar",
233
+ "naar",
234
+ "heb",
235
+ "hoe",
236
+ "heeft",
237
+ "hebben",
238
+ "deze",
239
+ "u",
240
+ "want",
241
+ "nog",
242
+ "zal",
243
+ "me",
244
+ "zij",
245
+ "nu",
246
+ "ge",
247
+ "geen",
248
+ "omdat",
249
+ "iets",
250
+ "worden",
251
+ "toch",
252
+ "al",
253
+ "waren",
254
+ "veel",
255
+ "meer",
256
+ "doen",
257
+ "toen",
258
+ "moet",
259
+ "ben",
260
+ "zonder",
261
+ "kan",
262
+ "hun",
263
+ "dus",
264
+ "alles",
265
+ "onder",
266
+ "ja",
267
+ "eens",
268
+ "hier",
269
+ "wie",
270
+ "werd",
271
+ "altijd",
272
+ "doch",
273
+ "wordt",
274
+ "wezen",
275
+ "kunnen",
276
+ "ons",
277
+ "zelf",
278
+ "tegen",
279
+ "na",
280
+ "reeds",
281
+ "wil",
282
+ "kon",
283
+ "niets",
284
+ "uw",
285
+ "iemand",
286
+ "geweest",
287
+ "andere"
288
+ ]);
289
+ var dutch = {
290
+ name: "dutch",
291
+ stemmer: stem,
292
+ stopWords,
293
+ tokenizer: { splitPattern: /[^a-z0-9àèéìòóù'-]+/gi }
294
+ };
295
+
296
+ export { dutch };
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-ClUGLuoC.js';
2
+
3
+ declare const english: LanguageModule;
4
+
5
+ export { english };
@@ -0,0 +1 @@
1
+ export { english } from '../chunk-WYC635GI.mjs';
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-ClUGLuoC.js';
2
+
3
+ declare const ewe: LanguageModule;
4
+
5
+ export { ewe };
@@ -0,0 +1,85 @@
1
+ // src/languages/ewe.ts
2
+ var stopWords = /* @__PURE__ */ new Set([
3
+ "nye",
4
+ "ny\xE8",
5
+ "w\xF2",
6
+ "eya",
7
+ "m\xED",
8
+ "m\xEDawo",
9
+ "w\xF3",
10
+ "woawo",
11
+ "la",
12
+ "le",
13
+ "be",
14
+ "ne",
15
+ "si",
16
+ "wo",
17
+ "ame",
18
+ "nu",
19
+ "a\u0256e",
20
+ "na",
21
+ "tso",
22
+ "yi",
23
+ "va",
24
+ "eye",
25
+ "kple",
26
+ "alo",
27
+ "gake",
28
+ "ke",
29
+ "elabena",
30
+ "eyata",
31
+ "hafi",
32
+ "ale",
33
+ "sia",
34
+ "ma",
35
+ "esia",
36
+ "ema",
37
+ "esiwo",
38
+ "emawo",
39
+ "de",
40
+ "me",
41
+ "dzi",
42
+ "te",
43
+ "dome",
44
+ "megbe",
45
+ "\u014Bg\u0254",
46
+ "dzo",
47
+ "do",
48
+ "afi",
49
+ "afisi",
50
+ "kat\xE3",
51
+ "kataa",
52
+ "\u0256e",
53
+ "nuka",
54
+ "ameka",
55
+ "fitee",
56
+ "aleke",
57
+ "gb\u0254",
58
+ "ko",
59
+ "ha",
60
+ "h\xE3",
61
+ "ga",
62
+ "hee",
63
+ "a",
64
+ "o",
65
+ "e",
66
+ "ewo",
67
+ "nenie",
68
+ "kp\u0254",
69
+ "v\u0254",
70
+ "se",
71
+ "tsoa",
72
+ "hena"
73
+ ]);
74
+ var ewe = {
75
+ name: "ewe",
76
+ stemmer: null,
77
+ stopWords,
78
+ tokenizer: {
79
+ splitPattern: /[^a-zA-ZàáèéìíòóùúãẽĩõũɛɔɖƉŋƐƆƊŊɣƔÀÁÈÉÌÍÒÓÙÚÃẼĨÕŨ0-9\p{M}]+/giu,
80
+ normalizeDiacritics: false,
81
+ minTokenLength: 1
82
+ }
83
+ };
84
+
85
+ export { ewe };
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-ClUGLuoC.js';
2
+
3
+ declare const finnish: LanguageModule;
4
+
5
+ export { finnish };