urdu-text-utils 0.1.8 → 0.1.10-alpha.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.
package/dist/index.cjs CHANGED
@@ -3285,7 +3285,460 @@ var ROMAN_VARIANTS = {
3285
3285
  mashallah: "\u0645\u0627\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
3286
3286
  inshallah: "\u0627\u0646\u0634\u0627\u0621\u0627\u0644\u0644\u06C1",
3287
3287
  alhamdulillah: "\u0627\u0644\u062D\u0645\u062F\u0644\u0644\u06C1",
3288
- jazakallah: "\u062C\u0632\u0627\u06A9\u200C\u0627\u0644\u0644\u06C1"
3288
+ jazakallah: "\u062C\u0632\u0627\u06A9\u200C\u0627\u0644\u0644\u06C1",
3289
+ // ---- additional Roman variants for common words ----
3290
+ // verbs
3291
+ hona: "\u06C1\u0648\u0646\u0627",
3292
+ hua: "\u06C1\u0648\u0627",
3293
+ hui: "\u06C1\u0648\u0626\u06CC",
3294
+ hue: "\u06C1\u0648\u0626\u06D2",
3295
+ jana: "\u062C\u0627\u0646\u0627",
3296
+ jata: "\u062C\u0627\u062A\u0627",
3297
+ jati: "\u062C\u0627\u062A\u06CC",
3298
+ gaya: "\u06AF\u06CC\u0627",
3299
+ gayi: "\u06AF\u0626\u06CC",
3300
+ aana: "\u0622\u0646\u0627",
3301
+ aati: "\u0622\u062A\u06CC",
3302
+ aaya: "\u0622\u06CC\u0627",
3303
+ aayi: "\u0622\u0626\u06CC",
3304
+ dena: "\u062F\u06CC\u0646\u0627",
3305
+ deta: "\u062F\u06CC\u062A\u0627",
3306
+ deti: "\u062F\u06CC\u062A\u06CC",
3307
+ diya: "\u062F\u06CC\u0627",
3308
+ lena: "\u0644\u06CC\u0646\u0627",
3309
+ leta: "\u0644\u06CC\u062A\u0627",
3310
+ leti: "\u0644\u06CC\u062A\u06CC",
3311
+ liya: "\u0644\u06CC\u0627",
3312
+ kehna: "\u06A9\u06C1\u0646\u0627",
3313
+ kehta: "\u06A9\u06C1\u062A\u0627",
3314
+ kehti: "\u06A9\u06C1\u062A\u06CC",
3315
+ dekhta: "\u062F\u06CC\u06A9\u06BE\u062A\u0627",
3316
+ dekhti: "\u062F\u06CC\u06A9\u06BE\u062A\u06CC",
3317
+ dekha: "\u062F\u06CC\u06A9\u06BE\u0627",
3318
+ bolna: "\u0628\u0648\u0644\u0646\u0627",
3319
+ bolta: "\u0628\u0648\u0644\u062A\u0627",
3320
+ boli: "\u0628\u0648\u0644\u06CC",
3321
+ bola: "\u0628\u0648\u0644\u0627",
3322
+ padhna: "\u067E\u0691\u06BE\u0646\u0627",
3323
+ padhta: "\u067E\u0691\u06BE\u062A\u0627",
3324
+ padhti: "\u067E\u0691\u06BE\u062A\u06CC",
3325
+ padha: "\u067E\u0691\u06BE\u0627",
3326
+ likhna: "\u0644\u06A9\u06BE\u0646\u0627",
3327
+ likhta: "\u0644\u06A9\u06BE\u062A\u0627",
3328
+ likhti: "\u0644\u06A9\u06BE\u062A\u06CC",
3329
+ likha: "\u0644\u06A9\u06BE\u0627",
3330
+ samajhna: "\u0633\u0645\u062C\u06BE\u0646\u0627",
3331
+ samjha: "\u0633\u0645\u062C\u06BE\u0627",
3332
+ chahna: "\u0686\u0627\u06C1\u0646\u0627",
3333
+ chahta: "\u0686\u0627\u06C1\u062A\u0627",
3334
+ chahti: "\u0686\u0627\u06C1\u062A\u06CC",
3335
+ sakna: "\u0633\u06A9\u0646\u0627",
3336
+ sakta: "\u0633\u06A9\u062A\u0627",
3337
+ sakti: "\u0633\u06A9\u062A\u06CC",
3338
+ rehna: "\u0631\u06C1\u0646\u0627",
3339
+ rehta: "\u0631\u06C1\u062A\u0627",
3340
+ rehti: "\u0631\u06C1\u062A\u06CC",
3341
+ raha: "\u0631\u06C1\u0627",
3342
+ rahi: "\u0631\u06C1\u06CC",
3343
+ banna: "\u0628\u0646\u0646\u0627",
3344
+ bana: "\u0628\u0646\u0627",
3345
+ banana: "\u0628\u0646\u0627\u0646\u0627",
3346
+ banaya: "\u0628\u0646\u0627\u06CC\u0627",
3347
+ milna: "\u0645\u0644\u0646\u0627",
3348
+ milta: "\u0645\u0644\u062A\u0627",
3349
+ milti: "\u0645\u0644\u062A\u06CC",
3350
+ mila: "\u0645\u0644\u0627",
3351
+ mili: "\u0645\u0644\u06CC",
3352
+ khata: "\u06A9\u06BE\u0627\u062A\u0627",
3353
+ khati: "\u06A9\u06BE\u0627\u062A\u06CC",
3354
+ khaya: "\u06A9\u06BE\u0627\u06CC\u0627",
3355
+ peena: "\u067E\u06CC\u0646\u0627",
3356
+ peeta: "\u067E\u06CC\u062A\u0627",
3357
+ piya: "\u067E\u06CC\u0627",
3358
+ sota: "\u0633\u0648\u062A\u0627",
3359
+ soti: "\u0633\u0648\u062A\u06CC",
3360
+ soya: "\u0633\u0648\u06CC\u0627",
3361
+ uthna: "\u0627\u0679\u06BE\u0646\u0627",
3362
+ utha: "\u0627\u0679\u06BE\u0627",
3363
+ baithna: "\u0628\u06CC\u0679\u06BE\u0646\u0627",
3364
+ baitha: "\u0628\u06CC\u0679\u06BE\u0627",
3365
+ chalta: "\u0686\u0644\u062A\u0627",
3366
+ chalti: "\u0686\u0644\u062A\u06CC",
3367
+ chala: "\u0686\u0644\u0627",
3368
+ rakhna: "\u0631\u06A9\u06BE\u0646\u0627",
3369
+ rakha: "\u0631\u06A9\u06BE\u0627",
3370
+ maangna: "\u0645\u0627\u0646\u06AF\u0646\u0627",
3371
+ manga: "\u0645\u0627\u0646\u06AF\u0627",
3372
+ puchna: "\u067E\u0648\u0686\u06BE\u0646\u0627",
3373
+ poocha: "\u067E\u0648\u0686\u06BE\u0627",
3374
+ batana: "\u0628\u062A\u0627\u0646\u0627",
3375
+ bataya: "\u0628\u062A\u0627\u06CC\u0627",
3376
+ kholna: "\u06A9\u06BE\u0648\u0644\u0646\u0627",
3377
+ khola: "\u06A9\u06BE\u0648\u0644\u0627",
3378
+ marna: "\u0645\u0631\u0646\u0627",
3379
+ mara: "\u0645\u0631\u0627",
3380
+ jeetna: "\u062C\u06CC\u062A\u0646\u0627",
3381
+ jeeta: "\u062C\u06CC\u062A\u0627",
3382
+ haarna: "\u06C1\u0627\u0631\u0646\u0627",
3383
+ haara: "\u06C1\u0627\u0631\u0627",
3384
+ badalna: "\u0628\u062F\u0644\u0646\u0627",
3385
+ badla: "\u0628\u062F\u0644\u0627",
3386
+ rukna: "\u0631\u06A9\u0646\u0627",
3387
+ rokna: "\u0631\u0648\u06A9\u0646\u0627",
3388
+ roka: "\u0631\u0648\u06A9\u0627",
3389
+ khelna: "\u06A9\u06BE\u06CC\u0644\u0646\u0627",
3390
+ khela: "\u06A9\u06BE\u06CC\u0644\u0627",
3391
+ hansna: "\u06C1\u0646\u0633\u0646\u0627",
3392
+ hansa: "\u06C1\u0646\u0633\u0627",
3393
+ rona: "\u0631\u0648\u0646\u0627",
3394
+ roya: "\u0631\u0648\u06CC\u0627",
3395
+ darna: "\u0688\u0631\u0646\u0627",
3396
+ dara: "\u0688\u0631\u0627",
3397
+ bhoolna: "\u0628\u06BE\u0648\u0644\u0646\u0627",
3398
+ bhoola: "\u0628\u06BE\u0648\u0644\u0627",
3399
+ seekhna: "\u0633\u06CC\u06A9\u06BE\u0646\u0627",
3400
+ seekha: "\u0633\u06CC\u06A9\u06BE\u0627",
3401
+ sikhana: "\u0633\u06A9\u06BE\u0627\u0646\u0627",
3402
+ sikhaya: "\u0633\u06A9\u06BE\u0627\u06CC\u0627",
3403
+ dhona: "\u062F\u06BE\u0648\u0646\u0627",
3404
+ dhoya: "\u062F\u06BE\u0648\u06CC\u0627",
3405
+ pehanna: "\u067E\u06C1\u0646\u0646\u0627",
3406
+ pehna: "\u067E\u06C1\u0646\u0627",
3407
+ bechna: "\u0628\u06CC\u0686\u0646\u0627",
3408
+ becha: "\u0628\u06CC\u0686\u0627",
3409
+ khareedna: "\u062E\u0631\u06CC\u062F\u0646\u0627",
3410
+ khareeda: "\u062E\u0631\u06CC\u062F\u0627",
3411
+ bhejna: "\u0628\u06BE\u06CC\u062C\u0646\u0627",
3412
+ bheja: "\u0628\u06BE\u06CC\u062C\u0627",
3413
+ nikalna: "\u0646\u06A9\u0644\u0646\u0627",
3414
+ nikla: "\u0646\u06A9\u0644\u0627",
3415
+ girna: "\u06AF\u0631\u0646\u0627",
3416
+ gira: "\u06AF\u0631\u0627",
3417
+ pakarna: "\u067E\u06A9\u0691\u0646\u0627",
3418
+ pakra: "\u067E\u06A9\u0691\u0627",
3419
+ chhorna: "\u0686\u06BE\u0648\u0691\u0646\u0627",
3420
+ chhora: "\u0686\u06BE\u0648\u0691\u0627",
3421
+ torna: "\u062A\u0648\u0691\u0646\u0627",
3422
+ tora: "\u062A\u0648\u0691\u0627",
3423
+ katna: "\u06A9\u0627\u0679\u0646\u0627",
3424
+ kata: "\u06A9\u0627\u0679\u0627",
3425
+ daalna: "\u0688\u0627\u0644\u0646\u0627",
3426
+ dala: "\u0688\u0627\u0644\u0627",
3427
+ manna: "\u0645\u0627\u0646\u0646\u0627",
3428
+ mana: "\u0645\u0627\u0646\u0627",
3429
+ bulana: "\u0628\u0644\u0627\u0646\u0627",
3430
+ bulaya: "\u0628\u0644\u0627\u06CC\u0627",
3431
+ dikhana: "\u062F\u06A9\u06BE\u0627\u0646\u0627",
3432
+ dikhaya: "\u062F\u06A9\u06BE\u0627\u06CC\u0627",
3433
+ phenkna: "\u067E\u06BE\u06CC\u0646\u06A9\u0646\u0627",
3434
+ phenka: "\u067E\u06BE\u06CC\u0646\u06A9\u0627",
3435
+ letna: "\u0644\u06CC\u0679\u0646\u0627",
3436
+ jagna: "\u062C\u0627\u06AF\u0646\u0627",
3437
+ lautna: "\u0644\u0648\u0679\u0646\u0627",
3438
+ guzarna: "\u06AF\u0632\u0627\u0631\u0646\u0627",
3439
+ kamana: "\u06A9\u0645\u0627\u0646\u0627",
3440
+ kamaya: "\u06A9\u0645\u0627\u06CC\u0627",
3441
+ ginna: "\u06AF\u0646\u0646\u0627",
3442
+ bandhna: "\u0628\u0627\u0646\u062F\u06BE\u0646\u0627",
3443
+ bandha: "\u0628\u0627\u0646\u062F\u06BE\u0627",
3444
+ bharna: "\u0628\u06BE\u0631\u0646\u0627",
3445
+ bhara: "\u0628\u06BE\u0631\u0627",
3446
+ doobna: "\u0688\u0648\u0628\u0646\u0627",
3447
+ chamakna: "\u0686\u0645\u06A9\u0646\u0627",
3448
+ ghoomna: "\u06AF\u06BE\u0648\u0645\u0646\u0627",
3449
+ phirna: "\u067E\u06BE\u0631\u0646\u0627",
3450
+ phailna: "\u067E\u06BE\u06CC\u0644\u0646\u0627",
3451
+ // nouns
3452
+ insaan: "\u0627\u0646\u0633\u0627\u0646",
3453
+ larka: "\u0644\u0691\u06A9\u0627",
3454
+ larki: "\u0644\u0691\u06A9\u06CC",
3455
+ bacha: "\u0628\u0686\u06C1",
3456
+ bachi: "\u0628\u0686\u06CC",
3457
+ maan: "\u0645\u0627\u06BA",
3458
+ baap: "\u0628\u0627\u067E",
3459
+ beta: "\u0628\u06CC\u0679\u0627",
3460
+ beti: "\u0628\u06CC\u0679\u06CC",
3461
+ dushman: "\u062F\u0634\u0645\u0646",
3462
+ makaan: "\u0645\u06A9\u0627\u0646",
3463
+ kamra: "\u06A9\u0645\u0631\u06C1",
3464
+ darwaza: "\u062F\u0631\u0648\u0627\u0632\u06C1",
3465
+ khirki: "\u06A9\u06BE\u0691\u06A9\u06CC",
3466
+ chhat: "\u0686\u06BE\u062A",
3467
+ deewar: "\u062F\u06CC\u0648\u0627\u0631",
3468
+ farsh: "\u0641\u0631\u0634",
3469
+ qalam: "\u0642\u0644\u0645",
3470
+ kaghaz: "\u06A9\u0627\u063A\u0630",
3471
+ mez: "\u0645\u06CC\u0632",
3472
+ kursi: "\u06A9\u0631\u0633\u06CC",
3473
+ almari: "\u0627\u0644\u0645\u0627\u0631\u06CC",
3474
+ palang: "\u067E\u0644\u0646\u06AF",
3475
+ bistar: "\u0628\u0633\u062A\u0631",
3476
+ parda: "\u067E\u0631\u062F\u06C1",
3477
+ qaleen: "\u0642\u0627\u0644\u06CC\u0646",
3478
+ bartan: "\u0628\u0631\u062A\u0646",
3479
+ chamach: "\u0686\u0645\u0686",
3480
+ plate: "\u067E\u0644\u06CC\u0679",
3481
+ pyali: "\u067E\u06CC\u0627\u0644\u06CC",
3482
+ cup: "\u06A9\u067E",
3483
+ glass: "\u06AF\u0644\u0627\u0633",
3484
+ botal: "\u0628\u0648\u062A\u0644",
3485
+ dabba: "\u0688\u0628\u06C1",
3486
+ jharoo: "\u062C\u06BE\u0627\u0691\u0648",
3487
+ sabun: "\u0635\u0627\u0628\u0646",
3488
+ aaina: "\u0622\u0626\u06CC\u0646\u06C1",
3489
+ sheesha: "\u0634\u06CC\u0634\u06C1",
3490
+ kanghi: "\u06A9\u0646\u06AF\u06BE\u06CC",
3491
+ sui: "\u0633\u0648\u0626\u06CC",
3492
+ qainchi: "\u0642\u06CC\u0646\u0686\u06CC",
3493
+ tala: "\u062A\u0627\u0644\u0627",
3494
+ chabi: "\u0686\u0627\u0628\u06CC",
3495
+ ghari: "\u06AF\u06BE\u0691\u06CC",
3496
+ topi: "\u0679\u0648\u067E\u06CC",
3497
+ pagri: "\u067E\u06AF\u0691\u06CC",
3498
+ qameez: "\u0642\u0645\u06CC\u0636",
3499
+ shalwar: "\u0634\u0644\u0648\u0627\u0631",
3500
+ pajama: "\u067E\u0627\u062C\u0627\u0645\u06C1",
3501
+ pant: "\u067E\u06CC\u0646\u0679",
3502
+ shirt: "\u0634\u0631\u0679",
3503
+ coat: "\u06A9\u0648\u0679",
3504
+ shawl: "\u0634\u0627\u0644",
3505
+ dupatta: "\u062F\u0648\u067E\u0679\u06C1",
3506
+ joota: "\u062C\u0648\u062A\u0627",
3507
+ chappal: "\u0686\u067E\u0644",
3508
+ sandal: "\u0635\u0646\u062F\u0644",
3509
+ kapra: "\u06A9\u067E\u0691\u0627",
3510
+ doodh: "\u062F\u0648\u062F\u06BE",
3511
+ dahi: "\u062F\u06C1\u06CC",
3512
+ ghee: "\u06AF\u06BE\u06CC",
3513
+ chai: "\u0686\u0627\u0626\u06D2",
3514
+ qehwa: "\u0642\u06C1\u0648\u06C1",
3515
+ coffee: "\u06A9\u0627\u0641\u06CC",
3516
+ lassi: "\u0644\u0633\u06CC",
3517
+ juice: "\u062C\u0648\u0633",
3518
+ roti: "\u0631\u0648\u0679\u06CC",
3519
+ naan: "\u0646\u0627\u0646",
3520
+ paratha: "\u067E\u0631\u0627\u0679\u06BE\u0627",
3521
+ chawal: "\u0686\u0627\u0648\u0644",
3522
+ biryani: "\u0628\u0631\u06CC\u0627\u0646\u06CC",
3523
+ pulao: "\u067E\u0644\u0627\u0624",
3524
+ salan: "\u0633\u0627\u0644\u0646",
3525
+ qorma: "\u0642\u0648\u0631\u0645\u06C1",
3526
+ nihari: "\u0646\u06C1\u0627\u0631\u06CC",
3527
+ haleem: "\u062D\u0644\u06CC\u0645",
3528
+ kabab: "\u06A9\u0628\u0627\u0628",
3529
+ tikka: "\u062A\u06A9\u06C1",
3530
+ samosa: "\u0633\u0645\u0648\u0633\u06C1",
3531
+ daal: "\u062F\u0627\u0644",
3532
+ gosht: "\u06AF\u0648\u0634\u062A",
3533
+ qeema: "\u0642\u06CC\u0645\u06C1",
3534
+ murghi: "\u0645\u0631\u063A\u06CC",
3535
+ machhli: "\u0645\u0686\u06BE\u0644\u06CC",
3536
+ anda: "\u0627\u0646\u0688\u0627",
3537
+ sabzi: "\u0633\u0628\u0632\u06CC",
3538
+ maida: "\u0645\u06CC\u062F\u06C1",
3539
+ namak: "\u0646\u0645\u06A9",
3540
+ cheeni: "\u0686\u06CC\u0646\u06CC",
3541
+ mirch: "\u0645\u0631\u0686",
3542
+ haldi: "\u06C1\u0644\u062F\u06CC",
3543
+ dhaniya: "\u062F\u06BE\u0646\u06CC\u0627",
3544
+ zeera: "\u0632\u06CC\u0631\u06C1",
3545
+ lehsun: "\u0644\u06C1\u0633\u0646",
3546
+ adrak: "\u0627\u062F\u0631\u06A9",
3547
+ pyaz: "\u067E\u06CC\u0627\u0632",
3548
+ tamatar: "\u0679\u0645\u0627\u0679\u0631",
3549
+ aloo: "\u0622\u0644\u0648",
3550
+ gajar: "\u06AF\u0627\u062C\u0631",
3551
+ matar: "\u0645\u0679\u0631",
3552
+ palak: "\u067E\u0627\u0644\u06A9",
3553
+ gobhi: "\u06AF\u0648\u0628\u06BE\u06CC",
3554
+ bhindi: "\u0628\u06BE\u0646\u0688\u06CC",
3555
+ karela: "\u06A9\u0631\u06CC\u0644\u0627",
3556
+ kaddu: "\u06A9\u062F\u0648",
3557
+ kheera: "\u06A9\u06BE\u06CC\u0631\u0627",
3558
+ phal: "\u067E\u06BE\u0644",
3559
+ saib: "\u0633\u06CC\u0628",
3560
+ kela: "\u06A9\u06CC\u0644\u0627",
3561
+ angoor: "\u0627\u0646\u06AF\u0648\u0631",
3562
+ anar: "\u0627\u0646\u0627\u0631",
3563
+ amrood: "\u0627\u0645\u0631\u0648\u062F",
3564
+ tarbooz: "\u062A\u0631\u0628\u0648\u0632",
3565
+ badam: "\u0628\u0627\u062F\u0627\u0645",
3566
+ pista: "\u067E\u0633\u062A\u06C1",
3567
+ kaju: "\u06A9\u0627\u062C\u0648",
3568
+ kheer: "\u06A9\u06BE\u06CC\u0631",
3569
+ halwa: "\u062D\u0644\u0648\u06C1",
3570
+ zarda: "\u0632\u0631\u062F\u06C1",
3571
+ jalebi: "\u062C\u0644\u06CC\u0628\u06CC",
3572
+ kulfi: "\u06A9\u0644\u0641\u06CC",
3573
+ cake: "\u06A9\u06CC\u06A9",
3574
+ chocolate: "\u0686\u0627\u06A9\u0644\u06CC\u0679",
3575
+ mithai: "\u0645\u0679\u06BE\u0627\u0626\u06CC",
3576
+ salad: "\u0633\u0644\u0627\u062F",
3577
+ raita: "\u0631\u0627\u0626\u062A\u06C1",
3578
+ chatni: "\u0686\u0679\u0646\u06CC",
3579
+ achaar: "\u0627\u0686\u0627\u0631",
3580
+ dimagh: "\u062F\u0645\u0627\u063A",
3581
+ jism: "\u062C\u0633\u0645",
3582
+ sar: "\u0633\u0631",
3583
+ aankh: "\u0622\u0646\u06A9\u06BE",
3584
+ aankhein: "\u0622\u0646\u06A9\u06BE\u06CC\u06BA",
3585
+ kaan: "\u06A9\u0627\u0646",
3586
+ naak: "\u0646\u0627\u06A9",
3587
+ munh: "\u0645\u0646\u06C1",
3588
+ daant: "\u062F\u0627\u0646\u062A",
3589
+ zuban: "\u0632\u0628\u0627\u0646",
3590
+ gala: "\u06AF\u0644\u0627",
3591
+ gardan: "\u06AF\u0631\u062F\u0646",
3592
+ kandha: "\u06A9\u0646\u062F\u06BE\u0627",
3593
+ bazu: "\u0628\u0627\u0632\u0648",
3594
+ hath: "\u06C1\u0627\u062A\u06BE",
3595
+ ungli: "\u0627\u0646\u06AF\u0644\u06CC",
3596
+ seena: "\u0633\u06CC\u0646\u06C1",
3597
+ pet: "\u067E\u06CC\u0679",
3598
+ kamar: "\u06A9\u0645\u0631",
3599
+ taang: "\u0679\u0627\u0646\u06AF",
3600
+ paon: "\u067E\u0627\u0624\u06BA",
3601
+ haddi: "\u06C1\u0688\u06CC",
3602
+ khoon: "\u062E\u0648\u0646",
3603
+ jild: "\u062C\u0644\u062F",
3604
+ baal: "\u0628\u0627\u0644",
3605
+ chehra: "\u0686\u06C1\u0631\u06C1",
3606
+ sehat: "\u0635\u062D\u062A",
3607
+ beemari: "\u0628\u06CC\u0645\u0627\u0631\u06CC",
3608
+ dard: "\u062F\u0631\u062F",
3609
+ ilaj: "\u0639\u0644\u0627\u062C",
3610
+ dawa: "\u062F\u0648\u0627",
3611
+ goli: "\u06AF\u0648\u0644\u06CC",
3612
+ ishq: "\u0639\u0634\u0642",
3613
+ nafrat: "\u0646\u0641\u0631\u062A",
3614
+ gham: "\u063A\u0645",
3615
+ dukh: "\u062F\u06A9\u06BE",
3616
+ ummeed: "\u0627\u0645\u06CC\u062F",
3617
+ yaqeen: "\u06CC\u0642\u06CC\u0646",
3618
+ sach: "\u0633\u0686",
3619
+ jhoot: "\u062C\u06BE\u0648\u0679",
3620
+ insaf: "\u0627\u0646\u0635\u0627\u0641",
3621
+ zulm: "\u0638\u0644\u0645",
3622
+ izzat: "\u0639\u0632\u062A",
3623
+ dua: "\u062F\u0639\u0627",
3624
+ khwab: "\u062E\u0648\u0627\u0628",
3625
+ khayal: "\u062E\u06CC\u0627\u0644",
3626
+ maut: "\u0645\u0648\u062A",
3627
+ taqat: "\u0637\u0642\u062A",
3628
+ koshish: "\u06A9\u0648\u0634\u0634",
3629
+ kamyabi: "\u06A9\u0627\u0645\u06CC\u0627\u0628\u06CC",
3630
+ nakami: "\u0646\u0627\u06A9\u0627\u0645\u06CC",
3631
+ faisla: "\u0641\u06CC\u0635\u0644\u06C1",
3632
+ ghussa: "\u063A\u0635\u06C1",
3633
+ akhlaq: "\u0627\u062E\u0644\u0627\u0642",
3634
+ wafa: "\u0648\u0641\u0627",
3635
+ dosti: "\u062F\u0648\u0633\u062A\u06CC",
3636
+ sakoon: "\u0633\u06A9\u0648\u0646",
3637
+ ilm: "\u0639\u0644\u0645",
3638
+ taleem: "\u062A\u0639\u0644\u06CC\u0645",
3639
+ sabaq: "\u0633\u0628\u0642",
3640
+ imtihan: "\u0627\u0645\u062A\u062D\u0627\u0646",
3641
+ masla: "\u0645\u0633\u0626\u0644\u06C1",
3642
+ sawal: "\u0633\u0648\u0627\u0644",
3643
+ jawab: "\u062C\u0648\u0627\u0628",
3644
+ lafz: "\u0644\u0641\u0638",
3645
+ jumla: "\u062C\u0645\u0644\u06C1",
3646
+ maani: "\u0645\u0639\u0646\u06CC",
3647
+ matlab: "\u0645\u0637\u0644\u0628",
3648
+ khabar: "\u062E\u0628\u0631",
3649
+ akhbar: "\u0627\u062E\u0628\u0627\u0631",
3650
+ kahani: "\u06A9\u06C1\u0627\u0646\u06CC",
3651
+ qissa: "\u0642\u0635\u06C1",
3652
+ dastan: "\u062F\u0627\u0633\u062A\u0627\u0646",
3653
+ novel: "\u0646\u0627\u0648\u0644",
3654
+ mazmoon: "\u0645\u0636\u0645\u0648\u0646",
3655
+ ghazal: "\u063A\u0632\u0644",
3656
+ nazm: "\u0646\u0638\u0645",
3657
+ adab: "\u0627\u062F\u0628",
3658
+ tareekh: "\u062A\u0627\u0631\u06CC\u062E",
3659
+ science: "\u0633\u0627\u0626\u0646\u0633",
3660
+ falsafa: "\u0641\u0644\u0633\u0641\u06C1",
3661
+ saqafat: "\u062B\u0642\u0627\u0641\u062A",
3662
+ tehzeeb: "\u062A\u06C1\u0630\u06CC\u0628",
3663
+ moseeqi: "\u0645\u0648\u0633\u06CC\u0642\u06CC",
3664
+ tasweer: "\u062A\u0635\u0648\u06CC\u0631",
3665
+ rang: "\u0631\u0646\u06AF",
3666
+ awaz: "\u0622\u0648\u0627\u0632",
3667
+ khamoshi: "\u062E\u0627\u0645\u0648\u0634\u06CC",
3668
+ namaz: "\u0646\u0645\u0627\u0632",
3669
+ roza: "\u0631\u0648\u0632\u06C1",
3670
+ hajj: "\u062D\u062C",
3671
+ eid: "\u0639\u06CC\u062F",
3672
+ qurbani: "\u0642\u0631\u0628\u0627\u0646\u06CC",
3673
+ mazhab: "\u0645\u0630\u06C1\u0628",
3674
+ rasool: "\u0631\u0633\u0648\u0644",
3675
+ nabi: "\u0646\u0628\u06CC",
3676
+ quran: "\u0642\u0631\u0622\u0646",
3677
+ hadees: "\u062D\u062F\u06CC\u062B",
3678
+ deen: "\u062F\u06CC\u0646",
3679
+ imaan: "\u0627\u06CC\u0645\u0627\u0646",
3680
+ jannat: "\u062C\u0646\u062A",
3681
+ dozakh: "\u062F\u0648\u0632\u062E",
3682
+ farishta: "\u0641\u0631\u0634\u062A\u06C1",
3683
+ qayamat: "\u0642\u06CC\u0627\u0645\u062A",
3684
+ ibadat: "\u0639\u0628\u0627\u062F\u062A",
3685
+ gunah: "\u06AF\u0646\u0627\u06C1",
3686
+ rehmat: "\u0631\u062D\u0645\u062A",
3687
+ barkat: "\u0628\u0631\u06A9\u062A",
3688
+ naiki: "\u0646\u06CC\u06A9\u06CC",
3689
+ siyasat: "\u0633\u06CC\u0627\u0633\u062A",
3690
+ election: "\u0627\u0644\u06CC\u06A9\u0634\u0646",
3691
+ intikhab: "\u0627\u0646\u062A\u062E\u0627\u0628",
3692
+ vote: "\u0648\u0648\u0679",
3693
+ party: "\u067E\u0627\u0631\u0679\u06CC",
3694
+ jamaat: "\u062C\u0645\u0627\u0639\u062A",
3695
+ qanoon: "\u0642\u0627\u0646\u0648\u0646",
3696
+ dastoor: "\u062F\u0633\u062A\u0648\u0631",
3697
+ hukumat: "\u062D\u06A9\u0648\u0645\u062A",
3698
+ jurm: "\u062C\u0631\u0645",
3699
+ mujrim: "\u0645\u062C\u0631\u0645",
3700
+ saza: "\u0633\u0632\u0627",
3701
+ fauj: "\u0641\u0648\u062C",
3702
+ jang: "\u062C\u0646\u06AF",
3703
+ larai: "\u0644\u0691\u0627\u0626\u06CC",
3704
+ aman: "\u0627\u0645\u0646",
3705
+ sulah: "\u0635\u0644\u062D",
3706
+ tijarat: "\u062A\u062C\u0627\u0631\u062A",
3707
+ karobar: "\u06A9\u0627\u0631\u0648\u0628\u0627\u0631",
3708
+ sanat: "\u0635\u0646\u0639\u062A",
3709
+ taraqqi: "\u062A\u0631\u0642\u06CC",
3710
+ report: "\u0631\u067E\u0648\u0631\u0679",
3711
+ conference: "\u06A9\u0627\u0646\u0641\u0631\u0646\u0633",
3712
+ taqreer: "\u062A\u0642\u0631\u06CC\u0631",
3713
+ aasman: "\u0622\u0633\u0645\u0627\u0646",
3714
+ zameen: "\u0632\u0645\u06CC\u0646",
3715
+ sooraj: "\u0633\u0648\u0631\u062C",
3716
+ sitara: "\u0633\u062A\u0627\u0631\u06C1",
3717
+ pahaar: "\u067E\u06C1\u0627\u0691",
3718
+ nadi: "\u0646\u062F\u06CC",
3719
+ darya: "\u062F\u0631\u06CC\u0627",
3720
+ samundar: "\u0633\u0645\u0646\u062F\u0631",
3721
+ jungle: "\u062C\u0646\u06AF\u0644",
3722
+ bagh: "\u0628\u0627\u063A",
3723
+ phool: "\u067E\u06BE\u0648\u0644",
3724
+ darakht: "\u062F\u0631\u062E\u062A",
3725
+ pattay: "\u067E\u062A\u0651\u06D2",
3726
+ machli: "\u0645\u0686\u06BE\u0644\u06CC",
3727
+ parinday: "\u067E\u0631\u0646\u062F\u06D2",
3728
+ kutta: "\u06A9\u062A\u0627",
3729
+ billi: "\u0628\u0644\u06CC",
3730
+ ghora: "\u06AF\u06BE\u0648\u0691\u0627",
3731
+ gaay: "\u06AF\u0627\u0626\u06D2",
3732
+ bhains: "\u0628\u06BE\u06CC\u0633",
3733
+ bakra: "\u0628\u06A9\u0631\u0627",
3734
+ mendha: "\u0645\u06CC\u0688\u06BE\u0627",
3735
+ khargosh: "\u062E\u0631\u06AF\u0648\u0634",
3736
+ saanp: "\u0633\u0627\u0646\u067E",
3737
+ cheel: "\u0686\u06CC\u0644",
3738
+ kabootar: "\u06A9\u0628\u0648\u062A\u0631",
3739
+ tota: "\u062A\u0648\u062A\u0627",
3740
+ ullu: "\u0627\u0644\u0648",
3741
+ chuha: "\u0686\u0648\u06C1\u0627"
3289
3742
  };
3290
3743
 
3291
3744
  // src/transliterate.ts
@@ -3703,9 +4156,249 @@ function timeAgoUrdu(date, relativeTo = /* @__PURE__ */ new Date(), options = {}
3703
4156
  return isPast ? `${count} \u0633\u0627\u0644 \u067E\u06C1\u0644\u06D2` : `${count} \u0633\u0627\u0644 \u0628\u0639\u062F`;
3704
4157
  }
3705
4158
 
4159
+ // src/stemmer.ts
4160
+ var URDU_PREFIXES = [
4161
+ "\u063A\u06CC\u0631",
4162
+ "\u062E\u0648\u062F",
4163
+ "\u0627\u06C1\u0644",
4164
+ "\u0628\u06D2",
4165
+ "\u0646\u0627",
4166
+ "\u0644\u0627",
4167
+ "\u0628\u062F",
4168
+ "\u06A9\u0645",
4169
+ "\u0627\u0646",
4170
+ "\u06C1\u0645",
4171
+ "\u0628\u0627",
4172
+ "\u067E\u064F\u0631"
4173
+ ];
4174
+ var URDU_SUFFIXES = [
4175
+ // Compound / multi-syllable suffixes
4176
+ "\u06CC\u06BA\u06AF\u06D2",
4177
+ "\u06CC\u0646\u06AF\u06D2",
4178
+ "\u06D2\u06AF\u0627",
4179
+ "\u06D2\u06AF\u06CC",
4180
+ "\u06CC\u0646\u06AF\u06CC",
4181
+ "\u062F\u0627\u0631\u06CC",
4182
+ "\u06AF\u0627\u0631\u06CC",
4183
+ "\u06A9\u0627\u0631\u06CC",
4184
+ "\u0633\u0627\u0632\u06CC",
4185
+ "\u0628\u0627\u0632\u06CC",
4186
+ "\u0645\u0646\u062F\u06CC",
4187
+ "\u062A\u0631\u06CC\u0646",
4188
+ "\u0633\u062A\u0627\u0646",
4189
+ "\u062E\u0627\u0646\u06C1",
4190
+ "\u0646\u0627\u0645\u06C1",
4191
+ "\u062C\u0627\u062A",
4192
+ "\u06AF\u0627\u0646",
4193
+ // Adjectival / nominal / agentive suffixes
4194
+ "\u062F\u0627\u0631",
4195
+ "\u06AF\u0627\u0631",
4196
+ "\u06A9\u0627\u0631",
4197
+ "\u0633\u0627\u0632",
4198
+ "\u0628\u0627\u0632",
4199
+ "\u0645\u0646\u062F",
4200
+ "\u0646\u0627\u06A9",
4201
+ "\u0648\u0627\u0631",
4202
+ "\u062F\u0627\u0646",
4203
+ "\u0632\u0627\u0631",
4204
+ "\u06CC\u062A",
4205
+ "\u067E\u0646",
4206
+ "\u0627\u0626\u06CC",
4207
+ "\u062A\u0631",
4208
+ // Plural & verbal inflections
4209
+ "\u06CC\u0627\u06BA",
4210
+ "\u0626\u06CC\u06BA",
4211
+ "\u0624\u06BA",
4212
+ "\u06CC\u0648\u06BA",
4213
+ "\u0648\u06BA",
4214
+ "\u06CC\u06BA",
4215
+ "\u0627\u062A",
4216
+ "\u06C1\u0627",
4217
+ "\u06CC\u0646",
4218
+ "\u062A\u06CC\u06BA",
4219
+ "\u062A\u0627",
4220
+ "\u062A\u06CC",
4221
+ "\u062A\u06D2",
4222
+ "\u0646\u0627"
4223
+ ];
4224
+ var PROTECTED_WORDS = /* @__PURE__ */ new Set([
4225
+ "\u06C1\u0645",
4226
+ "\u0646\u0627",
4227
+ "\u0644\u0627",
4228
+ "\u0628\u06D2",
4229
+ "\u06CC\u0627",
4230
+ "\u062A\u0648",
4231
+ "\u067E\u0631",
4232
+ "\u0633\u06D2",
4233
+ "\u06A9\u0648",
4234
+ "\u06A9\u0627",
4235
+ "\u06A9\u06CC",
4236
+ "\u06A9\u06D2",
4237
+ "\u0645\u06CC\u06BA",
4238
+ "\u0646\u06D2",
4239
+ "\u06C1\u06D2",
4240
+ "\u06C1\u06CC\u06BA",
4241
+ "\u06C1\u0648",
4242
+ "\u062A\u06BE\u0627",
4243
+ "\u062A\u06BE\u06CC",
4244
+ "\u062A\u06BE\u06D2",
4245
+ "\u062A\u06BE\u06CC\u06BA",
4246
+ "\u0628\u0627\u063A",
4247
+ "\u0646\u0627\u0645",
4248
+ "\u0633\u0641\u0631",
4249
+ "\u06C1\u0648\u0627",
4250
+ "\u062F\u0644",
4251
+ "\u0633\u0631",
4252
+ "\u0644\u0628",
4253
+ "\u062F\u0633\u062A",
4254
+ "\u06A9\u0627\u0631",
4255
+ "\u0628\u0627\u0631",
4256
+ "\u0628\u0627\u0644",
4257
+ "\u0628\u0627\u0646",
4258
+ "\u0634\u0627\u0645",
4259
+ "\u06A9\u0627\u0645",
4260
+ "\u062F\u0627\u0645",
4261
+ "\u062C\u0627\u0645",
4262
+ "\u0639\u0627\u0645",
4263
+ "\u0631\u0627\u0645",
4264
+ "\u06AF\u0627\u0645",
4265
+ "\u062A\u0627\u0631",
4266
+ "\u06CC\u0627\u0631",
4267
+ "\u0645\u0627\u0631",
4268
+ "\u0646\u0627\u0631",
4269
+ "\u062F\u0627\u0631",
4270
+ "\u06C1\u0627\u0631",
4271
+ "\u0632\u0627\u0631",
4272
+ "\u063A\u0627\u0631",
4273
+ "\u0631\u0627\u062A",
4274
+ "\u0628\u0627\u062A",
4275
+ "\u0645\u0627\u062A",
4276
+ "\u0630\u0627\u062A",
4277
+ "\u06C1\u0627\u062A\u06BE",
4278
+ "\u0633\u0627\u062A\u06BE",
4279
+ "\u062F\u06CC\u0646",
4280
+ "\u062A\u06CC\u0646",
4281
+ "\u0686\u06CC\u0646",
4282
+ "\u0628\u06CC\u0646",
4283
+ "\u0632\u0645\u06CC\u0646",
4284
+ "\u0627\u0646\u0633\u0627\u0646",
4285
+ "\u0627\u062D\u0633\u0627\u0646",
4286
+ "\u0627\u06CC\u0645\u0627\u0646",
4287
+ "\u0627\u0633\u0644\u0627\u0645",
4288
+ "\u0627\u0639\u0644\u0627\u0646",
4289
+ "\u0627\u0645\u06A9\u0627\u0646",
4290
+ "\u0627\u0631\u0645\u0627\u0646",
4291
+ "\u0627\u0641\u063A\u0627\u0646",
4292
+ "\u0627\u06CC\u0631\u0627\u0646",
4293
+ "\u0639\u0645\u0631\u0627\u0646",
4294
+ "\u0639\u062B\u0645\u0627\u0646",
4295
+ "\u0633\u0644\u0645\u0627\u0646",
4296
+ "\u0639\u0631\u0641\u0627\u0646",
4297
+ "\u0642\u0631\u0622\u0646",
4298
+ "\u0637\u0648\u0641\u0627\u0646",
4299
+ "\u067E\u06C1\u0686\u0627\u0646",
4300
+ "\u062F\u06A9\u0627\u0646",
4301
+ "\u0645\u06A9\u0627\u0646",
4302
+ "\u0627\u0633\u0645\u0627\u0646",
4303
+ "\u0622\u0633\u0645\u0627\u0646",
4304
+ "\u0645\u06C1\u0645\u0627\u0646",
4305
+ "\u0646\u0642\u0635\u0627\u0646"
4306
+ ]);
4307
+ function applySuffixStripping(word, suffixes, minLen) {
4308
+ if (word.length <= minLen) return { stem: word };
4309
+ if (word.endsWith("\u06CC\u0627\u06BA") && word.length - 3 >= minLen) {
4310
+ const base = word.slice(0, -3);
4311
+ return { stem: `${base}\u06CC`, suffix: "\u06CC\u0627\u06BA" };
4312
+ }
4313
+ if (word.endsWith("\u06CC\u0648\u06BA") && word.length - 3 >= minLen) {
4314
+ const base = word.slice(0, -3);
4315
+ return { stem: `${base}\u06CC`, suffix: "\u06CC\u0648\u06BA" };
4316
+ }
4317
+ if (word.endsWith("\u0626\u06CC\u06BA") && word.length - 3 >= minLen) {
4318
+ const base = word.slice(0, -3);
4319
+ return { stem: base, suffix: "\u0626\u06CC\u06BA" };
4320
+ }
4321
+ if (word.endsWith("\u0624\u06BA") && word.length - 2 >= minLen) {
4322
+ const base = word.slice(0, -2);
4323
+ return { stem: base, suffix: "\u0624\u06BA" };
4324
+ }
4325
+ for (const suf of suffixes) {
4326
+ if (word.endsWith(suf)) {
4327
+ const remainder = word.slice(0, -suf.length).replace(/[\s\u200C\u200D]+$/, "");
4328
+ if (remainder.length >= minLen && !PROTECTED_WORDS.has(word)) {
4329
+ return { stem: remainder, suffix: suf };
4330
+ }
4331
+ }
4332
+ }
4333
+ return { stem: word };
4334
+ }
4335
+ function applyPrefixStripping(word, prefixes, minLen) {
4336
+ if (word.length <= minLen) return { stem: word };
4337
+ for (const pref of prefixes) {
4338
+ if (word.startsWith(pref)) {
4339
+ const remainder = word.slice(pref.length).replace(/^[\s\u200C\u200D]+/, "");
4340
+ if (remainder.length >= minLen && !PROTECTED_WORDS.has(word)) {
4341
+ return { stem: remainder, prefix: pref };
4342
+ }
4343
+ }
4344
+ }
4345
+ return { stem: word };
4346
+ }
4347
+ function getAffixes(input, options = {}) {
4348
+ if (!input || typeof input !== "string") {
4349
+ return { stem: "" };
4350
+ }
4351
+ const clean = removeDiacritics(normalizeUrdu(input.trim()));
4352
+ if (!clean) return { stem: "" };
4353
+ if (options.exceptions && options.exceptions[clean]) {
4354
+ return { stem: options.exceptions[clean] };
4355
+ }
4356
+ if (PROTECTED_WORDS.has(clean)) {
4357
+ return { stem: clean };
4358
+ }
4359
+ const minLen = options.minStemLength ?? 2;
4360
+ const doSuffixes = options.stripSuffixes ?? true;
4361
+ const doPrefixes = options.stripPrefixes ?? true;
4362
+ const suffixes = options.customSuffixes ?? URDU_SUFFIXES;
4363
+ const prefixes = options.customPrefixes ?? URDU_PREFIXES;
4364
+ let current = clean;
4365
+ let detectedSuffix;
4366
+ let detectedPrefix;
4367
+ if (doSuffixes) {
4368
+ const sRes = applySuffixStripping(current, suffixes, minLen);
4369
+ current = sRes.stem;
4370
+ detectedSuffix = sRes.suffix;
4371
+ }
4372
+ if (doPrefixes) {
4373
+ const pRes = applyPrefixStripping(current, prefixes, minLen);
4374
+ current = pRes.stem;
4375
+ detectedPrefix = pRes.prefix;
4376
+ }
4377
+ return {
4378
+ prefix: detectedPrefix,
4379
+ stem: current,
4380
+ suffix: detectedSuffix
4381
+ };
4382
+ }
4383
+ function stemUrdu(word, options = {}) {
4384
+ return getAffixes(word, options).stem;
4385
+ }
4386
+ function stemUrduText(text, options = {}) {
4387
+ if (!text || typeof text !== "string") return "";
4388
+ const tokens = text.split(/([\s\p{P}\p{S}]+)/u);
4389
+ return tokens.map((token) => {
4390
+ if (/[\u0600-\u06FF\u0750-\u077F\uFB50-\uFDFF\uFE70-\uFEFF]/.test(token)) {
4391
+ return stemUrdu(token, options);
4392
+ }
4393
+ return token;
4394
+ }).join("");
4395
+ }
4396
+
3706
4397
  exports.URDU_MONTHS_GREGORIAN = URDU_MONTHS_GREGORIAN;
3707
4398
  exports.URDU_MONTHS_HIJRI = URDU_MONTHS_HIJRI;
4399
+ exports.URDU_PREFIXES = URDU_PREFIXES;
3708
4400
  exports.URDU_STOP_WORDS = URDU_STOP_WORDS;
4401
+ exports.URDU_SUFFIXES = URDU_SUFFIXES;
3709
4402
  exports.URDU_WEEKDAYS = URDU_WEEKDAYS;
3710
4403
  exports.analyzeUrdu = analyzeUrdu;
3711
4404
  exports.compareUrdu = compareUrdu;
@@ -3716,6 +4409,7 @@ exports.editDistance = editDistance;
3716
4409
  exports.filterStopWords = filterStopWords;
3717
4410
  exports.foldUrdu = foldUrdu;
3718
4411
  exports.formatUrduDate = formatUrduDate;
4412
+ exports.getAffixes = getAffixes;
3719
4413
  exports.getUrduMonthName = getUrduMonthName;
3720
4414
  exports.getUrduWeekdayName = getUrduWeekdayName;
3721
4415
  exports.hasUrduSpecificLetters = hasUrduSpecificLetters;
@@ -3734,6 +4428,8 @@ exports.searchUrduRanked = searchUrduRanked;
3734
4428
  exports.sortUrdu = sortUrdu;
3735
4429
  exports.splitSentences = splitSentences;
3736
4430
  exports.splitWords = splitWords;
4431
+ exports.stemUrdu = stemUrdu;
4432
+ exports.stemUrduText = stemUrduText;
3737
4433
  exports.timeAgoUrdu = timeAgoUrdu;
3738
4434
  exports.toArabicIndicDigits = toArabicIndicDigits;
3739
4435
  exports.toEnglishDigits = toEnglishDigits;