urdu-text-utils 0.1.3 → 0.1.5

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.
package/dist/index.js CHANGED
@@ -298,12 +298,51 @@ function splitWords(input) {
298
298
  if (!input) return [];
299
299
  return input.split(WORD_SPLIT_RE).map((w) => w.trim()).filter((w) => w.length > 0);
300
300
  }
301
- function countSentences(input) {
302
- return splitSentences(input).length;
301
+ var ABBREVIATIONS = [
302
+ "\u0688\u0627\u06A9\u0679\u0631",
303
+ "\u067E\u0631\u0648\u0641\u06CC\u0633\u0631",
304
+ "\u0627\u0646\u062C\u06CC\u0646\u0626\u0631",
305
+ "\u0627\u06CC\u0688\u0648\u0648\u06A9\u06CC\u0679",
306
+ "\u062C\u0646\u0627\u0628",
307
+ "\u0635\u0627\u062D\u0628",
308
+ "\u0635\u0627\u062D\u0628\u06C1",
309
+ "\u0645\u062D\u062A\u0631\u0645",
310
+ "\u0645\u062D\u062A\u0631\u0645\u06C1",
311
+ "\u0645\u0648\u0644\u0627\u0646\u0627",
312
+ "\u0645\u0641\u062A\u06CC",
313
+ "\u0639\u0644\u0627\u0645\u06C1",
314
+ "\u0628\u06CC\u06AF\u0645",
315
+ "\u0648\u063A\u06CC\u0631\u06C1",
316
+ "\u0631\u062D\u0645\u062A\u06C1",
317
+ "\u0631\u0636\u06CC",
318
+ "\u062A\u0639\u0627\u0644\u06CC",
319
+ "\u062A\u0639\u0627\u0644\u06CC\u0670",
320
+ "\u0639\u0644\u06CC\u06C1",
321
+ "\u0627\u0644\u0633\u0644\u0627\u0645",
322
+ "\u0635\u0644\u06CC",
323
+ "\u0648\u0633\u0644\u0645"
324
+ ];
325
+ var ABBREV_PATTERN = new RegExp(`(?:${ABBREVIATIONS.join("|")})[.\u06D4]`, "gu");
326
+ function countSentences(input, options) {
327
+ return splitSentences(input, options).length;
303
328
  }
304
- function splitSentences(input) {
329
+ function splitSentences(input, options = {}) {
305
330
  if (!input) return [];
306
- return input.split(SENTENCE_SPLIT_RE).map((s) => s.trim()).filter((s) => s.length > 0);
331
+ const { preserveTerminators = false } = options;
332
+ const PROTECTED_DOT = "\uE000";
333
+ const PROTECTED_URDU_FULL_STOP = "\uE001";
334
+ let sanitized = input.replace(/(\d)\.(\d)/gu, `$1${PROTECTED_DOT}$2`).replace(ABBREV_PATTERN, (match) => {
335
+ return match.replace(/\./g, PROTECTED_DOT).replace(/۔/g, PROTECTED_URDU_FULL_STOP);
336
+ });
337
+ if (preserveTerminators) {
338
+ const matches = sanitized.match(/[^۔؟?!.…]+[۔؟?!.…]+|[^۔؟?!.…]+$/gu) ?? [];
339
+ return matches.map(
340
+ (s) => s.replace(new RegExp(PROTECTED_DOT, "gu"), ".").replace(new RegExp(PROTECTED_URDU_FULL_STOP, "gu"), "\u06D4").trim()
341
+ ).filter((s) => s.length > 0);
342
+ }
343
+ return sanitized.split(SENTENCE_SPLIT_RE).map(
344
+ (s) => s.replace(new RegExp(PROTECTED_DOT, "gu"), ".").replace(new RegExp(PROTECTED_URDU_FULL_STOP, "gu"), "\u06D4").trim()
345
+ ).filter((s) => s.length > 0);
307
346
  }
308
347
  function analyzeUrdu(input) {
309
348
  const text = input ?? "";
@@ -326,6 +365,264 @@ function analyzeUrdu(input) {
326
365
  };
327
366
  }
328
367
 
368
+ // src/stopwords.ts
369
+ var URDU_STOP_WORDS = /* @__PURE__ */ new Set([
370
+ // Tense auxiliaries & copulas
371
+ "\u06C1\u06D2",
372
+ "\u06C1\u06CC\u06BA",
373
+ "\u06C1\u0648\u06BA",
374
+ "\u06C1\u0648",
375
+ "\u062A\u06BE\u0627",
376
+ "\u062A\u06BE\u06CC",
377
+ "\u062A\u06BE\u06D2",
378
+ "\u062A\u06BE\u06CC\u06BA",
379
+ "\u06C1\u0648\u06AF\u0627",
380
+ "\u06C1\u0648\u06AF\u06CC",
381
+ "\u06C1\u0648\u0646\u06AF\u06D2",
382
+ "\u06C1\u0648\u06BA\u06AF\u06D2",
383
+ "\u06C1\u0648\u0646\u0627",
384
+ "\u06C1\u0648\u0646\u06D2",
385
+ "\u06C1\u0648\u0627",
386
+ "\u06C1\u0648\u0626\u06CC",
387
+ "\u06C1\u0648\u0626\u06D2",
388
+ // Postpositions, relations & prepositions
389
+ "\u06A9\u0627",
390
+ "\u06A9\u06CC",
391
+ "\u06A9\u06D2",
392
+ "\u06A9\u0648",
393
+ "\u0646\u06D2",
394
+ "\u0633\u06D2",
395
+ "\u067E\u0631",
396
+ "\u062A\u06A9",
397
+ "\u0645\u06CC\u06BA",
398
+ "\u0644\u06CC\u06D2",
399
+ "\u0633\u0627\u062A\u06BE",
400
+ "\u0628\u063A\u06CC\u0631",
401
+ "\u0637\u0631\u062D",
402
+ "\u0637\u0631\u0641",
403
+ "\u0628\u0627\u0631\u06D2",
404
+ "\u0628\u0639\u062F",
405
+ "\u067E\u06C1\u0644\u06D2",
406
+ "\u062F\u0648\u0631\u0627\u0646",
407
+ "\u062F\u0631\u0645\u06CC\u0627\u0646",
408
+ "\u0639\u0644\u0627\u0648\u06C1",
409
+ "\u0633\u0648\u0627\u0626\u06D2",
410
+ "\u0633\u0648\u0627",
411
+ "\u0645\u0637\u0627\u0628\u0642",
412
+ "\u0628\u0627\u0639\u062B",
413
+ "\u0630\u0631\u06CC\u0639\u06D2",
414
+ "\u062A\u062D\u062A",
415
+ "\u0627\u0648\u067E\u0631",
416
+ "\u0646\u06CC\u0686\u06D2",
417
+ "\u0622\u06AF\u06D2",
418
+ "\u067E\u06CC\u0686\u06BE\u06D2",
419
+ "\u0627\u0646\u062F\u0631",
420
+ "\u0628\u0627\u06C1\u0631",
421
+ "\u067E\u0627\u0633",
422
+ "\u0642\u0631\u06CC\u0628",
423
+ "\u0646\u0632\u062F\u06CC\u06A9",
424
+ // Conjunctions & discourse markers
425
+ "\u0627\u0648\u0631",
426
+ "\u06CC\u0627",
427
+ "\u0627\u06AF\u0631",
428
+ "\u0644\u06CC\u06A9\u0646",
429
+ "\u0645\u06AF\u0631",
430
+ "\u062A\u0648",
431
+ "\u0628\u06BE\u06CC",
432
+ "\u06C1\u06CC",
433
+ "\u0646\u06C1",
434
+ "\u0646\u06C1\u06CC\u06BA",
435
+ "\u0645\u062A",
436
+ "\u0646\u0627",
437
+ "\u0628\u0644\u06A9\u06C1",
438
+ "\u062D\u0627\u0644\u0627\u0646\u06A9\u06C1",
439
+ "\u0686\u0648\u0646\u06A9\u06C1",
440
+ "\u06A9\u06CC\u0648\u0646\u06A9\u06C1",
441
+ "\u062A\u0627\u06A9\u06C1",
442
+ "\u0648\u0631\u0646\u06C1",
443
+ "\u0627\u0644\u0628\u062A\u06C1",
444
+ "\u0645\u062B\u0644\u0627\u064B",
445
+ "\u06CC\u0639\u0646\u06CC",
446
+ "\u062E\u0635\u0648\u0635\u0627\u064B",
447
+ "\u0639\u0645\u0648\u0645\u0627\u064B",
448
+ "\u0686\u0646\u0627\u0646\u0686\u06C1",
449
+ "\u062E\u0648\u0627\u06C1",
450
+ "\u0686\u0627\u06C1\u06D2",
451
+ "\u06AF\u0648\u06CC\u0627",
452
+ "\u062A\u0627\u06C1\u0645",
453
+ "\u0646\u06CC\u0632",
454
+ "\u062D\u062A\u06CC",
455
+ "\u0648\u063A\u06CC\u0631\u06C1",
456
+ "\u0635\u0631\u0641",
457
+ "\u0645\u062D\u0636",
458
+ "\u0641\u0642\u0637",
459
+ // Pronouns, determiners & question words
460
+ "\u06C1\u0645",
461
+ "\u062A\u0645",
462
+ "\u0622\u067E",
463
+ "\u0648\u06C1",
464
+ "\u06CC\u06C1",
465
+ "\u0645\u06CC\u0631\u0627",
466
+ "\u0645\u06CC\u0631\u06CC",
467
+ "\u0645\u06CC\u0631\u06D2",
468
+ "\u06C1\u0645\u0627\u0631\u0627",
469
+ "\u06C1\u0645\u0627\u0631\u06CC",
470
+ "\u06C1\u0645\u0627\u0631\u06D2",
471
+ "\u062A\u0645\u06C1\u0627\u0631\u0627",
472
+ "\u062A\u0645\u06C1\u0627\u0631\u06CC",
473
+ "\u062A\u0645\u06C1\u0627\u0631\u06D2",
474
+ "\u0622\u067E\u06A9\u0627",
475
+ "\u0622\u067E\u06A9\u06CC",
476
+ "\u0622\u067E\u06A9\u06D2",
477
+ "\u0627\u0633",
478
+ "\u0627\u0633\u06A9\u0627",
479
+ "\u0627\u0633\u06A9\u06CC",
480
+ "\u0627\u0633\u06A9\u06D2",
481
+ "\u0627\u0633\u06D2",
482
+ "\u0627\u0646",
483
+ "\u0627\u0646\u06A9\u0627",
484
+ "\u0627\u0646\u06A9\u06CC",
485
+ "\u0627\u0646\u06A9\u06D2",
486
+ "\u0627\u0646\u06C1\u06CC\u06BA",
487
+ "\u0645\u062C\u06BE\u06D2",
488
+ "\u06C1\u0645\u06CC\u06BA",
489
+ "\u062A\u0645\u06C1\u06CC\u06BA",
490
+ "\u062C\u0633",
491
+ "\u062C\u0633\u06A9\u0627",
492
+ "\u062C\u0633\u06A9\u06CC",
493
+ "\u062C\u0633\u06A9\u06D2",
494
+ "\u062C\u0633\u06D2",
495
+ "\u062C\u0646",
496
+ "\u062C\u0646\u06A9\u0627",
497
+ "\u062C\u0646\u06A9\u06CC",
498
+ "\u062C\u0646\u06A9\u06D2",
499
+ "\u062C\u0646\u06C1\u0648\u06BA",
500
+ "\u0627\u0646\u06C1\u0648\u06BA",
501
+ "\u06A9\u0633",
502
+ "\u06A9\u0633\u06A9\u0627",
503
+ "\u06A9\u0633\u06A9\u06CC",
504
+ "\u06A9\u0633\u06A9\u06D2",
505
+ "\u06A9\u0633\u06D2",
506
+ "\u06A9\u0633\u06A9\u0648",
507
+ "\u06A9\u0648\u0646",
508
+ "\u06A9\u06CC\u0627",
509
+ "\u06A9\u06C1\u0627\u06BA",
510
+ "\u06A9\u062F\u06BE\u0631",
511
+ "\u0627\u062F\u06BE\u0631",
512
+ "\u062C\u062F\u06BE\u0631",
513
+ "\u06A9\u0628",
514
+ "\u06A9\u06CC\u0648\u06BA",
515
+ "\u06A9\u06CC\u0633\u06D2",
516
+ "\u06A9\u06CC\u0633\u0627",
517
+ "\u06A9\u06CC\u0633\u06CC",
518
+ "\u06A9\u062A\u0646\u0627",
519
+ "\u06A9\u062A\u0646\u06CC",
520
+ "\u06A9\u062A\u0646\u06D2",
521
+ "\u062C\u0648",
522
+ "\u0633\u0628",
523
+ "\u0633\u0628\u06BE\u06CC",
524
+ "\u06A9\u0648\u0626\u06CC",
525
+ "\u06A9\u0686\u06BE",
526
+ "\u06C1\u0631",
527
+ "\u0627\u06CC\u06A9",
528
+ "\u0627\u067E\u0646\u0627",
529
+ "\u0627\u067E\u0646\u06CC",
530
+ "\u0627\u067E\u0646\u06D2",
531
+ "\u062E\u0648\u062F",
532
+ // Common light/auxiliary verb forms
533
+ "\u06A9\u0631\u0646\u0627",
534
+ "\u06A9\u0631\u062A\u0627",
535
+ "\u06A9\u0631\u062A\u06CC",
536
+ "\u06A9\u0631\u062A\u06D2",
537
+ "\u06A9\u0631\u06CC\u06BA",
538
+ "\u06A9\u0631\u0648",
539
+ "\u06A9\u0631",
540
+ "\u06A9\u0631\u0646\u06D2",
541
+ "\u06A9\u06CC\u06D2",
542
+ "\u062C\u0627\u0646\u0627",
543
+ "\u062C\u0627\u062A\u0627",
544
+ "\u062C\u0627\u062A\u06CC",
545
+ "\u062C\u0627\u062A\u06D2",
546
+ "\u062C\u0627\u0626\u06D2",
547
+ "\u062C\u0627\u0626\u06CC\u06BA",
548
+ "\u062C\u0627\u0624",
549
+ "\u062C\u0627",
550
+ "\u062C\u0627\u0646\u06D2",
551
+ "\u06AF\u06CC\u0627",
552
+ "\u06AF\u0626\u06CC",
553
+ "\u06AF\u0626\u06D2",
554
+ "\u0622\u0646\u0627",
555
+ "\u0622\u062A\u0627",
556
+ "\u0622\u062A\u06CC",
557
+ "\u0622\u062A\u06D2",
558
+ "\u0622\u0626\u06D2",
559
+ "\u0622\u0626\u06CC\u06BA",
560
+ "\u0622\u06CC\u0627",
561
+ "\u0622\u0626\u06CC",
562
+ "\u0622\u0646\u06D2",
563
+ "\u0622\u0624",
564
+ "\u0622",
565
+ "\u062F\u06CC\u0646\u0627",
566
+ "\u062F\u06CC\u062A\u0627",
567
+ "\u062F\u06CC\u062A\u06CC",
568
+ "\u062F\u06CC\u062A\u06D2",
569
+ "\u062F\u06CC\u0627",
570
+ "\u062F\u06CC\u06D2",
571
+ "\u062F\u06D2",
572
+ "\u062F\u0648",
573
+ "\u062F\u06CC\u06BA",
574
+ "\u062F\u06CC\u0646\u06D2",
575
+ "\u0644\u06CC\u0646\u0627",
576
+ "\u0644\u06CC\u062A\u0627",
577
+ "\u0644\u06CC\u062A\u06CC",
578
+ "\u0644\u06CC\u062A\u06D2",
579
+ "\u0644\u06CC\u0627",
580
+ "\u0644\u06D2",
581
+ "\u0644\u0648",
582
+ "\u0644\u06CC\u06BA",
583
+ "\u0644\u06CC\u0646\u06D2",
584
+ "\u0631\u06C1\u0646\u0627",
585
+ "\u0631\u06C1\u0627",
586
+ "\u0631\u06C1\u06CC",
587
+ "\u0631\u06C1\u06D2",
588
+ "\u0631\u06C1\u062A\u0627",
589
+ "\u0631\u06C1\u062A\u06CC",
590
+ "\u0631\u06C1\u062A\u06D2",
591
+ "\u0631\u06C1\u0646\u06D2",
592
+ "\u0633\u06A9\u0646\u0627",
593
+ "\u0633\u06A9\u062A\u0627",
594
+ "\u0633\u06A9\u062A\u06CC",
595
+ "\u0633\u06A9\u062A\u06D2",
596
+ "\u0648\u0627\u0644\u0627",
597
+ "\u0648\u0627\u0644\u06CC",
598
+ "\u0648\u0627\u0644\u06D2"
599
+ ]);
600
+ function toStopWordSet(custom) {
601
+ if (!custom) return URDU_STOP_WORDS;
602
+ if (custom instanceof Set) return custom;
603
+ return new Set(custom.map((w) => normalizeUrdu(w.trim())));
604
+ }
605
+ function isStopWord(word, customStopWords) {
606
+ if (!word) return false;
607
+ const normalized = normalizeUrdu(word.trim());
608
+ const stopSet = toStopWordSet(customStopWords);
609
+ return stopSet.has(normalized);
610
+ }
611
+ function filterStopWords(words, customStopWords) {
612
+ if (!words || words.length === 0) return [];
613
+ const stopSet = toStopWordSet(customStopWords);
614
+ return words.filter((w) => {
615
+ const normalized = normalizeUrdu(w.trim());
616
+ return normalized.length > 0 && !stopSet.has(normalized);
617
+ });
618
+ }
619
+ function removeStopWords(text, customStopWords) {
620
+ if (!text) return "";
621
+ const words = splitWords(text);
622
+ const filtered = filterStopWords(words, customStopWords);
623
+ return filtered.join(" ");
624
+ }
625
+
329
626
  // src/collate.ts
330
627
  var ALPHABET = [
331
628
  "\u0627",
@@ -2586,7 +2883,191 @@ var WORD_DICTIONARY = {
2586
2883
  "\u0641\u0631\u0632\u0627\u0646\u06C1": "farzana",
2587
2884
  "\u0637\u0627\u06C1\u0631\u06C1": "tahira",
2588
2885
  "\u0639\u0635\u0645\u062A": "ismat",
2589
- "\u0646\u0635\u0631\u062A": "nusrat"
2886
+ "\u0646\u0635\u0631\u062A": "nusrat",
2887
+ // ---- classical, poetic and literary vocabulary ----
2888
+ "\u06AF\u0644\u0633\u062A\u0627\u06BA": "gulistan",
2889
+ "\u06AF\u0644\u0634\u0646": "gulshan",
2890
+ "\u0628\u06C1\u0627\u0631\u0627\u06BA": "baharan",
2891
+ "\u067E\u0631\u0648\u0627\u0646\u06C1": "parwana",
2892
+ "\u0634\u0645\u0639": "shama",
2893
+ "\u0633\u0627\u0642\u06CC": "saqi",
2894
+ "\u0645\u06CC\u062E\u0627\u0646\u06C1": "maikhana",
2895
+ "\u062C\u0627\u0645": "jaam",
2896
+ "\u0635\u0631\u0627\u062D\u06CC": "surahi",
2897
+ "\u0631\u0646\u062F": "rind",
2898
+ "\u0645\u062D\u062A\u0633\u0628": "muhtasib",
2899
+ "\u0642\u0627\u0635\u062F": "qasid",
2900
+ "\u067E\u06CC\u0627\u0645\u0628\u0631": "payambar",
2901
+ "\u0631\u0642\u06CC\u0628": "raqeeb",
2902
+ "\u062D\u0628\u06CC\u0628": "habeeb",
2903
+ "\u0645\u062D\u0628\u0648\u0628": "mahboob",
2904
+ "\u0645\u0639\u0634\u0648\u0642": "mashooq",
2905
+ "\u0635\u0646\u0645": "sanam",
2906
+ "\u0633\u0646\u06AF\u062F\u0644": "sangdil",
2907
+ "\u0628\u06CC\u062F\u0631\u062F": "bedard",
2908
+ "\u063A\u0645\u06AF\u0633\u0627\u0631": "ghamgusar",
2909
+ "\u0645\u0633\u06CC\u062D\u0627": "maseeha",
2910
+ "\u0646\u0627\u0635\u062D": "nasih",
2911
+ "\u0648\u0627\u0639\u0638": "waiz",
2912
+ "\u062A\u0634\u0646\u06C1": "tishna",
2913
+ "\u06AF\u06CC\u0633\u0648": "gesu",
2914
+ "\u0632\u0644\u0641": "zulf",
2915
+ "\u062F\u06CC\u062F\u0627\u0631": "deedar",
2916
+ "\u062C\u0644\u0648\u06C1": "jalwa",
2917
+ "\u062D\u062C\u0627\u0628": "hijab",
2918
+ "\u0646\u0642\u0627\u0628": "niqab",
2919
+ "\u0633\u0648\u0632": "soz",
2920
+ "\u0622\u06C1\u0646\u06AF": "aahang",
2921
+ "\u0646\u063A\u0645\u06C1": "naghma",
2922
+ "\u062A\u0631\u0627\u0646\u06C1": "tarana",
2923
+ "\u062F\u0627\u0633\u062A\u0627\u06BA": "dastan",
2924
+ "\u062D\u0648\u0631": "hoor",
2925
+ "\u067E\u0631\u06CC": "pari",
2926
+ "\u062F\u06CC\u0648": "deo",
2927
+ "\u062C\u0627\u062F\u0648": "jadoo",
2928
+ "\u0637\u0644\u0633\u0645": "tilism",
2929
+ "\u0627\u0641\u0633\u0648\u0646": "afsoon",
2930
+ "\u0633\u062D\u0631\u0627\u0646\u06AF\u06CC\u0632": "sehrangeez",
2931
+ "\u0641\u0633\u0648\u06BA": "fusoon",
2932
+ "\u062C\u0646\u0648\u06BA": "junoon",
2933
+ "\u0633\u0648\u062F\u0627": "sauda",
2934
+ "\u0648\u062D\u0634\u062A": "wahshat",
2935
+ "\u0627\u0631\u0645\u0627\u0646": "arman",
2936
+ "\u0630\u0648\u0642": "zauq",
2937
+ "\u0648\u062C\u062F": "wajd",
2938
+ "\u0645\u0633\u062A\u06CC": "masti",
2939
+ "\u06A9\u06CC\u0641": "kaif",
2940
+ "\u062E\u0645\u0627\u0631": "khumar",
2941
+ "\u0646\u0634\u06C1": "nasha",
2942
+ "\u0628\u06D2\u062E\u0648\u062F\u06CC": "bekhudi",
2943
+ // ---- commerce, finance and modern technology ----
2944
+ "\u062E\u0631\u06CC\u062F\u0627\u0631\u06CC": "khareedari",
2945
+ "\u0641\u0631\u0648\u062E\u062A": "farokht",
2946
+ "\u0633\u0631\u0645\u0627\u06CC\u06C1": "sarmaya",
2947
+ "\u0642\u0631\u0636\u06C1": "qarza",
2948
+ "\u0628\u06CC\u0646\u06A9\u0627\u0631\u06CC": "bainkari",
2949
+ "\u0642\u0633\u0637": "qist",
2950
+ "\u0627\u062F\u0627\u0626\u06CC\u06AF\u06CC": "adaigi",
2951
+ "\u0622\u0645\u062F\u0646\u06CC": "aamdani",
2952
+ "\u062E\u0631\u0686\u06C1": "kharcha",
2953
+ "\u0628\u0686\u062A": "bachat",
2954
+ "\u0645\u062D\u0635\u0648\u0644": "mahsool",
2955
+ "\u0645\u0627\u0644\u06CC\u062A": "maliyat",
2956
+ "\u06A9\u062A\u0627\u0628\u062A": "kitabat",
2957
+ "\u0645\u0646\u0688\u06CC": "mandi",
2958
+ "\u0646\u06CC\u0644\u0627\u0645\u06CC": "neelami",
2959
+ "\u0628\u0648\u0644\u06CC": "boli",
2960
+ "\u0634\u0631\u0627\u06A9\u062A": "sharakat",
2961
+ "\u062D\u0635\u0635": "hisas",
2962
+ "\u0627\u0633\u0679\u0627\u06A9": "stock",
2963
+ "\u062F\u0648\u0644\u062A": "daulat",
2964
+ "\u062B\u0631\u0648\u062A": "sarwat",
2965
+ "\u063A\u0631\u0628\u062A": "ghurbat",
2966
+ "\u0627\u0641\u0644\u0627\u0633": "iflas",
2967
+ "\u067E\u0631\u0648\u0641\u0627\u0626\u0644": "profile",
2968
+ "\u0633\u06CC\u0679\u0646\u06AF\u0632": "settings",
2969
+ "\u0646\u0648\u0679\u06CC\u0641\u06A9\u06CC\u0634\u0646": "notification",
2970
+ "\u0633\u0627\u0626\u0679": "site",
2971
+ "\u067E\u0648\u0631\u0679\u0644": "portal",
2972
+ // ---- administration, law, governance and politics ----
2973
+ "\u0639\u062F\u0644\u06CC\u06C1": "adliya",
2974
+ "\u0645\u0642\u0646\u0646\u06C1": "muqannana",
2975
+ "\u0627\u0646\u062A\u0638\u0627\u0645\u06CC\u06C1": "intizamia",
2976
+ "\u062D\u06A9\u0645\u0631\u0627\u0646\u06CC": "hukmrani",
2977
+ "\u062C\u0645\u06C1\u0648\u0631\u06CC\u06C1": "jamhooria",
2978
+ "\u0635\u062F\u0627\u0631\u062A": "sadarat",
2979
+ "\u0648\u0632\u0627\u0631\u062A": "wazarat",
2980
+ "\u0633\u0641\u0627\u0631\u062A": "safarat",
2981
+ "\u0642\u0648\u0646\u0635\u0644": "consul",
2982
+ "\u0633\u0641\u0627\u0631\u062A\u062E\u0627\u0646\u06C1": "safaratkhana",
2983
+ "\u0622\u0626\u06CC\u0646\u06CC": "aaeeni",
2984
+ "\u062F\u0633\u062A\u0648\u0631\u06CC": "dastoori",
2985
+ "\u0641\u0648\u062C\u062F\u0627\u0631\u06CC": "faujdari",
2986
+ "\u062F\u06CC\u0648\u0627\u0646\u06CC": "deewani",
2987
+ "\u0645\u0642\u062F\u0645\u06C1": "muqaddama",
2988
+ "\u0633\u0645\u0627\u0639\u062A": "samaat",
2989
+ "\u062F\u0631\u062E\u0648\u0627\u0633\u062A": "darkhwast",
2990
+ "\u0627\u067E\u06CC\u0644": "appeal",
2991
+ "\u0636\u0645\u0627\u0646\u062A": "zamanat",
2992
+ "\u0628\u0631\u06CC\u062A": "bariyat",
2993
+ "\u0639\u0645\u0631\u0642\u06CC\u062F": "umrqaid",
2994
+ "\u067E\u06BE\u0627\u0646\u0633\u06CC": "phansi",
2995
+ "\u0648\u06A9\u0627\u0644\u062A": "wukalat",
2996
+ "\u062D\u0642\u0648\u0642": "huqooq",
2997
+ "\u0641\u0631\u0627\u0626\u0636": "faraiz",
2998
+ "\u0634\u06C1\u0631\u06CC": "shahri",
2999
+ "\u0634\u06C1\u0631\u06CC\u062A": "shahriyat",
3000
+ "\u0634\u0646\u0627\u062E\u062A": "shanakht",
3001
+ "\u0646\u0627\u062F\u0631\u0627": "nadra",
3002
+ "\u0645\u062C\u0644\u0633": "majlis",
3003
+ "\u0634\u0648\u0631\u06CC": "shoora",
3004
+ "\u062D\u0644\u06CC\u0641": "haleef",
3005
+ "\u0645\u062E\u0627\u0644\u0641": "mukhalif",
3006
+ "\u0628\u063A\u0627\u0648\u062A": "baghawat",
3007
+ // ---- geography, nature and terrain ----
3008
+ "\u062E\u0637\u06C1": "khitta",
3009
+ "\u0635\u0648\u0628\u06C1": "sooba",
3010
+ "\u0636\u0644\u0639": "zila",
3011
+ "\u062A\u062D\u0635\u06CC\u0644": "tehsil",
3012
+ "\u06CC\u0648\u0646\u06CC\u0646": "union",
3013
+ "\u06A9\u0648\u0646\u0633\u0644": "council",
3014
+ "\u0642\u0631\u06CC\u06C1": "qarya",
3015
+ "\u0628\u0633\u062A\u06CC": "basti",
3016
+ "\u0634\u06C1\u0631\u0633\u062A\u0627\u0646": "shehristan",
3017
+ "\u0646\u062E\u0644\u0633\u062A\u0627\u0646": "nakhalistan",
3018
+ "\u06A9\u0648\u06C1\u0633\u0627\u0631": "kohsar",
3019
+ "\u06A9\u06C1\u0633\u0627\u0631": "kuhsar",
3020
+ "\u06AF\u06BE\u0627\u0679\u06CC": "ghati",
3021
+ "\u0648\u0627\u062F\u06CC\u0627\u06BA": "wadiyan",
3022
+ "\u06A9\u06BE\u0627\u0626\u06CC": "khaai",
3023
+ "\u062E\u0644\u06CC\u062C": "khaleej",
3024
+ "\u0631\u0627\u0633": "raas",
3025
+ // ---- verbs and verbal inflections ----
3026
+ "\u0645\u0627\u0646\u062A\u06D2": "mante",
3027
+ "\u0645\u0627\u0646\u062A\u06CC": "manti",
3028
+ "\u0645\u0627\u0646\u0648": "mano",
3029
+ "\u0679\u06BE\u06C1\u0631\u0646\u0627": "theharna",
3030
+ "\u0679\u06BE\u06C1\u0631\u0627": "thehra",
3031
+ "\u0679\u06BE\u06C1\u0631\u0648": "thehro",
3032
+ "\u0679\u06BE\u06C1\u0631\u062A\u06D2": "thehrte",
3033
+ "\u0633\u0645\u062C\u06BE\u0627\u0624": "samjhao",
3034
+ "\u067E\u06C1\u0646\u0686\u0627\u0624": "pohonchao",
3035
+ "\u0644\u0679\u0627\u0646\u0627": "lutana",
3036
+ "\u0644\u0679\u0627\u06CC\u0627": "lutaya",
3037
+ "\u0644\u0648\u0679\u0627": "loota",
3038
+ "\u067E\u06A9\u0627\u0631\u0627": "pukara",
3039
+ "\u067E\u06A9\u0627\u0631\u0648": "pukaro",
3040
+ "\u062C\u06BE\u06A9\u0646\u0627": "jhukna",
3041
+ "\u062C\u06BE\u06A9\u0627": "jhuka",
3042
+ "\u062C\u06BE\u06A9\u0627\u0624": "jhukao",
3043
+ "\u062C\u06BE\u06A9\u0627\u0646\u0627": "jhukana",
3044
+ "\u062A\u06BE\u0627\u0645\u0646\u0627": "thamna",
3045
+ "\u062A\u06BE\u0627\u0645\u0627": "thama",
3046
+ "\u062A\u06BE\u0627\u0645\u0648": "thamo",
3047
+ "\u0633\u0646\u0648\u0627\u0631\u0646\u0627": "sanwarna",
3048
+ "\u0633\u0646\u0648\u0627\u0631\u0627": "sanwara",
3049
+ "\u0646\u06A9\u06BE\u0627\u0631\u0646\u0627": "nikharna",
3050
+ "\u0646\u06A9\u06BE\u0627\u0631\u0627": "nikhara",
3051
+ "\u0633\u0646\u0628\u06BE\u0627\u0644\u0646\u0627": "sambhalna",
3052
+ "\u0633\u0646\u0628\u06BE\u0627\u0644\u0627": "sambhala",
3053
+ "\u0633\u0646\u0628\u06BE\u0627\u0644\u0648": "sambhalo",
3054
+ "\u067E\u0686\u06BE\u062A\u0627\u0646\u0627": "pachtana",
3055
+ "\u067E\u0686\u06BE\u062A\u0627\u06CC\u0627": "pachtaya",
3056
+ "\u06AF\u06BE\u0628\u0631\u0627\u0646\u0627": "ghabrana",
3057
+ "\u06AF\u06BE\u0628\u0631\u0627\u06CC\u0627": "ghabraya",
3058
+ "\u0645\u0633\u06A9\u0631\u0627\u0646\u0627": "muskurana",
3059
+ "\u0645\u0633\u06A9\u0631\u0627\u06CC\u0627": "muskuraya",
3060
+ "\u0645\u0633\u06A9\u0631\u0627\u06C1\u0679": "muskurahat",
3061
+ "\u062C\u06BE\u0646\u062C\u06BE\u0644\u0627\u0646\u0627": "jhanjhlana",
3062
+ "\u062A\u0644\u0645\u0644\u0627\u0646\u0627": "tilmilana",
3063
+ "\u0628\u0644\u0628\u0644\u0627\u0646\u0627": "bilbilana",
3064
+ "\u06A9\u06BE\u0644\u06A9\u06BE\u0644\u0627\u0646\u0627": "khilkhilana",
3065
+ "\u06A9\u06BE\u0679\u06A9\u06BE\u0679\u0627\u0646\u0627": "khatkhatana",
3066
+ "\u062C\u06BE\u0644\u0645\u0644\u0627\u0646\u0627": "jhilmilana",
3067
+ "\u0686\u0645\u0686\u0645\u0627\u062A\u0627": "chamchamata",
3068
+ "\u0644\u06C1\u0631\u0627\u0646\u0627": "lehrana",
3069
+ "\u0644\u06C1\u0631\u0627\u06CC\u0627": "lehraya",
3070
+ "\u0644\u06C1\u0631": "lehar"
2590
3071
  };
2591
3072
  var ROMAN_VARIANTS = {
2592
3073
  hay: "\u06C1\u06D2",
@@ -2774,7 +3255,35 @@ var ROMAN_VARIANTS = {
2774
3255
  daur: "\u062F\u0648\u0631",
2775
3256
  kurta: "\u06A9\u0631\u062A\u0627",
2776
3257
  haseen: "\u062D\u0633\u06CC\u0646",
2777
- malik: "\u0645\u0644\u06A9"
3258
+ malik: "\u0645\u0644\u06A9",
3259
+ kidhr: "\u06A9\u062F\u06BE\u0631",
3260
+ idhr: "\u0627\u062F\u06BE\u0631",
3261
+ jdhr: "\u062C\u062F\u06BE\u0631",
3262
+ thek: "\u0679\u06BE\u06CC\u06A9",
3263
+ thk: "\u0679\u06BE\u06CC\u06A9",
3264
+ sahi: "\u0635\u062D\u06CC\u062D",
3265
+ galat: "\u063A\u0644\u0637",
3266
+ ghalat: "\u063A\u0644\u0637",
3267
+ sb: "\u0633\u0628",
3268
+ hmsha: "\u06C1\u0645\u06CC\u0634\u06C1",
3269
+ kbhi: "\u06A9\u0628\u06BE\u06CC",
3270
+ aksar: "\u0627\u06A9\u062B\u0631",
3271
+ behtareen: "\u0628\u06C1\u062A\u0631\u06CC\u0646",
3272
+ zabardast: "\u0632\u0628\u0631\u062F\u0633\u062A",
3273
+ shandar: "\u0634\u0627\u0646\u062F\u0627\u0631",
3274
+ khoob: "\u062E\u0648\u0628",
3275
+ khub: "\u062E\u0648\u0628",
3276
+ sharam: "\u0634\u0631\u0645",
3277
+ haya: "\u062D\u06CC\u0627",
3278
+ ghairat: "\u063A\u06CC\u0631\u062A",
3279
+ himmat: "\u06C1\u0645\u062A",
3280
+ hosla: "\u062D\u0648\u0635\u0644\u06C1",
3281
+ mashaallah: "\u0645\u0627\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
3282
+ inshaallah: "\u0627\u0646\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
3283
+ mashallah: "\u0645\u0627\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
3284
+ inshallah: "\u0627\u0646\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
3285
+ alhamdulillah: "\u0627\u0644\u062D\u0645\u062F\u0644\u0644\u06C1",
3286
+ jazakallah: "\u062C\u0632\u0627\u06A9\u200C\u0627\u0644\u0644\u06C1"
2778
3287
  };
2779
3288
 
2780
3289
  // src/transliterate.ts
@@ -2997,6 +3506,6 @@ function urduSlug(input, options = {}) {
2997
3506
  return slug;
2998
3507
  }
2999
3508
 
3000
- export { analyzeUrdu, compareUrdu, convertNumbers, countSentences, countWords, editDistance, foldUrdu, hasUrduSpecificLetters, highlightUrdu, isUrdu, normalizeUrdu, numberToUrduWords, parseUrduNumber, removeDiacritics, romanToUrdu, romanize, searchUrdu, searchUrduRanked, sortUrdu, splitSentences, splitWords, toArabicIndicDigits, toEnglishDigits, toUrduDigits, urduRatio, urduSlug };
3509
+ export { URDU_STOP_WORDS, analyzeUrdu, compareUrdu, convertNumbers, countSentences, countWords, editDistance, filterStopWords, foldUrdu, hasUrduSpecificLetters, highlightUrdu, isStopWord, isUrdu, normalizeUrdu, numberToUrduWords, parseUrduNumber, removeDiacritics, removeStopWords, romanToUrdu, romanize, searchUrdu, searchUrduRanked, sortUrdu, splitSentences, splitWords, toArabicIndicDigits, toEnglishDigits, toUrduDigits, urduRatio, urduSlug };
3001
3510
  //# sourceMappingURL=index.js.map
3002
3511
  //# sourceMappingURL=index.js.map