taraskevizer 6.0.5 → 6.0.7

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
@@ -29,8 +29,25 @@ __export(src_exports, {
29
29
  });
30
30
  module.exports = __toCommonJS(src_exports);
31
31
 
32
- // src/dict/iwords.ts
32
+ // src/dict/lib.ts
33
+ var dictFrom = {
34
+ raw: (dict) => {
35
+ for (const item of dict)
36
+ item[0] = RegExp(
37
+ item[0],
38
+ item[0] instanceof RegExp ? item[0].flags + "g" : "g"
39
+ );
40
+ return dict;
41
+ },
42
+ nonGlobal: (dict) => {
43
+ for (const item of dict)
44
+ item[0] = RegExp(item[0], "g" + item[0].flags);
45
+ return dict;
46
+ }
47
+ };
33
48
  var toOneLine = (str) => str.replace(/\n/g, "|");
49
+
50
+ // src/dict/iwords.ts
34
51
  var iwords = toOneLine(`біс
35
52
  бсэн
36
53
  в[аеоы]
@@ -141,7 +158,7 @@ var common = {
141
158
  [/[łl]i([eoua])/, "l$1"],
142
159
  [/łi/, "li"]
143
160
  ]
144
- ],
161
+ ].map(dictFrom.nonGlobal),
145
162
  upper: [
146
163
  [
147
164
  [new RegExp(" Е(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Je"],
@@ -198,15 +215,15 @@ var common = {
198
215
  [/Łi/, "Li"],
199
216
  [/ŁI/, "LI"]
200
217
  ]
201
- ]
218
+ ].map(dictFrom.nonGlobal)
202
219
  };
203
220
  var latinLetters = [
204
221
  ...common.lower[0],
205
- [/ʼі/, "ji"],
222
+ [/ʼі/g, "ji"],
206
223
  ...common.lower[1]
207
224
  ];
208
225
  var latinLettersUpperCase = common.upper.flat();
209
- var rawLatinLettersJi = [
226
+ var latinLettersJi = dictFrom.raw([
210
227
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і Ў/, "j U"],
211
228
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і ў/, "j u"],
212
229
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і /, "j "],
@@ -215,24 +232,25 @@ var rawLatinLettersJi = [
215
232
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І /, "J "],
216
233
  [` і(?=${iwords})`, " ji"],
217
234
  [` І(?=${iwords})`, " Ji"],
218
- [` І(?=${iwords.toUpperCase()})`, " JI"],
235
+ [` І(?=${iwords.toUpperCase()})`, " JI"]
236
+ ]).concat([
219
237
  ...common.lower[0],
220
- [/(?<=[eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/, "ji"],
238
+ [/(?<=[eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/g, "ji"],
221
239
  ...common.lower[1]
222
- ];
223
- var rawLatinLettersUpperCaseJi = [
240
+ ]);
241
+ var latinLettersUpperCaseJi = [
224
242
  ...common.upper[0],
225
- [new RegExp("(?<=[eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), "Ji"],
243
+ [new RegExp("(?<=[eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "gu"), "Ji"],
226
244
  ...common.upper[1],
227
- [/(?<=[AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/, "JI"],
245
+ [/(?<=[AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/g, "JI"],
228
246
  ...common.upper[2],
229
- [/ JIŁ -/, " IŁ -"]
247
+ [/ JIŁ -/g, " IŁ -"]
230
248
  ];
231
249
 
232
250
  // src/dict/arabic.ts
233
251
  var soft = "ْ(?=[еёіюяь])";
234
252
  var presoft = "([تزكثࢮбвгджзйклмнпрстфхцчшў])ْ?(ّ?)";
235
- var rawArabLetters = [
253
+ var arabLetters = dictFrom.raw([
236
254
  [/ л[ая]/, " لا"],
237
255
  [/л[ая]/, "ـلا"],
238
256
  // падваеньне зычнага, шадда
@@ -287,9 +305,17 @@ var rawArabLetters = [
287
305
  [/ш/, "ش"],
288
306
  [/,/, "،"],
289
307
  [/\?/, "؟"]
290
- ];
308
+ ]);
309
+
310
+ // src/dict/gobj.ts
311
+ var gobj = {
312
+ г: "ґ",
313
+ Г: "Ґ",
314
+ ґ: "г",
315
+ Ґ: "Г"
316
+ };
291
317
 
292
- // src/dict/index.ts
318
+ // src/dict/wordlist.ts
293
319
  var chemicalElements1 = [
294
320
  "сканд|ванад|рубід|род|ірыд|рэзэрфорд",
295
321
  "стронц|бар|цэр|лютэц|самар| тор|амэрыц|кальц|кюр|дармштат|лівэрмор|натр"
@@ -302,7 +328,93 @@ var chemicalElements2 = [
302
328
  chemicalElements2[1] = chemicalElements2[0] + "|айнштайн|мендзялев|сыборг|гас|флеров";
303
329
  var chemicalElements3 = " гал|бэрыл|тул|бэркл|набэл";
304
330
  var ia = (word, words) => ` ${word} (?=\\(?(?:[бвгджзйклмнпстфцчшў]*[оё]|${words.replace(/\(/g, "(?:")}|i(?:${iwords})))`;
305
- var rawWordlist = [
331
+ var gwords = [
332
+ " ґб ",
333
+ "ґг",
334
+ "абрызґл",
335
+ " аґюст",
336
+ "анґол",
337
+ "арґаніз",
338
+ "арлінґтан",
339
+ "арыґінал",
340
+ " аўґс",
341
+ "аўґуст",
342
+ "аґрэст",
343
+ " біґ ",
344
+ " бразґ",
345
+ "буґацці",
346
+ "бурґ",
347
+ "вашынґт",
348
+ "возґр",
349
+ "вэдзґа",
350
+ " гааґ",
351
+ " ґабрыел",
352
+ " ґазэт",
353
+ " ґаксон",
354
+ " ґалац",
355
+ " ґалґоф",
356
+ " ґалер",
357
+ " ґаліле",
358
+ " ґальґот",
359
+ " ґамбі",
360
+ " ґарант",
361
+ " ґарсэт",
362
+ "ґарыбальдзі",
363
+ " ґаўс",
364
+ " ґаян",
365
+ "ґвалт",
366
+ // ' ґелер',
367
+ // ' ґент',
368
+ " ґётэ ",
369
+ " ґзымс",
370
+ " ґіём",
371
+ " ґітлін",
372
+ " ґлазґа ",
373
+ " ґліцэрын",
374
+ " ґлясар",
375
+ " ґонт",
376
+ " ґот",
377
+ " ґоцц",
378
+ " ґрадус",
379
+ "ґранд",
380
+ "ґрунт",
381
+ " ґрэйвэз",
382
+ "ґрэнобл",
383
+ "ґрэнлянд",
384
+ " ґузік",
385
+ " ґуст ",
386
+ " ґэлап",
387
+ " ґэры ",
388
+ " ґяд",
389
+ " ґяндж",
390
+ " джамалунґм",
391
+ " джґа",
392
+ " ірвінґ",
393
+ " іґнар",
394
+ " інтэґр",
395
+ " калеґ",
396
+ " кіплінґ",
397
+ "леґенд",
398
+ " лонґ",
399
+ " лэнґлі ",
400
+ " мазґ",
401
+ " мэґі ",
402
+ " мяґі ",
403
+ // 'нінґен',
404
+ " ніяґар",
405
+ "пінґвін",
406
+ "плявузґ",
407
+ "праґрам",
408
+ " розґ",
409
+ " ролінґ",
410
+ " рэдынґ",
411
+ " сіґітас",
412
+ " сійґ",
413
+ "райхстаґ",
414
+ " уґанд",
415
+ " цуґл"
416
+ ].reverse().map((word) => [RegExp(word.replace(/ґ/g, "г"), "g"), word]);
417
+ var wordlist = dictFrom.raw([
306
418
  /* А */
307
419
  [/аахен/, "аахэн"],
308
420
  [/абанен(?=[тц])/, "абанэн"],
@@ -1878,8 +1990,14 @@ var rawWordlist = [
1878
1990
  [/ яблынь /, " яблын(ь|яў) "],
1879
1991
  [/ расей /, " расе(й|яў) "],
1880
1992
  [//, ""]
1881
- ];
1882
- var rawsofteners = [
1993
+ ]).concat(gwords);
1994
+
1995
+ // src/dict/softening.ts
1996
+ var noSoften = dictFrom.nonGlobal([
1997
+ [/масфільм/, "масфільм"],
1998
+ [/пэндзлік/, "пэндзлік"]
1999
+ ]);
2000
+ var softeners = dictFrom.raw([
1883
2001
  [/([лнц])\1(?=[еёіюяь])/, "$1ь$1"],
1884
2002
  [/(\S\S)дз?дз(?=[еёіюяь])/, "$1дзьдз"],
1885
2003
  [/адзьдз([ея])л/, "аддз$1л"],
@@ -1888,121 +2006,12 @@ var rawsofteners = [
1888
2006
  [/з(?=([бвзлмнц]|дз)[еёіюяь])/, "зь"],
1889
2007
  [/с(?=[бвлмнпсфц][еёіюяь])/, "сь"],
1890
2008
  [/ц(?=[вм][еёіюяь])/, "ць"],
1891
- [`( (?:б[ея]|пра|цера)?з) (?=\\(?)(?=[еёюяь]|([бвзйлмнпстфц]|дз)[еёіюяь]|імі? |іх(?:ні)?|і(?:${iwords}))`, "$1ь "],
2009
+ [
2010
+ `( (?:б[ея]|пра|цера)?з) (?=\\(?)(?=[еёюяь]|([бвзйлмнпстфц]|дз)[еёіюяь]|імі? |іх(?:ні)?|і(?:${iwords}))`,
2011
+ "$1ь "
2012
+ ],
1892
2013
  [/([сз])ʼ(?=[яюеё])/, "$1ь"]
1893
- ];
1894
- var gwords = [
1895
- " ґб ",
1896
- "ґг",
1897
- "абрызґл",
1898
- " аґюст",
1899
- "анґол",
1900
- "арґаніз",
1901
- "арлінґтан",
1902
- "арыґінал",
1903
- " аўґс",
1904
- "аўґуст",
1905
- "аґрэст",
1906
- " біґ ",
1907
- " бразґ",
1908
- "буґацці",
1909
- "бурґ",
1910
- "вашынґт",
1911
- "возґр",
1912
- "вэдзґа",
1913
- " гааґ",
1914
- " ґабрыел",
1915
- " ґазэт",
1916
- " ґаксон",
1917
- " ґалац",
1918
- " ґалґоф",
1919
- " ґалер",
1920
- " ґаліле",
1921
- " ґальґот",
1922
- " ґамбі",
1923
- " ґарант",
1924
- " ґарсэт",
1925
- "ґарыбальдзі",
1926
- " ґаўс",
1927
- " ґаян",
1928
- "ґвалт",
1929
- // ' ґелер',
1930
- // ' ґент',
1931
- " ґётэ ",
1932
- " ґзымс",
1933
- " ґіём",
1934
- " ґітлін",
1935
- " ґлазґа ",
1936
- " ґліцэрын",
1937
- " ґлясар",
1938
- " ґонт",
1939
- " ґот",
1940
- " ґоцц",
1941
- " ґрадус",
1942
- "ґранд",
1943
- "ґрунт",
1944
- " ґрэйвэз",
1945
- "ґрэнобл",
1946
- "ґрэнлянд",
1947
- " ґузік",
1948
- " ґуст ",
1949
- " ґэлап",
1950
- " ґэры ",
1951
- " ґяд",
1952
- " ґяндж",
1953
- " джамалунґм",
1954
- " джґа",
1955
- " ірвінґ",
1956
- " іґнар",
1957
- " інтэґр",
1958
- " калеґ",
1959
- " кіплінґ",
1960
- "леґенд",
1961
- " лонґ",
1962
- " лэнґлі ",
1963
- " мазґ",
1964
- " мэґі ",
1965
- " мяґі ",
1966
- // 'нінґен',
1967
- " ніяґар",
1968
- "пінґвін",
1969
- "плявузґ",
1970
- "праґрам",
1971
- " розґ",
1972
- " ролінґ",
1973
- " рэдынґ",
1974
- " сіґітас",
1975
- " сійґ",
1976
- "райхстаґ",
1977
- " уґанд",
1978
- " цуґл"
1979
- ].reverse();
1980
- var gobj = {
1981
- "г": "ґ",
1982
- "Г": "Ґ",
1983
- "ґ": "г",
1984
- "Ґ": "Г"
1985
- };
1986
- var wordlist = [];
1987
- var softeners = [];
1988
- var arabLetters = [];
1989
- var latinLettersJi = [];
1990
- var latinLettersUpperCaseJi = [];
1991
- var arr = [
1992
- [rawWordlist, wordlist],
1993
- [rawsofteners, softeners],
1994
- [rawArabLetters, arabLetters],
1995
- [rawLatinLettersJi, latinLettersJi],
1996
- [rawLatinLettersUpperCaseJi, latinLettersUpperCaseJi]
1997
- ];
1998
- for (const [raw, obj] of arr)
1999
- for (const [pattern, result] of raw)
2000
- obj.push([RegExp(pattern, pattern instanceof RegExp ? pattern.flags + "g" : "g"), result]);
2001
- for (const obj of [latinLetters, latinLettersUpperCase])
2002
- for (const item of obj)
2003
- item[0] = RegExp(item[0], "g" + item[0].flags);
2004
- for (const word of gwords)
2005
- wordlist.push([RegExp(word.replace(/ґ/g, "г"), "g"), word]);
2014
+ ]);
2006
2015
 
2007
2016
  // src/tarask.ts
2008
2017
  var isUpperCase = (str) => str === str.toUpperCase();
@@ -2063,7 +2072,7 @@ var afterTarask = [
2063
2072
  ($0, $1, $2) => /([ая]ў|ну)$/.test($2) ? $1 + "ь і" + $2 : $0
2064
2073
  ]
2065
2074
  ];
2066
- var applyNoFix = (arr2, text) => arr2.length ? text.replace(NOFIX_REGEX, () => arr2.shift()) : text;
2075
+ var applyNoFix = (arr, text) => arr.length ? text.replace(NOFIX_REGEX, () => arr.shift()) : text;
2067
2076
  var afterJoin = (text) => text.replace(/&nbsp;/g, " ").replace(new RegExp(" (\\p{P}|\\p{S}|\\d|&#40) ", "gu"), "$1");
2068
2077
  var join = (textArr) => afterJoin(textArr.join(" "));
2069
2078
  var finalize = (text, newLine) => text.replace(/ \t /g, " ").replace(/ \n /g, newLine).trim();
@@ -2171,7 +2180,8 @@ var __tarask__ = {
2171
2180
  wordlist,
2172
2181
  softeners,
2173
2182
  replaceWithDict,
2174
- afterTarask
2183
+ afterTarask,
2184
+ noSoften
2175
2185
  };
2176
2186
  var convertAlphabet = (text, abc) => replaceWithDict(replaceWithDict(text, letters[abc]), lettersUpperCase[abc]);
2177
2187
  var restoreBraces = (text) => text.replace(/&#40/g, "(");
@@ -2295,7 +2305,7 @@ var Taraskevizer = class {
2295
2305
  return { splittedOrig, splitted };
2296
2306
  }
2297
2307
  taraskevize(text) {
2298
- text = replaceWithDict(text, wordlist);
2308
+ text = replaceWithDict(replaceWithDict(text, wordlist), noSoften);
2299
2309
  softening:
2300
2310
  do {
2301
2311
  text = replaceWithDict(text, softeners);
@@ -2304,7 +2314,7 @@ var Taraskevizer = class {
2304
2314
  continue softening;
2305
2315
  break;
2306
2316
  } while (true);
2307
- return replaceWithDict(text, afterTarask);
2317
+ return replaceWithDict(text.replace(//g, ""), afterTarask);
2308
2318
  }
2309
2319
  };
2310
2320
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ type Dict<T = RegExp> = readonly (readonly [T, string])[];
2
+ type WritableDict<T = RegExp> = [T, string][];
3
+
1
4
  type ModifyObjectType<T, TResultObj> = T extends object ? T extends (...args: any[]) => any ? T : TResultObj : T;
2
5
  type DeepPartialReadonly<T> = ModifyObjectType<T, {
3
6
  readonly [P in keyof T]?: DeepPartialReadonly<T[P]>;
@@ -18,7 +21,6 @@ type NonHtmlOptions = {
18
21
  type HtmlOptions = {
19
22
  g: boolean;
20
23
  };
21
- type Dict<T = RegExp> = readonly (readonly [T, string])[];
22
24
  type ExtendedDict = readonly (readonly [
23
25
  RegExp,
24
26
  string | ((...substrings: string[]) => string)
@@ -41,10 +43,11 @@ declare const VARIATION: {
41
43
  readonly ALL: 2;
42
44
  };
43
45
  declare const __tarask__: {
44
- readonly wordlist: Dict;
46
+ readonly wordlist: (readonly [RegExp, string])[];
45
47
  readonly softeners: Dict;
46
48
  readonly replaceWithDict: (text: string, dict?: ExtendedDict) => string;
47
49
  readonly afterTarask: ExtendedDict;
50
+ readonly noSoften: WritableDict;
48
51
  };
49
52
  declare class Taraskevizer {
50
53
  general: {
package/dist/index.js CHANGED
@@ -1,5 +1,22 @@
1
- // src/dict/iwords.ts
1
+ // src/dict/lib.ts
2
+ var dictFrom = {
3
+ raw: (dict) => {
4
+ for (const item of dict)
5
+ item[0] = RegExp(
6
+ item[0],
7
+ item[0] instanceof RegExp ? item[0].flags + "g" : "g"
8
+ );
9
+ return dict;
10
+ },
11
+ nonGlobal: (dict) => {
12
+ for (const item of dict)
13
+ item[0] = RegExp(item[0], "g" + item[0].flags);
14
+ return dict;
15
+ }
16
+ };
2
17
  var toOneLine = (str) => str.replace(/\n/g, "|");
18
+
19
+ // src/dict/iwords.ts
3
20
  var iwords = toOneLine(`біс
4
21
  бсэн
5
22
  в[аеоы]
@@ -110,7 +127,7 @@ var common = {
110
127
  [/[łl]i([eoua])/, "l$1"],
111
128
  [/łi/, "li"]
112
129
  ]
113
- ],
130
+ ].map(dictFrom.nonGlobal),
114
131
  upper: [
115
132
  [
116
133
  [new RegExp(" Е(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Je"],
@@ -167,15 +184,15 @@ var common = {
167
184
  [/Łi/, "Li"],
168
185
  [/ŁI/, "LI"]
169
186
  ]
170
- ]
187
+ ].map(dictFrom.nonGlobal)
171
188
  };
172
189
  var latinLetters = [
173
190
  ...common.lower[0],
174
- [/ʼі/, "ji"],
191
+ [/ʼі/g, "ji"],
175
192
  ...common.lower[1]
176
193
  ];
177
194
  var latinLettersUpperCase = common.upper.flat();
178
- var rawLatinLettersJi = [
195
+ var latinLettersJi = dictFrom.raw([
179
196
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і Ў/, "j U"],
180
197
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і ў/, "j u"],
181
198
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і /, "j "],
@@ -184,24 +201,25 @@ var rawLatinLettersJi = [
184
201
  [/(?<=[аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І /, "J "],
185
202
  [` і(?=${iwords})`, " ji"],
186
203
  [` І(?=${iwords})`, " Ji"],
187
- [` І(?=${iwords.toUpperCase()})`, " JI"],
204
+ [` І(?=${iwords.toUpperCase()})`, " JI"]
205
+ ]).concat([
188
206
  ...common.lower[0],
189
- [/(?<=[eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/, "ji"],
207
+ [/(?<=[eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/g, "ji"],
190
208
  ...common.lower[1]
191
- ];
192
- var rawLatinLettersUpperCaseJi = [
209
+ ]);
210
+ var latinLettersUpperCaseJi = [
193
211
  ...common.upper[0],
194
- [new RegExp("(?<=[eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), "Ji"],
212
+ [new RegExp("(?<=[eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "gu"), "Ji"],
195
213
  ...common.upper[1],
196
- [/(?<=[AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/, "JI"],
214
+ [/(?<=[AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/g, "JI"],
197
215
  ...common.upper[2],
198
- [/ JIŁ -/, " IŁ -"]
216
+ [/ JIŁ -/g, " IŁ -"]
199
217
  ];
200
218
 
201
219
  // src/dict/arabic.ts
202
220
  var soft = "ْ(?=[еёіюяь])";
203
221
  var presoft = "([تزكثࢮбвгджзйклмнпрстфхцчшў])ْ?(ّ?)";
204
- var rawArabLetters = [
222
+ var arabLetters = dictFrom.raw([
205
223
  [/ л[ая]/, " لا"],
206
224
  [/л[ая]/, "ـلا"],
207
225
  // падваеньне зычнага, шадда
@@ -256,9 +274,17 @@ var rawArabLetters = [
256
274
  [/ш/, "ش"],
257
275
  [/,/, "،"],
258
276
  [/\?/, "؟"]
259
- ];
277
+ ]);
278
+
279
+ // src/dict/gobj.ts
280
+ var gobj = {
281
+ г: "ґ",
282
+ Г: "Ґ",
283
+ ґ: "г",
284
+ Ґ: "Г"
285
+ };
260
286
 
261
- // src/dict/index.ts
287
+ // src/dict/wordlist.ts
262
288
  var chemicalElements1 = [
263
289
  "сканд|ванад|рубід|род|ірыд|рэзэрфорд",
264
290
  "стронц|бар|цэр|лютэц|самар| тор|амэрыц|кальц|кюр|дармштат|лівэрмор|натр"
@@ -271,7 +297,93 @@ var chemicalElements2 = [
271
297
  chemicalElements2[1] = chemicalElements2[0] + "|айнштайн|мендзялев|сыборг|гас|флеров";
272
298
  var chemicalElements3 = " гал|бэрыл|тул|бэркл|набэл";
273
299
  var ia = (word, words) => ` ${word} (?=\\(?(?:[бвгджзйклмнпстфцчшў]*[оё]|${words.replace(/\(/g, "(?:")}|i(?:${iwords})))`;
274
- var rawWordlist = [
300
+ var gwords = [
301
+ " ґб ",
302
+ "ґг",
303
+ "абрызґл",
304
+ " аґюст",
305
+ "анґол",
306
+ "арґаніз",
307
+ "арлінґтан",
308
+ "арыґінал",
309
+ " аўґс",
310
+ "аўґуст",
311
+ "аґрэст",
312
+ " біґ ",
313
+ " бразґ",
314
+ "буґацці",
315
+ "бурґ",
316
+ "вашынґт",
317
+ "возґр",
318
+ "вэдзґа",
319
+ " гааґ",
320
+ " ґабрыел",
321
+ " ґазэт",
322
+ " ґаксон",
323
+ " ґалац",
324
+ " ґалґоф",
325
+ " ґалер",
326
+ " ґаліле",
327
+ " ґальґот",
328
+ " ґамбі",
329
+ " ґарант",
330
+ " ґарсэт",
331
+ "ґарыбальдзі",
332
+ " ґаўс",
333
+ " ґаян",
334
+ "ґвалт",
335
+ // ' ґелер',
336
+ // ' ґент',
337
+ " ґётэ ",
338
+ " ґзымс",
339
+ " ґіём",
340
+ " ґітлін",
341
+ " ґлазґа ",
342
+ " ґліцэрын",
343
+ " ґлясар",
344
+ " ґонт",
345
+ " ґот",
346
+ " ґоцц",
347
+ " ґрадус",
348
+ "ґранд",
349
+ "ґрунт",
350
+ " ґрэйвэз",
351
+ "ґрэнобл",
352
+ "ґрэнлянд",
353
+ " ґузік",
354
+ " ґуст ",
355
+ " ґэлап",
356
+ " ґэры ",
357
+ " ґяд",
358
+ " ґяндж",
359
+ " джамалунґм",
360
+ " джґа",
361
+ " ірвінґ",
362
+ " іґнар",
363
+ " інтэґр",
364
+ " калеґ",
365
+ " кіплінґ",
366
+ "леґенд",
367
+ " лонґ",
368
+ " лэнґлі ",
369
+ " мазґ",
370
+ " мэґі ",
371
+ " мяґі ",
372
+ // 'нінґен',
373
+ " ніяґар",
374
+ "пінґвін",
375
+ "плявузґ",
376
+ "праґрам",
377
+ " розґ",
378
+ " ролінґ",
379
+ " рэдынґ",
380
+ " сіґітас",
381
+ " сійґ",
382
+ "райхстаґ",
383
+ " уґанд",
384
+ " цуґл"
385
+ ].reverse().map((word) => [RegExp(word.replace(/ґ/g, "г"), "g"), word]);
386
+ var wordlist = dictFrom.raw([
275
387
  /* А */
276
388
  [/аахен/, "аахэн"],
277
389
  [/абанен(?=[тц])/, "абанэн"],
@@ -1847,8 +1959,14 @@ var rawWordlist = [
1847
1959
  [/ яблынь /, " яблын(ь|яў) "],
1848
1960
  [/ расей /, " расе(й|яў) "],
1849
1961
  [//, ""]
1850
- ];
1851
- var rawsofteners = [
1962
+ ]).concat(gwords);
1963
+
1964
+ // src/dict/softening.ts
1965
+ var noSoften = dictFrom.nonGlobal([
1966
+ [/масфільм/, "масфільм"],
1967
+ [/пэндзлік/, "пэндзлік"]
1968
+ ]);
1969
+ var softeners = dictFrom.raw([
1852
1970
  [/([лнц])\1(?=[еёіюяь])/, "$1ь$1"],
1853
1971
  [/(\S\S)дз?дз(?=[еёіюяь])/, "$1дзьдз"],
1854
1972
  [/адзьдз([ея])л/, "аддз$1л"],
@@ -1857,121 +1975,12 @@ var rawsofteners = [
1857
1975
  [/з(?=([бвзлмнц]|дз)[еёіюяь])/, "зь"],
1858
1976
  [/с(?=[бвлмнпсфц][еёіюяь])/, "сь"],
1859
1977
  [/ц(?=[вм][еёіюяь])/, "ць"],
1860
- [`( (?:б[ея]|пра|цера)?з) (?=\\(?)(?=[еёюяь]|([бвзйлмнпстфц]|дз)[еёіюяь]|імі? |іх(?:ні)?|і(?:${iwords}))`, "$1ь "],
1978
+ [
1979
+ `( (?:б[ея]|пра|цера)?з) (?=\\(?)(?=[еёюяь]|([бвзйлмнпстфц]|дз)[еёіюяь]|імі? |іх(?:ні)?|і(?:${iwords}))`,
1980
+ "$1ь "
1981
+ ],
1861
1982
  [/([сз])ʼ(?=[яюеё])/, "$1ь"]
1862
- ];
1863
- var gwords = [
1864
- " ґб ",
1865
- "ґг",
1866
- "абрызґл",
1867
- " аґюст",
1868
- "анґол",
1869
- "арґаніз",
1870
- "арлінґтан",
1871
- "арыґінал",
1872
- " аўґс",
1873
- "аўґуст",
1874
- "аґрэст",
1875
- " біґ ",
1876
- " бразґ",
1877
- "буґацці",
1878
- "бурґ",
1879
- "вашынґт",
1880
- "возґр",
1881
- "вэдзґа",
1882
- " гааґ",
1883
- " ґабрыел",
1884
- " ґазэт",
1885
- " ґаксон",
1886
- " ґалац",
1887
- " ґалґоф",
1888
- " ґалер",
1889
- " ґаліле",
1890
- " ґальґот",
1891
- " ґамбі",
1892
- " ґарант",
1893
- " ґарсэт",
1894
- "ґарыбальдзі",
1895
- " ґаўс",
1896
- " ґаян",
1897
- "ґвалт",
1898
- // ' ґелер',
1899
- // ' ґент',
1900
- " ґётэ ",
1901
- " ґзымс",
1902
- " ґіём",
1903
- " ґітлін",
1904
- " ґлазґа ",
1905
- " ґліцэрын",
1906
- " ґлясар",
1907
- " ґонт",
1908
- " ґот",
1909
- " ґоцц",
1910
- " ґрадус",
1911
- "ґранд",
1912
- "ґрунт",
1913
- " ґрэйвэз",
1914
- "ґрэнобл",
1915
- "ґрэнлянд",
1916
- " ґузік",
1917
- " ґуст ",
1918
- " ґэлап",
1919
- " ґэры ",
1920
- " ґяд",
1921
- " ґяндж",
1922
- " джамалунґм",
1923
- " джґа",
1924
- " ірвінґ",
1925
- " іґнар",
1926
- " інтэґр",
1927
- " калеґ",
1928
- " кіплінґ",
1929
- "леґенд",
1930
- " лонґ",
1931
- " лэнґлі ",
1932
- " мазґ",
1933
- " мэґі ",
1934
- " мяґі ",
1935
- // 'нінґен',
1936
- " ніяґар",
1937
- "пінґвін",
1938
- "плявузґ",
1939
- "праґрам",
1940
- " розґ",
1941
- " ролінґ",
1942
- " рэдынґ",
1943
- " сіґітас",
1944
- " сійґ",
1945
- "райхстаґ",
1946
- " уґанд",
1947
- " цуґл"
1948
- ].reverse();
1949
- var gobj = {
1950
- "г": "ґ",
1951
- "Г": "Ґ",
1952
- "ґ": "г",
1953
- "Ґ": "Г"
1954
- };
1955
- var wordlist = [];
1956
- var softeners = [];
1957
- var arabLetters = [];
1958
- var latinLettersJi = [];
1959
- var latinLettersUpperCaseJi = [];
1960
- var arr = [
1961
- [rawWordlist, wordlist],
1962
- [rawsofteners, softeners],
1963
- [rawArabLetters, arabLetters],
1964
- [rawLatinLettersJi, latinLettersJi],
1965
- [rawLatinLettersUpperCaseJi, latinLettersUpperCaseJi]
1966
- ];
1967
- for (const [raw, obj] of arr)
1968
- for (const [pattern, result] of raw)
1969
- obj.push([RegExp(pattern, pattern instanceof RegExp ? pattern.flags + "g" : "g"), result]);
1970
- for (const obj of [latinLetters, latinLettersUpperCase])
1971
- for (const item of obj)
1972
- item[0] = RegExp(item[0], "g" + item[0].flags);
1973
- for (const word of gwords)
1974
- wordlist.push([RegExp(word.replace(/ґ/g, "г"), "g"), word]);
1983
+ ]);
1975
1984
 
1976
1985
  // src/tarask.ts
1977
1986
  var isUpperCase = (str) => str === str.toUpperCase();
@@ -2032,7 +2041,7 @@ var afterTarask = [
2032
2041
  ($0, $1, $2) => /([ая]ў|ну)$/.test($2) ? $1 + "ь і" + $2 : $0
2033
2042
  ]
2034
2043
  ];
2035
- var applyNoFix = (arr2, text) => arr2.length ? text.replace(NOFIX_REGEX, () => arr2.shift()) : text;
2044
+ var applyNoFix = (arr, text) => arr.length ? text.replace(NOFIX_REGEX, () => arr.shift()) : text;
2036
2045
  var afterJoin = (text) => text.replace(/&nbsp;/g, " ").replace(new RegExp(" (\\p{P}|\\p{S}|\\d|&#40) ", "gu"), "$1");
2037
2046
  var join = (textArr) => afterJoin(textArr.join(" "));
2038
2047
  var finalize = (text, newLine) => text.replace(/ \t /g, " ").replace(/ \n /g, newLine).trim();
@@ -2140,7 +2149,8 @@ var __tarask__ = {
2140
2149
  wordlist,
2141
2150
  softeners,
2142
2151
  replaceWithDict,
2143
- afterTarask
2152
+ afterTarask,
2153
+ noSoften
2144
2154
  };
2145
2155
  var convertAlphabet = (text, abc) => replaceWithDict(replaceWithDict(text, letters[abc]), lettersUpperCase[abc]);
2146
2156
  var restoreBraces = (text) => text.replace(/&#40/g, "(");
@@ -2264,7 +2274,7 @@ var Taraskevizer = class {
2264
2274
  return { splittedOrig, splitted };
2265
2275
  }
2266
2276
  taraskevize(text) {
2267
- text = replaceWithDict(text, wordlist);
2277
+ text = replaceWithDict(replaceWithDict(text, wordlist), noSoften);
2268
2278
  softening:
2269
2279
  do {
2270
2280
  text = replaceWithDict(text, softeners);
@@ -2273,7 +2283,7 @@ var Taraskevizer = class {
2273
2283
  continue softening;
2274
2284
  break;
2275
2285
  } while (true);
2276
- return replaceWithDict(text, afterTarask);
2286
+ return replaceWithDict(text.replace(//g, ""), afterTarask);
2277
2287
  }
2278
2288
  };
2279
2289
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taraskevizer",
3
- "version": "6.0.5",
3
+ "version": "6.0.7",
4
4
  "author": "GooseOb",
5
5
  "repository": {
6
6
  "type": "git",