@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,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
+ * Russian analysis: the Snowball stemmer, the stop word list, and the rules
5
+ * that split Russian text into tokens.
6
+ *
7
+ * Import it and pass it to {@link registerLanguage} before you create an index
8
+ * whose `language` is `russian`.
9
+ *
10
+ * @public
11
+ */
3
12
  declare const russian: LanguageModule;
4
13
 
5
14
  export { russian };
@@ -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,15 @@
1
+ import { L as LanguageModule } from '../language-DB8KG1z5.js';
2
+
3
+ /**
4
+ * Samoan analysis: the stop word list and the rules that split Samoan
5
+ * text into tokens. Tokens are indexed as the normaliser leaves them,
6
+ * without stemming.
7
+ *
8
+ * Import it and pass it to {@link registerLanguage} before you create an index
9
+ * whose `language` is `samoan`.
10
+ *
11
+ * @public
12
+ */
13
+ declare const samoan: LanguageModule;
14
+
15
+ export { samoan };