@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
@@ -0,0 +1,5 @@
1
+ import { L as LanguageModule } from '../language-CmJBHf1j.js';
2
+
3
+ declare const icelandic: LanguageModule;
4
+
5
+ export { icelandic };
@@ -0,0 +1,161 @@
1
+ // src/languages/icelandic.ts
2
+ var stopWords = /* @__PURE__ */ new Set([
3
+ "\xE6tti",
4
+ "afhverju",
5
+ "aftan",
6
+ "aftur",
7
+ "af\xFEv\xED",
8
+ "aldrei",
9
+ "allir",
10
+ "allt",
11
+ "alveg",
12
+ "anna\xF0",
13
+ "annars",
14
+ "bara",
15
+ "dag",
16
+ "e\xF0a",
17
+ "eftir",
18
+ "eiga",
19
+ "einhver",
20
+ "einhverjir",
21
+ "einhvers",
22
+ "eins",
23
+ "einu",
24
+ "eitthva\xF0",
25
+ "ekkert",
26
+ "ekki",
27
+ "enn\xFE\xE1",
28
+ "eru",
29
+ "fara",
30
+ "fer",
31
+ "finna",
32
+ "fj\xF6ldi",
33
+ "f\xF3lk",
34
+ "fr\xE1",
35
+ "framan",
36
+ "frekar",
37
+ "fyrir",
38
+ "gegnum",
39
+ "geta",
40
+ "getur",
41
+ "gmg",
42
+ "gott",
43
+ "h\xE6gt",
44
+ "hafa",
45
+ "hann",
46
+ "hef",
47
+ "hefur",
48
+ "h\xE9r",
49
+ "h\xE9rna",
50
+ "heyra",
51
+ "hj\xE1",
52
+ "h\xFAn",
53
+ "hva\xF0",
54
+ "hvar",
55
+ "hver",
56
+ "hverjir",
57
+ "hverjum",
58
+ "hvernig",
59
+ "hvor",
60
+ "hvort",
61
+ "img",
62
+ "inn",
63
+ "kannski",
64
+ "koma",
65
+ "l\xEDka",
66
+ "lol",
67
+ "ma\xF0ur",
68
+ "m\xE1tt",
69
+ "me\xF0",
70
+ "mega",
71
+ "meira",
72
+ "m\xE9r",
73
+ "mig",
74
+ "miki\xF0",
75
+ "minna",
76
+ "minni",
77
+ "missa",
78
+ "mj\xF6g",
79
+ "nei",
80
+ "ni\xF0ur",
81
+ "n\xFAna",
82
+ "oft",
83
+ "okkar",
84
+ "okkur",
85
+ "p\xF3st",
86
+ "p\xF3stur",
87
+ "rofl",
88
+ "s\xE6lir",
89
+ "s\xE6ll",
90
+ "saman",
91
+ "sem",
92
+ "s\xE9r",
93
+ "s\xED\xF0an",
94
+ "sig",
95
+ "sinni",
96
+ "sj\xE1",
97
+ "sm\xE1",
98
+ "sm\xE1tt",
99
+ "spurja",
100
+ "spyrja",
101
+ "sta\xF0ar",
102
+ "st\xF3rt",
103
+ "svo",
104
+ "svona",
105
+ "taka",
106
+ "takk",
107
+ "til",
108
+ "tilvitnun",
109
+ "titlar",
110
+ "upp",
111
+ "v\xE6ri",
112
+ "var",
113
+ "vel",
114
+ "velkomin",
115
+ "velkominn",
116
+ "vera",
117
+ "ver\xF0ur",
118
+ "veri\xF0",
119
+ "vi\xF0",
120
+ "vil",
121
+ "vilja",
122
+ "vill",
123
+ "vita",
124
+ "yfir",
125
+ "ykkar",
126
+ "\xFEa\xF0",
127
+ "\xFE\xE6r",
128
+ "\xFEakka",
129
+ "\xFEakkir",
130
+ "\xFEannig",
131
+ "\xFEar",
132
+ "\xFEarf",
133
+ "\xFEau",
134
+ "\xFEegar",
135
+ "\xFEeim",
136
+ "\xFEeir",
137
+ "\xFEeirra",
138
+ "\xFE\xE9r",
139
+ "\xFEess",
140
+ "\xFEessa",
141
+ "\xFEessi",
142
+ "\xFEessu",
143
+ "\xFEessum",
144
+ "\xFEetta",
145
+ "\xFEi\xF0",
146
+ "\xFE\xEDn",
147
+ "\xFEinn",
148
+ "\xFEitt",
149
+ "\xFEr\xE1\xF0",
150
+ "\xFEr\xE1\xF0ur",
151
+ "\xFEv\xED"
152
+ ]);
153
+ var icelandic = {
154
+ name: "icelandic",
155
+ revision: "1",
156
+ stemmer: null,
157
+ stopWords,
158
+ tokenizer: { splitPattern: /[^a-z0-9áæéíðóöúþý]+/gi }
159
+ };
160
+
161
+ export { icelandic };
@@ -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 igbo: LanguageModule;
4
4
 
@@ -84,10 +84,11 @@ var stopWords = /* @__PURE__ */ new Set([
84
84
  ]);
85
85
  var igbo = {
86
86
  name: "igbo",
87
+ revision: "1",
87
88
  stemmer: null,
88
89
  stopWords,
89
90
  tokenizer: {
90
- splitPattern: /[^a-zA-ZịụọṅĩỊỤỌṄĨ0-9\p{M}]+/giu,
91
+ splitPattern: /[^a-zA-ZịụọṅĩũỊỤỌṄĨŨàèéòóÀÈÉÒÓȮȯ0-9\p{M}]+/giu,
91
92
  normalizeDiacritics: false,
92
93
  minTokenLength: 1
93
94
  }
@@ -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 indonesian: LanguageModule;
4
4
 
@@ -1,153 +1,344 @@
1
- // src/languages/indonesian.ts
2
- var VOWELS = /* @__PURE__ */ new Set(["a", "e", "i", "o", "u"]);
3
- function countVowels(word) {
4
- let count = 0;
5
- for (const ch of word) {
6
- if (VOWELS.has(ch)) count++;
7
- }
8
- return count;
9
- }
10
- function removeParticle(word) {
11
- for (const suffix of ["kah", "lah", "tah", "pun"]) {
12
- if (word.endsWith(suffix)) {
13
- return { word: word.slice(0, -suffix.length), removed: 1 };
14
- }
15
- }
16
- return { word, removed: 0 };
17
- }
18
- function removePossessivePronoun(word) {
19
- if (word.endsWith("nya")) return { word: word.slice(0, -3), removed: 1 };
20
- if (word.endsWith("ku")) return { word: word.slice(0, -2), removed: 1 };
21
- if (word.endsWith("mu")) return { word: word.slice(0, -2), removed: 1 };
22
- return { word, removed: 0 };
23
- }
24
- function removeFirstPrefix(word) {
25
- if (word.startsWith("di") && word.length > 4) {
26
- return { word: word.slice(2), prefixType: 1 };
27
- }
28
- if (word.startsWith("ke") && word.length > 4) {
29
- return { word: word.slice(2), prefixType: 1 };
30
- }
31
- if (word.startsWith("se") && word.length > 4) {
32
- return { word: word.slice(2), prefixType: 1 };
33
- }
34
- if (word.startsWith("me")) {
35
- if (word.startsWith("meng") && word.length > 6) {
36
- return { word: word.slice(4), prefixType: 1 };
37
- }
38
- if (word.startsWith("meny") && word.length > 6) {
39
- return { word: `s${word.slice(4)}`, prefixType: 3 };
40
- }
41
- if (word.startsWith("men") && word.length > 5) {
42
- return { word: word.slice(3), prefixType: 1 };
43
- }
44
- if (word.startsWith("mem") && word.length > 5) {
45
- const rest = word.slice(3);
46
- if (rest.length > 0 && VOWELS.has(rest[0])) {
47
- return { word: `p${rest}`, prefixType: 5 };
1
+ import { BaseStemmer } from '../chunk-U2BKYEC7.mjs';
2
+
3
+ // src/languages/snowball/indonesian.ts
4
+ var a_0 = [
5
+ ["kah", 1],
6
+ ["lah", 1],
7
+ ["pun", 1]
8
+ ];
9
+ var a_1 = [
10
+ ["nya", 1],
11
+ ["ku", 1],
12
+ ["mu", 1]
13
+ ];
14
+ var a_2 = [
15
+ ["i", 2],
16
+ ["an", 1]
17
+ ];
18
+ var a_3 = [
19
+ ["di", 1],
20
+ ["ke", 3],
21
+ ["me", 1],
22
+ ["mem", 5, 1],
23
+ ["men", 2, 2],
24
+ ["meng", 1, 1],
25
+ ["pem", 6],
26
+ ["pen", 4],
27
+ ["peng", 3, 1],
28
+ ["ter", 1]
29
+ ];
30
+ var a_4 = [
31
+ ["be", 2],
32
+ ["pe", 1]
33
+ ];
34
+ var g_vowel = [17, 65, 16];
35
+ var IndonesianStemmer = class extends BaseStemmer {
36
+ #I_prefix = 0;
37
+ #I_measure = 0;
38
+ #r_remove_suffix() {
39
+ let a;
40
+ this.ket = this.c;
41
+ a = this.find_among_b(a_2);
42
+ if (a === 0) return false;
43
+ this.bra = this.c;
44
+ switch (a) {
45
+ case 1: {
46
+ lab0: {
47
+ const v_1 = this.limit - this.c;
48
+ lab1: {
49
+ if (
50
+ /**@type {boolean}*/
51
+ this.#I_prefix === 3
52
+ ) break lab1;
53
+ if (
54
+ /**@type {boolean}*/
55
+ this.#I_prefix === 2
56
+ ) break lab1;
57
+ if (!this.eq_s_b("k")) break lab1;
58
+ this.bra = this.c;
59
+ break lab0;
60
+ }
61
+ this.c = this.limit - v_1;
62
+ if (
63
+ /**@type {boolean}*/
64
+ this.#I_prefix === 1
65
+ ) return false;
66
+ }
67
+ break;
48
68
  }
49
- return { word: rest, prefixType: 1 };
50
- }
51
- if (word.startsWith("me") && word.length > 4) {
52
- return { word: word.slice(2), prefixType: 1 };
53
- }
54
- }
55
- if (word.startsWith("pe")) {
56
- if (word.startsWith("peng") && word.length > 6) {
57
- return { word: word.slice(4), prefixType: 2 };
58
- }
59
- if (word.startsWith("peny") && word.length > 6) {
60
- return { word: `s${word.slice(4)}`, prefixType: 4 };
61
- }
62
- if (word.startsWith("pen") && word.length > 5) {
63
- return { word: word.slice(3), prefixType: 2 };
64
- }
65
- if (word.startsWith("pem") && word.length > 5) {
66
- const rest = word.slice(3);
67
- if (rest.length > 0 && VOWELS.has(rest[0])) {
68
- return { word: `p${rest}`, prefixType: 6 };
69
+ case 2: {
70
+ if (
71
+ /**@type {boolean}*/
72
+ this.#I_prefix > 2
73
+ ) return false;
74
+ lab2: {
75
+ if (!this.eq_s_b("s")) break lab2;
76
+ return false;
77
+ }
78
+ break;
69
79
  }
70
- return { word: rest, prefixType: 2 };
71
- }
72
- if (word === "pelajar" || word.startsWith("pelajar")) {
73
- return { word: word.slice(3), prefixType: 1 };
74
- }
75
- if (word.startsWith("pe") && word.length > 4) {
76
- return { word: word.slice(2), prefixType: 2 };
77
80
  }
81
+ this.slice_del();
82
+ --this.#I_measure;
83
+ return true;
78
84
  }
79
- if (word.startsWith("ter") && word.length > 5) {
80
- return { word: word.slice(3), prefixType: 1 };
81
- }
82
- if (word.startsWith("belajar")) {
83
- return { word: word.slice(3), prefixType: 3 };
84
- }
85
- if (word.startsWith("ber") && word.length > 5) {
86
- return { word: word.slice(3), prefixType: 3 };
87
- }
88
- if (word.startsWith("per") && word.length > 5) {
89
- return { word: word.slice(3), prefixType: 1 };
90
- }
91
- return { word, prefixType: 0 };
92
- }
93
- function removeDerivationalSuffix(word, prefixType) {
94
- if (word.endsWith("kan") && word.length > 5) {
95
- if (prefixType !== 3 && prefixType !== 2) {
96
- return word.slice(0, -3);
85
+ #r_remove_second_order_prefix() {
86
+ let a;
87
+ this.bra = this.c;
88
+ a = this.find_among(a_4);
89
+ if (a === 0) return false;
90
+ switch (a) {
91
+ case 1: {
92
+ lab0: {
93
+ const v_1 = this.c;
94
+ lab1: {
95
+ if (!this.eq_s("r")) break lab1;
96
+ this.ket = this.c;
97
+ this.#I_prefix = 2;
98
+ break lab0;
99
+ }
100
+ this.c = v_1;
101
+ lab2: {
102
+ if (!this.eq_s("l")) break lab2;
103
+ this.ket = this.c;
104
+ if (!this.eq_s("ajar")) break lab2;
105
+ break lab0;
106
+ }
107
+ this.c = v_1;
108
+ this.ket = this.c;
109
+ this.#I_prefix = 2;
110
+ }
111
+ break;
112
+ }
113
+ case 2: {
114
+ lab3: {
115
+ const v_2 = this.c;
116
+ lab4: {
117
+ if (!this.eq_s("r")) break lab4;
118
+ this.ket = this.c;
119
+ break lab3;
120
+ }
121
+ this.c = v_2;
122
+ lab5: {
123
+ if (!this.eq_s("l")) break lab5;
124
+ this.ket = this.c;
125
+ if (!this.eq_s("ajar")) break lab5;
126
+ break lab3;
127
+ }
128
+ this.c = v_2;
129
+ this.ket = this.c;
130
+ if (!this.out_grouping(g_vowel, 97, 117)) return false;
131
+ if (!this.eq_s("er")) return false;
132
+ }
133
+ this.#I_prefix = 4;
134
+ break;
135
+ }
97
136
  }
137
+ --this.#I_measure;
138
+ this.slice_del();
139
+ return true;
98
140
  }
99
- if (word.endsWith("an") && word.length > 4) {
100
- if (prefixType !== 1) {
101
- return word.slice(0, -2);
141
+ #stem() {
142
+ let a;
143
+ this.#I_measure = 0;
144
+ const v_1 = this.c;
145
+ while (true) {
146
+ const v_2 = this.c;
147
+ lab1: {
148
+ if (!this.go_out_grouping(g_vowel, 97, 117)) break lab1;
149
+ this.c++;
150
+ ++this.#I_measure;
151
+ continue;
152
+ }
153
+ this.c = v_2;
154
+ break;
102
155
  }
103
- }
104
- if (word.endsWith("i") && word.length > 3) {
105
- const beforeI = word[word.length - 2];
106
- if (beforeI !== "s" && prefixType <= 2) {
107
- return word.slice(0, -1);
156
+ this.c = v_1;
157
+ if (
158
+ /**@type {boolean}*/
159
+ this.#I_measure < 3
160
+ ) return false;
161
+ this.#I_prefix = 0;
162
+ this.limit_backward = this.c;
163
+ this.c = this.limit;
164
+ const v_3 = this.limit - this.c;
165
+ lab2: {
166
+ this.ket = this.c;
167
+ if (this.find_among_b(a_0) === 0) break lab2;
168
+ this.bra = this.c;
169
+ this.slice_del();
170
+ --this.#I_measure;
108
171
  }
109
- }
110
- return word;
111
- }
112
- function stem(input) {
113
- let word = input.toLowerCase();
114
- if (countVowels(word) < 3) return word;
115
- const original = word;
116
- const particle = removeParticle(word);
117
- word = particle.word;
118
- const possessive = removePossessivePronoun(word);
119
- word = possessive.word;
120
- if (countVowels(word) < 2) return original;
121
- const withPrefix = removeFirstPrefix(word);
122
- let prefixType = withPrefix.prefixType;
123
- const afterPrefix = withPrefix.word;
124
- if (prefixType > 0 && countVowels(afterPrefix) >= 2) {
125
- word = afterPrefix;
126
- const withSuffix = removeDerivationalSuffix(word, prefixType);
127
- if (withSuffix !== word && countVowels(withSuffix) >= 2) {
128
- word = withSuffix;
172
+ this.c = this.limit - v_3;
173
+ if (
174
+ /**@type {boolean}*/
175
+ this.#I_measure < 3
176
+ ) return false;
177
+ const v_4 = this.limit - this.c;
178
+ lab3: {
179
+ this.ket = this.c;
180
+ if (this.find_among_b(a_1) === 0) break lab3;
181
+ this.bra = this.c;
182
+ this.slice_del();
183
+ --this.#I_measure;
129
184
  }
130
- } else {
131
- word = possessive.word;
132
- const withSuffix = removeDerivationalSuffix(word, 0);
133
- if (withSuffix !== word && countVowels(withSuffix) >= 2) {
134
- word = withSuffix;
135
- const secondPrefix = removeFirstPrefix(word);
136
- if (secondPrefix.prefixType > 0 && countVowels(secondPrefix.word) >= 2) {
137
- word = secondPrefix.word;
138
- prefixType = secondPrefix.prefixType;
185
+ this.c = this.limit - v_4;
186
+ this.c = this.limit_backward;
187
+ if (
188
+ /**@type {boolean}*/
189
+ this.#I_measure < 3
190
+ ) return false;
191
+ lab4: {
192
+ const v_5 = this.c;
193
+ lab5: {
194
+ const v_6 = this.c;
195
+ this.bra = this.c;
196
+ a = this.find_among(a_3);
197
+ if (a === 0) break lab5;
198
+ this.ket = this.c;
199
+ switch (a) {
200
+ case 1: {
201
+ this.slice_del();
202
+ this.#I_prefix = 1;
203
+ --this.#I_measure;
204
+ break;
205
+ }
206
+ case 2: {
207
+ lab6: {
208
+ const v_7 = this.c;
209
+ lab7: {
210
+ if (!this.eq_s("y")) break lab7;
211
+ const v_8 = this.c;
212
+ if (!this.in_grouping(g_vowel, 97, 117)) break lab7;
213
+ this.c = v_8;
214
+ this.ket = this.c;
215
+ this.slice_from("s");
216
+ this.#I_prefix = 1;
217
+ --this.#I_measure;
218
+ break lab6;
219
+ }
220
+ this.c = v_7;
221
+ this.slice_del();
222
+ this.#I_prefix = 1;
223
+ --this.#I_measure;
224
+ }
225
+ break;
226
+ }
227
+ case 3: {
228
+ this.slice_del();
229
+ this.#I_prefix = 3;
230
+ --this.#I_measure;
231
+ break;
232
+ }
233
+ case 4: {
234
+ lab8: {
235
+ const v_9 = this.c;
236
+ lab9: {
237
+ if (!this.eq_s("y")) break lab9;
238
+ const v_10 = this.c;
239
+ if (!this.in_grouping(g_vowel, 97, 117)) break lab9;
240
+ this.c = v_10;
241
+ this.ket = this.c;
242
+ this.slice_from("s");
243
+ this.#I_prefix = 3;
244
+ --this.#I_measure;
245
+ break lab8;
246
+ }
247
+ this.c = v_9;
248
+ this.slice_del();
249
+ this.#I_prefix = 3;
250
+ --this.#I_measure;
251
+ }
252
+ break;
253
+ }
254
+ case 5: {
255
+ this.#I_prefix = 1;
256
+ --this.#I_measure;
257
+ lab10: {
258
+ const v_11 = this.c;
259
+ lab11: {
260
+ const v_12 = this.c;
261
+ if (!this.in_grouping(g_vowel, 97, 117)) break lab11;
262
+ this.c = v_12;
263
+ this.slice_from("p");
264
+ break lab10;
265
+ }
266
+ this.c = v_11;
267
+ this.slice_del();
268
+ }
269
+ break;
270
+ }
271
+ case 6: {
272
+ this.#I_prefix = 3;
273
+ --this.#I_measure;
274
+ lab12: {
275
+ const v_13 = this.c;
276
+ lab13: {
277
+ const v_14 = this.c;
278
+ if (!this.in_grouping(g_vowel, 97, 117)) break lab13;
279
+ this.c = v_14;
280
+ this.slice_from("p");
281
+ break lab12;
282
+ }
283
+ this.c = v_13;
284
+ this.slice_del();
285
+ }
286
+ break;
287
+ }
288
+ }
289
+ const v_15 = this.c;
290
+ lab14: {
291
+ const v_16 = this.c;
292
+ if (
293
+ /**@type {boolean}*/
294
+ this.#I_measure < 3
295
+ ) break lab14;
296
+ this.limit_backward = this.c;
297
+ this.c = this.limit;
298
+ if (!this.#r_remove_suffix()) break lab14;
299
+ this.c = this.limit_backward;
300
+ this.c = v_16;
301
+ if (
302
+ /**@type {boolean}*/
303
+ this.#I_measure < 3
304
+ ) break lab14;
305
+ if (!this.#r_remove_second_order_prefix()) break lab14;
306
+ }
307
+ this.c = v_15;
308
+ this.c = v_6;
309
+ break lab4;
139
310
  }
140
- } else {
141
- word = afterPrefix;
142
- prefixType = withPrefix.prefixType;
143
- const suffixResult = removeDerivationalSuffix(word, prefixType);
144
- if (suffixResult !== word && countVowels(suffixResult) >= 2) {
145
- word = suffixResult;
311
+ this.c = v_5;
312
+ const v_17 = this.c;
313
+ this.#r_remove_second_order_prefix();
314
+ this.c = v_17;
315
+ const v_18 = this.c;
316
+ lab15: {
317
+ if (
318
+ /**@type {boolean}*/
319
+ this.#I_measure < 3
320
+ ) break lab15;
321
+ this.limit_backward = this.c;
322
+ this.c = this.limit;
323
+ if (!this.#r_remove_suffix()) break lab15;
324
+ this.c = this.limit_backward;
146
325
  }
326
+ this.c = v_18;
147
327
  }
328
+ return true;
148
329
  }
149
- return word;
330
+ stem(input) {
331
+ this.setCurrent(input);
332
+ this.#stem();
333
+ return this.getCurrent();
334
+ }
335
+ };
336
+ var shared = new IndonesianStemmer();
337
+ function stem(token) {
338
+ return shared.stem(token);
150
339
  }
340
+
341
+ // src/languages/indonesian.ts
151
342
  var stopWords = /* @__PURE__ */ new Set([
152
343
  "ada",
153
344
  "adalah",
@@ -888,9 +1079,10 @@ var stopWords = /* @__PURE__ */ new Set([
888
1079
  ]);
889
1080
  var indonesian = {
890
1081
  name: "indonesian",
1082
+ revision: "c0b2b853663a1396",
891
1083
  stemmer: stem,
892
1084
  stopWords,
893
- tokenizer: { splitPattern: /[^a-z0-9]+/gi }
1085
+ tokenizer: { splitPattern: /[^a-z0-9-]+/gi }
894
1086
  };
895
1087
 
896
1088
  export { indonesian };