@delali/narsil 0.1.15 → 0.2.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 (251) hide show
  1. package/NOTICE +54 -0
  2. package/README.md +38 -982
  3. package/dist/adapters/filesystem.mjs +1 -1
  4. package/dist/adapters/indexeddb.mjs +1 -1
  5. package/dist/{chunk-WISGW24C.mjs → chunk-AUMKFYTG.mjs} +1 -1
  6. package/dist/{chunk-HRABJLPB.mjs → chunk-BKAI2WXI.mjs} +1 -0
  7. package/dist/chunk-GHJWC2E5.mjs +9 -0
  8. package/dist/chunk-KH3YGMVT.mjs +15 -0
  9. package/dist/{chunk-ALB35PRQ.mjs → chunk-M2EDG55Y.mjs} +8 -0
  10. package/dist/{chunk-HMO6OMZ3.mjs → chunk-S6IAXOBA.mjs} +1073 -506
  11. package/dist/chunk-TGP5M5R7.mjs +880 -0
  12. package/dist/chunk-U2BKYEC7.mjs +254 -0
  13. package/dist/{chunk-MEW7HD75.mjs → chunk-XAKNSWIK.mjs} +2543 -1154
  14. package/dist/{config-CojEPOgS.d.ts → config-P27AtSn4.d.ts} +28 -7
  15. package/dist/direct-executor-2FV3MEDD.mjs +5 -0
  16. package/dist/distribution/coordinator/etcd.d.ts +2 -2
  17. package/dist/distribution/coordinator/etcd.mjs +2 -2
  18. package/dist/distribution/coordinator/in-memory.d.ts +2 -2
  19. package/dist/distribution.d.ts +10 -4
  20. package/dist/distribution.mjs +1875 -1772
  21. package/dist/embeddings/openai.mjs +1 -1
  22. package/dist/index.browser.mjs +4566 -1783
  23. package/dist/index.d.ts +14 -5
  24. package/dist/index.mjs +6 -5
  25. package/dist/{language-ONQ3iVDf.d.ts → language-CmJBHf1j.d.ts} +4 -1
  26. package/dist/languages/albanian.d.ts +5 -0
  27. package/dist/languages/albanian.mjs +103 -0
  28. package/dist/languages/amharic.d.ts +5 -0
  29. package/dist/languages/amharic.mjs +240 -0
  30. package/dist/languages/arabic.d.ts +1 -1
  31. package/dist/languages/arabic.mjs +939 -154
  32. package/dist/languages/armenian.d.ts +1 -1
  33. package/dist/languages/armenian.mjs +275 -243
  34. package/dist/languages/azerbaijani.d.ts +5 -0
  35. package/dist/languages/azerbaijani.mjs +152 -0
  36. package/dist/languages/bambara.d.ts +5 -0
  37. package/dist/languages/bambara.mjs +60 -0
  38. package/dist/languages/basque.d.ts +5 -0
  39. package/dist/languages/basque.mjs +726 -0
  40. package/dist/languages/belarusian.d.ts +5 -0
  41. package/dist/languages/belarusian.mjs +100 -0
  42. package/dist/languages/bengali.d.ts +5 -0
  43. package/dist/languages/bengali.mjs +128 -0
  44. package/dist/languages/bosnian.d.ts +5 -0
  45. package/dist/languages/bosnian.mjs +197 -0
  46. package/dist/languages/breton.d.ts +5 -0
  47. package/dist/languages/breton.mjs +96 -0
  48. package/dist/languages/bulgarian.d.ts +1 -1
  49. package/dist/languages/bulgarian.mjs +11 -2
  50. package/dist/languages/burmese.d.ts +5 -0
  51. package/dist/languages/burmese.mjs +57 -0
  52. package/dist/languages/catalan.d.ts +5 -0
  53. package/dist/languages/catalan.mjs +987 -0
  54. package/dist/languages/chinese.d.ts +1 -1
  55. package/dist/languages/chinese.mjs +4 -3
  56. package/dist/languages/croatian.d.ts +5 -0
  57. package/dist/languages/croatian.mjs +191 -0
  58. package/dist/languages/czech.d.ts +5 -0
  59. package/dist/languages/czech.mjs +628 -0
  60. package/dist/languages/dagbani.d.ts +1 -1
  61. package/dist/languages/dagbani.mjs +11 -2
  62. package/dist/languages/danish.d.ts +1 -1
  63. package/dist/languages/danish.mjs +215 -110
  64. package/dist/languages/dutch.d.ts +1 -1
  65. package/dist/languages/dutch.mjs +1248 -163
  66. package/dist/languages/english.d.ts +1 -1
  67. package/dist/languages/english.mjs +2 -1
  68. package/dist/languages/esperanto.d.ts +5 -0
  69. package/dist/languages/esperanto.mjs +689 -0
  70. package/dist/languages/estonian.d.ts +5 -0
  71. package/dist/languages/estonian.mjs +2160 -0
  72. package/dist/languages/ewe.d.ts +1 -1
  73. package/dist/languages/ewe.mjs +11 -2
  74. package/dist/languages/faroese.d.ts +5 -0
  75. package/dist/languages/faroese.mjs +93 -0
  76. package/dist/languages/fijian.d.ts +5 -0
  77. package/dist/languages/fijian.mjs +55 -0
  78. package/dist/languages/finnish.d.ts +1 -1
  79. package/dist/languages/finnish.mjs +528 -263
  80. package/dist/languages/french.d.ts +1 -1
  81. package/dist/languages/french.mjs +950 -437
  82. package/dist/languages/ga.d.ts +1 -1
  83. package/dist/languages/ga.mjs +2 -1
  84. package/dist/languages/galician.d.ts +5 -0
  85. package/dist/languages/galician.mjs +172 -0
  86. package/dist/languages/georgian.d.ts +5 -0
  87. package/dist/languages/georgian.mjs +91 -0
  88. package/dist/languages/german.d.ts +1 -1
  89. package/dist/languages/german.mjs +432 -162
  90. package/dist/languages/greek.d.ts +1 -1
  91. package/dist/languages/greek.mjs +1970 -281
  92. package/dist/languages/guarani.d.ts +5 -0
  93. package/dist/languages/guarani.mjs +132 -0
  94. package/dist/languages/gujarati.d.ts +5 -0
  95. package/dist/languages/gujarati.mjs +234 -0
  96. package/dist/languages/haitian-creole.d.ts +5 -0
  97. package/dist/languages/haitian-creole.mjs +106 -0
  98. package/dist/languages/hausa.d.ts +1 -1
  99. package/dist/languages/hausa.mjs +2 -1
  100. package/dist/languages/hawaiian.d.ts +5 -0
  101. package/dist/languages/hawaiian.mjs +69 -0
  102. package/dist/languages/hebrew.d.ts +5 -0
  103. package/dist/languages/hebrew.mjs +213 -0
  104. package/dist/languages/hindi.d.ts +1 -1
  105. package/dist/languages/hindi.mjs +175 -97
  106. package/dist/languages/hungarian.d.ts +1 -1
  107. package/dist/languages/hungarian.mjs +412 -326
  108. package/dist/languages/icelandic.d.ts +5 -0
  109. package/dist/languages/icelandic.mjs +161 -0
  110. package/dist/languages/igbo.d.ts +1 -1
  111. package/dist/languages/igbo.mjs +2 -1
  112. package/dist/languages/indonesian.d.ts +1 -1
  113. package/dist/languages/indonesian.mjs +329 -137
  114. package/dist/languages/irish.d.ts +1 -1
  115. package/dist/languages/irish.mjs +223 -139
  116. package/dist/languages/italian.d.ts +1 -1
  117. package/dist/languages/italian.mjs +703 -406
  118. package/dist/languages/japanese.d.ts +1 -1
  119. package/dist/languages/japanese.mjs +5 -108
  120. package/dist/languages/kannada.d.ts +5 -0
  121. package/dist/languages/kannada.mjs +94 -0
  122. package/dist/languages/kazakh.d.ts +5 -0
  123. package/dist/languages/kazakh.mjs +90 -0
  124. package/dist/languages/khmer.d.ts +5 -0
  125. package/dist/languages/khmer.mjs +181 -0
  126. package/dist/languages/kinyarwanda.d.ts +5 -0
  127. package/dist/languages/kinyarwanda.mjs +99 -0
  128. package/dist/languages/kirundi.d.ts +5 -0
  129. package/dist/languages/kirundi.mjs +92 -0
  130. package/dist/languages/korean.d.ts +5 -0
  131. package/dist/languages/korean.mjs +252 -0
  132. package/dist/languages/kurmanji.d.ts +5 -0
  133. package/dist/languages/kurmanji.mjs +50 -0
  134. package/dist/languages/kyrgyz.d.ts +5 -0
  135. package/dist/languages/kyrgyz.mjs +108 -0
  136. package/dist/languages/lao.d.ts +5 -0
  137. package/dist/languages/lao.mjs +63 -0
  138. package/dist/languages/latin.d.ts +5 -0
  139. package/dist/languages/latin.mjs +69 -0
  140. package/dist/languages/latvian.d.ts +5 -0
  141. package/dist/languages/latvian.mjs +173 -0
  142. package/dist/languages/lingala.d.ts +5 -0
  143. package/dist/languages/lingala.mjs +61 -0
  144. package/dist/languages/lithuanian.d.ts +5 -0
  145. package/dist/languages/lithuanian.mjs +571 -0
  146. package/dist/languages/luxembourgish.d.ts +5 -0
  147. package/dist/languages/luxembourgish.mjs +214 -0
  148. package/dist/languages/macedonian.d.ts +5 -0
  149. package/dist/languages/macedonian.mjs +808 -0
  150. package/dist/languages/malagasy.d.ts +5 -0
  151. package/dist/languages/malagasy.mjs +67 -0
  152. package/dist/languages/malay.d.ts +5 -0
  153. package/dist/languages/malay.mjs +482 -0
  154. package/dist/languages/malayalam.d.ts +5 -0
  155. package/dist/languages/malayalam.mjs +122 -0
  156. package/dist/languages/maltese.d.ts +5 -0
  157. package/dist/languages/maltese.mjs +139 -0
  158. package/dist/languages/maori.d.ts +5 -0
  159. package/dist/languages/maori.mjs +79 -0
  160. package/dist/languages/marathi.d.ts +5 -0
  161. package/dist/languages/marathi.mjs +111 -0
  162. package/dist/languages/nepali.d.ts +1 -1
  163. package/dist/languages/nepali.mjs +209 -99
  164. package/dist/languages/norwegian.d.ts +1 -1
  165. package/dist/languages/norwegian.mjs +218 -85
  166. package/dist/languages/oromo.d.ts +5 -0
  167. package/dist/languages/oromo.mjs +78 -0
  168. package/dist/languages/persian.d.ts +5 -0
  169. package/dist/languages/persian.mjs +710 -0
  170. package/dist/languages/polish.d.ts +5 -0
  171. package/dist/languages/polish.mjs +614 -0
  172. package/dist/languages/portuguese.d.ts +1 -1
  173. package/dist/languages/portuguese.mjs +613 -380
  174. package/dist/languages/punjabi.d.ts +5 -0
  175. package/dist/languages/punjabi.mjs +197 -0
  176. package/dist/languages/romanian.d.ts +1 -1
  177. package/dist/languages/romanian.mjs +561 -382
  178. package/dist/languages/russian.d.ts +1 -1
  179. package/dist/languages/russian.mjs +373 -244
  180. package/dist/languages/samoan.d.ts +5 -0
  181. package/dist/languages/samoan.mjs +63 -0
  182. package/dist/languages/sanskrit.d.ts +1 -1
  183. package/dist/languages/sanskrit.mjs +2 -2
  184. package/dist/languages/scottish-gaelic.d.ts +5 -0
  185. package/dist/languages/scottish-gaelic.mjs +370 -0
  186. package/dist/languages/serbian.d.ts +1 -1
  187. package/dist/languages/serbian.mjs +3635 -155
  188. package/dist/languages/shona.d.ts +5 -0
  189. package/dist/languages/shona.mjs +91 -0
  190. package/dist/languages/sinhala.d.ts +5 -0
  191. package/dist/languages/sinhala.mjs +182 -0
  192. package/dist/languages/slovak.d.ts +5 -0
  193. package/dist/languages/slovak.mjs +430 -0
  194. package/dist/languages/slovenian.d.ts +1 -1
  195. package/dist/languages/slovenian.mjs +11 -2
  196. package/dist/languages/sorani.d.ts +5 -0
  197. package/dist/languages/sorani.mjs +156 -0
  198. package/dist/languages/spanish.d.ts +1 -1
  199. package/dist/languages/spanish.mjs +676 -374
  200. package/dist/languages/swahili.d.ts +1 -1
  201. package/dist/languages/swahili.mjs +2 -1
  202. package/dist/languages/swedish.d.ts +1 -1
  203. package/dist/languages/swedish.mjs +237 -95
  204. package/dist/languages/tagalog.d.ts +5 -0
  205. package/dist/languages/tagalog.mjs +159 -0
  206. package/dist/languages/tamil.d.ts +1 -1
  207. package/dist/languages/tamil.mjs +836 -64
  208. package/dist/languages/tatar.d.ts +5 -0
  209. package/dist/languages/tatar.mjs +1017 -0
  210. package/dist/languages/telugu.d.ts +5 -0
  211. package/dist/languages/telugu.mjs +62 -0
  212. package/dist/languages/thai.d.ts +5 -0
  213. package/dist/languages/thai.mjs +65 -0
  214. package/dist/languages/tibetan.d.ts +5 -0
  215. package/dist/languages/tibetan.mjs +119 -0
  216. package/dist/languages/tigrinya.d.ts +5 -0
  217. package/dist/languages/tigrinya.mjs +194 -0
  218. package/dist/languages/tongan.d.ts +5 -0
  219. package/dist/languages/tongan.mjs +56 -0
  220. package/dist/languages/turkish.d.ts +1 -1
  221. package/dist/languages/turkish.mjs +1246 -393
  222. package/dist/languages/twi.d.ts +1 -1
  223. package/dist/languages/twi.mjs +13 -2
  224. package/dist/languages/ukrainian.d.ts +1 -1
  225. package/dist/languages/ukrainian.mjs +125 -47
  226. package/dist/languages/urdu.d.ts +5 -0
  227. package/dist/languages/urdu.mjs +528 -0
  228. package/dist/languages/vietnamese.d.ts +5 -0
  229. package/dist/languages/vietnamese.mjs +277 -0
  230. package/dist/languages/welsh.d.ts +5 -0
  231. package/dist/languages/welsh.mjs +446 -0
  232. package/dist/languages/wolof.d.ts +5 -0
  233. package/dist/languages/wolof.mjs +79 -0
  234. package/dist/languages/xhosa.d.ts +5 -0
  235. package/dist/languages/xhosa.mjs +95 -0
  236. package/dist/languages/yoruba.d.ts +1 -1
  237. package/dist/languages/yoruba.mjs +1 -0
  238. package/dist/languages/zulu.d.ts +1 -1
  239. package/dist/languages/zulu.mjs +2 -1
  240. package/dist/narsil-CMZRPDlQ.d.ts +159 -0
  241. package/dist/persistence/durability/checkpoint-worker.d.ts +13 -0
  242. package/dist/persistence/durability/checkpoint-worker.mjs +6 -5
  243. package/dist/{schema-DCgkO1j4.d.ts → schema-BnvLvjRp.d.ts} +5 -3
  244. package/dist/server.d.ts +4 -3
  245. package/dist/server.mjs +13 -2
  246. package/dist/{types-DHX6zGeD.d.ts → types-BRTcBgAp.d.ts} +1 -1
  247. package/dist/workers/entry.mjs +2 -2
  248. package/package.json +10 -3
  249. package/dist/chunk-TW6BXTOL.mjs +0 -338
  250. package/dist/direct-executor-E52FFGDE.mjs +0 -4
  251. package/dist/narsil-D-84Nvm4.d.ts +0 -72
@@ -1,4 +1,4 @@
1
- import { L as LanguageModule } from '../language-ONQ3iVDf.js';
1
+ import { L as LanguageModule } from '../language-CmJBHf1j.js';
2
2
 
3
3
  declare const russian: LanguageModule;
4
4
 
@@ -1,258 +1,386 @@
1
- // src/languages/russian.ts
2
- var VOWELS = "\u0430\u0435\u0438\u043E\u0443\u044B\u044D\u044E\u044F";
3
- function isVowel(ch) {
4
- return VOWELS.includes(ch);
5
- }
6
- function findRegions(word) {
7
- let rv = word.length;
8
- let r1 = word.length;
9
- let r2 = word.length;
10
- for (let i = 0; i < word.length; i++) {
11
- if (isVowel(word[i])) {
12
- rv = i + 1;
13
- break;
14
- }
15
- }
16
- for (let i = 1; i < word.length; i++) {
17
- if (!isVowel(word[i]) && isVowel(word[i - 1])) {
18
- r1 = i + 1;
1
+ import { BaseStemmer } from '../chunk-U2BKYEC7.mjs';
2
+
3
+ // src/languages/snowball/russian.ts
4
+ var a_0 = [
5
+ ["\u0432", 1],
6
+ ["\u0438\u0432", 2, 1],
7
+ ["\u044B\u0432", 2, 2],
8
+ ["\u0432\u0448\u0438", 1],
9
+ ["\u0438\u0432\u0448\u0438", 2, 1],
10
+ ["\u044B\u0432\u0448\u0438", 2, 2],
11
+ ["\u0432\u0448\u0438\u0441\u044C", 1],
12
+ ["\u0438\u0432\u0448\u0438\u0441\u044C", 2, 1],
13
+ ["\u044B\u0432\u0448\u0438\u0441\u044C", 2, 2]
14
+ ];
15
+ var a_1 = [
16
+ ["\u0435\u0435", 1],
17
+ ["\u0438\u0435", 1],
18
+ ["\u043E\u0435", 1],
19
+ ["\u044B\u0435", 1],
20
+ ["\u0438\u043C\u0438", 1],
21
+ ["\u044B\u043C\u0438", 1],
22
+ ["\u0435\u0439", 1],
23
+ ["\u0438\u0439", 1],
24
+ ["\u043E\u0439", 1],
25
+ ["\u044B\u0439", 1],
26
+ ["\u0435\u043C", 1],
27
+ ["\u0438\u043C", 1],
28
+ ["\u043E\u043C", 1],
29
+ ["\u044B\u043C", 1],
30
+ ["\u0435\u0433\u043E", 1],
31
+ ["\u043E\u0433\u043E", 1],
32
+ ["\u0435\u043C\u0443", 1],
33
+ ["\u043E\u043C\u0443", 1],
34
+ ["\u0438\u0445", 1],
35
+ ["\u044B\u0445", 1],
36
+ ["\u0435\u044E", 1],
37
+ ["\u043E\u044E", 1],
38
+ ["\u0443\u044E", 1],
39
+ ["\u044E\u044E", 1],
40
+ ["\u0430\u044F", 1],
41
+ ["\u044F\u044F", 1]
42
+ ];
43
+ var a_2 = [
44
+ ["\u0435\u043C", 1],
45
+ ["\u043D\u043D", 1],
46
+ ["\u0432\u0448", 1],
47
+ ["\u0438\u0432\u0448", 2, 1],
48
+ ["\u044B\u0432\u0448", 2, 2],
49
+ ["\u0449", 1],
50
+ ["\u044E\u0449", 1, 1],
51
+ ["\u0443\u044E\u0449", 2, 1]
52
+ ];
53
+ var a_3 = [
54
+ ["\u0441\u044C", 1],
55
+ ["\u0441\u044F", 1]
56
+ ];
57
+ var a_4 = [
58
+ ["\u043B\u0430", 1],
59
+ ["\u0438\u043B\u0430", 2, 1],
60
+ ["\u044B\u043B\u0430", 2, 2],
61
+ ["\u043D\u0430", 1],
62
+ ["\u0435\u043D\u0430", 2, 1],
63
+ ["\u0435\u0442\u0435", 1],
64
+ ["\u0438\u0442\u0435", 2],
65
+ ["\u0439\u0442\u0435", 1],
66
+ ["\u0435\u0439\u0442\u0435", 2, 1],
67
+ ["\u0443\u0439\u0442\u0435", 2, 2],
68
+ ["\u043B\u0438", 1],
69
+ ["\u0438\u043B\u0438", 2, 1],
70
+ ["\u044B\u043B\u0438", 2, 2],
71
+ ["\u0439", 1],
72
+ ["\u0435\u0439", 2, 1],
73
+ ["\u0443\u0439", 2, 2],
74
+ ["\u043B", 1],
75
+ ["\u0438\u043B", 2, 1],
76
+ ["\u044B\u043B", 2, 2],
77
+ ["\u0435\u043C", 1],
78
+ ["\u0438\u043C", 2],
79
+ ["\u044B\u043C", 2],
80
+ ["\u043D", 1],
81
+ ["\u0435\u043D", 2, 1],
82
+ ["\u043B\u043E", 1],
83
+ ["\u0438\u043B\u043E", 2, 1],
84
+ ["\u044B\u043B\u043E", 2, 2],
85
+ ["\u043D\u043E", 1],
86
+ ["\u0435\u043D\u043E", 2, 1],
87
+ ["\u043D\u043D\u043E", 1, 2],
88
+ ["\u0435\u0442", 1],
89
+ ["\u0443\u0435\u0442", 2, 1],
90
+ ["\u0438\u0442", 2],
91
+ ["\u044B\u0442", 2],
92
+ ["\u044E\u0442", 1],
93
+ ["\u0443\u044E\u0442", 2, 1],
94
+ ["\u044F\u0442", 2],
95
+ ["\u043D\u044B", 1],
96
+ ["\u0435\u043D\u044B", 2, 1],
97
+ ["\u0442\u044C", 1],
98
+ ["\u0438\u0442\u044C", 2, 1],
99
+ ["\u044B\u0442\u044C", 2, 2],
100
+ ["\u0435\u0448\u044C", 1],
101
+ ["\u0438\u0448\u044C", 2],
102
+ ["\u044E", 2],
103
+ ["\u0443\u044E", 2, 1]
104
+ ];
105
+ var a_5 = [
106
+ ["\u0430", 1],
107
+ ["\u0435\u0432", 1],
108
+ ["\u043E\u0432", 1],
109
+ ["\u0435", 1],
110
+ ["\u0438\u0435", 1, 1],
111
+ ["\u044C\u0435", 1, 2],
112
+ ["\u0438", 1],
113
+ ["\u0435\u0438", 1, 1],
114
+ ["\u0438\u0438", 1, 2],
115
+ ["\u0430\u043C\u0438", 1, 3],
116
+ ["\u044F\u043C\u0438", 1, 4],
117
+ ["\u0438\u044F\u043C\u0438", 1, 1],
118
+ ["\u0439", 1],
119
+ ["\u0435\u0439", 1, 1],
120
+ ["\u0438\u0435\u0439", 1, 1],
121
+ ["\u0438\u0439", 1, 3],
122
+ ["\u043E\u0439", 1, 4],
123
+ ["\u0430\u043C", 1],
124
+ ["\u0435\u043C", 1],
125
+ ["\u0438\u0435\u043C", 1, 1],
126
+ ["\u043E\u043C", 1],
127
+ ["\u044F\u043C", 1],
128
+ ["\u0438\u044F\u043C", 1, 1],
129
+ ["\u043E", 1],
130
+ ["\u0443", 1],
131
+ ["\u0430\u0445", 1],
132
+ ["\u044F\u0445", 1],
133
+ ["\u0438\u044F\u0445", 1, 1],
134
+ ["\u044B", 1],
135
+ ["\u044C", 1],
136
+ ["\u044E", 1],
137
+ ["\u0438\u044E", 1, 1],
138
+ ["\u044C\u044E", 1, 2],
139
+ ["\u044F", 1],
140
+ ["\u0438\u044F", 1, 1],
141
+ ["\u044C\u044F", 1, 2]
142
+ ];
143
+ var a_6 = [
144
+ ["\u043E\u0441\u0442", 1],
145
+ ["\u043E\u0441\u0442\u044C", 1]
146
+ ];
147
+ var a_7 = [
148
+ ["\u0435\u0439\u0448\u0435", 1],
149
+ ["\u043D", 2],
150
+ ["\u0435\u0439\u0448", 1],
151
+ ["\u044C", 3]
152
+ ];
153
+ var g_v = [33, 65, 8, 232];
154
+ var RussianStemmer = class extends BaseStemmer {
155
+ #stem() {
156
+ let a;
157
+ let I_p2;
158
+ let I_pV;
159
+ const v_1 = this.c;
160
+ while (true) {
161
+ const v_2 = this.c;
162
+ lab1: {
163
+ while (true) {
164
+ const v_3 = this.c;
165
+ lab3: {
166
+ this.bra = this.c;
167
+ if (!this.eq_s("\u0451")) break lab3;
168
+ this.ket = this.c;
169
+ this.c = v_3;
170
+ break;
171
+ }
172
+ this.c = v_3;
173
+ if (this.c >= this.limit) break lab1;
174
+ this.c++;
175
+ }
176
+ this.slice_from("\u0435");
177
+ continue;
178
+ }
179
+ this.c = v_2;
19
180
  break;
20
181
  }
21
- }
22
- for (let i = r1 + 1; i < word.length; i++) {
23
- if (!isVowel(word[i]) && isVowel(word[i - 1])) {
24
- r2 = i + 1;
25
- break;
182
+ this.c = v_1;
183
+ {
184
+ I_pV = this.limit;
185
+ I_p2 = this.limit;
186
+ const v_4 = this.c;
187
+ lab5: {
188
+ if (!this.go_out_grouping(g_v, 1072, 1103)) break lab5;
189
+ this.c++;
190
+ I_pV = this.c;
191
+ if (!this.go_in_grouping(g_v, 1072, 1103)) break lab5;
192
+ this.c++;
193
+ if (!this.go_out_grouping(g_v, 1072, 1103)) break lab5;
194
+ this.c++;
195
+ if (!this.go_in_grouping(g_v, 1072, 1103)) break lab5;
196
+ this.c++;
197
+ I_p2 = this.c;
198
+ }
199
+ this.c = v_4;
26
200
  }
27
- }
28
- return { rv, r1, r2 };
29
- }
30
- function removeSuffix(word, suffix, regionStart) {
31
- if (!word.endsWith(suffix)) return null;
32
- if (word.length - suffix.length < regionStart) return null;
33
- return word.slice(0, word.length - suffix.length);
34
- }
35
- function findAndRemoveSuffix(word, suffixes, regionStart) {
36
- for (const suffix of suffixes) {
37
- const result = removeSuffix(word, suffix, regionStart);
38
- if (result !== null) return result;
39
- }
40
- return null;
41
- }
42
- var PERFECTIVE_GERUND_GROUP1 = ["\u0432", "\u0432\u0448\u0438", "\u0432\u0448\u0438\u0441\u044C"];
43
- var PERFECTIVE_GERUND_GROUP2 = ["\u0438\u0432", "\u0438\u0432\u0448\u0438", "\u0438\u0432\u0448\u0438\u0441\u044C", "\u044B\u0432", "\u044B\u0432\u0448\u0438", "\u044B\u0432\u0448\u0438\u0441\u044C"];
44
- function removePerfectiveGerund(word, rv) {
45
- for (const suffix of PERFECTIVE_GERUND_GROUP1) {
46
- if (word.endsWith(suffix) && word.length - suffix.length >= rv) {
47
- const base = word.slice(0, word.length - suffix.length);
48
- if (base.endsWith("\u0430") || base.endsWith("\u044F")) {
49
- return base;
201
+ this.limit_backward = this.c;
202
+ this.c = this.limit;
203
+ if (this.c < I_pV) return false;
204
+ const v_5 = this.limit_backward;
205
+ this.limit_backward = I_pV;
206
+ const v_6 = this.limit - this.c;
207
+ lab6: {
208
+ lab7: {
209
+ const v_7 = this.limit - this.c;
210
+ lab8: {
211
+ this.ket = this.c;
212
+ a = this.find_among_b(a_0);
213
+ if (a === 0) break lab8;
214
+ this.bra = this.c;
215
+ switch (a) {
216
+ case 1: {
217
+ lab9: {
218
+ lab10: {
219
+ if (!this.eq_s_b("\u0430")) break lab10;
220
+ break lab9;
221
+ }
222
+ if (!this.eq_s_b("\u044F")) break lab8;
223
+ }
224
+ this.slice_del();
225
+ break;
226
+ }
227
+ case 2: {
228
+ this.slice_del();
229
+ break;
230
+ }
231
+ }
232
+ break lab7;
233
+ }
234
+ this.c = this.limit - v_7;
235
+ const v_8 = this.limit - this.c;
236
+ lab11: {
237
+ this.ket = this.c;
238
+ if (this.find_among_b(a_3) === 0) {
239
+ this.c = this.limit - v_8;
240
+ break lab11;
241
+ }
242
+ this.bra = this.c;
243
+ this.slice_del();
244
+ }
245
+ lab12: {
246
+ const v_9 = this.limit - this.c;
247
+ lab13: {
248
+ this.ket = this.c;
249
+ if (this.find_among_b(a_1) === 0) break lab13;
250
+ this.bra = this.c;
251
+ this.slice_del();
252
+ const v_10 = this.limit - this.c;
253
+ lab14: {
254
+ this.ket = this.c;
255
+ a = this.find_among_b(a_2);
256
+ if (a === 0) {
257
+ this.c = this.limit - v_10;
258
+ break lab14;
259
+ }
260
+ this.bra = this.c;
261
+ switch (a) {
262
+ case 1: {
263
+ lab15: {
264
+ lab16: {
265
+ if (!this.eq_s_b("\u0430")) break lab16;
266
+ break lab15;
267
+ }
268
+ if (!this.eq_s_b("\u044F")) {
269
+ this.c = this.limit - v_10;
270
+ break lab14;
271
+ }
272
+ }
273
+ this.slice_del();
274
+ break;
275
+ }
276
+ case 2: {
277
+ this.slice_del();
278
+ break;
279
+ }
280
+ }
281
+ }
282
+ break lab12;
283
+ }
284
+ this.c = this.limit - v_9;
285
+ lab17: {
286
+ this.ket = this.c;
287
+ a = this.find_among_b(a_4);
288
+ if (a === 0) break lab17;
289
+ this.bra = this.c;
290
+ switch (a) {
291
+ case 1: {
292
+ lab18: {
293
+ lab19: {
294
+ if (!this.eq_s_b("\u0430")) break lab19;
295
+ break lab18;
296
+ }
297
+ if (!this.eq_s_b("\u044F")) break lab17;
298
+ }
299
+ this.slice_del();
300
+ break;
301
+ }
302
+ case 2: {
303
+ this.slice_del();
304
+ break;
305
+ }
306
+ }
307
+ break lab12;
308
+ }
309
+ this.c = this.limit - v_9;
310
+ this.ket = this.c;
311
+ if (this.find_among_b(a_5) === 0) break lab6;
312
+ this.bra = this.c;
313
+ this.slice_del();
314
+ }
50
315
  }
51
316
  }
52
- }
53
- return findAndRemoveSuffix(word, PERFECTIVE_GERUND_GROUP2, rv);
54
- }
55
- var REFLEXIVE_SUFFIXES = ["\u0441\u044F", "\u0441\u044C"];
56
- function removeReflexive(word, rv) {
57
- return findAndRemoveSuffix(word, REFLEXIVE_SUFFIXES, rv);
58
- }
59
- var ADJECTIVE_SUFFIXES = [
60
- "\u0438\u043C\u0438",
61
- "\u044B\u043C\u0438",
62
- "\u0435\u0433\u043E",
63
- "\u043E\u0433\u043E",
64
- "\u0435\u043C\u0443",
65
- "\u043E\u043C\u0443",
66
- "\u0435\u0435",
67
- "\u0438\u0435",
68
- "\u043E\u0435",
69
- "\u044B\u0435",
70
- "\u0435\u0439",
71
- "\u0438\u0439",
72
- "\u043E\u0439",
73
- "\u044B\u0439",
74
- "\u0435\u043C",
75
- "\u0438\u043C",
76
- "\u043E\u043C",
77
- "\u044B\u043C",
78
- "\u0438\u0445",
79
- "\u044B\u0445",
80
- "\u0435\u044E",
81
- "\u043E\u044E",
82
- "\u0443\u044E",
83
- "\u044E\u044E",
84
- "\u0430\u044F",
85
- "\u044F\u044F"
86
- ];
87
- var PARTICIPLE_GROUP1 = ["\u0435\u043C", "\u043D\u043D", "\u0432\u0448", "\u044E\u0449", "\u0449"];
88
- var PARTICIPLE_GROUP2 = ["\u0438\u0432\u0448", "\u044B\u0432\u0448", "\u0443\u044E\u0449"];
89
- function removeAdjectival(word, rv) {
90
- const adjResult = findAndRemoveSuffix(word, ADJECTIVE_SUFFIXES, rv);
91
- if (adjResult === null) return null;
92
- for (const suffix of PARTICIPLE_GROUP1) {
93
- if (adjResult.endsWith(suffix) && adjResult.length - suffix.length >= rv) {
94
- const base = adjResult.slice(0, adjResult.length - suffix.length);
95
- if (base.endsWith("\u0430") || base.endsWith("\u044F")) {
96
- return base;
317
+ this.c = this.limit - v_6;
318
+ const v_11 = this.limit - this.c;
319
+ lab20: {
320
+ this.ket = this.c;
321
+ if (!this.eq_s_b("\u0438")) {
322
+ this.c = this.limit - v_11;
323
+ break lab20;
97
324
  }
325
+ this.bra = this.c;
326
+ this.slice_del();
98
327
  }
99
- }
100
- const partResult = findAndRemoveSuffix(adjResult, PARTICIPLE_GROUP2, rv);
101
- if (partResult !== null) return partResult;
102
- return adjResult;
103
- }
104
- var VERB_GROUP1 = [
105
- "\u043B\u0430",
106
- "\u043D\u0430",
107
- "\u0435\u0442\u0435",
108
- "\u0439\u0442\u0435",
109
- "\u043B\u0438",
110
- "\u0439",
111
- "\u043B",
112
- "\u0435\u043C",
113
- "\u043D",
114
- "\u043B\u043E",
115
- "\u043D\u043E",
116
- "\u0435\u0442",
117
- "\u044E\u0442",
118
- "\u043D\u044B",
119
- "\u0442\u044C",
120
- "\u0435\u0448\u044C",
121
- "\u043D\u043D\u043E"
122
- ];
123
- var VERB_GROUP2 = [
124
- "\u0438\u043B\u0430",
125
- "\u044B\u043B\u0430",
126
- "\u0435\u043D\u0430",
127
- "\u0435\u0439\u0442\u0435",
128
- "\u0443\u0439\u0442\u0435",
129
- "\u0438\u0442\u0435",
130
- "\u0438\u043B\u0438",
131
- "\u044B\u043B\u0438",
132
- "\u0435\u0439",
133
- "\u0443\u0439",
134
- "\u0438\u043B",
135
- "\u044B\u043B",
136
- "\u0438\u043C",
137
- "\u044B\u043C",
138
- "\u0435\u043D",
139
- "\u0438\u043B\u043E",
140
- "\u044B\u043B\u043E",
141
- "\u0435\u043D\u043E",
142
- "\u044F\u0442",
143
- "\u0443\u0435\u0442",
144
- "\u0443\u044E\u0442",
145
- "\u0438\u0442",
146
- "\u044B\u0442",
147
- "\u0435\u043D\u044B",
148
- "\u0438\u0442\u044C",
149
- "\u044B\u0442\u044C",
150
- "\u0438\u0448\u044C",
151
- "\u0443\u044E",
152
- "\u044E"
153
- ];
154
- function removeVerb(word, rv) {
155
- for (const suffix of VERB_GROUP1) {
156
- if (word.endsWith(suffix) && word.length - suffix.length >= rv) {
157
- const base = word.slice(0, word.length - suffix.length);
158
- if (base.endsWith("\u0430") || base.endsWith("\u044F")) {
159
- return base;
328
+ const v_12 = this.limit - this.c;
329
+ lab21: {
330
+ this.ket = this.c;
331
+ if (this.find_among_b(a_6) === 0) break lab21;
332
+ this.bra = this.c;
333
+ if (
334
+ /**@type {boolean}*/
335
+ I_p2 > this.c
336
+ ) break lab21;
337
+ this.slice_del();
338
+ }
339
+ this.c = this.limit - v_12;
340
+ const v_13 = this.limit - this.c;
341
+ lab22: {
342
+ this.ket = this.c;
343
+ a = this.find_among_b(a_7);
344
+ if (a === 0) break lab22;
345
+ this.bra = this.c;
346
+ switch (a) {
347
+ case 1: {
348
+ this.slice_del();
349
+ this.ket = this.c;
350
+ if (!this.eq_s_b("\u043D")) break lab22;
351
+ this.bra = this.c;
352
+ if (!this.eq_s_b("\u043D")) break lab22;
353
+ this.slice_del();
354
+ break;
355
+ }
356
+ case 2: {
357
+ if (!this.eq_s_b("\u043D")) break lab22;
358
+ this.slice_del();
359
+ break;
360
+ }
361
+ case 3: {
362
+ this.slice_del();
363
+ break;
364
+ }
160
365
  }
161
366
  }
367
+ this.c = this.limit - v_13;
368
+ this.limit_backward = v_5;
369
+ this.c = this.limit_backward;
370
+ return true;
162
371
  }
163
- return findAndRemoveSuffix(word, VERB_GROUP2, rv);
164
- }
165
- var NOUN_SUFFIXES = [
166
- "\u0438\u044F\u043C\u0438",
167
- "\u044F\u043C\u0438",
168
- "\u0438\u044F\u043C",
169
- "\u0438\u0435\u0439",
170
- "\u0438\u0435\u043C",
171
- "\u0430\u043C\u0438",
172
- "\u0438\u0438",
173
- "\u0435\u0432",
174
- "\u043E\u0432",
175
- "\u0438\u0435",
176
- "\u044C\u0435",
177
- "\u0435\u0438",
178
- "\u0435\u0439",
179
- "\u0438\u0439",
180
- "\u043E\u0439",
181
- "\u0430\u043C",
182
- "\u044F\u043C",
183
- "\u0435\u043C",
184
- "\u043E\u043C",
185
- "\u044F\u0445",
186
- "\u0430\u0445",
187
- "\u0438\u044E",
188
- "\u044C\u044E",
189
- "\u0438\u044F",
190
- "\u044C\u044F",
191
- "\u0430",
192
- "\u0435",
193
- "\u0438",
194
- "\u043E",
195
- "\u0443",
196
- "\u044B",
197
- "\u044C",
198
- "\u044E",
199
- "\u044F"
200
- ];
201
- function removeNoun(word, rv) {
202
- return findAndRemoveSuffix(word, NOUN_SUFFIXES, rv);
203
- }
204
- var DERIVATIONAL_SUFFIXES = ["\u043E\u0441\u0442\u044C", "\u043E\u0441\u0442"];
205
- function removeDerivational(word, r2) {
206
- const result = findAndRemoveSuffix(word, DERIVATIONAL_SUFFIXES, r2);
207
- return result ?? word;
208
- }
209
- function step1(word, rv) {
210
- const pgResult = removePerfectiveGerund(word, rv);
211
- if (pgResult !== null) return pgResult;
212
- const reflexResult = removeReflexive(word, rv);
213
- const base = reflexResult ?? word;
214
- const adjResult = removeAdjectival(base, rv);
215
- if (adjResult !== null) return adjResult;
216
- const verbResult = removeVerb(base, rv);
217
- if (verbResult !== null) return verbResult;
218
- const nounResult = removeNoun(base, rv);
219
- if (nounResult !== null) return nounResult;
220
- return base;
221
- }
222
- function step2(word, rv) {
223
- if (word.endsWith("\u0438") && word.length - 1 >= rv) {
224
- return word.slice(0, -1);
225
- }
226
- return word;
227
- }
228
- function step3(word, r2) {
229
- return removeDerivational(word, r2);
230
- }
231
- function step4(word, rv) {
232
- if (word.endsWith("\u0435\u0439\u0448\u0435") && word.length - 4 >= rv) {
233
- return word.slice(0, -4);
234
- }
235
- if (word.endsWith("\u0435\u0439\u0448") && word.length - 3 >= rv) {
236
- return word.slice(0, -3);
237
- }
238
- if (word.endsWith("\u043D\u043D") && word.length - 2 >= rv) {
239
- return word.slice(0, -1);
240
- }
241
- if (word.endsWith("\u044C") && word.length - 1 >= rv) {
242
- return word.slice(0, -1);
372
+ stem(input) {
373
+ this.setCurrent(input);
374
+ this.#stem();
375
+ return this.getCurrent();
243
376
  }
244
- return word;
245
- }
246
- var RE_YO = /ё/g;
247
- function stem(word) {
248
- word = word.replace(RE_YO, "\u0435");
249
- const { rv, r2 } = findRegions(word);
250
- word = step1(word, rv);
251
- word = step2(word, rv);
252
- word = step3(word, r2);
253
- word = step4(word, rv);
254
- return word;
377
+ };
378
+ var shared = new RussianStemmer();
379
+ function stem(token) {
380
+ return shared.stem(token);
255
381
  }
382
+
383
+ // src/languages/russian.ts
256
384
  var stopWords = /* @__PURE__ */ new Set([
257
385
  "\u0438",
258
386
  "\u0432",
@@ -416,9 +544,10 @@ var stopWords = /* @__PURE__ */ new Set([
416
544
  ]);
417
545
  var russian = {
418
546
  name: "russian",
547
+ revision: "87767119dd36215c",
419
548
  stemmer: stem,
420
549
  stopWords,
421
- tokenizer: { splitPattern: /[^a-z0-9а-яё]+/gi }
550
+ tokenizer: { splitPattern: /[^a-z0-9а-яёѣі-]+/gi }
422
551
  };
423
552
 
424
553
  export { russian };
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-CmJBHf1j.js';
2
+
3
+ declare const samoan: LanguageModule;
4
+
5
+ export { samoan };