urdu-text-utils 0.1.1 → 0.1.2

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
@@ -1059,6 +1059,201 @@ var WORD_DICTIONARY = {
1059
1059
  "\u0628\u06C1\u062A": "bohat",
1060
1060
  "\u0635\u0631\u0641": "sirf",
1061
1061
  "\u0648\u0627\u0642\u0639\u06CC": "waqai",
1062
+ // ---- more verbs ----
1063
+ "\u06A9\u06BE\u06CC\u0644\u0646\u0627": "khelna",
1064
+ "\u06A9\u06BE\u06CC\u0644\u062A\u0627": "khelta",
1065
+ "\u06C1\u0646\u0633\u0646\u0627": "hansna",
1066
+ "\u0631\u0648\u0646\u0627": "rona",
1067
+ "\u0688\u0631\u0646\u0627": "darna",
1068
+ "\u0628\u06BE\u0648\u0644\u0646\u0627": "bhoolna",
1069
+ "\u06CC\u0627\u062F": "yaad",
1070
+ "\u0633\u06CC\u06A9\u06BE\u0646\u0627": "seekhna",
1071
+ "\u0633\u06A9\u06BE\u0627\u0646\u0627": "sikhana",
1072
+ "\u067E\u06A9\u0627\u0646\u0627": "pakana",
1073
+ "\u062F\u06BE\u0648\u0646\u0627": "dhona",
1074
+ "\u067E\u06C1\u0646\u0646\u0627": "pehanna",
1075
+ "\u0627\u062A\u0627\u0631\u0646\u0627": "utarna",
1076
+ "\u0628\u06CC\u0686\u0646\u0627": "bechna",
1077
+ "\u062E\u0631\u06CC\u062F\u0646\u0627": "khareedna",
1078
+ "\u0628\u06BE\u06CC\u062C\u0646\u0627": "bhejna",
1079
+ "\u067E\u06C1\u0646\u0686\u0646\u0627": "pohanchna",
1080
+ "\u0646\u06A9\u0644\u0646\u0627": "nikalna",
1081
+ "\u06AF\u0631\u0646\u0627": "girna",
1082
+ "\u0627\u0679\u06BE\u0627\u0646\u0627": "uthana",
1083
+ "\u067E\u06A9\u0691\u0646\u0627": "pakarna",
1084
+ "\u0686\u06BE\u0648\u0691\u0646\u0627": "chhorna",
1085
+ "\u062A\u0648\u0691\u0646\u0627": "torna",
1086
+ "\u062C\u0648\u0691\u0646\u0627": "jorna",
1087
+ "\u06A9\u0627\u0679\u0646\u0627": "katna",
1088
+ // مارنا (to hit) and مرنا (to die) differ by one letter; keeping the long vowel
1089
+ // in "maarna" stops them collapsing into one reverse-direction target.
1090
+ "\u0645\u0627\u0631\u0646\u0627": "maarna",
1091
+ "\u0628\u0686\u0627\u0646\u0627": "bachana",
1092
+ "\u062C\u0644\u0627\u0646\u0627": "jalana",
1093
+ "\u0646\u0627\u0686\u0646\u0627": "nachna",
1094
+ "\u06AF\u0627\u0646\u0627": "gana",
1095
+ "\u0644\u0691\u0646\u0627": "larna",
1096
+ "\u062C\u06CC\u062A\u0646\u0627": "jeetna",
1097
+ "\u06C1\u0627\u0631\u0646\u0627": "haarna",
1098
+ "\u0686\u06BE\u067E\u0627\u0646\u0627": "chhupana",
1099
+ "\u0688\u06BE\u0648\u0646\u0688\u0646\u0627": "dhoondna",
1100
+ "\u0645\u0644\u0627\u0646\u0627": "milana",
1101
+ "\u0628\u062F\u0644\u0646\u0627": "badalna",
1102
+ "\u0631\u06A9\u0646\u0627": "rukna",
1103
+ "\u0627\u0691\u0646\u0627": "urna",
1104
+ "\u062A\u06CC\u0631\u0646\u0627": "tairna",
1105
+ // ---- adverbs and conjunctions ----
1106
+ "\u0641\u0648\u0631\u0627\u064B": "fauran",
1107
+ "\u062F\u0648\u0628\u0627\u0631\u06C1": "dobara",
1108
+ "\u06CC\u0642\u06CC\u0646\u0627\u064B": "yaqeenan",
1109
+ "\u062A\u0642\u0631\u06CC\u0628\u0627\u064B": "taqreeban",
1110
+ "\u0627\u0644\u0628\u062A\u06C1": "albatta",
1111
+ "\u0686\u0648\u0646\u06A9\u06C1": "chunkeh",
1112
+ "\u06A9\u06CC\u0648\u0646\u06A9\u06C1": "kyunkeh",
1113
+ "\u062A\u0627\u06A9\u06C1": "taakeh",
1114
+ "\u0648\u0631\u0646\u06C1": "warna",
1115
+ "\u0628\u0644\u06A9\u06C1": "balkeh",
1116
+ "\u062D\u0627\u0644\u0627\u0646\u06A9\u06C1": "halankeh",
1117
+ "\u0645\u062B\u0644\u0627\u064B": "maslan",
1118
+ "\u0628\u0639\u0636": "baaz",
1119
+ "\u062A\u0645\u0627\u0645": "tamam",
1120
+ "\u067E\u0648\u0631\u0627": "poora",
1121
+ "\u0622\u062F\u06BE\u0627": "aadha",
1122
+ "\u062F\u0648\u0646\u0648\u06BA": "donon",
1123
+ "\u062A\u06CC\u0646\u0648\u06BA": "teenon",
1124
+ "\u0633\u0627\u0631\u0627": "sara",
1125
+ "\u0628\u0627\u0642\u06CC": "baqi",
1126
+ // ---- news and public life, the densest vocabulary in Urdu media ----
1127
+ "\u0633\u06CC\u0627\u0633\u062A": "siyasat",
1128
+ "\u0627\u0644\u06CC\u06A9\u0634\u0646": "election",
1129
+ "\u0648\u0648\u0679": "vote",
1130
+ "\u067E\u0627\u0631\u0679\u06CC": "party",
1131
+ "\u0627\u0633\u0645\u0628\u0644\u06CC": "assembly",
1132
+ "\u0639\u062F\u0627\u0644\u062A": "adalat",
1133
+ "\u0642\u0627\u0646\u0648\u0646": "qanoon",
1134
+ "\u062C\u0631\u0645": "jurm",
1135
+ "\u0641\u0648\u062C\u06CC": "fauji",
1136
+ "\u062C\u0646\u06AF": "jang",
1137
+ "\u0627\u0645\u0646": "aman",
1138
+ "\u0645\u0639\u0627\u06C1\u062F\u06C1": "muahida",
1139
+ "\u0645\u0639\u06CC\u0634\u062A": "maeeshat",
1140
+ "\u062A\u062C\u0627\u0631\u062A": "tijarat",
1141
+ "\u0628\u062C\u0679": "budget",
1142
+ "\u062A\u0631\u0642\u06CC": "taraqqi",
1143
+ "\u0645\u0646\u0635\u0648\u0628\u06C1": "mansooba",
1144
+ "\u0627\u0639\u0644\u0627\u0646": "elaan",
1145
+ "\u0631\u067E\u0648\u0631\u0679": "report",
1146
+ "\u0628\u06CC\u0627\u0646": "bayan",
1147
+ "\u0627\u062C\u0644\u0627\u0633": "ijlas",
1148
+ "\u062F\u0648\u0631\u06C1": "dora",
1149
+ "\u0645\u0644\u0627\u0642\u0627\u062A": "mulaqat",
1150
+ "\u062A\u0642\u0631\u06CC\u0628": "taqreeb",
1151
+ "\u062A\u0642\u0631\u06CC\u0631": "taqreer",
1152
+ // ---- technology ----
1153
+ "\u0688\u06CC\u0679\u0627": "data",
1154
+ "\u0627\u06CC\u067E": "app",
1155
+ "\u067E\u0631\u0648\u06AF\u0631\u0627\u0645": "program",
1156
+ "\u0633\u0633\u0679\u0645": "system",
1157
+ "\u0635\u0627\u0631\u0641": "sarif",
1158
+ "\u0641\u0627\u0626\u0644": "file",
1159
+ "\u0679\u06CC\u06A9\u0646\u0627\u0644\u0648\u062C\u06CC": "technology",
1160
+ // ---- education ----
1161
+ "\u062C\u0645\u0627\u0639\u062A": "jamaat",
1162
+ "\u06A9\u0644\u0627\u0633": "class",
1163
+ "\u067E\u0631\u0686\u06C1": "parcha",
1164
+ "\u0646\u0645\u0628\u0631": "number",
1165
+ "\u0688\u06AF\u0631\u06CC": "degree",
1166
+ "\u0644\u0627\u0626\u0628\u0631\u06CC\u0631\u06CC": "library",
1167
+ "\u062A\u062D\u0642\u06CC\u0642": "tehqeeq",
1168
+ "\u0645\u0642\u0627\u0644\u06C1": "maqala",
1169
+ // ---- health ----
1170
+ "\u0628\u062E\u0627\u0631": "bukhar",
1171
+ "\u062F\u0631\u062F": "dard",
1172
+ "\u0632\u062E\u0645": "zakhm",
1173
+ "\u0639\u0644\u0627\u062C": "ilaj",
1174
+ "\u062E\u0648\u0646": "khoon",
1175
+ "\u06C1\u0688\u06CC": "haddi",
1176
+ "\u067E\u06CC\u0679": "pet",
1177
+ "\u06AF\u0644\u0627": "gala",
1178
+ // ---- colours ----
1179
+ "\u0633\u0641\u06CC\u062F": "safaid",
1180
+ "\u06A9\u0627\u0644\u0627": "kala",
1181
+ "\u0633\u0631\u062E": "surkh",
1182
+ "\u0646\u06CC\u0644\u0627": "neela",
1183
+ "\u06C1\u0631\u0627": "hara",
1184
+ "\u067E\u06CC\u0644\u0627": "peela",
1185
+ "\u0628\u06BE\u0648\u0631\u0627": "bhura",
1186
+ "\u06AF\u0644\u0627\u0628\u06CC": "gulabi",
1187
+ "\u0633\u0646\u06C1\u0631\u06CC": "sunehri",
1188
+ // ---- animals ----
1189
+ "\u06A9\u062A\u0627": "kutta",
1190
+ "\u0628\u0644\u06CC": "billi",
1191
+ "\u06AF\u06BE\u0648\u0691\u0627": "ghora",
1192
+ "\u06AF\u0627\u0626\u06D2": "gaye",
1193
+ "\u0628\u06A9\u0631\u06CC": "bakri",
1194
+ "\u0628\u06BE\u06CC\u0646\u0633": "bhains",
1195
+ "\u0634\u06CC\u0631": "sheer",
1196
+ "\u06C1\u0627\u062A\u06BE\u06CC": "hathi",
1197
+ "\u0627\u0648\u0646\u0679": "oont",
1198
+ "\u0628\u0646\u062F\u0631": "bandar",
1199
+ "\u0686\u0648\u06C1\u0627": "chooha",
1200
+ "\u067E\u0631\u0646\u062F\u06C1": "parinda",
1201
+ "\u06A9\u0648\u0627": "kawa",
1202
+ "\u0637\u0648\u0637\u0627": "tota",
1203
+ "\u0633\u0627\u0646\u067E": "saanp",
1204
+ // ---- extended family ----
1205
+ "\u0686\u0686\u0627": "chacha",
1206
+ "\u0645\u0627\u0645\u0648\u06BA": "mamoon",
1207
+ "\u062E\u0627\u0644\u06C1": "khala",
1208
+ "\u067E\u06BE\u0648\u067E\u06BE\u06CC": "phupi",
1209
+ "\u062F\u0627\u062F\u0627": "dada",
1210
+ "\u062F\u0627\u062F\u06CC": "dadi",
1211
+ "\u0646\u0627\u0646\u0627": "nana",
1212
+ "\u0646\u0627\u0646\u06CC": "nani",
1213
+ "\u0631\u0634\u062A\u06C1": "rishta",
1214
+ "\u062E\u0627\u0646\u062F\u0627\u0646": "khandan",
1215
+ "\u0645\u06C1\u0645\u0627\u0646": "mehman",
1216
+ // ---- food ----
1217
+ "\u06A9\u06BE\u06CC\u0631": "kheer",
1218
+ "\u062D\u0644\u0648\u06C1": "halwa",
1219
+ "\u0628\u0631\u06CC\u0627\u0646\u06CC": "biryani",
1220
+ "\u06A9\u0628\u0627\u0628": "kabab",
1221
+ "\u0633\u0627\u0644\u0646": "salan",
1222
+ "\u062F\u0627\u0644": "daal",
1223
+ "\u0622\u0679\u0627": "aata",
1224
+ "\u0645\u06A9\u06BE\u0646": "makhan",
1225
+ "\u062F\u06C1\u06CC": "dahi",
1226
+ "\u0634\u06C1\u062F": "shehad",
1227
+ "\u0645\u0631\u0686": "mirch",
1228
+ "\u06C1\u0644\u062F\u06CC": "haldi",
1229
+ "\u0644\u06C1\u0633\u0646": "lehsun",
1230
+ "\u067E\u06CC\u0627\u0632": "pyaz",
1231
+ "\u0679\u0645\u0627\u0679\u0631": "tamatar",
1232
+ "\u0622\u0644\u0648": "aloo",
1233
+ "\u06AF\u0627\u062C\u0631": "gajar",
1234
+ "\u062A\u0631\u0628\u0648\u0632": "tarbooz",
1235
+ "\u0627\u0646\u0627\u0631": "anar",
1236
+ "\u06A9\u06BE\u062C\u0648\u0631": "khajoor",
1237
+ "\u0628\u0627\u062F\u0627\u0645": "badam",
1238
+ // ---- places on the map ----
1239
+ "\u06A9\u0631\u0627\u0686\u06CC": "karachi",
1240
+ "\u0644\u0627\u06C1\u0648\u0631": "lahore",
1241
+ "\u067E\u0634\u0627\u0648\u0631": "peshawar",
1242
+ "\u06A9\u0648\u0626\u0679\u06C1": "quetta",
1243
+ "\u0645\u0644\u062A\u0627\u0646": "multan",
1244
+ "\u0631\u0627\u0648\u0644\u067E\u0646\u0688\u06CC": "rawalpindi",
1245
+ "\u0633\u06CC\u0627\u0644\u06A9\u0648\u0679": "sialkot",
1246
+ "\u0628\u06BE\u0627\u0631\u062A": "bharat",
1247
+ "\u06C1\u0646\u062F\u0648\u0633\u062A\u0627\u0646": "hindustan",
1248
+ "\u0686\u06CC\u0646": "cheen",
1249
+ "\u0627\u0645\u0631\u06CC\u06A9\u06C1": "amreeka",
1250
+ "\u0628\u0631\u0637\u0627\u0646\u06CC\u06C1": "bartania",
1251
+ "\u0627\u06CC\u0631\u0627\u0646": "iran",
1252
+ "\u0627\u0641\u063A\u0627\u0646\u0633\u062A\u0627\u0646": "afghanistan",
1253
+ "\u06A9\u0634\u0645\u06CC\u0631": "kashmir",
1254
+ "\u067E\u0646\u062C\u0627\u0628": "punjab",
1255
+ "\u0633\u0646\u062F\u06BE": "sindh",
1256
+ "\u0628\u0644\u0648\u0686\u0633\u062A\u0627\u0646": "balochistan",
1062
1257
  // ---- names that appear constantly in Urdu content ----
1063
1258
  "\u0645\u062D\u0645\u062F": "muhammad",
1064
1259
  "\u0627\u062D\u0645\u062F": "ahmed",
@@ -1229,6 +1424,15 @@ function romanizeWord(word) {
1229
1424
  pieces.push({ text: "a", vowel: true });
1230
1425
  continue;
1231
1426
  }
1427
+ if (ch === "\u06CC" && chars[i + 1] === "\u06BA" && i + 1 === chars.length - 1) {
1428
+ pieces.push({ text: "ein", vowel: true });
1429
+ i++;
1430
+ continue;
1431
+ }
1432
+ if (ch === "\u06CC" && !last) {
1433
+ pieces.push({ text: "e", vowel: true });
1434
+ continue;
1435
+ }
1232
1436
  pieces.push({ text: LETTERS[ch] ?? ch, vowel: VOWEL_LETTERS.has(ch) });
1233
1437
  }
1234
1438
  if (pieces.length > 2 && !pieces[0].vowel && !pieces[1].vowel) {