@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,5 @@
1
+ import { L as LanguageModule } from '../language-ClUGLuoC.js';
2
+
3
+ declare const irish: LanguageModule;
4
+
5
+ export { irish };
@@ -0,0 +1,268 @@
1
+ // src/languages/irish.ts
2
+ var VOWELS = "aeiou\xE1\xE9\xED\xF3\xFA";
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 rv = word.length;
10
+ for (let i = 1; i < word.length; i++) {
11
+ if (!isVowel(word[i]) && isVowel(word[i - 1])) {
12
+ r1 = i + 1;
13
+ break;
14
+ }
15
+ }
16
+ for (let i = r1 + 1; i < word.length; i++) {
17
+ if (!isVowel(word[i]) && isVowel(word[i - 1])) {
18
+ r2 = i + 1;
19
+ break;
20
+ }
21
+ }
22
+ let foundConsonantCluster = false;
23
+ for (let i = 0; i < word.length; i++) {
24
+ if (!foundConsonantCluster) {
25
+ if (!isVowel(word[i])) continue;
26
+ foundConsonantCluster = false;
27
+ for (let j = i + 1; j < word.length; j++) {
28
+ if (!isVowel(word[j])) {
29
+ rv = j + 1;
30
+ foundConsonantCluster = true;
31
+ break;
32
+ }
33
+ }
34
+ if (foundConsonantCluster) break;
35
+ }
36
+ }
37
+ return { r1, r2, rv };
38
+ }
39
+ var ECLIPSIS = [
40
+ ["bhf", "f"],
41
+ ["mb", "b"],
42
+ ["gc", "c"],
43
+ ["nd", "d"],
44
+ ["ng", "g"],
45
+ ["bp", "p"],
46
+ ["ts", "s"],
47
+ ["dt", "t"]
48
+ ];
49
+ var LENITION = [
50
+ ["bh", "b"],
51
+ ["ch", "c"],
52
+ ["dh", "d"],
53
+ ["fh", "f"],
54
+ ["gh", "g"],
55
+ ["mh", "m"],
56
+ ["ph", "p"],
57
+ ["sh", "s"],
58
+ ["th", "t"]
59
+ ];
60
+ function removeInitialMutations(word) {
61
+ if (word.startsWith("d'") || word.startsWith("b'")) {
62
+ const rest = word.slice(2);
63
+ if (rest.length > 0 && isVowel(rest[0])) {
64
+ return rest;
65
+ }
66
+ }
67
+ if (word.startsWith("h-") || word.startsWith("n-") || word.startsWith("t-")) {
68
+ const rest = word.slice(2);
69
+ if (rest.length > 0 && isVowel(rest[0])) {
70
+ return rest;
71
+ }
72
+ }
73
+ for (const [mutation, replacement] of ECLIPSIS) {
74
+ if (word.startsWith(mutation)) {
75
+ return `${replacement}${word.slice(mutation.length)}`;
76
+ }
77
+ }
78
+ for (const [mutation, replacement] of LENITION) {
79
+ if (word.startsWith(mutation)) {
80
+ return `${replacement}${word.slice(mutation.length)}`;
81
+ }
82
+ }
83
+ return word;
84
+ }
85
+ var NOUN_SUFFIXES = [
86
+ "arcachta\xED",
87
+ "gineadach",
88
+ "a\xEDochta\xED",
89
+ "eachta\xED",
90
+ "\xEDochta\xED",
91
+ "a\xEDochta",
92
+ "achta\xED",
93
+ "eachta",
94
+ "gineas",
95
+ "\xE9altas",
96
+ "\xEDochta",
97
+ "a\xEDocht",
98
+ "eanna",
99
+ "achta",
100
+ "eacht",
101
+ "anna",
102
+ "acht",
103
+ "aire",
104
+ "ire"
105
+ ];
106
+ var VERB_SUFFIXES = [
107
+ "a\xEDomar",
108
+ "a\xEDtear",
109
+ "aimid",
110
+ "aim\xEDs",
111
+ "aimis",
112
+ "a\xEDodh",
113
+ "a\xEDonn",
114
+ "eamar",
115
+ "imid",
116
+ "\xEDmid",
117
+ "\xEDm\xEDs",
118
+ "imis",
119
+ "tear",
120
+ "eadh",
121
+ "aidh",
122
+ "igh",
123
+ "ann",
124
+ "adh"
125
+ ];
126
+ function removeSuffixInRegion(word, suffixes, regionStart) {
127
+ for (const suffix of suffixes) {
128
+ if (word.endsWith(suffix) && word.length - suffix.length >= regionStart) {
129
+ return word.slice(0, word.length - suffix.length);
130
+ }
131
+ }
132
+ return null;
133
+ }
134
+ function stem(word) {
135
+ if (word.length < 3) return word;
136
+ word = removeInitialMutations(word);
137
+ if (word.length < 3) return word;
138
+ const { r2, rv } = findRegions(word);
139
+ const nounResult = removeSuffixInRegion(word, NOUN_SUFFIXES, r2);
140
+ if (nounResult !== null) {
141
+ word = nounResult;
142
+ } else {
143
+ const verbResult = removeSuffixInRegion(word, VERB_SUFFIXES, rv);
144
+ if (verbResult !== null) {
145
+ word = verbResult;
146
+ }
147
+ }
148
+ return word;
149
+ }
150
+ var stopWords = /* @__PURE__ */ new Set([
151
+ "a",
152
+ "ach",
153
+ "ag",
154
+ "agus",
155
+ "an",
156
+ "aon",
157
+ "ar",
158
+ "arna",
159
+ "as",
160
+ "b",
161
+ "ba",
162
+ "beirt",
163
+ "bh\xFAr",
164
+ "caoga",
165
+ "ceathair",
166
+ "ceathrar",
167
+ "chomh",
168
+ "cht\xF3",
169
+ "chuig",
170
+ "chun",
171
+ "cois",
172
+ "c\xE9ad",
173
+ "c\xFAig",
174
+ "c\xFAigear",
175
+ "d",
176
+ "daichead",
177
+ "dar",
178
+ "de",
179
+ "deich",
180
+ "deichni\xFAr",
181
+ "den",
182
+ "dh\xE1",
183
+ "do",
184
+ "don",
185
+ "dt\xED",
186
+ "d\xE1",
187
+ "d\xE1r",
188
+ "d\xF3",
189
+ "faoi",
190
+ "faoin",
191
+ "faoina",
192
+ "faoin\xE1r",
193
+ "fara",
194
+ "fiche",
195
+ "gach",
196
+ "gan",
197
+ "go",
198
+ "gur",
199
+ "haon",
200
+ "hocht",
201
+ "i",
202
+ "iad",
203
+ "idir",
204
+ "in",
205
+ "ina",
206
+ "ins",
207
+ "in\xE1r",
208
+ "is",
209
+ "le",
210
+ "leis",
211
+ "lena",
212
+ "len\xE1r",
213
+ "m",
214
+ "mar",
215
+ "mo",
216
+ "m\xE9",
217
+ "na",
218
+ "nach",
219
+ "naoi",
220
+ "naon\xFAr",
221
+ "n\xE1",
222
+ "n\xED",
223
+ "n\xEDor",
224
+ "n\xF3",
225
+ "n\xF3cha",
226
+ "ocht",
227
+ "ochtar",
228
+ "os",
229
+ "roimh",
230
+ "sa",
231
+ "seacht",
232
+ "seachtar",
233
+ "seacht\xF3",
234
+ "seasca",
235
+ "seisear",
236
+ "siad",
237
+ "sibh",
238
+ "sinn",
239
+ "sna",
240
+ "s\xE9",
241
+ "s\xED",
242
+ "tar",
243
+ "thar",
244
+ "th\xFA",
245
+ "tri\xFAr",
246
+ "tr\xED",
247
+ "tr\xEDna",
248
+ "tr\xEDn\xE1r",
249
+ "tr\xEDocha",
250
+ "t\xFA",
251
+ "um",
252
+ "\xE1r",
253
+ "\xE9",
254
+ "\xE9is",
255
+ "\xED",
256
+ "\xF3",
257
+ "\xF3n",
258
+ "\xF3na",
259
+ "\xF3n\xE1r"
260
+ ]);
261
+ var irish = {
262
+ name: "irish",
263
+ stemmer: stem,
264
+ stopWords,
265
+ tokenizer: { splitPattern: /[^a-z0-9áéíóú]+/gi }
266
+ };
267
+
268
+ export { irish };
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-ClUGLuoC.js';
2
+
3
+ declare const italian: LanguageModule;
4
+
5
+ export { italian };