@delali/narsil 0.1.15 → 0.2.1-next.25

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 (267) hide show
  1. package/NOTICE +54 -0
  2. package/README.md +38 -982
  3. package/dist/adapters/filesystem.d.ts +23 -1
  4. package/dist/adapters/filesystem.mjs +1 -1
  5. package/dist/adapters/indexeddb.d.ts +25 -1
  6. package/dist/adapters/indexeddb.mjs +1 -1
  7. package/dist/adapters/memory.d.ts +14 -1
  8. package/dist/adapters-CVqI5NBt.d.ts +149 -0
  9. package/dist/{chunk-HMO6OMZ3.mjs → chunk-ASI6AOW2.mjs} +1073 -506
  10. package/dist/{chunk-HRABJLPB.mjs → chunk-BKAI2WXI.mjs} +1 -0
  11. package/dist/{chunk-WISGW24C.mjs → chunk-FKK76OR7.mjs} +56 -55
  12. package/dist/chunk-GHJWC2E5.mjs +9 -0
  13. package/dist/chunk-KH3YGMVT.mjs +15 -0
  14. package/dist/chunk-TGP5M5R7.mjs +880 -0
  15. package/dist/chunk-U2BKYEC7.mjs +254 -0
  16. package/dist/{chunk-ALB35PRQ.mjs → chunk-UNJZ7ZDB.mjs} +18 -0
  17. package/dist/{chunk-MEW7HD75.mjs → chunk-WLR5BFL3.mjs} +2557 -1166
  18. package/dist/config-CAjTHzkH.d.ts +256 -0
  19. package/dist/direct-executor-3W4QRA4E.mjs +5 -0
  20. package/dist/distribution/coordinator/etcd.d.ts +44 -3
  21. package/dist/distribution/coordinator/etcd.mjs +2 -2
  22. package/dist/distribution/coordinator/in-memory.d.ts +14 -3
  23. package/dist/distribution.d.ts +318 -45
  24. package/dist/distribution.mjs +1875 -1772
  25. package/dist/embeddings/openai.d.ts +28 -1
  26. package/dist/embeddings/openai.mjs +1 -1
  27. package/dist/engine-CCrlfLyq.d.ts +431 -0
  28. package/dist/index.browser.mjs +4571 -1776
  29. package/dist/index.d.ts +180 -6
  30. package/dist/index.mjs +6 -5
  31. package/dist/invalidation/broadcast-channel.d.ts +20 -1
  32. package/dist/invalidation/filesystem.d.ts +24 -1
  33. package/dist/invalidation/noop.d.ts +14 -1
  34. package/dist/language-DB8KG1z5.d.ts +53 -0
  35. package/dist/languages/albanian.d.ts +15 -0
  36. package/dist/languages/albanian.mjs +103 -0
  37. package/dist/languages/amharic.d.ts +15 -0
  38. package/dist/languages/amharic.mjs +240 -0
  39. package/dist/languages/arabic.d.ts +10 -1
  40. package/dist/languages/arabic.mjs +939 -154
  41. package/dist/languages/armenian.d.ts +10 -1
  42. package/dist/languages/armenian.mjs +275 -243
  43. package/dist/languages/azerbaijani.d.ts +15 -0
  44. package/dist/languages/azerbaijani.mjs +152 -0
  45. package/dist/languages/bambara.d.ts +15 -0
  46. package/dist/languages/bambara.mjs +60 -0
  47. package/dist/languages/basque.d.ts +14 -0
  48. package/dist/languages/basque.mjs +726 -0
  49. package/dist/languages/belarusian.d.ts +15 -0
  50. package/dist/languages/belarusian.mjs +100 -0
  51. package/dist/languages/bengali.d.ts +15 -0
  52. package/dist/languages/bengali.mjs +128 -0
  53. package/dist/languages/bosnian.d.ts +15 -0
  54. package/dist/languages/bosnian.mjs +197 -0
  55. package/dist/languages/breton.d.ts +15 -0
  56. package/dist/languages/breton.mjs +96 -0
  57. package/dist/languages/bulgarian.d.ts +10 -1
  58. package/dist/languages/bulgarian.mjs +11 -2
  59. package/dist/languages/burmese.d.ts +15 -0
  60. package/dist/languages/burmese.mjs +57 -0
  61. package/dist/languages/catalan.d.ts +14 -0
  62. package/dist/languages/catalan.mjs +987 -0
  63. package/dist/languages/chinese.d.ts +11 -1
  64. package/dist/languages/chinese.mjs +4 -3
  65. package/dist/languages/croatian.d.ts +15 -0
  66. package/dist/languages/croatian.mjs +191 -0
  67. package/dist/languages/czech.d.ts +14 -0
  68. package/dist/languages/czech.mjs +628 -0
  69. package/dist/languages/dagbani.d.ts +11 -1
  70. package/dist/languages/dagbani.mjs +11 -2
  71. package/dist/languages/danish.d.ts +10 -1
  72. package/dist/languages/danish.mjs +215 -110
  73. package/dist/languages/dutch.d.ts +10 -1
  74. package/dist/languages/dutch.mjs +1248 -163
  75. package/dist/languages/english.d.ts +10 -1
  76. package/dist/languages/english.mjs +2 -1
  77. package/dist/languages/esperanto.d.ts +14 -0
  78. package/dist/languages/esperanto.mjs +689 -0
  79. package/dist/languages/estonian.d.ts +14 -0
  80. package/dist/languages/estonian.mjs +2160 -0
  81. package/dist/languages/ewe.d.ts +11 -1
  82. package/dist/languages/ewe.mjs +11 -2
  83. package/dist/languages/faroese.d.ts +15 -0
  84. package/dist/languages/faroese.mjs +93 -0
  85. package/dist/languages/fijian.d.ts +15 -0
  86. package/dist/languages/fijian.mjs +55 -0
  87. package/dist/languages/finnish.d.ts +10 -1
  88. package/dist/languages/finnish.mjs +528 -263
  89. package/dist/languages/french.d.ts +10 -1
  90. package/dist/languages/french.mjs +950 -437
  91. package/dist/languages/ga.d.ts +11 -1
  92. package/dist/languages/ga.mjs +2 -1
  93. package/dist/languages/galician.d.ts +15 -0
  94. package/dist/languages/galician.mjs +172 -0
  95. package/dist/languages/georgian.d.ts +15 -0
  96. package/dist/languages/georgian.mjs +91 -0
  97. package/dist/languages/german.d.ts +10 -1
  98. package/dist/languages/german.mjs +432 -162
  99. package/dist/languages/greek.d.ts +10 -1
  100. package/dist/languages/greek.mjs +1970 -281
  101. package/dist/languages/guarani.d.ts +15 -0
  102. package/dist/languages/guarani.mjs +132 -0
  103. package/dist/languages/gujarati.d.ts +15 -0
  104. package/dist/languages/gujarati.mjs +234 -0
  105. package/dist/languages/haitian-creole.d.ts +15 -0
  106. package/dist/languages/haitian-creole.mjs +106 -0
  107. package/dist/languages/hausa.d.ts +11 -1
  108. package/dist/languages/hausa.mjs +2 -1
  109. package/dist/languages/hawaiian.d.ts +15 -0
  110. package/dist/languages/hawaiian.mjs +69 -0
  111. package/dist/languages/hebrew.d.ts +15 -0
  112. package/dist/languages/hebrew.mjs +213 -0
  113. package/dist/languages/hindi.d.ts +10 -1
  114. package/dist/languages/hindi.mjs +175 -97
  115. package/dist/languages/hungarian.d.ts +10 -1
  116. package/dist/languages/hungarian.mjs +412 -326
  117. package/dist/languages/icelandic.d.ts +15 -0
  118. package/dist/languages/icelandic.mjs +161 -0
  119. package/dist/languages/igbo.d.ts +11 -1
  120. package/dist/languages/igbo.mjs +2 -1
  121. package/dist/languages/indonesian.d.ts +10 -1
  122. package/dist/languages/indonesian.mjs +329 -137
  123. package/dist/languages/irish.d.ts +10 -1
  124. package/dist/languages/irish.mjs +223 -139
  125. package/dist/languages/italian.d.ts +10 -1
  126. package/dist/languages/italian.mjs +703 -406
  127. package/dist/languages/japanese.d.ts +11 -1
  128. package/dist/languages/japanese.mjs +5 -108
  129. package/dist/languages/kannada.d.ts +15 -0
  130. package/dist/languages/kannada.mjs +94 -0
  131. package/dist/languages/kazakh.d.ts +15 -0
  132. package/dist/languages/kazakh.mjs +90 -0
  133. package/dist/languages/khmer.d.ts +15 -0
  134. package/dist/languages/khmer.mjs +181 -0
  135. package/dist/languages/kinyarwanda.d.ts +15 -0
  136. package/dist/languages/kinyarwanda.mjs +99 -0
  137. package/dist/languages/kirundi.d.ts +15 -0
  138. package/dist/languages/kirundi.mjs +92 -0
  139. package/dist/languages/korean.d.ts +15 -0
  140. package/dist/languages/korean.mjs +252 -0
  141. package/dist/languages/kurmanji.d.ts +15 -0
  142. package/dist/languages/kurmanji.mjs +50 -0
  143. package/dist/languages/kyrgyz.d.ts +15 -0
  144. package/dist/languages/kyrgyz.mjs +108 -0
  145. package/dist/languages/lao.d.ts +15 -0
  146. package/dist/languages/lao.mjs +63 -0
  147. package/dist/languages/latin.d.ts +15 -0
  148. package/dist/languages/latin.mjs +69 -0
  149. package/dist/languages/latvian.d.ts +15 -0
  150. package/dist/languages/latvian.mjs +173 -0
  151. package/dist/languages/lingala.d.ts +15 -0
  152. package/dist/languages/lingala.mjs +61 -0
  153. package/dist/languages/lithuanian.d.ts +14 -0
  154. package/dist/languages/lithuanian.mjs +571 -0
  155. package/dist/languages/luxembourgish.d.ts +15 -0
  156. package/dist/languages/luxembourgish.mjs +214 -0
  157. package/dist/languages/macedonian.d.ts +15 -0
  158. package/dist/languages/macedonian.mjs +808 -0
  159. package/dist/languages/malagasy.d.ts +15 -0
  160. package/dist/languages/malagasy.mjs +67 -0
  161. package/dist/languages/malay.d.ts +15 -0
  162. package/dist/languages/malay.mjs +482 -0
  163. package/dist/languages/malayalam.d.ts +15 -0
  164. package/dist/languages/malayalam.mjs +122 -0
  165. package/dist/languages/maltese.d.ts +15 -0
  166. package/dist/languages/maltese.mjs +139 -0
  167. package/dist/languages/maori.d.ts +15 -0
  168. package/dist/languages/maori.mjs +79 -0
  169. package/dist/languages/marathi.d.ts +15 -0
  170. package/dist/languages/marathi.mjs +111 -0
  171. package/dist/languages/nepali.d.ts +10 -1
  172. package/dist/languages/nepali.mjs +209 -99
  173. package/dist/languages/norwegian.d.ts +10 -1
  174. package/dist/languages/norwegian.mjs +218 -85
  175. package/dist/languages/oromo.d.ts +15 -0
  176. package/dist/languages/oromo.mjs +78 -0
  177. package/dist/languages/persian.d.ts +14 -0
  178. package/dist/languages/persian.mjs +710 -0
  179. package/dist/languages/polish.d.ts +14 -0
  180. package/dist/languages/polish.mjs +614 -0
  181. package/dist/languages/portuguese.d.ts +10 -1
  182. package/dist/languages/portuguese.mjs +613 -380
  183. package/dist/languages/punjabi.d.ts +15 -0
  184. package/dist/languages/punjabi.mjs +197 -0
  185. package/dist/languages/romanian.d.ts +10 -1
  186. package/dist/languages/romanian.mjs +561 -382
  187. package/dist/languages/russian.d.ts +10 -1
  188. package/dist/languages/russian.mjs +373 -244
  189. package/dist/languages/samoan.d.ts +15 -0
  190. package/dist/languages/samoan.mjs +63 -0
  191. package/dist/languages/sanskrit.d.ts +10 -1
  192. package/dist/languages/sanskrit.mjs +2 -2
  193. package/dist/languages/scottish-gaelic.d.ts +15 -0
  194. package/dist/languages/scottish-gaelic.mjs +370 -0
  195. package/dist/languages/serbian.d.ts +10 -1
  196. package/dist/languages/serbian.mjs +3635 -155
  197. package/dist/languages/shona.d.ts +15 -0
  198. package/dist/languages/shona.mjs +91 -0
  199. package/dist/languages/sinhala.d.ts +15 -0
  200. package/dist/languages/sinhala.mjs +182 -0
  201. package/dist/languages/slovak.d.ts +15 -0
  202. package/dist/languages/slovak.mjs +430 -0
  203. package/dist/languages/slovenian.d.ts +10 -1
  204. package/dist/languages/slovenian.mjs +11 -2
  205. package/dist/languages/sorani.d.ts +15 -0
  206. package/dist/languages/sorani.mjs +156 -0
  207. package/dist/languages/spanish.d.ts +10 -1
  208. package/dist/languages/spanish.mjs +676 -374
  209. package/dist/languages/swahili.d.ts +10 -1
  210. package/dist/languages/swahili.mjs +2 -1
  211. package/dist/languages/swedish.d.ts +10 -1
  212. package/dist/languages/swedish.mjs +237 -95
  213. package/dist/languages/tagalog.d.ts +15 -0
  214. package/dist/languages/tagalog.mjs +159 -0
  215. package/dist/languages/tamil.d.ts +10 -1
  216. package/dist/languages/tamil.mjs +836 -64
  217. package/dist/languages/tatar.d.ts +15 -0
  218. package/dist/languages/tatar.mjs +1017 -0
  219. package/dist/languages/telugu.d.ts +15 -0
  220. package/dist/languages/telugu.mjs +62 -0
  221. package/dist/languages/thai.d.ts +15 -0
  222. package/dist/languages/thai.mjs +65 -0
  223. package/dist/languages/tibetan.d.ts +15 -0
  224. package/dist/languages/tibetan.mjs +119 -0
  225. package/dist/languages/tigrinya.d.ts +15 -0
  226. package/dist/languages/tigrinya.mjs +194 -0
  227. package/dist/languages/tongan.d.ts +15 -0
  228. package/dist/languages/tongan.mjs +56 -0
  229. package/dist/languages/turkish.d.ts +10 -1
  230. package/dist/languages/turkish.mjs +1246 -393
  231. package/dist/languages/twi.d.ts +11 -1
  232. package/dist/languages/twi.mjs +13 -2
  233. package/dist/languages/ukrainian.d.ts +10 -1
  234. package/dist/languages/ukrainian.mjs +125 -47
  235. package/dist/languages/urdu.d.ts +15 -0
  236. package/dist/languages/urdu.mjs +528 -0
  237. package/dist/languages/vietnamese.d.ts +15 -0
  238. package/dist/languages/vietnamese.mjs +277 -0
  239. package/dist/languages/welsh.d.ts +15 -0
  240. package/dist/languages/welsh.mjs +446 -0
  241. package/dist/languages/wolof.d.ts +15 -0
  242. package/dist/languages/wolof.mjs +79 -0
  243. package/dist/languages/xhosa.d.ts +15 -0
  244. package/dist/languages/xhosa.mjs +95 -0
  245. package/dist/languages/yoruba.d.ts +11 -1
  246. package/dist/languages/yoruba.mjs +1 -0
  247. package/dist/languages/zulu.d.ts +11 -1
  248. package/dist/languages/zulu.mjs +2 -1
  249. package/dist/persistence/durability/checkpoint-worker.d.ts +13 -0
  250. package/dist/persistence/durability/checkpoint-worker.mjs +6 -5
  251. package/dist/schema-CE6S_aAr.d.ts +208 -0
  252. package/dist/search-CgQQIciB.d.ts +786 -0
  253. package/dist/server.d.ts +214 -12
  254. package/dist/server.mjs +41 -2
  255. package/dist/types-BV3nAKTL.d.ts +302 -0
  256. package/dist/vector/hnsw-build-worker.d.ts +68 -2
  257. package/dist/vector/hnsw-build-worker.mjs +0 -2
  258. package/dist/workers/entry.mjs +2 -2
  259. package/package.json +14 -4
  260. package/dist/adapters-Bo2JQg8b.d.ts +0 -37
  261. package/dist/chunk-TW6BXTOL.mjs +0 -338
  262. package/dist/config-CojEPOgS.d.ts +0 -481
  263. package/dist/direct-executor-E52FFGDE.mjs +0 -4
  264. package/dist/language-ONQ3iVDf.d.ts +0 -14
  265. package/dist/narsil-D-84Nvm4.d.ts +0 -72
  266. package/dist/schema-DCgkO1j4.d.ts +0 -65
  267. package/dist/types-DHX6zGeD.d.ts +0 -73
@@ -1,176 +1,440 @@
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";
1
+ import { withNormalisedSpellings } from '../chunk-GHJWC2E5.mjs';
2
+ import { BaseStemmer } from '../chunk-U2BKYEC7.mjs';
3
+
4
+ // src/languages/snowball/german.ts
5
+ var a_0 = [
6
+ ["", 5],
7
+ ["ae", 2, 1],
8
+ ["oe", 3, 2],
9
+ ["qu", -1, 3],
10
+ ["ue", 4, 4],
11
+ ["\xDF", 1, 5]
12
+ ];
13
+ var a_1 = [
14
+ ["", 5],
15
+ ["U", 2, 1],
16
+ ["Y", 1, 2],
17
+ ["\xE4", 3, 3],
18
+ ["\xF6", 4, 4],
19
+ ["\xFC", 2, 5]
20
+ ];
21
+ var a_2 = [
22
+ ["e", 3],
23
+ ["em", 1],
24
+ ["en", 3],
25
+ ["erinnen", 2, 1],
26
+ ["erin", 2],
27
+ ["ln", 5],
28
+ ["ern", 2],
29
+ ["er", 2],
30
+ ["s", 4],
31
+ ["es", 3, 1],
32
+ ["lns", 5, 2]
33
+ ];
34
+ var a_3 = [
35
+ ["tick", -1],
36
+ ["plan", -1],
37
+ ["geordn", -1],
38
+ ["intern", -1],
39
+ ["tr", -1]
40
+ ];
41
+ var a_4 = [
42
+ ["en", 1],
43
+ ["er", 1],
44
+ ["et", 3],
45
+ ["st", 2],
46
+ ["est", 1, 1]
47
+ ];
48
+ var a_5 = [
49
+ ["ig", 1],
50
+ ["lich", 1]
51
+ ];
52
+ var a_6 = [
53
+ ["end", 1],
54
+ ["ig", 2],
55
+ ["ung", 1],
56
+ ["lich", 3],
57
+ ["isch", 2],
58
+ ["ik", 2],
59
+ ["heit", 3],
60
+ ["keit", 4]
61
+ ];
62
+ var a_7 = [
63
+ ["'", 1],
64
+ ["'sch", 1],
65
+ ["'s", 1]
66
+ ];
67
+ var g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8];
68
+ var g_et_ending = [1, 128, 198, 227, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128];
69
+ var g_s_ending = [117, 30, 5];
70
+ var g_st_ending = [117, 30, 4];
71
+ var GermanStemmer = class extends BaseStemmer {
72
+ #stem() {
73
+ let a;
74
+ let I_x;
75
+ let I_p2;
76
+ let I_p1;
77
+ const v_1 = this.c;
78
+ {
79
+ const v_2 = this.c;
80
+ while (true) {
81
+ const v_3 = this.c;
82
+ lab1: {
83
+ while (true) {
84
+ const v_4 = this.c;
85
+ lab3: {
86
+ if (!this.in_grouping(g_v, 97, 252)) break lab3;
87
+ this.bra = this.c;
88
+ lab4: {
89
+ const v_5 = this.c;
90
+ lab5: {
91
+ if (!this.eq_s("u")) break lab5;
92
+ this.ket = this.c;
93
+ if (!this.in_grouping(g_v, 97, 252)) break lab5;
94
+ this.slice_from("U");
95
+ break lab4;
96
+ }
97
+ this.c = v_5;
98
+ if (!this.eq_s("y")) break lab3;
99
+ this.ket = this.c;
100
+ if (!this.in_grouping(g_v, 97, 252)) break lab3;
101
+ this.slice_from("Y");
102
+ }
103
+ this.c = v_4;
104
+ break;
105
+ }
106
+ this.c = v_4;
107
+ if (this.c >= this.limit) break lab1;
108
+ this.c++;
109
+ }
110
+ continue;
111
+ }
112
+ this.c = v_3;
113
+ break;
114
+ }
115
+ this.c = v_2;
116
+ while (true) {
117
+ const v_6 = this.c;
118
+ lab6: {
119
+ this.bra = this.c;
120
+ a = this.find_among(a_0);
121
+ this.ket = this.c;
122
+ switch (a) {
123
+ case 1: {
124
+ this.slice_from("ss");
125
+ break;
126
+ }
127
+ case 2: {
128
+ this.slice_from("\xE4");
129
+ break;
130
+ }
131
+ case 3: {
132
+ this.slice_from("\xF6");
133
+ break;
134
+ }
135
+ case 4: {
136
+ this.slice_from("\xFC");
137
+ break;
138
+ }
139
+ case 5: {
140
+ if (this.c >= this.limit) break lab6;
141
+ this.c++;
142
+ break;
143
+ }
144
+ }
145
+ continue;
146
+ }
147
+ this.c = v_6;
148
+ break;
149
+ }
33
150
  }
34
- if (chars[i] === "y" && isVowel(chars[i - 1]) && isVowel(chars[i + 1])) {
35
- chars[i] = "Y";
151
+ this.c = v_1;
152
+ const v_7 = this.c;
153
+ lab7: {
154
+ I_p1 = this.limit;
155
+ I_p2 = this.limit;
156
+ const v_8 = this.c;
157
+ if (this.c + 3 > this.limit) break lab7;
158
+ this.c += 3;
159
+ I_x = this.c;
160
+ this.c = v_8;
161
+ if (!this.go_out_grouping(g_v, 97, 252)) break lab7;
162
+ this.c++;
163
+ if (!this.go_in_grouping(g_v, 97, 252)) break lab7;
164
+ this.c++;
165
+ I_p1 = this.c;
166
+ lab8: {
167
+ if (
168
+ /**@type {boolean}*/
169
+ I_p1 >= I_x
170
+ ) break lab8;
171
+ I_p1 = I_x;
172
+ }
173
+ if (!this.go_out_grouping(g_v, 97, 252)) break lab7;
174
+ this.c++;
175
+ if (!this.go_in_grouping(g_v, 97, 252)) break lab7;
176
+ this.c++;
177
+ I_p2 = this.c;
36
178
  }
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);
179
+ this.c = v_7;
180
+ this.limit_backward = this.c;
181
+ this.c = this.limit;
182
+ {
183
+ const v_9 = this.limit - this.c;
184
+ lab10: {
185
+ this.ket = this.c;
186
+ a = this.find_among_b(a_2);
187
+ if (a === 0) break lab10;
188
+ this.bra = this.c;
189
+ if (
190
+ /**@type {boolean}*/
191
+ I_p1 > this.c
192
+ ) break lab10;
193
+ switch (a) {
194
+ case 1: {
195
+ lab11: {
196
+ if (!this.eq_s_b("syst")) break lab11;
197
+ break lab10;
198
+ }
199
+ this.slice_del();
200
+ break;
201
+ }
202
+ case 2: {
203
+ this.slice_del();
204
+ break;
205
+ }
206
+ case 3: {
207
+ this.slice_del();
208
+ const v_10 = this.limit - this.c;
209
+ lab12: {
210
+ this.ket = this.c;
211
+ if (!this.eq_s_b("s")) {
212
+ this.c = this.limit - v_10;
213
+ break lab12;
214
+ }
215
+ this.bra = this.c;
216
+ if (!this.eq_s_b("nis")) {
217
+ this.c = this.limit - v_10;
218
+ break lab12;
219
+ }
220
+ this.slice_del();
221
+ }
222
+ break;
223
+ }
224
+ case 4: {
225
+ if (!this.in_grouping_b(g_s_ending, 98, 116)) break lab10;
226
+ this.slice_del();
227
+ break;
228
+ }
229
+ case 5: {
230
+ this.slice_from("l");
231
+ break;
232
+ }
65
233
  }
66
- return word;
67
234
  }
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);
235
+ this.c = this.limit - v_9;
236
+ const v_11 = this.limit - this.c;
237
+ lab13: {
238
+ this.ket = this.c;
239
+ a = this.find_among_b(a_4);
240
+ if (a === 0) break lab13;
241
+ this.bra = this.c;
242
+ if (
243
+ /**@type {boolean}*/
244
+ I_p1 > this.c
245
+ ) break lab13;
246
+ switch (a) {
247
+ case 1: {
248
+ this.slice_del();
249
+ break;
250
+ }
251
+ case 2: {
252
+ if (!this.in_grouping_b(g_st_ending, 98, 116)) break lab13;
253
+ if (this.c - 3 < this.limit_backward) break lab13;
254
+ this.c -= 3;
255
+ this.slice_del();
256
+ break;
257
+ }
258
+ case 3: {
259
+ const v_12 = this.limit - this.c;
260
+ if (!this.in_grouping_b(g_et_ending, 85, 228)) break lab13;
261
+ this.c = this.limit - v_12;
262
+ {
263
+ const v_13 = this.limit - this.c;
264
+ lab14: {
265
+ if (this.find_among_b(a_3) === 0) break lab14;
266
+ break lab13;
267
+ }
268
+ this.c = this.limit - v_13;
269
+ }
270
+ this.slice_del();
271
+ break;
272
+ }
72
273
  }
73
274
  }
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);
275
+ this.c = this.limit - v_11;
276
+ const v_14 = this.limit - this.c;
277
+ lab15: {
278
+ this.ket = this.c;
279
+ a = this.find_among_b(a_6);
280
+ if (a === 0) break lab15;
281
+ this.bra = this.c;
282
+ if (
283
+ /**@type {boolean}*/
284
+ I_p2 > this.c
285
+ ) break lab15;
286
+ switch (a) {
287
+ case 1: {
288
+ this.slice_del();
289
+ const v_15 = this.limit - this.c;
290
+ lab16: {
291
+ this.ket = this.c;
292
+ if (!this.eq_s_b("ig")) {
293
+ this.c = this.limit - v_15;
294
+ break lab16;
295
+ }
296
+ this.bra = this.c;
297
+ lab17: {
298
+ if (!this.eq_s_b("e")) break lab17;
299
+ this.c = this.limit - v_15;
300
+ break lab16;
301
+ }
302
+ if (
303
+ /**@type {boolean}*/
304
+ I_p2 > this.c
305
+ ) {
306
+ this.c = this.limit - v_15;
307
+ break lab16;
308
+ }
309
+ this.slice_del();
310
+ }
311
+ break;
312
+ }
313
+ case 2: {
314
+ lab18: {
315
+ if (!this.eq_s_b("e")) break lab18;
316
+ break lab15;
317
+ }
318
+ this.slice_del();
319
+ break;
320
+ }
321
+ case 3: {
322
+ this.slice_del();
323
+ const v_16 = this.limit - this.c;
324
+ lab19: {
325
+ this.ket = this.c;
326
+ lab20: {
327
+ lab21: {
328
+ if (!this.eq_s_b("er")) break lab21;
329
+ break lab20;
330
+ }
331
+ if (!this.eq_s_b("en")) {
332
+ this.c = this.limit - v_16;
333
+ break lab19;
334
+ }
335
+ }
336
+ this.bra = this.c;
337
+ if (
338
+ /**@type {boolean}*/
339
+ I_p1 > this.c
340
+ ) {
341
+ this.c = this.limit - v_16;
342
+ break lab19;
343
+ }
344
+ this.slice_del();
345
+ }
346
+ break;
347
+ }
348
+ case 4: {
349
+ this.slice_del();
350
+ const v_17 = this.limit - this.c;
351
+ lab22: {
352
+ this.ket = this.c;
353
+ if (this.find_among_b(a_5) === 0) {
354
+ this.c = this.limit - v_17;
355
+ break lab22;
356
+ }
357
+ this.bra = this.c;
358
+ if (
359
+ /**@type {boolean}*/
360
+ I_p2 > this.c
361
+ ) {
362
+ this.c = this.limit - v_17;
363
+ break lab22;
364
+ }
365
+ this.slice_del();
366
+ }
367
+ break;
368
+ }
86
369
  }
87
- return word;
88
370
  }
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);
371
+ this.c = this.limit - v_14;
372
+ const v_18 = this.limit - this.c;
373
+ lab23: {
374
+ this.ket = this.c;
375
+ if (this.find_among_b(a_7) === 0) break lab23;
376
+ this.bra = this.c;
377
+ if (this.c <= this.limit_backward) break lab23;
378
+ this.c--;
379
+ if (
380
+ /**@type {boolean}*/
381
+ this.c <= this.limit_backward
382
+ ) break lab23;
383
+ this.slice_del();
384
+ }
385
+ this.c = this.limit - v_18;
142
386
  }
143
- return word;
144
- }
145
- if (word.endsWith("ig") && word.length - 2 >= r2) {
146
- if (!word.endsWith("eig")) {
147
- return word.slice(0, -2);
387
+ this.c = this.limit_backward;
388
+ const v_19 = this.c;
389
+ while (true) {
390
+ const v_20 = this.c;
391
+ lab25: {
392
+ this.bra = this.c;
393
+ a = this.find_among(a_1);
394
+ this.ket = this.c;
395
+ switch (a) {
396
+ case 1: {
397
+ this.slice_from("y");
398
+ break;
399
+ }
400
+ case 2: {
401
+ this.slice_from("u");
402
+ break;
403
+ }
404
+ case 3: {
405
+ this.slice_from("a");
406
+ break;
407
+ }
408
+ case 4: {
409
+ this.slice_from("o");
410
+ break;
411
+ }
412
+ case 5: {
413
+ if (this.c >= this.limit) break lab25;
414
+ this.c++;
415
+ break;
416
+ }
417
+ }
418
+ continue;
419
+ }
420
+ this.c = v_20;
421
+ break;
148
422
  }
149
- return word;
423
+ this.c = v_19;
424
+ return true;
150
425
  }
151
- if (word.endsWith("ik") && word.length - 2 >= r2) {
152
- if (!word.endsWith("eik")) {
153
- return word.slice(0, -2);
154
- }
155
- return word;
426
+ stem(input) {
427
+ this.setCurrent(input);
428
+ this.#stem();
429
+ return this.getCurrent();
156
430
  }
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;
431
+ };
432
+ var shared = new GermanStemmer();
433
+ function stem(token) {
434
+ return shared.stem(token);
173
435
  }
436
+
437
+ // src/languages/german.ts
174
438
  var stopWords = /* @__PURE__ */ new Set([
175
439
  "aber",
176
440
  "alle",
@@ -404,11 +668,17 @@ var stopWords = /* @__PURE__ */ new Set([
404
668
  "zwar",
405
669
  "zwischen"
406
670
  ]);
671
+ var SHARP_S = /\u00DF/g;
672
+ function normalize(token) {
673
+ return token.replace(SHARP_S, "ss");
674
+ }
407
675
  var german = {
408
676
  name: "german",
677
+ revision: "ff10b0dd9feeb7cb",
409
678
  stemmer: stem,
410
- stopWords,
411
- tokenizer: { splitPattern: /[^a-z0-9äöüß]+/gi }
679
+ stopWords: withNormalisedSpellings(stopWords, normalize),
680
+ normalizer: normalize,
681
+ tokenizer: { splitPattern: /[^a-z0-9äöüßé]+/gi }
412
682
  };
413
683
 
414
684
  export { german };
@@ -1,5 +1,14 @@
1
- import { L as LanguageModule } from '../language-ONQ3iVDf.js';
1
+ import { L as LanguageModule } from '../language-DB8KG1z5.js';
2
2
 
3
+ /**
4
+ * Greek analysis: the Snowball stemmer, the stop word list, and the rules
5
+ * that split Greek text into tokens.
6
+ *
7
+ * Import it and pass it to {@link registerLanguage} before you create an index
8
+ * whose `language` is `greek`.
9
+ *
10
+ * @public
11
+ */
3
12
  declare const greek: LanguageModule;
4
13
 
5
14
  export { greek };