@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,123 +1,222 @@
1
- // src/languages/danish.ts
2
- var VOWELS = "aeiouy\xE5\xE6\xF8";
3
- var S_ENDINGS = "abcdfghjklmnoprtvyz\xE5";
4
- var STEP1_SUFFIXES = [
5
- "erendes",
6
- "hedens",
7
- "erende",
8
- "erens",
9
- "endes",
10
- "ernes",
11
- "enes",
12
- "eres",
13
- "erets",
14
- "heder",
15
- "ethed",
16
- "erede",
17
- "heden",
18
- "ered",
19
- "erer",
20
- "ende",
21
- "erne",
22
- "ene",
23
- "ere",
24
- "eren",
25
- "heds",
26
- "eret",
27
- "ens",
28
- "ers",
29
- "ets",
30
- "hed",
31
- "en",
32
- "er",
33
- "es",
34
- "et",
35
- "e"
1
+ import { removeMarks } from '../chunk-KH3YGMVT.mjs';
2
+ import { withNormalisedSpellings } from '../chunk-GHJWC2E5.mjs';
3
+ import { BaseStemmer } from '../chunk-U2BKYEC7.mjs';
4
+
5
+ // src/languages/snowball/danish.ts
6
+ var a_0 = [
7
+ ["hed", 1],
8
+ ["ethed", 1, 1],
9
+ ["ered", 1],
10
+ ["e", 1],
11
+ ["erede", 1, 1],
12
+ ["ende", 1, 2],
13
+ ["erende", 1, 1],
14
+ ["ene", 1, 4],
15
+ ["erne", 1, 5],
16
+ ["ere", 1, 6],
17
+ ["en", 1],
18
+ ["heden", 1, 1],
19
+ ["eren", 1, 2],
20
+ ["er", 1],
21
+ ["heder", 1, 1],
22
+ ["erer", 1, 2],
23
+ ["s", 2],
24
+ ["heds", 1, 1],
25
+ ["es", 1, 2],
26
+ ["endes", 1, 1],
27
+ ["erendes", 1, 1],
28
+ ["enes", 1, 3],
29
+ ["ernes", 1, 4],
30
+ ["eres", 1, 5],
31
+ ["ens", 1, 8],
32
+ ["hedens", 1, 1],
33
+ ["erens", 1, 2],
34
+ ["ers", 1, 11],
35
+ ["ets", 1, 12],
36
+ ["erets", 1, 1],
37
+ ["et", 1],
38
+ ["eret", 1, 1]
36
39
  ];
37
- var UNDOUBLE_PAIRS = ["gd", "dt", "gt", "kt"];
38
- var STEP3_SUFFIXES = [
39
- { text: "elig", replacement: null },
40
- { text: "l\xF8st", replacement: "l\xF8s" },
41
- { text: "lig", replacement: null },
42
- { text: "els", replacement: null },
43
- { text: "ig", replacement: null }
40
+ var a_1 = [
41
+ ["gd", -1],
42
+ ["dt", -1],
43
+ ["gt", -1],
44
+ ["kt", -1]
44
45
  ];
45
- function isVowel(ch) {
46
- return VOWELS.includes(ch);
47
- }
48
- function isConsonant(ch) {
49
- return ch.length === 1 && !isVowel(ch);
50
- }
51
- function computeR1(word) {
52
- let foundVowel = false;
53
- for (let i = 0; i < word.length; i++) {
54
- if (foundVowel && !isVowel(word[i])) {
55
- return Math.max(i + 1, 3);
56
- }
57
- if (isVowel(word[i])) {
58
- foundVowel = true;
46
+ var a_2 = [
47
+ ["ig", 1],
48
+ ["lig", 1, 1],
49
+ ["elig", 1, 1],
50
+ ["els", 1],
51
+ ["l\xF8st", 2]
52
+ ];
53
+ var g_undouble_c = [53, 94, 7];
54
+ var g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128];
55
+ var g_s_ending = [1, 0, 0, 0, 0, 0, 0, 188, 251, 171, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64];
56
+ var DanishStemmer = class extends BaseStemmer {
57
+ #I_p1 = 0;
58
+ #r_consonant_pair() {
59
+ const v_1 = this.limit - this.c;
60
+ if (this.c < this.#I_p1) return false;
61
+ const v_2 = this.limit_backward;
62
+ this.limit_backward = this.#I_p1;
63
+ this.ket = this.c;
64
+ if (this.find_among_b(a_1) === 0) {
65
+ this.limit_backward = v_2;
66
+ return false;
59
67
  }
68
+ this.bra = this.c;
69
+ this.limit_backward = v_2;
70
+ this.c = this.limit - v_1;
71
+ if (this.c <= this.limit_backward) return false;
72
+ this.c--;
73
+ this.bra = this.c;
74
+ this.slice_del();
75
+ return true;
60
76
  }
61
- return word.length;
62
- }
63
- function step1(word, r1) {
64
- for (const suffix of STEP1_SUFFIXES) {
65
- if (word.endsWith(suffix) && word.length - suffix.length >= r1) {
66
- return word.slice(0, -suffix.length);
77
+ #stem() {
78
+ let a;
79
+ let S_ch;
80
+ this.#I_p1 = this.limit;
81
+ const v_1 = this.c;
82
+ lab0: {
83
+ lab1: {
84
+ const v_2 = this.c;
85
+ lab2: {
86
+ while (true) {
87
+ lab4: {
88
+ if (!this.eq_s("'")) break lab4;
89
+ break;
90
+ }
91
+ if (this.c >= this.limit) break lab2;
92
+ this.c++;
93
+ }
94
+ break lab1;
95
+ }
96
+ this.c = v_2;
97
+ if (!this.go_out_grouping(g_v, 97, 248)) break lab0;
98
+ this.c++;
99
+ if (!this.go_in_grouping(g_v, 97, 248)) break lab0;
100
+ this.c++;
101
+ }
102
+ this.#I_p1 = this.c;
67
103
  }
68
- }
69
- if (word.endsWith("s") && word.length - 1 >= r1) {
70
- const preceding = word[word.length - 2];
71
- if (preceding && S_ENDINGS.includes(preceding)) {
72
- return word.slice(0, -1);
104
+ this.c = v_1;
105
+ const v_3 = this.c;
106
+ if (this.c + 3 > this.limit) return false;
107
+ this.c += 3;
108
+ lab5: {
109
+ if (
110
+ /**@type {boolean}*/
111
+ this.#I_p1 >= this.c
112
+ ) break lab5;
113
+ this.#I_p1 = this.c;
73
114
  }
74
- }
75
- return word;
76
- }
77
- function undouble(word, r1) {
78
- if (word.length < r1) return word;
79
- for (const pair of UNDOUBLE_PAIRS) {
80
- if (word.endsWith(pair)) {
81
- return word.slice(0, -1);
115
+ this.c = v_3;
116
+ this.limit_backward = this.c;
117
+ this.c = this.limit;
118
+ const v_4 = this.limit - this.c;
119
+ lab6: {
120
+ if (this.c < this.#I_p1) break lab6;
121
+ const v_5 = this.limit_backward;
122
+ this.limit_backward = this.#I_p1;
123
+ this.ket = this.c;
124
+ a = this.find_among_b(a_0);
125
+ if (a === 0) {
126
+ this.limit_backward = v_5;
127
+ break lab6;
128
+ }
129
+ this.bra = this.c;
130
+ this.limit_backward = v_5;
131
+ switch (a) {
132
+ case 1: {
133
+ this.slice_del();
134
+ break;
135
+ }
136
+ case 2: {
137
+ if (!this.in_grouping_b(g_s_ending, 39, 229)) break lab6;
138
+ this.slice_del();
139
+ break;
140
+ }
141
+ }
82
142
  }
83
- }
84
- return word;
85
- }
86
- function step3(word, r1) {
87
- if (word.endsWith("igst")) {
88
- word = word.slice(0, -2);
89
- }
90
- for (const { text, replacement } of STEP3_SUFFIXES) {
91
- if (word.endsWith(text) && word.length - text.length >= r1) {
92
- if (replacement !== null) {
93
- return word.slice(0, -text.length) + replacement;
143
+ this.c = this.limit - v_4;
144
+ const v_6 = this.limit - this.c;
145
+ this.#r_consonant_pair();
146
+ this.c = this.limit - v_6;
147
+ const v_7 = this.limit - this.c;
148
+ lab7: {
149
+ const v_8 = this.limit - this.c;
150
+ lab8: {
151
+ this.ket = this.c;
152
+ if (!this.eq_s_b("st")) break lab8;
153
+ this.bra = this.c;
154
+ if (!this.eq_s_b("ig")) break lab8;
155
+ this.slice_del();
156
+ }
157
+ this.c = this.limit - v_8;
158
+ if (this.c < this.#I_p1) break lab7;
159
+ const v_9 = this.limit_backward;
160
+ this.limit_backward = this.#I_p1;
161
+ this.ket = this.c;
162
+ a = this.find_among_b(a_2);
163
+ if (a === 0) {
164
+ this.limit_backward = v_9;
165
+ break lab7;
166
+ }
167
+ this.bra = this.c;
168
+ this.limit_backward = v_9;
169
+ switch (a) {
170
+ case 1: {
171
+ this.slice_del();
172
+ const v_10 = this.limit - this.c;
173
+ this.#r_consonant_pair();
174
+ this.c = this.limit - v_10;
175
+ break;
176
+ }
177
+ case 2: {
178
+ this.slice_from("l\xF8s");
179
+ break;
180
+ }
181
+ }
182
+ }
183
+ this.c = this.limit - v_7;
184
+ const v_11 = this.limit - this.c;
185
+ lab9: {
186
+ if (this.c < this.#I_p1) break lab9;
187
+ const v_12 = this.limit_backward;
188
+ this.limit_backward = this.#I_p1;
189
+ this.ket = this.c;
190
+ if (!this.in_grouping_b(g_undouble_c, 98, 116)) {
191
+ this.limit_backward = v_12;
192
+ break lab9;
94
193
  }
95
- word = word.slice(0, -text.length);
96
- word = undouble(word, r1);
97
- return word;
194
+ this.bra = this.c;
195
+ S_ch = this.slice_to();
196
+ this.limit_backward = v_12;
197
+ if (!this.eq_s_b(S_ch)) break lab9;
198
+ this.slice_del();
98
199
  }
200
+ this.c = this.limit - v_11;
201
+ this.ket = this.c;
202
+ if (!this.eq_s_b("'")) return false;
203
+ this.bra = this.c;
204
+ this.slice_del();
205
+ this.c = this.limit_backward;
206
+ return true;
99
207
  }
100
- return word;
101
- }
102
- function step4(word, r1) {
103
- if (word.length < 2 || word.length <= r1) return word;
104
- const last = word[word.length - 1];
105
- const secondLast = word[word.length - 2];
106
- if (isConsonant(last) && last === secondLast) {
107
- return word.slice(0, -1);
208
+ stem(input) {
209
+ this.setCurrent(input);
210
+ this.#stem();
211
+ return this.getCurrent();
108
212
  }
109
- return word;
110
- }
111
- function stem(word) {
112
- if (word.length < 3) return word;
113
- word = word.toLowerCase();
114
- const r1 = computeR1(word);
115
- word = step1(word, r1);
116
- word = undouble(word, r1);
117
- word = step3(word, r1);
118
- word = step4(word, r1);
119
- return word;
213
+ };
214
+ var shared = new DanishStemmer();
215
+ function stem(token) {
216
+ return shared.stem(token);
120
217
  }
218
+
219
+ // src/languages/danish.ts
121
220
  var stopWords = /* @__PURE__ */ new Set([
122
221
  "og",
123
222
  "i",
@@ -214,11 +313,17 @@ var stopWords = /* @__PURE__ */ new Set([
214
313
  "jer",
215
314
  "s\xE5dan"
216
315
  ]);
316
+ var STRESS_ACCENT = /\u0301/g;
317
+ function normalize(token) {
318
+ return removeMarks(token, STRESS_ACCENT);
319
+ }
217
320
  var danish = {
218
321
  name: "danish",
322
+ revision: "4337c6ed283fa798",
219
323
  stemmer: stem,
220
- stopWords,
221
- tokenizer: { splitPattern: /[^a-z0-9æøå]+/gi }
324
+ stopWords: withNormalisedSpellings(stopWords, normalize),
325
+ normalizer: normalize,
326
+ tokenizer: { splitPattern: /[^a-z0-9æøåé]+/gi }
222
327
  };
223
328
 
224
329
  export { danish };
@@ -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
+ * Dutch analysis: the Snowball stemmer, the stop word list, and the rules
5
+ * that split Dutch text into tokens.
6
+ *
7
+ * Import it and pass it to {@link registerLanguage} before you create an index
8
+ * whose `language` is `dutch`.
9
+ *
10
+ * @public
11
+ */
3
12
  declare const dutch: LanguageModule;
4
13
 
5
14
  export { dutch };