webpeel 0.15.2 → 0.16.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 (68) hide show
  1. package/README.md +2 -2
  2. package/dist/cli-auth.d.ts.map +1 -1
  3. package/dist/cli-auth.js +5 -0
  4. package/dist/cli-auth.js.map +1 -1
  5. package/dist/cli.js +43 -11
  6. package/dist/cli.js.map +1 -1
  7. package/dist/core/crawler.d.ts +2 -0
  8. package/dist/core/crawler.d.ts.map +1 -1
  9. package/dist/core/crawler.js +12 -3
  10. package/dist/core/crawler.js.map +1 -1
  11. package/dist/core/pipeline.d.ts +1 -0
  12. package/dist/core/pipeline.d.ts.map +1 -1
  13. package/dist/core/pipeline.js +63 -2
  14. package/dist/core/pipeline.js.map +1 -1
  15. package/dist/core/quick-answer.d.ts +26 -0
  16. package/dist/core/quick-answer.d.ts.map +1 -1
  17. package/dist/core/quick-answer.js +451 -84
  18. package/dist/core/quick-answer.js.map +1 -1
  19. package/dist/core/stemmer.d.ts +39 -0
  20. package/dist/core/stemmer.d.ts.map +1 -0
  21. package/dist/core/stemmer.js +510 -0
  22. package/dist/core/stemmer.js.map +1 -0
  23. package/dist/core/synonyms.d.ts +43 -0
  24. package/dist/core/synonyms.d.ts.map +1 -0
  25. package/dist/core/synonyms.js +185 -0
  26. package/dist/core/synonyms.js.map +1 -0
  27. package/dist/server/app.d.ts +1 -0
  28. package/dist/server/app.d.ts.map +1 -1
  29. package/dist/server/app.js +76 -10
  30. package/dist/server/app.js.map +1 -1
  31. package/dist/server/middleware/auth.d.ts +2 -1
  32. package/dist/server/middleware/auth.d.ts.map +1 -1
  33. package/dist/server/middleware/auth.js +25 -12
  34. package/dist/server/middleware/auth.js.map +1 -1
  35. package/dist/server/middleware/rate-limit.d.ts +1 -0
  36. package/dist/server/middleware/rate-limit.d.ts.map +1 -1
  37. package/dist/server/middleware/rate-limit.js +20 -11
  38. package/dist/server/middleware/rate-limit.js.map +1 -1
  39. package/dist/server/routes/batch.d.ts.map +1 -1
  40. package/dist/server/routes/batch.js +126 -1
  41. package/dist/server/routes/batch.js.map +1 -1
  42. package/dist/server/routes/fetch.d.ts +1 -0
  43. package/dist/server/routes/fetch.d.ts.map +1 -1
  44. package/dist/server/routes/fetch.js +193 -55
  45. package/dist/server/routes/fetch.js.map +1 -1
  46. package/dist/server/routes/jobs.d.ts.map +1 -1
  47. package/dist/server/routes/jobs.js +115 -2
  48. package/dist/server/routes/jobs.js.map +1 -1
  49. package/dist/server/routes/mcp.d.ts +1 -0
  50. package/dist/server/routes/mcp.d.ts.map +1 -1
  51. package/dist/server/routes/mcp.js +10 -4
  52. package/dist/server/routes/mcp.js.map +1 -1
  53. package/dist/server/types.d.ts +16 -0
  54. package/dist/server/types.d.ts.map +1 -0
  55. package/dist/server/types.js +8 -0
  56. package/dist/server/types.js.map +1 -0
  57. package/dist/server/utils/response.d.ts +45 -0
  58. package/dist/server/utils/response.d.ts.map +1 -0
  59. package/dist/server/utils/response.js +70 -0
  60. package/dist/server/utils/response.js.map +1 -0
  61. package/dist/server/utils/sse.d.ts +23 -0
  62. package/dist/server/utils/sse.d.ts.map +1 -0
  63. package/dist/server/utils/sse.js +39 -0
  64. package/dist/server/utils/sse.js.map +1 -0
  65. package/dist/types.d.ts +2 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/types.js.map +1 -1
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quick-answer.js","sourceRoot":"","sources":["../../src/core/quick-answer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quick-answer.js","sourceRoot":"","sources":["../../src/core/quick-answer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Porter Stemmer — Lightweight implementation of the Porter stemming algorithm.
3
+ *
4
+ * Based on: Martin Porter, "An algorithm for suffix stripping", 1980.
5
+ * Reference: https://tartarus.org/martin/PorterStemmer/
6
+ *
7
+ * This is a well-tested, deterministic implementation with no external dependencies.
8
+ * It correctly handles all standard Porter stemmer rules including steps 1a-5b.
9
+ */
10
+ /**
11
+ * Irregular verb forms → base form.
12
+ * Porter stemmer only handles regular morphology (-ed, -ing, -s).
13
+ * English has ~200 irregular verbs; we cover the most common ones.
14
+ * This table normalizes irregular forms before stemming so that
15
+ * "built" → "build" → stem("build") = "build" matches stem("build").
16
+ *
17
+ * Ambiguous words are intentionally excluded:
18
+ * "found" — could be find (past) OR establish (base form "found a company")
19
+ * "left" — could be leave (past) OR direction
20
+ * "bore"/"borne"/"born" — could be bear (past) OR bore=boring OR born=birth
21
+ * "bound" — could be bind (past) OR boundary (noun)
22
+ */
23
+ export declare const IRREGULAR_FORMS: Record<string, string>;
24
+ /**
25
+ * Stem a single word using the Porter stemming algorithm.
26
+ *
27
+ * Returns the stemmed word (lowercase). Input is also lowercased.
28
+ * Words shorter than 3 characters are returned as-is.
29
+ *
30
+ * Irregular verb forms (e.g. "built", "ran", "spoke") are first normalized
31
+ * to their base form before Porter steps are applied, ensuring that
32
+ * stem("built") === stem("build"), stem("spoke") === stem("speak"), etc.
33
+ */
34
+ export declare function stem(word: string): string;
35
+ /**
36
+ * Stem an array of tokens.
37
+ */
38
+ export declare function stemTokens(tokens: string[]): string[];
39
+ //# sourceMappingURL=stemmer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stemmer.d.ts","sourceRoot":"","sources":["../../src/core/stemmer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmTH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyKlD,CAAC;AAMF;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBzC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAErD"}
@@ -0,0 +1,510 @@
1
+ /**
2
+ * Porter Stemmer — Lightweight implementation of the Porter stemming algorithm.
3
+ *
4
+ * Based on: Martin Porter, "An algorithm for suffix stripping", 1980.
5
+ * Reference: https://tartarus.org/martin/PorterStemmer/
6
+ *
7
+ * This is a well-tested, deterministic implementation with no external dependencies.
8
+ * It correctly handles all standard Porter stemmer rules including steps 1a-5b.
9
+ */
10
+ // ---------------------------------------------------------------------------
11
+ // Vowel / consonant helpers
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * Returns true if character at position i in word is a vowel.
15
+ * 'y' is treated as a vowel when preceded by a consonant.
16
+ */
17
+ function isVowelAt(word, i) {
18
+ const c = word[i];
19
+ if ('aeiou'.includes(c))
20
+ return true;
21
+ if (c === 'y' && i > 0 && !isVowelAt(word, i - 1))
22
+ return true;
23
+ return false;
24
+ }
25
+ /**
26
+ * Compute the "measure" m of a string stem.
27
+ * m = number of VC (vowel-then-consonant) transitions.
28
+ * The pattern is: [C](VC)^m[V]
29
+ */
30
+ function getMeasure(stem) {
31
+ let m = 0;
32
+ let inVowel = false;
33
+ for (let i = 0; i < stem.length; i++) {
34
+ const v = isVowelAt(stem, i);
35
+ if (inVowel && !v) {
36
+ m++;
37
+ inVowel = false;
38
+ }
39
+ else if (!inVowel && v) {
40
+ inVowel = true;
41
+ }
42
+ }
43
+ return m;
44
+ }
45
+ /** Returns true if the stem contains at least one vowel. */
46
+ function containsVowel(stem) {
47
+ for (let i = 0; i < stem.length; i++) {
48
+ if (isVowelAt(stem, i))
49
+ return true;
50
+ }
51
+ return false;
52
+ }
53
+ /** Returns true if the stem ends in a double consonant (same consonant twice). */
54
+ function endsDoubleConsonant(stem) {
55
+ const n = stem.length;
56
+ if (n < 2)
57
+ return false;
58
+ return stem[n - 1] === stem[n - 2] && !isVowelAt(stem, n - 1);
59
+ }
60
+ /**
61
+ * Returns true if stem ends in CVC where the final C is not W, X, or Y.
62
+ * This is the "*o" condition in Porter's paper.
63
+ */
64
+ function endsCVC(stem) {
65
+ const n = stem.length;
66
+ if (n < 3)
67
+ return false;
68
+ const c3 = stem[n - 1];
69
+ return (!isVowelAt(stem, n - 1) &&
70
+ isVowelAt(stem, n - 2) &&
71
+ !isVowelAt(stem, n - 3) &&
72
+ c3 !== 'w' && c3 !== 'x' && c3 !== 'y');
73
+ }
74
+ // ---------------------------------------------------------------------------
75
+ // Step 1a — Plurals
76
+ // ---------------------------------------------------------------------------
77
+ function step1a(word) {
78
+ if (word.endsWith('sses')) {
79
+ return word.slice(0, -2); // caresses → caress
80
+ }
81
+ if (word.endsWith('ies')) {
82
+ return word.slice(0, -2); // ponies → poni
83
+ }
84
+ if (word.endsWith('ss')) {
85
+ return word; // caress → caress (no change)
86
+ }
87
+ if (word.endsWith('s') && word.length > 1) {
88
+ return word.slice(0, -1); // cats → cat
89
+ }
90
+ return word;
91
+ }
92
+ // ---------------------------------------------------------------------------
93
+ // Step 1b — Past tenses / gerunds
94
+ // ---------------------------------------------------------------------------
95
+ function step1bFixup(word) {
96
+ // AT → ATE
97
+ if (word.endsWith('at'))
98
+ return word + 'e'; // conflated → conflate
99
+ // BL → BLE
100
+ if (word.endsWith('bl'))
101
+ return word + 'e'; // troubled → trouble
102
+ // IZ → IZE
103
+ if (word.endsWith('iz'))
104
+ return word + 'e'; // sized → size
105
+ // Double consonant (not L, S, Z) → remove one
106
+ if (endsDoubleConsonant(word) &&
107
+ !word.endsWith('ll') &&
108
+ !word.endsWith('ss') &&
109
+ !word.endsWith('zz')) {
110
+ return word.slice(0, -1); // hopping → hop, tapping → tap
111
+ }
112
+ // m=1 and CVC (*o) → add E
113
+ if (getMeasure(word) === 1 && endsCVC(word)) {
114
+ return word + 'e'; // failing → fail handled differently... wait
115
+ // filing → file: after removing ING we get "fil" → m=1 and *o → add E → "file"
116
+ }
117
+ return word;
118
+ }
119
+ function step1b(word) {
120
+ // (m>0) EED → EE
121
+ if (word.endsWith('eed')) {
122
+ const stem = word.slice(0, -3);
123
+ if (getMeasure(stem) > 0) {
124
+ return word.slice(0, -1); // agreed → agre, feed → feed
125
+ }
126
+ return word;
127
+ }
128
+ // (*v*) ED → delete + fixup
129
+ if (word.endsWith('ed')) {
130
+ const stem = word.slice(0, -2);
131
+ if (containsVowel(stem)) {
132
+ return step1bFixup(stem);
133
+ }
134
+ return word;
135
+ }
136
+ // (*v*) ING → delete + fixup
137
+ if (word.endsWith('ing')) {
138
+ const stem = word.slice(0, -3);
139
+ if (containsVowel(stem)) {
140
+ return step1bFixup(stem);
141
+ }
142
+ return word;
143
+ }
144
+ return word;
145
+ }
146
+ // ---------------------------------------------------------------------------
147
+ // Step 1c — y → i
148
+ // ---------------------------------------------------------------------------
149
+ function step1c(word) {
150
+ if (word.endsWith('y') && word.length > 2) {
151
+ const stem = word.slice(0, -1);
152
+ if (containsVowel(stem)) {
153
+ return stem + 'i'; // happy → happi
154
+ }
155
+ }
156
+ return word;
157
+ }
158
+ // ---------------------------------------------------------------------------
159
+ // Step 2 — Suffix removal (m > 0)
160
+ // ---------------------------------------------------------------------------
161
+ const STEP2_RULES = [
162
+ ['ational', 'ate'],
163
+ ['tional', 'tion'],
164
+ ['enci', 'ence'],
165
+ ['anci', 'ance'],
166
+ ['izer', 'ize'],
167
+ ['abli', 'able'],
168
+ ['alli', 'al'],
169
+ ['entli', 'ent'],
170
+ ['eli', 'e'],
171
+ ['ousli', 'ous'],
172
+ ['ization', 'ize'],
173
+ ['ation', 'ate'],
174
+ ['ator', 'ate'],
175
+ ['alism', 'al'],
176
+ ['iveness', 'ive'],
177
+ ['fulness', 'ful'],
178
+ ['ousness', 'ous'],
179
+ ['aliti', 'al'],
180
+ ['iviti', 'ive'],
181
+ ['biliti', 'ble'],
182
+ ];
183
+ function step2(word) {
184
+ for (const [suffix, replacement] of STEP2_RULES) {
185
+ if (word.endsWith(suffix)) {
186
+ const stem = word.slice(0, -suffix.length);
187
+ if (getMeasure(stem) > 0) {
188
+ return stem + replacement;
189
+ }
190
+ return word;
191
+ }
192
+ }
193
+ return word;
194
+ }
195
+ // ---------------------------------------------------------------------------
196
+ // Step 3 — Suffix removal (m > 0)
197
+ // ---------------------------------------------------------------------------
198
+ const STEP3_RULES = [
199
+ ['icate', 'ic'],
200
+ ['ative', ''],
201
+ ['alize', 'al'],
202
+ ['iciti', 'ic'],
203
+ ['ical', 'ic'],
204
+ ['ful', ''],
205
+ ['ness', ''],
206
+ ];
207
+ function step3(word) {
208
+ for (const [suffix, replacement] of STEP3_RULES) {
209
+ if (word.endsWith(suffix)) {
210
+ const stem = word.slice(0, -suffix.length);
211
+ if (getMeasure(stem) > 0) {
212
+ return stem + replacement;
213
+ }
214
+ return word;
215
+ }
216
+ }
217
+ return word;
218
+ }
219
+ // ---------------------------------------------------------------------------
220
+ // Step 4 — Suffix removal (m > 1)
221
+ // ---------------------------------------------------------------------------
222
+ const STEP4_RULES = [
223
+ ['ement', ''],
224
+ ['ment', ''],
225
+ ['ance', ''],
226
+ ['ence', ''],
227
+ ['able', ''],
228
+ ['ible', ''],
229
+ ['ism', ''],
230
+ ['ate', ''],
231
+ ['iti', ''],
232
+ ['ous', ''],
233
+ ['ive', ''],
234
+ ['ize', ''],
235
+ ['ant', ''],
236
+ ['ent', ''],
237
+ ['al', ''],
238
+ ['er', ''],
239
+ ['ic', ''],
240
+ ['ou', ''],
241
+ ];
242
+ function step4(word) {
243
+ // Special case: ION — stem must end in S or T
244
+ if (word.endsWith('ion')) {
245
+ const stem = word.slice(0, -3);
246
+ if (getMeasure(stem) > 1 && (stem.endsWith('s') || stem.endsWith('t'))) {
247
+ return stem;
248
+ }
249
+ return word;
250
+ }
251
+ for (const [suffix, replacement] of STEP4_RULES) {
252
+ if (word.endsWith(suffix)) {
253
+ const stem = word.slice(0, -suffix.length);
254
+ if (getMeasure(stem) > 1) {
255
+ return stem + replacement;
256
+ }
257
+ return word;
258
+ }
259
+ }
260
+ return word;
261
+ }
262
+ // ---------------------------------------------------------------------------
263
+ // Step 5a — Final E removal
264
+ // ---------------------------------------------------------------------------
265
+ function step5a(word) {
266
+ if (word.endsWith('e')) {
267
+ const stem = word.slice(0, -1);
268
+ const m = getMeasure(stem);
269
+ if (m > 1)
270
+ return stem;
271
+ if (m === 1 && !endsCVC(stem))
272
+ return stem;
273
+ }
274
+ return word;
275
+ }
276
+ // ---------------------------------------------------------------------------
277
+ // Step 5b — Double L removal
278
+ // ---------------------------------------------------------------------------
279
+ function step5b(word) {
280
+ if (word.endsWith('ll') && getMeasure(word) > 1) {
281
+ return word.slice(0, -1);
282
+ }
283
+ return word;
284
+ }
285
+ // ---------------------------------------------------------------------------
286
+ // Irregular verb forms table
287
+ // ---------------------------------------------------------------------------
288
+ /**
289
+ * Irregular verb forms → base form.
290
+ * Porter stemmer only handles regular morphology (-ed, -ing, -s).
291
+ * English has ~200 irregular verbs; we cover the most common ones.
292
+ * This table normalizes irregular forms before stemming so that
293
+ * "built" → "build" → stem("build") = "build" matches stem("build").
294
+ *
295
+ * Ambiguous words are intentionally excluded:
296
+ * "found" — could be find (past) OR establish (base form "found a company")
297
+ * "left" — could be leave (past) OR direction
298
+ * "bore"/"borne"/"born" — could be bear (past) OR bore=boring OR born=birth
299
+ * "bound" — could be bind (past) OR boundary (noun)
300
+ */
301
+ export const IRREGULAR_FORMS = {
302
+ // build
303
+ 'built': 'build',
304
+ // run
305
+ 'ran': 'run',
306
+ // make
307
+ 'made': 'make',
308
+ // write
309
+ 'wrote': 'write', 'written': 'write',
310
+ // begin
311
+ 'began': 'begin', 'begun': 'begin',
312
+ // give
313
+ 'gave': 'give', 'given': 'give',
314
+ // take
315
+ 'took': 'take', 'taken': 'take',
316
+ // go
317
+ 'went': 'go', 'gone': 'go',
318
+ // come
319
+ 'came': 'come',
320
+ // see
321
+ 'saw': 'see', 'seen': 'see',
322
+ // know
323
+ 'knew': 'know', 'known': 'know',
324
+ // think
325
+ 'thought': 'think',
326
+ // tell
327
+ 'told': 'tell',
328
+ // say
329
+ 'said': 'say',
330
+ // get
331
+ 'got': 'get', 'gotten': 'get',
332
+ // buy
333
+ 'bought': 'buy',
334
+ // bring
335
+ 'brought': 'bring',
336
+ // send
337
+ 'sent': 'send',
338
+ // spend
339
+ 'spent': 'spend',
340
+ // keep
341
+ 'kept': 'keep',
342
+ // hold
343
+ 'held': 'hold',
344
+ // stand
345
+ 'stood': 'stand',
346
+ // lose
347
+ 'lost': 'lose',
348
+ // pay
349
+ 'paid': 'pay',
350
+ // meet
351
+ 'met': 'meet',
352
+ // lead
353
+ 'led': 'lead',
354
+ // grow
355
+ 'grew': 'grow', 'grown': 'grow',
356
+ // draw
357
+ 'drew': 'draw', 'drawn': 'draw',
358
+ // break
359
+ 'broke': 'break', 'broken': 'break',
360
+ // speak
361
+ 'spoke': 'speak', 'spoken': 'speak',
362
+ // choose
363
+ 'chose': 'choose', 'chosen': 'choose',
364
+ // fall
365
+ 'fell': 'fall', 'fallen': 'fall',
366
+ // drive
367
+ 'drove': 'drive', 'driven': 'drive',
368
+ // rise
369
+ 'rose': 'rise', 'risen': 'rise',
370
+ // fly
371
+ 'flew': 'fly', 'flown': 'fly',
372
+ // throw
373
+ 'threw': 'throw', 'thrown': 'throw',
374
+ // wear
375
+ 'wore': 'wear', 'worn': 'wear',
376
+ // hide
377
+ 'hid': 'hide', 'hidden': 'hide',
378
+ // sit
379
+ 'sat': 'sit',
380
+ // swim
381
+ 'swam': 'swim', 'swum': 'swim',
382
+ // sing
383
+ 'sang': 'sing', 'sung': 'sing',
384
+ // ring
385
+ 'rang': 'ring', 'rung': 'ring',
386
+ // drink
387
+ 'drank': 'drink', 'drunk': 'drink',
388
+ // wake
389
+ 'woke': 'wake', 'woken': 'wake',
390
+ // freeze
391
+ 'froze': 'freeze', 'frozen': 'freeze',
392
+ // steal
393
+ 'stole': 'steal', 'stolen': 'steal',
394
+ // tear
395
+ 'tore': 'tear', 'torn': 'tear',
396
+ // shake
397
+ 'shook': 'shake', 'shaken': 'shake',
398
+ // forgive
399
+ 'forgave': 'forgive', 'forgiven': 'forgive',
400
+ // forget
401
+ 'forgot': 'forget', 'forgotten': 'forget',
402
+ // bite
403
+ 'bit': 'bite', 'bitten': 'bite',
404
+ // blow
405
+ 'blew': 'blow', 'blown': 'blow',
406
+ // catch
407
+ 'caught': 'catch',
408
+ // teach
409
+ 'taught': 'teach',
410
+ // fight
411
+ 'fought': 'fight',
412
+ // seek
413
+ 'sought': 'seek',
414
+ // sell
415
+ 'sold': 'sell',
416
+ // win
417
+ 'won': 'win',
418
+ // feed
419
+ 'fed': 'feed',
420
+ // feel
421
+ 'felt': 'feel',
422
+ // mean
423
+ 'meant': 'mean',
424
+ // lend
425
+ 'lent': 'lend',
426
+ // bend
427
+ 'bent': 'bend',
428
+ // dig
429
+ 'dug': 'dig',
430
+ // stick
431
+ 'stuck': 'stick',
432
+ // strike
433
+ 'struck': 'strike', 'stricken': 'strike',
434
+ // swear
435
+ 'swore': 'swear', 'sworn': 'swear',
436
+ // spin
437
+ 'spun': 'spin',
438
+ // hang
439
+ 'hung': 'hang',
440
+ // slide
441
+ 'slid': 'slide',
442
+ // shine
443
+ 'shone': 'shine',
444
+ // shoot
445
+ 'shot': 'shoot',
446
+ // sleep
447
+ 'slept': 'sleep',
448
+ // sweep
449
+ 'swept': 'sweep',
450
+ // creep
451
+ 'crept': 'creep',
452
+ // weep
453
+ 'wept': 'weep',
454
+ // deal
455
+ 'dealt': 'deal',
456
+ // dream (irregular British)
457
+ 'dreamt': 'dream',
458
+ // learn (irregular British)
459
+ 'learnt': 'learn',
460
+ // burn (irregular British)
461
+ 'burnt': 'burn',
462
+ // lean
463
+ 'leant': 'lean',
464
+ // leap
465
+ 'leapt': 'leap',
466
+ // spell
467
+ 'spelt': 'spell',
468
+ // spill
469
+ 'spilt': 'spill',
470
+ };
471
+ // ---------------------------------------------------------------------------
472
+ // Main stem function
473
+ // ---------------------------------------------------------------------------
474
+ /**
475
+ * Stem a single word using the Porter stemming algorithm.
476
+ *
477
+ * Returns the stemmed word (lowercase). Input is also lowercased.
478
+ * Words shorter than 3 characters are returned as-is.
479
+ *
480
+ * Irregular verb forms (e.g. "built", "ran", "spoke") are first normalized
481
+ * to their base form before Porter steps are applied, ensuring that
482
+ * stem("built") === stem("build"), stem("spoke") === stem("speak"), etc.
483
+ */
484
+ export function stem(word) {
485
+ if (!word)
486
+ return word;
487
+ const lower = word.toLowerCase();
488
+ // Short words: don't stem
489
+ if (lower.length <= 2)
490
+ return lower;
491
+ // Normalize irregular verb forms to base before stemming
492
+ const normalized = IRREGULAR_FORMS[lower] ?? lower;
493
+ let w = normalized;
494
+ w = step1a(w);
495
+ w = step1b(w);
496
+ w = step1c(w);
497
+ w = step2(w);
498
+ w = step3(w);
499
+ w = step4(w);
500
+ w = step5a(w);
501
+ w = step5b(w);
502
+ return w;
503
+ }
504
+ /**
505
+ * Stem an array of tokens.
506
+ */
507
+ export function stemTokens(tokens) {
508
+ return tokens.map(stem);
509
+ }
510
+ //# sourceMappingURL=stemmer.js.map