@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,404 +1,576 @@
1
- // src/languages/romanian.ts
2
- var VOWELS = "a\u0103\xE2ei\xEEou";
3
- var RE_UPPER_I = /I/g;
4
- var RE_UPPER_U = /U/g;
5
- var STEP0_SUFFIXES = [
6
- "iilor",
7
- "ilor",
8
- "elor",
9
- "ului",
10
- "iile",
11
- "atei",
12
- "a\u021Bie",
13
- "a\u021Bia",
14
- "ele",
15
- "ile",
16
- "iei",
17
- "ul",
18
- "ea",
19
- "ii",
20
- "ua",
21
- "iua",
22
- "aua",
23
- "a"
1
+ import { withNormalisedSpellings } from '../chunk-GHJWC2E5.mjs';
2
+ import { BaseStemmer } from '../chunk-U2BKYEC7.mjs';
3
+
4
+ // src/languages/snowball/romanian.ts
5
+ var a_0 = [
6
+ ["\u015F", 1],
7
+ ["\u0163", 2]
24
8
  ];
25
- var STEP1_SUFFIX_GROUPS = [
26
- [["abilitate", "abilitati", "abilit\u0103\u021Bi", "abilita\u021Bi"].sort((a, b) => b.length - a.length), 1, "abil"],
27
- [["ibilitate", "ibilitati", "ibilit\u0103\u021Bi", "ibilita\u021Bi"].sort((a, b) => b.length - a.length), 2, "ibil"],
28
- [["ivitate", "ivitati", "ivit\u0103\u021Bi", "ivita\u021Bi"].sort((a, b) => b.length - a.length), 3, "iv"],
29
- [
30
- [
31
- "ical\u0103",
32
- "icale",
33
- "icali",
34
- "ical",
35
- "ic\u0103",
36
- "ice",
37
- "ici",
38
- "ic",
39
- "icitate",
40
- "icitati",
41
- "icita\u021Bi",
42
- "icit\u0103\u021Bi",
43
- "iciva",
44
- "icive",
45
- "icivi",
46
- "iciv",
47
- "iciv\u0103",
48
- "icator",
49
- "icatori",
50
- "icatoare",
51
- "ic\u0103toare",
52
- "ic\u0103tori"
53
- ].sort((a, b) => b.length - a.length),
54
- 4,
55
- "ic"
56
- ],
57
- [
58
- ["ativ\u0103", "ative", "ativi", "ativ", "ativa", "a\u021Bie", "a\u021Biune", "ator", "atori", "atoare", "\u0103toare", "\u0103tori"].sort(
59
- (a, b) => b.length - a.length
60
- ),
61
- 5,
62
- "at"
63
- ],
64
- [
65
- ["itiv\u0103", "itive", "itivi", "itiv", "itiva", "i\u021Bie", "i\u021Biune", "itor", "itori", "itoare"].sort(
66
- (a, b) => b.length - a.length
67
- ),
68
- 6,
69
- "it"
70
- ]
9
+ var as_0 = ["\u0219", "\u021B"];
10
+ var a_1 = [
11
+ ["", 3],
12
+ ["I", 1, 1],
13
+ ["U", 2, 2]
71
14
  ];
72
- var STEP1_STANDARD_SUFFIXES = [
73
- [["abil\u0103", "abile", "abili", "abil", "abila"].sort((a, b) => b.length - a.length), null],
74
- [["ibil\u0103", "ibile", "ibili", "ibil", "ibila"].sort((a, b) => b.length - a.length), null],
75
- [["oas\u0103", "oase", "oasa", "os", "o\u0219i"].sort((a, b) => b.length - a.length), null],
76
- [
77
- [
78
- "at\u0103",
79
- "ate",
80
- "ati",
81
- "at",
82
- "ata",
83
- "it\u0103",
84
- "ite",
85
- "iti",
86
- "it",
87
- "ita",
88
- "ant\u0103",
89
- "ante",
90
- "anti",
91
- "ant",
92
- "anta",
93
- "ut\u0103",
94
- "ute",
95
- "uti",
96
- "ut",
97
- "uta",
98
- "iv\u0103",
99
- "ive",
100
- "ivi",
101
- "iv",
102
- "iva",
103
- "iune",
104
- "iuni",
105
- "itate",
106
- "itati",
107
- "ita\u021Bi",
108
- "it\u0103\u021Bi"
109
- ].sort((a, b) => b.length - a.length),
110
- null
111
- ],
112
- [["ist\u0103", "iste", "isti", "ist", "ista", "ism", "isme", "i\u0219ti"].sort((a, b) => b.length - a.length), "ist"]
15
+ var a_2 = [
16
+ ["ea", 3],
17
+ ["a\u021Bia", 7],
18
+ ["aua", 2],
19
+ ["iua", 4],
20
+ ["a\u021Bie", 7],
21
+ ["ele", 3],
22
+ ["ile", 5],
23
+ ["iile", 4, 1],
24
+ ["iei", 4],
25
+ ["atei", 6],
26
+ ["ii", 4],
27
+ ["ului", 1],
28
+ ["ul", 1],
29
+ ["elor", 3],
30
+ ["ilor", 4],
31
+ ["iilor", 4, 1]
113
32
  ];
114
- var STEP2_SUFFIXES = [
115
- "seser\u0103\u021Bi",
116
- "aser\u0103\u021Bi",
117
- "iser\u0103\u021Bi",
118
- "user\u0103\u021Bi",
119
- "\xE2ser\u0103\u021Bi",
120
- "ser\u0103\u021Bi",
121
- "seser\u0103m",
122
- "aser\u0103m",
123
- "iser\u0103m",
124
- "user\u0103m",
125
- "\xE2ser\u0103m",
126
- "ser\u0103m",
127
- "sese\u0219ti",
128
- "ase\u0219ti",
129
- "ise\u0219ti",
130
- "use\u0219ti",
131
- "\xE2se\u0219ti",
132
- "se\u0219ti",
133
- "ar\u0103\u021Bi",
134
- "ir\u0103\u021Bi",
135
- "ur\u0103\u021Bi",
136
- "\xE2r\u0103\u021Bi",
137
- "ar\u0103m",
138
- "ir\u0103m",
139
- "ur\u0103m",
140
- "\xE2r\u0103m",
141
- "ea\u021Bi",
142
- "ia\u021Bi",
143
- "a\u021Bi",
144
- "eam",
145
- "iam",
146
- "am",
147
- "eaz\u0103",
148
- "e\u021Bi",
149
- "i\u021Bi",
150
- "\xE2\u021Bi",
151
- "ar\u0103",
152
- "ir\u0103",
153
- "ur\u0103",
154
- "\xE2r\u0103",
155
- "ser\u0103",
156
- "aser\u0103",
157
- "iser\u0103",
158
- "user\u0103",
159
- "\xE2ser\u0103",
160
- "seser\u0103",
161
- "easc",
162
- "esc",
163
- "\u0103sc",
164
- "e\u0219te",
165
- "\u0103\u0219te",
166
- "e\u0219ti",
167
- "\u0103\u0219ti",
168
- "are",
169
- "ere",
170
- "ire",
171
- "\xE2re",
172
- "ase",
173
- "ise",
174
- "use",
175
- "\xE2se",
176
- "sese",
177
- "se",
178
- "ind",
179
- "\xE2nd",
180
- "indu",
181
- "\xE2ndu",
182
- "eze",
183
- "ezi",
184
- "ez",
185
- "eai",
186
- "iai",
187
- "ai",
188
- "\xE2i",
189
- "ui",
190
- "sei",
191
- "asem",
192
- "isem",
193
- "usem",
194
- "\xE2sem",
195
- "sesem",
196
- "em",
197
- "im",
198
- "\xE2m",
199
- "\u0103m",
200
- "eau",
201
- "iau",
202
- "au",
203
- "a\u0219i",
204
- "i\u0219i",
205
- "u\u0219i",
206
- "\xE2\u0219i"
207
- ].sort((a, b) => b.length - a.length);
208
- var STEP2_VERB_GROUP_SESE = /* @__PURE__ */ new Set([
209
- "sese",
210
- "sesem",
211
- "sese\u0219ti",
212
- "seser\u0103m",
213
- "seser\u0103\u021Bi",
214
- "se",
215
- "sei",
216
- "se\u0219ti",
217
- "ser\u0103",
218
- "seser\u0103",
219
- "ser\u0103m",
220
- "ser\u0103\u021Bi"
221
- ]);
222
- var STEP3_SUFFIXES = ["ie", "\u0103", "e", "i", "a"];
223
- function isVowel(ch) {
224
- return VOWELS.includes(ch);
225
- }
226
- function isLowerVowel(ch) {
227
- return VOWELS.includes(ch) || ch === "I" || ch === "U";
228
- }
229
- function markVowelAsConsonant(word) {
230
- const chars = word.split("");
231
- for (let i = 1; i < chars.length - 1; i++) {
232
- if (isVowel(chars[i - 1]) && isVowel(chars[i + 1])) {
233
- if (chars[i] === "u") chars[i] = "U";
234
- if (chars[i] === "i") chars[i] = "I";
33
+ var a_3 = [
34
+ ["icala", 4],
35
+ ["iciva", 4],
36
+ ["ativa", 5],
37
+ ["itiva", 6],
38
+ ["icale", 4],
39
+ ["a\u021Biune", 5],
40
+ ["i\u021Biune", 6],
41
+ ["atoare", 5],
42
+ ["itoare", 6],
43
+ ["\u0103toare", 5],
44
+ ["icitate", 4],
45
+ ["abilitate", 1],
46
+ ["ibilitate", 2],
47
+ ["ivitate", 3],
48
+ ["icive", 4],
49
+ ["ative", 5],
50
+ ["itive", 6],
51
+ ["icali", 4],
52
+ ["atori", 5],
53
+ ["icatori", 4, 1],
54
+ ["itori", 6],
55
+ ["\u0103tori", 5],
56
+ ["icitati", 4],
57
+ ["abilitati", 1],
58
+ ["ivitati", 3],
59
+ ["icivi", 4],
60
+ ["ativi", 5],
61
+ ["itivi", 6],
62
+ ["icit\u0103i", 4],
63
+ ["abilit\u0103i", 1],
64
+ ["ivit\u0103i", 3],
65
+ ["icit\u0103\u021Bi", 4],
66
+ ["abilit\u0103\u021Bi", 1],
67
+ ["ivit\u0103\u021Bi", 3],
68
+ ["ical", 4],
69
+ ["ator", 5],
70
+ ["icator", 4, 1],
71
+ ["itor", 6],
72
+ ["\u0103tor", 5],
73
+ ["iciv", 4],
74
+ ["ativ", 5],
75
+ ["itiv", 6],
76
+ ["ical\u0103", 4],
77
+ ["iciv\u0103", 4],
78
+ ["ativ\u0103", 5],
79
+ ["itiv\u0103", 6]
80
+ ];
81
+ var as_3 = ["abil", "ibil", "iv", "ic", "at", "it"];
82
+ var a_4 = [
83
+ ["ica", 1],
84
+ ["abila", 1],
85
+ ["ibila", 1],
86
+ ["oasa", 1],
87
+ ["ata", 1],
88
+ ["ita", 1],
89
+ ["anta", 1],
90
+ ["ista", 3],
91
+ ["uta", 1],
92
+ ["iva", 1],
93
+ ["ic", 1],
94
+ ["ice", 1],
95
+ ["abile", 1],
96
+ ["ibile", 1],
97
+ ["isme", 3],
98
+ ["iune", 2],
99
+ ["oase", 1],
100
+ ["ate", 1],
101
+ ["itate", 1, 1],
102
+ ["ite", 1],
103
+ ["ante", 1],
104
+ ["iste", 3],
105
+ ["ute", 1],
106
+ ["ive", 1],
107
+ ["ici", 1],
108
+ ["abili", 1],
109
+ ["ibili", 1],
110
+ ["iuni", 2],
111
+ ["atori", 1],
112
+ ["osi", 1],
113
+ ["ati", 1],
114
+ ["itati", 1, 1],
115
+ ["iti", 1],
116
+ ["anti", 1],
117
+ ["isti", 3],
118
+ ["uti", 1],
119
+ ["i\u0219ti", 3],
120
+ ["ivi", 1],
121
+ ["it\u0103i", 1],
122
+ ["o\u0219i", 1],
123
+ ["it\u0103\u021Bi", 1],
124
+ ["abil", 1],
125
+ ["ibil", 1],
126
+ ["ism", 3],
127
+ ["ator", 1],
128
+ ["os", 1],
129
+ ["at", 1],
130
+ ["it", 1],
131
+ ["ant", 1],
132
+ ["ist", 3],
133
+ ["ut", 1],
134
+ ["iv", 1],
135
+ ["ic\u0103", 1],
136
+ ["abil\u0103", 1],
137
+ ["ibil\u0103", 1],
138
+ ["oas\u0103", 1],
139
+ ["at\u0103", 1],
140
+ ["it\u0103", 1],
141
+ ["ant\u0103", 1],
142
+ ["ist\u0103", 3],
143
+ ["ut\u0103", 1],
144
+ ["iv\u0103", 1]
145
+ ];
146
+ var a_5 = [
147
+ ["ea", 1],
148
+ ["ia", 1],
149
+ ["esc", 1],
150
+ ["\u0103sc", 1],
151
+ ["ind", 1],
152
+ ["\xE2nd", 1],
153
+ ["are", 1],
154
+ ["ere", 1],
155
+ ["ire", 1],
156
+ ["\xE2re", 1],
157
+ ["se", 2],
158
+ ["ase", 1, 1],
159
+ ["sese", 2, 2],
160
+ ["ise", 1, 3],
161
+ ["use", 1, 4],
162
+ ["\xE2se", 1, 5],
163
+ ["e\u0219te", 1],
164
+ ["\u0103\u0219te", 1],
165
+ ["eze", 1],
166
+ ["ai", 1],
167
+ ["eai", 1, 1],
168
+ ["iai", 1, 2],
169
+ ["sei", 2],
170
+ ["e\u0219ti", 1],
171
+ ["\u0103\u0219ti", 1],
172
+ ["ui", 1],
173
+ ["ezi", 1],
174
+ ["\xE2i", 1],
175
+ ["a\u0219i", 1],
176
+ ["se\u0219i", 2],
177
+ ["ase\u0219i", 1, 1],
178
+ ["sese\u0219i", 2, 2],
179
+ ["ise\u0219i", 1, 3],
180
+ ["use\u0219i", 1, 4],
181
+ ["\xE2se\u0219i", 1, 5],
182
+ ["i\u0219i", 1],
183
+ ["u\u0219i", 1],
184
+ ["\xE2\u0219i", 1],
185
+ ["a\u021Bi", 2],
186
+ ["ea\u021Bi", 1, 1],
187
+ ["ia\u021Bi", 1, 2],
188
+ ["e\u021Bi", 2],
189
+ ["i\u021Bi", 2],
190
+ ["\xE2\u021Bi", 2],
191
+ ["ar\u0103\u021Bi", 1],
192
+ ["ser\u0103\u021Bi", 2],
193
+ ["aser\u0103\u021Bi", 1, 1],
194
+ ["seser\u0103\u021Bi", 2, 2],
195
+ ["iser\u0103\u021Bi", 1, 3],
196
+ ["user\u0103\u021Bi", 1, 4],
197
+ ["\xE2ser\u0103\u021Bi", 1, 5],
198
+ ["ir\u0103\u021Bi", 1],
199
+ ["ur\u0103\u021Bi", 1],
200
+ ["\xE2r\u0103\u021Bi", 1],
201
+ ["am", 1],
202
+ ["eam", 1, 1],
203
+ ["iam", 1, 2],
204
+ ["em", 2],
205
+ ["asem", 1, 1],
206
+ ["sesem", 2, 2],
207
+ ["isem", 1, 3],
208
+ ["usem", 1, 4],
209
+ ["\xE2sem", 1, 5],
210
+ ["im", 2],
211
+ ["\xE2m", 2],
212
+ ["\u0103m", 2],
213
+ ["ar\u0103m", 1, 1],
214
+ ["ser\u0103m", 2, 2],
215
+ ["aser\u0103m", 1, 1],
216
+ ["seser\u0103m", 2, 2],
217
+ ["iser\u0103m", 1, 3],
218
+ ["user\u0103m", 1, 4],
219
+ ["\xE2ser\u0103m", 1, 5],
220
+ ["ir\u0103m", 1, 8],
221
+ ["ur\u0103m", 1, 9],
222
+ ["\xE2r\u0103m", 1, 10],
223
+ ["au", 1],
224
+ ["eau", 1, 1],
225
+ ["iau", 1, 2],
226
+ ["indu", 1],
227
+ ["\xE2ndu", 1],
228
+ ["ez", 1],
229
+ ["easc\u0103", 1],
230
+ ["ar\u0103", 1],
231
+ ["ser\u0103", 2],
232
+ ["aser\u0103", 1, 1],
233
+ ["seser\u0103", 2, 2],
234
+ ["iser\u0103", 1, 3],
235
+ ["user\u0103", 1, 4],
236
+ ["\xE2ser\u0103", 1, 5],
237
+ ["ir\u0103", 1],
238
+ ["ur\u0103", 1],
239
+ ["\xE2r\u0103", 1],
240
+ ["eaz\u0103", 1]
241
+ ];
242
+ var a_6 = [
243
+ ["a", 1],
244
+ ["e", 1],
245
+ ["ie", 1, 1],
246
+ ["i", 1],
247
+ ["\u0103", 1]
248
+ ];
249
+ var g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4];
250
+ var RomanianStemmer = class extends BaseStemmer {
251
+ #stem() {
252
+ let a;
253
+ let B_standard_suffix_removed;
254
+ let I_p2;
255
+ let I_p1;
256
+ let I_pV;
257
+ {
258
+ const v_1 = this.c;
259
+ while (true) {
260
+ const v_2 = this.c;
261
+ lab2: {
262
+ while (true) {
263
+ const v_3 = this.c;
264
+ lab4: {
265
+ this.bra = this.c;
266
+ a = this.find_among(a_0);
267
+ if (a === 0) break lab4;
268
+ this.ket = this.c;
269
+ this.slice_from(as_0[a - 1]);
270
+ this.c = v_3;
271
+ break;
272
+ }
273
+ this.c = v_3;
274
+ if (this.c >= this.limit) break lab2;
275
+ this.c++;
276
+ }
277
+ continue;
278
+ }
279
+ this.c = v_2;
280
+ break;
281
+ }
282
+ this.c = v_1;
235
283
  }
236
- }
237
- return chars.join("");
238
- }
239
- function computeRegions(word) {
240
- let rv = word.length;
241
- let r1 = word.length;
242
- let r2 = word.length;
243
- if (word.length >= 2) {
244
- if (isLowerVowel(word[0])) {
245
- if (isLowerVowel(word[1])) {
246
- let i2 = 2;
247
- while (i2 < word.length && isLowerVowel(word[i2])) i2++;
248
- if (i2 < word.length) {
249
- i2++;
250
- rv = i2;
284
+ const v_4 = this.c;
285
+ while (true) {
286
+ const v_5 = this.c;
287
+ lab6: {
288
+ while (true) {
289
+ const v_6 = this.c;
290
+ lab8: {
291
+ if (!this.in_grouping(g_v, 97, 259)) break lab8;
292
+ this.bra = this.c;
293
+ lab9: {
294
+ const v_7 = this.c;
295
+ lab10: {
296
+ if (!this.eq_s("u")) break lab10;
297
+ this.ket = this.c;
298
+ if (!this.in_grouping(g_v, 97, 259)) break lab10;
299
+ this.slice_from("U");
300
+ break lab9;
301
+ }
302
+ this.c = v_7;
303
+ if (!this.eq_s("i")) break lab8;
304
+ this.ket = this.c;
305
+ if (!this.in_grouping(g_v, 97, 259)) break lab8;
306
+ this.slice_from("I");
307
+ }
308
+ this.c = v_6;
309
+ break;
310
+ }
311
+ this.c = v_6;
312
+ if (this.c >= this.limit) break lab6;
313
+ this.c++;
251
314
  }
252
- } else {
253
- let i2 = 2;
254
- while (i2 < word.length && !isLowerVowel(word[i2])) i2++;
255
- if (i2 < word.length) {
256
- rv = i2 + 1;
315
+ continue;
316
+ }
317
+ this.c = v_5;
318
+ break;
319
+ }
320
+ this.c = v_4;
321
+ {
322
+ I_pV = this.limit;
323
+ I_p1 = this.limit;
324
+ I_p2 = this.limit;
325
+ const v_8 = this.c;
326
+ lab12: {
327
+ lab13: {
328
+ const v_9 = this.c;
329
+ lab14: {
330
+ if (!this.in_grouping(g_v, 97, 259)) break lab14;
331
+ lab15: {
332
+ const v_10 = this.c;
333
+ lab16: {
334
+ if (!this.out_grouping(g_v, 97, 259)) break lab16;
335
+ if (!this.go_out_grouping(g_v, 97, 259)) break lab16;
336
+ this.c++;
337
+ break lab15;
338
+ }
339
+ this.c = v_10;
340
+ if (!this.in_grouping(g_v, 97, 259)) break lab14;
341
+ if (!this.go_in_grouping(g_v, 97, 259)) break lab14;
342
+ this.c++;
343
+ }
344
+ break lab13;
345
+ }
346
+ this.c = v_9;
347
+ if (!this.out_grouping(g_v, 97, 259)) break lab12;
348
+ lab17: {
349
+ const v_11 = this.c;
350
+ lab18: {
351
+ if (!this.out_grouping(g_v, 97, 259)) break lab18;
352
+ if (!this.go_out_grouping(g_v, 97, 259)) break lab18;
353
+ this.c++;
354
+ break lab17;
355
+ }
356
+ this.c = v_11;
357
+ if (!this.in_grouping(g_v, 97, 259)) break lab12;
358
+ if (this.c >= this.limit) break lab12;
359
+ this.c++;
360
+ }
257
361
  }
362
+ I_pV = this.c;
258
363
  }
259
- } else if (isLowerVowel(word[1])) {
260
- let i2 = 2;
261
- while (i2 < word.length && !isLowerVowel(word[i2])) i2++;
262
- if (i2 < word.length) {
263
- rv = i2 + 1;
364
+ this.c = v_8;
365
+ const v_12 = this.c;
366
+ lab19: {
367
+ if (!this.go_out_grouping(g_v, 97, 259)) break lab19;
368
+ this.c++;
369
+ if (!this.go_in_grouping(g_v, 97, 259)) break lab19;
370
+ this.c++;
371
+ I_p1 = this.c;
372
+ if (!this.go_out_grouping(g_v, 97, 259)) break lab19;
373
+ this.c++;
374
+ if (!this.go_in_grouping(g_v, 97, 259)) break lab19;
375
+ this.c++;
376
+ I_p2 = this.c;
264
377
  }
265
- } else {
266
- let i2 = 2;
267
- while (i2 < word.length) {
268
- if (isLowerVowel(word[i2])) {
269
- rv = i2 + 1;
378
+ this.c = v_12;
379
+ }
380
+ this.limit_backward = this.c;
381
+ this.c = this.limit;
382
+ const v_13 = this.limit - this.c;
383
+ lab20: {
384
+ this.ket = this.c;
385
+ a = this.find_among_b(a_2);
386
+ if (a === 0) break lab20;
387
+ this.bra = this.c;
388
+ if (
389
+ /**@type {boolean}*/
390
+ I_p1 > this.c
391
+ ) break lab20;
392
+ switch (a) {
393
+ case 1: {
394
+ this.slice_del();
395
+ break;
396
+ }
397
+ case 2: {
398
+ this.slice_from("a");
399
+ break;
400
+ }
401
+ case 3: {
402
+ this.slice_from("e");
403
+ break;
404
+ }
405
+ case 4: {
406
+ this.slice_from("i");
407
+ break;
408
+ }
409
+ case 5: {
410
+ lab21: {
411
+ if (!this.eq_s_b("ab")) break lab21;
412
+ break lab20;
413
+ }
414
+ this.slice_from("i");
415
+ break;
416
+ }
417
+ case 6: {
418
+ this.slice_from("at");
419
+ break;
420
+ }
421
+ case 7: {
422
+ this.slice_from("a\u021Bi");
270
423
  break;
271
424
  }
272
- i2++;
273
425
  }
274
426
  }
275
- }
276
- let i = 1;
277
- while (i < word.length) {
278
- if (!isLowerVowel(word[i]) && isLowerVowel(word[i - 1])) {
279
- r1 = i + 1;
280
- break;
281
- }
282
- i++;
283
- }
284
- i = r1 + 1;
285
- while (i < word.length) {
286
- if (!isLowerVowel(word[i]) && isLowerVowel(word[i - 1])) {
287
- r2 = i + 1;
288
- break;
289
- }
290
- i++;
291
- }
292
- return { rv, r1, r2 };
293
- }
294
- function inRegion(word, regionStart, suffixLen) {
295
- return word.length - suffixLen >= regionStart;
296
- }
297
- function trySuffix(word, suffixes) {
298
- for (const s of suffixes) {
299
- if (word.endsWith(s)) return s;
300
- }
301
- return null;
302
- }
303
- function step0(word, r1) {
304
- const matched = trySuffix(word, STEP0_SUFFIXES);
305
- if (matched && inRegion(word, r1, matched.length)) {
306
- switch (matched) {
307
- case "ul":
308
- case "ului":
309
- return word.slice(0, -matched.length);
310
- case "aua":
311
- return `${word.slice(0, -matched.length)}a`;
312
- case "ea":
313
- case "ele":
314
- case "elor":
315
- return `${word.slice(0, -matched.length)}e`;
316
- case "iua":
317
- case "iei":
318
- case "ile":
319
- case "iile":
320
- case "ilor":
321
- case "iilor":
322
- case "ii":
323
- return `${word.slice(0, -matched.length)}i`;
324
- case "a\u021Bia":
325
- case "a\u021Bie":
326
- case "atei":
327
- return `${word.slice(0, -matched.length)}a\u021Bi`;
328
- case "ua":
329
- return word.slice(0, -matched.length);
330
- case "a":
331
- return word.slice(0, -1);
332
- default:
333
- return word.slice(0, -matched.length);
334
- }
335
- }
336
- return word;
337
- }
338
- function step1(word, _r1, r2) {
339
- for (const [suffixes, _id, replacement] of STEP1_SUFFIX_GROUPS) {
340
- const matched = trySuffix(word, suffixes);
341
- if (matched && inRegion(word, r2, matched.length)) {
342
- return { word: `${word.slice(0, -matched.length)}${replacement}`, changed: true };
343
- }
344
- }
345
- for (const [suffixes, replacement] of STEP1_STANDARD_SUFFIXES) {
346
- const matched = trySuffix(word, suffixes);
347
- if (matched && inRegion(word, r2, matched.length)) {
348
- if (replacement === "ist") {
349
- return { word: `${word.slice(0, -matched.length)}ist`, changed: true };
427
+ this.c = this.limit - v_13;
428
+ const v_14 = this.limit - this.c;
429
+ lab22: {
430
+ B_standard_suffix_removed = false;
431
+ while (true) {
432
+ const v_15 = this.limit - this.c;
433
+ lab23: {
434
+ const v_16 = this.limit - this.c;
435
+ this.ket = this.c;
436
+ a = this.find_among_b(a_3);
437
+ if (a === 0) break lab23;
438
+ this.bra = this.c;
439
+ if (
440
+ /**@type {boolean}*/
441
+ I_p1 > this.c
442
+ ) break lab23;
443
+ this.slice_from(as_3[a - 1]);
444
+ B_standard_suffix_removed = true;
445
+ this.c = this.limit - v_16;
446
+ continue;
447
+ }
448
+ this.c = this.limit - v_15;
449
+ break;
450
+ }
451
+ this.ket = this.c;
452
+ a = this.find_among_b(a_4);
453
+ if (a === 0) break lab22;
454
+ this.bra = this.c;
455
+ if (
456
+ /**@type {boolean}*/
457
+ I_p2 > this.c
458
+ ) break lab22;
459
+ switch (a) {
460
+ case 1: {
461
+ this.slice_del();
462
+ break;
463
+ }
464
+ case 2: {
465
+ if (!this.eq_s_b("\u021B")) break lab22;
466
+ this.bra = this.c;
467
+ this.slice_from("t");
468
+ break;
469
+ }
470
+ case 3: {
471
+ this.slice_from("ist");
472
+ break;
473
+ }
350
474
  }
351
- const stripped = word.slice(0, -matched.length);
352
- if (matched === "iune" || matched === "iuni") {
353
- if (stripped.endsWith("\u021B")) {
354
- return { word: `${stripped.slice(0, -1)}t`, changed: true };
475
+ B_standard_suffix_removed = true;
476
+ }
477
+ this.c = this.limit - v_14;
478
+ const v_17 = this.limit - this.c;
479
+ lab24: {
480
+ lab25: {
481
+ lab26: {
482
+ if (!B_standard_suffix_removed) break lab26;
483
+ break lab25;
484
+ }
485
+ if (this.c < I_pV) break lab24;
486
+ const v_18 = this.limit_backward;
487
+ this.limit_backward = I_pV;
488
+ this.ket = this.c;
489
+ a = this.find_among_b(a_5);
490
+ if (a === 0) {
491
+ this.limit_backward = v_18;
492
+ break lab24;
355
493
  }
494
+ this.bra = this.c;
495
+ switch (a) {
496
+ case 1: {
497
+ lab27: {
498
+ lab28: {
499
+ if (!this.out_grouping_b(g_v, 97, 259)) break lab28;
500
+ break lab27;
501
+ }
502
+ if (!this.eq_s_b("u")) {
503
+ this.limit_backward = v_18;
504
+ break lab24;
505
+ }
506
+ }
507
+ this.slice_del();
508
+ break;
509
+ }
510
+ case 2: {
511
+ this.slice_del();
512
+ break;
513
+ }
514
+ }
515
+ this.limit_backward = v_18;
356
516
  }
357
- return { word: stripped, changed: true };
358
517
  }
359
- }
360
- return { word, changed: false };
361
- }
362
- function step2(word, rv) {
363
- const matched = trySuffix(word, STEP2_SUFFIXES);
364
- if (matched && inRegion(word, rv, matched.length)) {
365
- const stripped = word.slice(0, -matched.length);
366
- if (STEP2_VERB_GROUP_SESE.has(matched)) {
367
- if (!isVowel(stripped[stripped.length - 1]) && stripped[stripped.length - 1] !== "u") {
368
- return { word, changed: false };
518
+ this.c = this.limit - v_17;
519
+ const v_19 = this.limit - this.c;
520
+ lab29: {
521
+ this.ket = this.c;
522
+ if (this.find_among_b(a_6) === 0) break lab29;
523
+ this.bra = this.c;
524
+ if (
525
+ /**@type {boolean}*/
526
+ I_pV > this.c
527
+ ) break lab29;
528
+ this.slice_del();
529
+ }
530
+ this.c = this.limit - v_19;
531
+ this.c = this.limit_backward;
532
+ const v_20 = this.c;
533
+ while (true) {
534
+ const v_21 = this.c;
535
+ lab31: {
536
+ this.bra = this.c;
537
+ a = this.find_among(a_1);
538
+ this.ket = this.c;
539
+ switch (a) {
540
+ case 1: {
541
+ this.slice_from("i");
542
+ break;
543
+ }
544
+ case 2: {
545
+ this.slice_from("u");
546
+ break;
547
+ }
548
+ case 3: {
549
+ if (this.c >= this.limit) break lab31;
550
+ this.c++;
551
+ break;
552
+ }
553
+ }
554
+ continue;
369
555
  }
556
+ this.c = v_21;
557
+ break;
370
558
  }
371
- return { word: stripped, changed: true };
372
- }
373
- return { word, changed: false };
374
- }
375
- function step3(word, rv) {
376
- const matched = trySuffix(word, STEP3_SUFFIXES);
377
- if (matched && inRegion(word, rv, matched.length)) {
378
- return word.slice(0, -matched.length);
559
+ this.c = v_20;
560
+ return true;
379
561
  }
380
- return word;
381
- }
382
- function restoreMarked(word) {
383
- return word.replace(RE_UPPER_I, "i").replace(RE_UPPER_U, "u");
384
- }
385
- function stem(word) {
386
- if (word.length < 3) return word;
387
- word = word.toLowerCase();
388
- word = markVowelAsConsonant(word);
389
- const { rv, r1, r2 } = computeRegions(word);
390
- word = step0(word, r1);
391
- const result1 = step1(word, r1, r2);
392
- word = result1.word;
393
- const step1Changed = result1.changed;
394
- if (!step1Changed) {
395
- const result2 = step2(word, rv);
396
- word = result2.word;
562
+ stem(input) {
563
+ this.setCurrent(input);
564
+ this.#stem();
565
+ return this.getCurrent();
397
566
  }
398
- word = step3(word, rv);
399
- word = restoreMarked(word);
400
- return word;
567
+ };
568
+ var shared = new RomanianStemmer();
569
+ function stem(token) {
570
+ return shared.stem(token);
401
571
  }
572
+
573
+ // src/languages/romanian.ts
402
574
  var stopWords = /* @__PURE__ */ new Set([
403
575
  "acea",
404
576
  "aceasta",
@@ -624,11 +796,18 @@ var stopWords = /* @__PURE__ */ new Set([
624
796
  "\u0163i",
625
797
  "\u0163ie"
626
798
  ]);
799
+ var CEDILLA_LETTERS = /[\u015F\u0163]/g;
800
+ var COMMA_BELOW = { "\u015F": "\u0219", "\u0163": "\u021B" };
801
+ function normalize(token) {
802
+ return token.replace(CEDILLA_LETTERS, (letter) => COMMA_BELOW[letter]);
803
+ }
627
804
  var romanian = {
628
805
  name: "romanian",
806
+ revision: "daf797aac5310bd4",
629
807
  stemmer: stem,
630
- stopWords,
631
- tokenizer: { splitPattern: /[^a-z0-9ăâîșț]+/gi }
808
+ stopWords: withNormalisedSpellings(stopWords, normalize),
809
+ normalizer: normalize,
810
+ tokenizer: { splitPattern: /[^a-z0-9ăâîșțşţ]+/gi }
632
811
  };
633
812
 
634
813
  export { romanian };