taraskevizer 7.0.2 → 7.1.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/README.md CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  htmlPipeline,
28
28
  abcOnlyPipeline,
29
29
  TaraskConfig,
30
- ALPHABET,
30
+ alphabets,
31
31
  J,
32
32
  VARIATION,
33
33
  } from 'taraskevizer';
@@ -37,7 +37,7 @@ tarask('планета', plainTextPipeline);
37
37
 
38
38
  const cfg = new TaraskConfig({
39
39
  general: {
40
- abc: ALPHABET.CYRILLIC,
40
+ abc: alphabets.cyrillic,
41
41
  j: J.ALWAYS,
42
42
  },
43
43
  nonHtml: {
@@ -51,7 +51,7 @@ tarask('планета і Гродна', plainTextPipeline, cfg);
51
51
 
52
52
  const cfg = new TaraskConfig({
53
53
  general: {
54
- abc: ALPHABET.LATIN,
54
+ abc: alphabets.latin,
55
55
  },
56
56
  html: {
57
57
  g: false, // ignored, because alphabet is set to latin
@@ -61,7 +61,7 @@ tarask('энергія планеты', htmlPipeline, cfg);
61
61
  // "en<tarF>erg</tarF>ija p<tarF>lan</tarF>ety"
62
62
 
63
63
  const latinWithJiCfg = new TaraskConfig({
64
- general: { abc: ALPHABET.LATIN_JI },
64
+ general: { abc: alphabets.latinJi },
65
65
  });
66
66
 
67
67
  tarask('яна і іншыя', abcOnlyPipeline, latinWithJiCfg);
@@ -83,7 +83,10 @@ Type: `object` with schema: `{lower: Dict, upper?: Dict}`,
83
83
  where `Dict` is `[pattern: RegExp, result: string][]`
84
84
  (may be empty)
85
85
 
86
- Default value: `ALPHABET.CYRILLIC`
86
+ `alphabets` contains the following pre-defined alphabets:
87
+ `cyrillic`, `latin`, `latinJi`, `arabic`
88
+
89
+ Default value: `alphabets.cyrillic`
87
90
 
88
91
  ### j
89
92
 
@@ -108,7 +111,7 @@ Default `true`
108
111
 
109
112
  If set to false, may cause unwanted changes in acronyms.
110
113
 
111
- Is always `false` in `convertAlphabetOnly`.
114
+ Is always `false` in `abcOnlyPipeline`.
112
115
 
113
116
  ## html
114
117
 
package/dist/bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- ALPHABET,
3
+ dicts,
4
4
  REPLACE_J,
5
5
  VARIATION,
6
6
  TaraskConfig,
@@ -16,7 +16,7 @@ const printWithPrefix = (msg) => {
16
16
  process.argv.splice(0, 2);
17
17
  const checkForOptions = (options) => process.argv[0] && options.includes(process.argv[0].toLowerCase());
18
18
  if (checkForOptions(["-v", "--version"])) {
19
- printWithPrefix("7.0.2");
19
+ printWithPrefix("7.1.0");
20
20
  process.exit(0);
21
21
  }
22
22
  if (checkForOptions(["-h", "--help"])) {
@@ -88,19 +88,19 @@ const optionDict = toHashTable([
88
88
  [
89
89
  ["--latin", "-l"],
90
90
  () => {
91
- general.abc = ALPHABET.LATIN;
91
+ general.abc = dicts.alphabets.latin;
92
92
  }
93
93
  ],
94
94
  [
95
95
  ["--latin-ji", "-lj"],
96
96
  () => {
97
- general.abc = ALPHABET.LATIN_JI;
97
+ general.abc = dicts.alphabets.latinJi;
98
98
  }
99
99
  ],
100
100
  [
101
101
  ["--arabic", "-a"],
102
102
  () => {
103
- general.abc = ALPHABET.ARABIC;
103
+ general.abc = dicts.alphabets.arabic;
104
104
  }
105
105
  ],
106
106
  [
package/dist/index.cjs CHANGED
@@ -20,7 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
- ALPHABET: () => ALPHABET,
24
23
  REPLACE_J: () => REPLACE_J,
25
24
  TaraskConfig: () => TaraskConfig,
26
25
  VARIATION: () => VARIATION,
@@ -28,8 +27,8 @@ __export(src_exports, {
28
27
  dicts: () => dict_exports,
29
28
  htmlPipeline: () => htmlPipeline,
30
29
  lib: () => lib_exports,
31
- pipelineSteps: () => steps_exports,
32
30
  plainTextPipeline: () => plainTextPipeline,
31
+ steps: () => steps_exports,
33
32
  tarask: () => tarask
34
33
  });
35
34
  module.exports = __toCommonJS(src_exports);
@@ -37,17 +36,21 @@ module.exports = __toCommonJS(src_exports);
37
36
  // src/dict/index.ts
38
37
  var dict_exports = {};
39
38
  __export(dict_exports, {
40
- arabLetters: () => arabLetters,
39
+ alphabets: () => alphabets_exports,
41
40
  gobj: () => gobj,
42
- latinLettersLowerCase: () => latinLettersLowerCase,
43
- latinLettersLowerCaseJi: () => latinLettersLowerCaseJi,
44
- latinLettersUpperCase: () => latinLettersUpperCase,
45
- latinLettersUpperCaseJi: () => latinLettersUpperCaseJi,
46
41
  noSoften: () => noSoften,
47
42
  softeners: () => softeners,
48
43
  wordlist: () => wordlist
49
44
  });
50
45
 
46
+ // src/dict/gobj.ts
47
+ var gobj = {
48
+ г: "ґ",
49
+ Г: "Ґ",
50
+ ґ: "г",
51
+ Ґ: "Г"
52
+ };
53
+
51
54
  // src/dict/lib.ts
52
55
  var dictFrom = {
53
56
  raw: (dict) => {
@@ -127,213 +130,6 @@ var iwords = toOneLine(`біс
127
130
  ць?він
128
131
  шыяс`);
129
132
 
130
- // src/dict/latin.ts
131
- var common = {
132
- lower: [
133
- [
134
- [/(?<=[аеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)е/, "je"],
135
- [/(?<=[eаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ё/, "jo"],
136
- [/(?<=[eoаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ю/, "ju"],
137
- [/(?<=[eouаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)я/, "ja"]
138
- ],
139
- [
140
- [/ʼ/, ""],
141
- [/ць/, "ć"],
142
- [/зь/, "ź"],
143
- [/сь/, "ś"],
144
- [/нь/, "ń"],
145
- [/ль/, "l"],
146
- [/а/, "a"],
147
- [/б/, "b"],
148
- [/в/, "v"],
149
- [/г/, "h"],
150
- [/ґ/, "g"],
151
- [/д/, "d"],
152
- [/е/, "ie"],
153
- [/ё/, "io"],
154
- [/ж/, "ž"],
155
- [/з/, "z"],
156
- [/і/, "i"],
157
- [/й/, "j"],
158
- [/к/, "k"],
159
- [/л/, "ł"],
160
- [/м/, "m"],
161
- [/н/, "n"],
162
- [/о/, "o"],
163
- [/п/, "p"],
164
- [/р/, "r"],
165
- [/с/, "s"],
166
- [/т/, "t"],
167
- [/у/, "u"],
168
- [/ў/, "ŭ"],
169
- [/ф/, "f"],
170
- [/х/, "ch"],
171
- [/ц/, "c"],
172
- [/ч/, "č"],
173
- [/ш/, "š"],
174
- [/ы/, "y"],
175
- [/э/, "e"],
176
- [/ю/, "iu"],
177
- [/я/, "ia"],
178
- [/łi(?=[eoua])/, "l"],
179
- [/łi/, "li"]
180
- ]
181
- ].map(dictFrom.nonGlobal),
182
- upper: [
183
- [
184
- [new RegExp(" Е(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Je"],
185
- [new RegExp(" Ё(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Jo"],
186
- [new RegExp(" Ю(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ju"],
187
- [new RegExp(" Я(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ja"]
188
- ],
189
- [
190
- [/([АЕЁІОУЎЫЭЮЯЬ| ]\(?)Е/, "$1JE"],
191
- [/([EАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ё/, "$1JO"],
192
- [/([EOАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ю/, "$1JU"],
193
- [/([EOUАЕЁІОУЎЫЭЮЯЬ| ]\(?)Я/, "$1JA"]
194
- ],
195
- [
196
- [/Е/, "IE"],
197
- [/Ё/, "IO"],
198
- [/Ю/, "IU"],
199
- [/Я/, "IA"],
200
- [/Ц[Ьь]/, "Ć"],
201
- [/З[Ьь]/, "Ź"],
202
- [/С[Ьь]/, "Ś"],
203
- [/Н[Ьь]/, "Ń"],
204
- [/Л[Ьь]/, "L"],
205
- [/А/, "A"],
206
- [/Б/, "B"],
207
- [/В/, "V"],
208
- [/Г/, "H"],
209
- [/Ґ/, "G"],
210
- [/Д/, "D"],
211
- [/Ж/, "Ž"],
212
- [/З/, "Z"],
213
- [/І/, "I"],
214
- [/Й/, "J"],
215
- [/К/, "K"],
216
- [/Л/, "Ł"],
217
- [/М/, "M"],
218
- [/Н/, "N"],
219
- [/О/, "O"],
220
- [/П/, "P"],
221
- [/Р/, "R"],
222
- [/С/, "S"],
223
- [/Т/, "T"],
224
- [/У/, "U"],
225
- [/Ў/, "Ŭ"],
226
- [/Ф/, "F"],
227
- [/ Х(?=[\p{Ll} ])/u, " Ch"],
228
- [/Х/, "CH"],
229
- [/Ц/, "C"],
230
- [/Ч/, "Č"],
231
- [/Ш/, "Š"],
232
- [/Ы/, "Y"],
233
- [/Э/, "E"],
234
- [/Ł[Ii](?=[AEOUaeou])/, "L"],
235
- [/Ł(?=[Ii])/, "L"]
236
- ]
237
- ].map(dictFrom.nonGlobal)
238
- };
239
- var latinLettersLowerCase = [
240
- ...common.lower[0],
241
- [/ʼі/g, "ji"],
242
- ...common.lower[1]
243
- ];
244
- var latinLettersUpperCase = common.upper.flat();
245
- var latinLettersLowerCaseJi = dictFrom.raw([
246
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і Ў/, "$1j U"],
247
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і ў/, "$1j u"],
248
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і /, "$1j "],
249
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І Ў/, "$1J U"],
250
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І ў/, "$1J u"],
251
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І /, "$1J "],
252
- [` і(?=${iwords})`, " ji"],
253
- [` І(?=${iwords})`, " Ji"],
254
- [` І(?=${iwords.toUpperCase()})`, " JI"]
255
- ]).concat([
256
- ...common.lower[0],
257
- [/([eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/g, "$1ji"],
258
- ...common.lower[1]
259
- ]);
260
- var latinLettersUpperCaseJi = [
261
- ...common.upper[0],
262
- [new RegExp("([eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "gu"), "$1Ji"],
263
- ...common.upper[1],
264
- [/([AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/g, "$1JI"],
265
- ...common.upper[2],
266
- [/ JIŁ -/g, " IŁ -"]
267
- ];
268
-
269
- // src/dict/arabic.ts
270
- var soft = "ْ(?=[еёіюяь])";
271
- var presoft = "([تزكثࢮбвгджзйклмнпрстфхцчшў])ْ?(ّ?)";
272
- var arabLetters = dictFrom.raw([
273
- [/ л[ая]/, " لا"],
274
- [/л[ая]/, "ـلا"],
275
- // падваеньне зычнага, шадда
276
- [/([бвгджзйклмнпрстфхцчшў]|д[зж])\1/, "$1ّ"],
277
- // няма галоснага, сукун
278
- [/([бвгджзйклмнпрстфхцчшў])/, "$1ْ"],
279
- // а, аліф
280
- [/а/, "اа"],
281
- // першая галосная, аліф
282
- [/ (?=[еэыуо])/, " ا"],
283
- ["дْз" + soft, "ࢮ"],
284
- ["з" + soft, "ز"],
285
- ["к" + soft, "ك"],
286
- ["с" + soft, "ث"],
287
- ["т" + soft, "ت"],
288
- [/([تزكث])і/, "ы"],
289
- // $2 - шадда
290
- [presoft + "[аяэе]", "$1$2َ"],
291
- [presoft + "[іы]", "$1$2ِ"],
292
- [/ і /, " اِ "],
293
- [presoft + "[оёую]", "$1$2ُ"],
294
- [/ʼ/, "ع"],
295
- [/ь/, ""],
296
- // [/[ьʼ]/, ''],
297
- [/[яе]/, "يَ"],
298
- [/і/, "يِ"],
299
- [/[ёю]/, "يُ"],
300
- [/[аэ]/, "َ"],
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
- // src/dict/gobj.ts
330
- var gobj = {
331
- г: "ґ",
332
- Г: "Ґ",
333
- ґ: "г",
334
- Ґ: "Г"
335
- };
336
-
337
133
  // src/dict/wordlist.ts
338
134
  var chemicalElements1 = [
339
135
  "сканд|ванад|рубід|род|ірыд|рэзэрфорд",
@@ -2032,23 +1828,220 @@ var softeners = dictFrom.raw([
2032
1828
  [/([сз])ʼ(?=[яюеё])/, "$1ь"]
2033
1829
  ]);
2034
1830
 
2035
- // src/alphabet.ts
2036
- var ALPHABET = {
2037
- LATIN: {
2038
- lower: latinLettersLowerCase,
2039
- upper: latinLettersUpperCase
2040
- },
2041
- LATIN_JI: {
2042
- lower: latinLettersLowerCaseJi,
2043
- upper: latinLettersUpperCaseJi
2044
- },
2045
- ARABIC: {
2046
- lower: arabLetters
2047
- },
2048
- CYRILLIC: {
2049
- lower: [],
2050
- upper: []
2051
- }
1831
+ // src/dict/alphabets/index.ts
1832
+ var alphabets_exports = {};
1833
+ __export(alphabets_exports, {
1834
+ arabic: () => arabic,
1835
+ cyrillic: () => cyrillic,
1836
+ latin: () => latin,
1837
+ latinJi: () => latinJi
1838
+ });
1839
+
1840
+ // src/dict/alphabets/cyrillic.ts
1841
+ var cyrillic = {
1842
+ lower: [],
1843
+ upper: []
1844
+ };
1845
+
1846
+ // src/dict/alphabets/latin.ts
1847
+ var common = {
1848
+ lower: [
1849
+ [
1850
+ [/(?<=[аеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)е/, "je"],
1851
+ [/(?<=[eаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ё/, "jo"],
1852
+ [/(?<=[eoаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ю/, "ju"],
1853
+ [/(?<=[eouаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)я/, "ja"]
1854
+ ],
1855
+ [
1856
+ [/ʼ/, ""],
1857
+ [/ць/, "ć"],
1858
+ [/зь/, "ź"],
1859
+ [/сь/, "ś"],
1860
+ [/нь/, "ń"],
1861
+ [/ль/, "l"],
1862
+ [/а/, "a"],
1863
+ [/б/, "b"],
1864
+ [/в/, "v"],
1865
+ [/г/, "h"],
1866
+ [/ґ/, "g"],
1867
+ [/д/, "d"],
1868
+ [/е/, "ie"],
1869
+ [/ё/, "io"],
1870
+ [/ж/, "ž"],
1871
+ [/з/, "z"],
1872
+ [/і/, "i"],
1873
+ [/й/, "j"],
1874
+ [/к/, "k"],
1875
+ [/л/, "ł"],
1876
+ [/м/, "m"],
1877
+ [/н/, "n"],
1878
+ [/о/, "o"],
1879
+ [/п/, "p"],
1880
+ [/р/, "r"],
1881
+ [/с/, "s"],
1882
+ [/т/, "t"],
1883
+ [/у/, "u"],
1884
+ [/ў/, "ŭ"],
1885
+ [/ф/, "f"],
1886
+ [/х/, "ch"],
1887
+ [/ц/, "c"],
1888
+ [/ч/, "č"],
1889
+ [/ш/, "š"],
1890
+ [/ы/, "y"],
1891
+ [/э/, "e"],
1892
+ [/ю/, "iu"],
1893
+ [/я/, "ia"],
1894
+ [/łi(?=[eoua])/, "l"],
1895
+ [/łi/, "li"]
1896
+ ]
1897
+ ].map(dictFrom.nonGlobal),
1898
+ upper: [
1899
+ [
1900
+ [new RegExp(" Е(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Je"],
1901
+ [new RegExp(" Ё(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Jo"],
1902
+ [new RegExp(" Ю(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ju"],
1903
+ [new RegExp(" Я(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ja"]
1904
+ ],
1905
+ [
1906
+ [/([АЕЁІОУЎЫЭЮЯЬ| ]\(?)Е/, "$1JE"],
1907
+ [/([EАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ё/, "$1JO"],
1908
+ [/([EOАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ю/, "$1JU"],
1909
+ [/([EOUАЕЁІОУЎЫЭЮЯЬ| ]\(?)Я/, "$1JA"]
1910
+ ],
1911
+ [
1912
+ [/Е/, "IE"],
1913
+ [/Ё/, "IO"],
1914
+ [/Ю/, "IU"],
1915
+ [/Я/, "IA"],
1916
+ [/Ц[Ьь]/, "Ć"],
1917
+ [/З[Ьь]/, "Ź"],
1918
+ [/С[Ьь]/, "Ś"],
1919
+ [/Н[Ьь]/, "Ń"],
1920
+ [/Л[Ьь]/, "L"],
1921
+ [/А/, "A"],
1922
+ [/Б/, "B"],
1923
+ [/В/, "V"],
1924
+ [/Г/, "H"],
1925
+ [/Ґ/, "G"],
1926
+ [/Д/, "D"],
1927
+ [/Ж/, "Ž"],
1928
+ [/З/, "Z"],
1929
+ [/І/, "I"],
1930
+ [/Й/, "J"],
1931
+ [/К/, "K"],
1932
+ [/Л/, "Ł"],
1933
+ [/М/, "M"],
1934
+ [/Н/, "N"],
1935
+ [/О/, "O"],
1936
+ [/П/, "P"],
1937
+ [/Р/, "R"],
1938
+ [/С/, "S"],
1939
+ [/Т/, "T"],
1940
+ [/У/, "U"],
1941
+ [/Ў/, "Ŭ"],
1942
+ [/Ф/, "F"],
1943
+ [/ Х(?=[\p{Ll} ])/u, " Ch"],
1944
+ [/Х/, "CH"],
1945
+ [/Ц/, "C"],
1946
+ [/Ч/, "Č"],
1947
+ [/Ш/, "Š"],
1948
+ [/Ы/, "Y"],
1949
+ [/Э/, "E"],
1950
+ [/Ł[Ii](?=[AEOUaeou])/, "L"],
1951
+ [/Ł(?=[Ii])/, "L"]
1952
+ ]
1953
+ ].map(dictFrom.nonGlobal)
1954
+ };
1955
+ var latin = {
1956
+ lower: [...common.lower[0], [/ʼі/g, "ji"], ...common.lower[1]],
1957
+ upper: common.upper.flat()
1958
+ };
1959
+ var latinJi = {
1960
+ lower: dictFrom.raw([
1961
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і Ў/, "$1j U"],
1962
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і ў/, "$1j u"],
1963
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і /, "$1j "],
1964
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І Ў/, "$1J U"],
1965
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І ў/, "$1J u"],
1966
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І /, "$1J "],
1967
+ [` і(?=${iwords})`, " ji"],
1968
+ [` І(?=${iwords})`, " Ji"],
1969
+ [` І(?=${iwords.toUpperCase()})`, " JI"]
1970
+ ]).concat([
1971
+ ...common.lower[0],
1972
+ [/([eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/g, "$1ji"],
1973
+ ...common.lower[1]
1974
+ ]),
1975
+ upper: [
1976
+ ...common.upper[0],
1977
+ [new RegExp("([eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "gu"), "$1Ji"],
1978
+ ...common.upper[1],
1979
+ [/([AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/g, "$1JI"],
1980
+ ...common.upper[2],
1981
+ [/ JIŁ -/g, " IŁ -"]
1982
+ ]
1983
+ };
1984
+
1985
+ // src/dict/alphabets/arabic.ts
1986
+ var soft = "ْ(?=[еёіюяь])";
1987
+ var presoft = "([تزكثࢮбвгджзйклмнпрстфхцчшў])ْ?(ّ?)";
1988
+ var arabic = {
1989
+ lower: dictFrom.raw([
1990
+ [/ л[ая]/, " لا"],
1991
+ [/л[ая]/, "ـلا"],
1992
+ // падваеньне зычнага, шадда
1993
+ [/([бвгджзйклмнпрстфхцчшў]|д[зж])\1/, "$1ّ"],
1994
+ // няма галоснага, сукун
1995
+ [/([бвгджзйклмнпрстфхцчшў])/, "$1ْ"],
1996
+ // а, аліф
1997
+ [/а/, "اа"],
1998
+ // першая галосная, аліф
1999
+ [/ (?=[еэыуо])/, " ا"],
2000
+ ["дْз" + soft, "ࢮ"],
2001
+ ["з" + soft, "ز"],
2002
+ ["к" + soft, "ك"],
2003
+ ["с" + soft, "ث"],
2004
+ ["т" + soft, "ت"],
2005
+ [/([تزكث])і/, "ы"],
2006
+ // $2 - шадда
2007
+ [presoft + "[аяэе]", "$1$2َ"],
2008
+ [presoft + "[іы]", "$1$2ِ"],
2009
+ [/ і /, " اِ "],
2010
+ [presoft + "[оёую]", "$1$2ُ"],
2011
+ [/ʼ/, "ع"],
2012
+ [/ь/, ""],
2013
+ // [/[ьʼ]/, ''],
2014
+ [/[яе]/, "يَ"],
2015
+ [/і/, "يِ"],
2016
+ [/[ёю]/, "يُ"],
2017
+ [/[аэ]/, "َ"],
2018
+ [/[ыі]/, "ِ"],
2019
+ [/[оу]/, "ُ"],
2020
+ [/б/, "ب"],
2021
+ [/[вў]/, "و"],
2022
+ [/г/, "ه"],
2023
+ [/ґ/, "غ"],
2024
+ [/дْж/, "ج"],
2025
+ [/д/, "د"],
2026
+ [/ж/, "ژ"],
2027
+ [/з/, "ض"],
2028
+ [/й/, "ي"],
2029
+ [/к/, "ق"],
2030
+ [/л/, "ل"],
2031
+ [/м/, "م"],
2032
+ [/н/, "ن"],
2033
+ [/п/, "پ"],
2034
+ [/р/, "ر"],
2035
+ [/с/, "ص"],
2036
+ [/т/, "ط"],
2037
+ [/ф/, "ف"],
2038
+ [/х/, "ح"],
2039
+ [/ц/, "ࢯ"],
2040
+ [/ч/, "چ"],
2041
+ [/ш/, "ش"],
2042
+ [/,/, "،"],
2043
+ [/\?/, "؟"]
2044
+ ])
2052
2045
  };
2053
2046
 
2054
2047
  // src/config.ts
@@ -2069,7 +2062,7 @@ var TaraskConfig = class {
2069
2062
  }
2070
2063
  }
2071
2064
  general = {
2072
- abc: ALPHABET.CYRILLIC,
2065
+ abc: alphabets_exports.cyrillic,
2073
2066
  j: REPLACE_J.NEVER,
2074
2067
  doEscapeCapitalized: true
2075
2068
  };
@@ -2294,7 +2287,7 @@ var highlightDiffStep = (highlight) => (_, {
2294
2287
  },
2295
2288
  storage: { text, orig }
2296
2289
  }) => {
2297
- highlightDiff(text, orig, abc === ALPHABET.CYRILLIC, highlight);
2290
+ highlightDiff(text, orig, abc === alphabets_exports.cyrillic, highlight);
2298
2291
  return _;
2299
2292
  };
2300
2293
  var highlightDiffNonHtmlStep = (_, {
@@ -2305,7 +2298,12 @@ var highlightDiffNonHtmlStep = (_, {
2305
2298
  storage: { text, orig }
2306
2299
  }) => {
2307
2300
  if (ansiColors)
2308
- highlightDiff(text, orig, abc === ALPHABET.CYRILLIC, ansiColorWrappers.fix);
2301
+ highlightDiff(
2302
+ text,
2303
+ orig,
2304
+ abc === alphabets_exports.cyrillic,
2305
+ ansiColorWrappers.fix
2306
+ );
2309
2307
  return _;
2310
2308
  };
2311
2309
 
@@ -2394,7 +2392,7 @@ var applyHtmlG = (text, {
2394
2392
  }
2395
2393
  }) => {
2396
2394
  const colorize = htmlWrappers.letterH;
2397
- return abc === ALPHABET.CYRILLIC ? replaceG(g ? colorize("$&") : ($0) => colorize(gobj[$0]))(text) : text;
2395
+ return abc === alphabets_exports.cyrillic ? replaceG(g ? colorize("$&") : ($0) => colorize(gobj[$0]))(text) : text;
2398
2396
  };
2399
2397
 
2400
2398
  // src/steps/i-to-j.ts
@@ -2403,7 +2401,7 @@ var replaceIbyJ = (text, {
2403
2401
  cfg: {
2404
2402
  general: { j, abc }
2405
2403
  }
2406
- }) => j && abc !== ALPHABET.LATIN_JI ? text.replace(
2404
+ }) => j && abc !== alphabets_exports.latinJi ? text.replace(
2407
2405
  /(?<=[аеёіоуыэюя] )і (ў?)/g,
2408
2406
  j === REPLACE_J.ALWAYS ? ($0, $1) => toJ($1) : ($0, $1) => Math.random() >= 0.5 ? toJ($1) : $0
2409
2407
  ) : text;
@@ -2426,7 +2424,7 @@ var applyNonHtmlG = (text, {
2426
2424
  }
2427
2425
  }) => {
2428
2426
  const colorize = ansiColorWrappers.variable;
2429
- return abc === ALPHABET.CYRILLIC && (h || ansiColors) ? replaceG(
2427
+ return abc === alphabets_exports.cyrillic && (h || ansiColors) ? replaceG(
2430
2428
  ansiColors ? h ? ($0) => colorize(gobj[$0]) : colorize("$&") : ($0) => gobj[$0]
2431
2429
  )(text) : text;
2432
2430
  };
@@ -2441,7 +2439,7 @@ var restoreCaseStep = (_, {
2441
2439
  },
2442
2440
  storage
2443
2441
  }) => {
2444
- if (abc !== ALPHABET.ARABIC) {
2442
+ if (abc.upper) {
2445
2443
  storage.text = restoreCase(storage.text, storage.orig);
2446
2444
  }
2447
2445
  return _;
@@ -2556,7 +2554,6 @@ var htmlPipeline = createPipeline(
2556
2554
  );
2557
2555
  // Annotate the CommonJS export names for ESM import in node:
2558
2556
  0 && (module.exports = {
2559
- ALPHABET,
2560
2557
  REPLACE_J,
2561
2558
  TaraskConfig,
2562
2559
  VARIATION,
@@ -2564,7 +2561,7 @@ var htmlPipeline = createPipeline(
2564
2561
  dicts,
2565
2562
  htmlPipeline,
2566
2563
  lib,
2567
- pipelineSteps,
2568
2564
  plainTextPipeline,
2565
+ steps,
2569
2566
  tarask
2570
2567
  });
package/dist/index.d.ts CHANGED
@@ -1,15 +1,63 @@
1
+ declare const gobj: {
2
+ readonly г: "ґ";
3
+ readonly Г: "Ґ";
4
+ readonly ґ: "г";
5
+ readonly Ґ: "Г";
6
+ };
7
+
8
+ declare const wordlist: (readonly [RegExp, string])[];
9
+
1
10
  type Dict<T = RegExp> = readonly (readonly [T, string])[];
2
11
  type WritableDict<T = RegExp> = [T, string][];
3
12
  type RawDict = WritableDict<string | RegExp>;
4
13
 
5
- type ModifyObjectType<T, TResultObj> = T extends object ? T extends (...args: any[]) => any ? T : TResultObj : T;
6
- type DeepPartialReadonly<T> = ModifyObjectType<T, {
7
- readonly [P in keyof T]?: DeepPartialReadonly<T[P]>;
8
- }>;
14
+ declare const noSoften: Dict;
15
+ declare const softeners: Dict;
16
+
17
+ declare const cyrillic: {
18
+ lower: never[];
19
+ upper: never[];
20
+ };
21
+
22
+ declare const latin: {
23
+ lower: (readonly [RegExp, string])[];
24
+ upper: (readonly [RegExp, string])[];
25
+ };
26
+ declare const latinJi: {
27
+ lower: (readonly [RegExp, string])[];
28
+ upper: (readonly [RegExp, string])[];
29
+ };
30
+
31
+ declare const arabic: {
32
+ lower: Dict;
33
+ };
34
+
35
+ declare const index$3_arabic: typeof arabic;
36
+ declare const index$3_cyrillic: typeof cyrillic;
37
+ declare const index$3_latin: typeof latin;
38
+ declare const index$3_latinJi: typeof latinJi;
39
+ declare namespace index$3 {
40
+ export { index$3_arabic as arabic, index$3_cyrillic as cyrillic, index$3_latin as latin, index$3_latinJi as latinJi };
41
+ }
42
+
9
43
  type Alphabet = {
10
44
  lower: Dict;
11
45
  upper?: Dict;
12
46
  };
47
+
48
+ type index$2_Alphabet = Alphabet;
49
+ declare const index$2_gobj: typeof gobj;
50
+ declare const index$2_noSoften: typeof noSoften;
51
+ declare const index$2_softeners: typeof softeners;
52
+ declare const index$2_wordlist: typeof wordlist;
53
+ declare namespace index$2 {
54
+ export { type index$2_Alphabet as Alphabet, index$3 as alphabets, index$2_gobj as gobj, index$2_noSoften as noSoften, index$2_softeners as softeners, index$2_wordlist as wordlist };
55
+ }
56
+
57
+ type ModifyObjectType<T, TResultObj> = T extends object ? T extends (...args: any[]) => any ? T : TResultObj : T;
58
+ type DeepPartialReadonly<T> = ModifyObjectType<T, {
59
+ readonly [P in keyof T]?: DeepPartialReadonly<T[P]>;
60
+ }>;
13
61
  type OptionJ = 0 | 1 | 2;
14
62
  type Variation = 0 | 1 | 2;
15
63
  type TaraskOptions = {
@@ -30,38 +78,6 @@ type ExtendedDict = readonly (readonly [
30
78
  string | ((...substrings: string[]) => string)
31
79
  ])[];
32
80
 
33
- declare const latinLettersLowerCase: (readonly [RegExp, string])[];
34
- declare const latinLettersUpperCase: (readonly [RegExp, string])[];
35
- declare const latinLettersLowerCaseJi: (readonly [RegExp, string])[];
36
- declare const latinLettersUpperCaseJi: (readonly [RegExp, string])[];
37
-
38
- declare const arabLetters: Dict;
39
-
40
- declare const gobj: {
41
- readonly г: "ґ";
42
- readonly Г: "Ґ";
43
- readonly ґ: "г";
44
- readonly Ґ: "Г";
45
- };
46
-
47
- declare const wordlist: (readonly [RegExp, string])[];
48
-
49
- declare const noSoften: Dict;
50
- declare const softeners: Dict;
51
-
52
- declare const index$2_arabLetters: typeof arabLetters;
53
- declare const index$2_gobj: typeof gobj;
54
- declare const index$2_latinLettersLowerCase: typeof latinLettersLowerCase;
55
- declare const index$2_latinLettersLowerCaseJi: typeof latinLettersLowerCaseJi;
56
- declare const index$2_latinLettersUpperCase: typeof latinLettersUpperCase;
57
- declare const index$2_latinLettersUpperCaseJi: typeof latinLettersUpperCaseJi;
58
- declare const index$2_noSoften: typeof noSoften;
59
- declare const index$2_softeners: typeof softeners;
60
- declare const index$2_wordlist: typeof wordlist;
61
- declare namespace index$2 {
62
- export { index$2_arabLetters as arabLetters, index$2_gobj as gobj, index$2_latinLettersLowerCase as latinLettersLowerCase, index$2_latinLettersLowerCaseJi as latinLettersLowerCaseJi, index$2_latinLettersUpperCase as latinLettersUpperCase, index$2_latinLettersUpperCaseJi as latinLettersUpperCaseJi, index$2_noSoften as noSoften, index$2_softeners as softeners, index$2_wordlist as wordlist };
63
- }
64
-
65
81
  declare class TaraskConfig {
66
82
  constructor(options?: DeepPartialReadonly<{
67
83
  general: TaraskOptions;
@@ -172,24 +188,6 @@ declare namespace index$1 {
172
188
 
173
189
  declare const tarask: (text: string, pipeline: TaraskStep<any>[], cfg?: TaraskConfig) => string;
174
190
 
175
- declare const ALPHABET: {
176
- LATIN: {
177
- lower: (readonly [RegExp, string])[];
178
- upper: (readonly [RegExp, string])[];
179
- };
180
- LATIN_JI: {
181
- lower: (readonly [RegExp, string])[];
182
- upper: (readonly [RegExp, string])[];
183
- };
184
- ARABIC: {
185
- lower: Dict;
186
- };
187
- CYRILLIC: {
188
- lower: never[];
189
- upper: never[];
190
- };
191
- };
192
-
193
191
  declare const abcOnlyPipeline: (TaraskStep<{
194
192
  noFixArr: string[];
195
193
  }> | TaraskStep<{
@@ -247,4 +245,4 @@ declare namespace index {
247
245
  export { index_afterTarask as afterTarask, index_ansiColorWrappers as ansiColorWrappers, index_dictFrom as dictFrom, index_highlightDiff as highlightDiff, index_htmlWrappers as htmlWrappers, index_replaceG as replaceG, index_replaceWithDict as replaceWithDict, index_restoreCase as restoreCase };
248
246
  }
249
247
 
250
- export { ALPHABET, type HtmlOptions, type NonHtmlOptions, REPLACE_J, TaraskConfig, type TaraskOptions, VARIATION, abcOnlyPipeline, index$2 as dicts, htmlPipeline, index as lib, index$1 as pipelineSteps, plainTextPipeline, tarask };
248
+ export { type Alphabet, type HtmlOptions, type NonHtmlOptions, REPLACE_J, TaraskConfig, type TaraskOptions, VARIATION, abcOnlyPipeline, index$3 as alphabets, index$2 as dicts, gobj, htmlPipeline, index as lib, noSoften, plainTextPipeline, softeners, index$1 as steps, tarask, wordlist };
package/dist/index.js CHANGED
@@ -7,17 +7,21 @@ var __export = (target, all) => {
7
7
  // src/dict/index.ts
8
8
  var dict_exports = {};
9
9
  __export(dict_exports, {
10
- arabLetters: () => arabLetters,
10
+ alphabets: () => alphabets_exports,
11
11
  gobj: () => gobj,
12
- latinLettersLowerCase: () => latinLettersLowerCase,
13
- latinLettersLowerCaseJi: () => latinLettersLowerCaseJi,
14
- latinLettersUpperCase: () => latinLettersUpperCase,
15
- latinLettersUpperCaseJi: () => latinLettersUpperCaseJi,
16
12
  noSoften: () => noSoften,
17
13
  softeners: () => softeners,
18
14
  wordlist: () => wordlist
19
15
  });
20
16
 
17
+ // src/dict/gobj.ts
18
+ var gobj = {
19
+ г: "ґ",
20
+ Г: "Ґ",
21
+ ґ: "г",
22
+ Ґ: "Г"
23
+ };
24
+
21
25
  // src/dict/lib.ts
22
26
  var dictFrom = {
23
27
  raw: (dict) => {
@@ -97,213 +101,6 @@ var iwords = toOneLine(`біс
97
101
  ць?він
98
102
  шыяс`);
99
103
 
100
- // src/dict/latin.ts
101
- var common = {
102
- lower: [
103
- [
104
- [/(?<=[аеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)е/, "je"],
105
- [/(?<=[eаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ё/, "jo"],
106
- [/(?<=[eoаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ю/, "ju"],
107
- [/(?<=[eouаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)я/, "ja"]
108
- ],
109
- [
110
- [/ʼ/, ""],
111
- [/ць/, "ć"],
112
- [/зь/, "ź"],
113
- [/сь/, "ś"],
114
- [/нь/, "ń"],
115
- [/ль/, "l"],
116
- [/а/, "a"],
117
- [/б/, "b"],
118
- [/в/, "v"],
119
- [/г/, "h"],
120
- [/ґ/, "g"],
121
- [/д/, "d"],
122
- [/е/, "ie"],
123
- [/ё/, "io"],
124
- [/ж/, "ž"],
125
- [/з/, "z"],
126
- [/і/, "i"],
127
- [/й/, "j"],
128
- [/к/, "k"],
129
- [/л/, "ł"],
130
- [/м/, "m"],
131
- [/н/, "n"],
132
- [/о/, "o"],
133
- [/п/, "p"],
134
- [/р/, "r"],
135
- [/с/, "s"],
136
- [/т/, "t"],
137
- [/у/, "u"],
138
- [/ў/, "ŭ"],
139
- [/ф/, "f"],
140
- [/х/, "ch"],
141
- [/ц/, "c"],
142
- [/ч/, "č"],
143
- [/ш/, "š"],
144
- [/ы/, "y"],
145
- [/э/, "e"],
146
- [/ю/, "iu"],
147
- [/я/, "ia"],
148
- [/łi(?=[eoua])/, "l"],
149
- [/łi/, "li"]
150
- ]
151
- ].map(dictFrom.nonGlobal),
152
- upper: [
153
- [
154
- [new RegExp(" Е(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Je"],
155
- [new RegExp(" Ё(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Jo"],
156
- [new RegExp(" Ю(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ju"],
157
- [new RegExp(" Я(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ja"]
158
- ],
159
- [
160
- [/([АЕЁІОУЎЫЭЮЯЬ| ]\(?)Е/, "$1JE"],
161
- [/([EАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ё/, "$1JO"],
162
- [/([EOАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ю/, "$1JU"],
163
- [/([EOUАЕЁІОУЎЫЭЮЯЬ| ]\(?)Я/, "$1JA"]
164
- ],
165
- [
166
- [/Е/, "IE"],
167
- [/Ё/, "IO"],
168
- [/Ю/, "IU"],
169
- [/Я/, "IA"],
170
- [/Ц[Ьь]/, "Ć"],
171
- [/З[Ьь]/, "Ź"],
172
- [/С[Ьь]/, "Ś"],
173
- [/Н[Ьь]/, "Ń"],
174
- [/Л[Ьь]/, "L"],
175
- [/А/, "A"],
176
- [/Б/, "B"],
177
- [/В/, "V"],
178
- [/Г/, "H"],
179
- [/Ґ/, "G"],
180
- [/Д/, "D"],
181
- [/Ж/, "Ž"],
182
- [/З/, "Z"],
183
- [/І/, "I"],
184
- [/Й/, "J"],
185
- [/К/, "K"],
186
- [/Л/, "Ł"],
187
- [/М/, "M"],
188
- [/Н/, "N"],
189
- [/О/, "O"],
190
- [/П/, "P"],
191
- [/Р/, "R"],
192
- [/С/, "S"],
193
- [/Т/, "T"],
194
- [/У/, "U"],
195
- [/Ў/, "Ŭ"],
196
- [/Ф/, "F"],
197
- [/ Х(?=[\p{Ll} ])/u, " Ch"],
198
- [/Х/, "CH"],
199
- [/Ц/, "C"],
200
- [/Ч/, "Č"],
201
- [/Ш/, "Š"],
202
- [/Ы/, "Y"],
203
- [/Э/, "E"],
204
- [/Ł[Ii](?=[AEOUaeou])/, "L"],
205
- [/Ł(?=[Ii])/, "L"]
206
- ]
207
- ].map(dictFrom.nonGlobal)
208
- };
209
- var latinLettersLowerCase = [
210
- ...common.lower[0],
211
- [/ʼі/g, "ji"],
212
- ...common.lower[1]
213
- ];
214
- var latinLettersUpperCase = common.upper.flat();
215
- var latinLettersLowerCaseJi = dictFrom.raw([
216
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і Ў/, "$1j U"],
217
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і ў/, "$1j u"],
218
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і /, "$1j "],
219
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І Ў/, "$1J U"],
220
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І ў/, "$1J u"],
221
- [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І /, "$1J "],
222
- [` і(?=${iwords})`, " ji"],
223
- [` І(?=${iwords})`, " Ji"],
224
- [` І(?=${iwords.toUpperCase()})`, " JI"]
225
- ]).concat([
226
- ...common.lower[0],
227
- [/([eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/g, "$1ji"],
228
- ...common.lower[1]
229
- ]);
230
- var latinLettersUpperCaseJi = [
231
- ...common.upper[0],
232
- [new RegExp("([eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "gu"), "$1Ji"],
233
- ...common.upper[1],
234
- [/([AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/g, "$1JI"],
235
- ...common.upper[2],
236
- [/ JIŁ -/g, " IŁ -"]
237
- ];
238
-
239
- // src/dict/arabic.ts
240
- var soft = "ْ(?=[еёіюяь])";
241
- var presoft = "([تزكثࢮбвгджзйклмнпрстфхцчшў])ْ?(ّ?)";
242
- var arabLetters = dictFrom.raw([
243
- [/ л[ая]/, " لا"],
244
- [/л[ая]/, "ـلا"],
245
- // падваеньне зычнага, шадда
246
- [/([бвгджзйклмнпрстфхцчшў]|д[зж])\1/, "$1ّ"],
247
- // няма галоснага, сукун
248
- [/([бвгджзйклмнпрстфхцчшў])/, "$1ْ"],
249
- // а, аліф
250
- [/а/, "اа"],
251
- // першая галосная, аліф
252
- [/ (?=[еэыуо])/, " ا"],
253
- ["дْз" + soft, "ࢮ"],
254
- ["з" + soft, "ز"],
255
- ["к" + soft, "ك"],
256
- ["с" + soft, "ث"],
257
- ["т" + soft, "ت"],
258
- [/([تزكث])і/, "ы"],
259
- // $2 - шадда
260
- [presoft + "[аяэе]", "$1$2َ"],
261
- [presoft + "[іы]", "$1$2ِ"],
262
- [/ і /, " اِ "],
263
- [presoft + "[оёую]", "$1$2ُ"],
264
- [/ʼ/, "ع"],
265
- [/ь/, ""],
266
- // [/[ьʼ]/, ''],
267
- [/[яе]/, "يَ"],
268
- [/і/, "يِ"],
269
- [/[ёю]/, "يُ"],
270
- [/[аэ]/, "َ"],
271
- [/[ыі]/, "ِ"],
272
- [/[оу]/, "ُ"],
273
- [/б/, "ب"],
274
- [/[вў]/, "و"],
275
- [/г/, "ه"],
276
- [/ґ/, "غ"],
277
- [/дْж/, "ج"],
278
- [/д/, "د"],
279
- [/ж/, "ژ"],
280
- [/з/, "ض"],
281
- [/й/, "ي"],
282
- [/к/, "ق"],
283
- [/л/, "ل"],
284
- [/м/, "م"],
285
- [/н/, "ن"],
286
- [/п/, "پ"],
287
- [/р/, "ر"],
288
- [/с/, "ص"],
289
- [/т/, "ط"],
290
- [/ф/, "ف"],
291
- [/х/, "ح"],
292
- [/ц/, "ࢯ"],
293
- [/ч/, "چ"],
294
- [/ш/, "ش"],
295
- [/,/, "،"],
296
- [/\?/, "؟"]
297
- ]);
298
-
299
- // src/dict/gobj.ts
300
- var gobj = {
301
- г: "ґ",
302
- Г: "Ґ",
303
- ґ: "г",
304
- Ґ: "Г"
305
- };
306
-
307
104
  // src/dict/wordlist.ts
308
105
  var chemicalElements1 = [
309
106
  "сканд|ванад|рубід|род|ірыд|рэзэрфорд",
@@ -2002,23 +1799,220 @@ var softeners = dictFrom.raw([
2002
1799
  [/([сз])ʼ(?=[яюеё])/, "$1ь"]
2003
1800
  ]);
2004
1801
 
2005
- // src/alphabet.ts
2006
- var ALPHABET = {
2007
- LATIN: {
2008
- lower: latinLettersLowerCase,
2009
- upper: latinLettersUpperCase
2010
- },
2011
- LATIN_JI: {
2012
- lower: latinLettersLowerCaseJi,
2013
- upper: latinLettersUpperCaseJi
2014
- },
2015
- ARABIC: {
2016
- lower: arabLetters
2017
- },
2018
- CYRILLIC: {
2019
- lower: [],
2020
- upper: []
2021
- }
1802
+ // src/dict/alphabets/index.ts
1803
+ var alphabets_exports = {};
1804
+ __export(alphabets_exports, {
1805
+ arabic: () => arabic,
1806
+ cyrillic: () => cyrillic,
1807
+ latin: () => latin,
1808
+ latinJi: () => latinJi
1809
+ });
1810
+
1811
+ // src/dict/alphabets/cyrillic.ts
1812
+ var cyrillic = {
1813
+ lower: [],
1814
+ upper: []
1815
+ };
1816
+
1817
+ // src/dict/alphabets/latin.ts
1818
+ var common = {
1819
+ lower: [
1820
+ [
1821
+ [/(?<=[аеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)е/, "je"],
1822
+ [/(?<=[eаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ё/, "jo"],
1823
+ [/(?<=[eoаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)ю/, "ju"],
1824
+ [/(?<=[eouаеёіоуўыэюяьʼ| >АЕЁІОУЎЫЭЮЯЬ]|^)я/, "ja"]
1825
+ ],
1826
+ [
1827
+ [/ʼ/, ""],
1828
+ [/ць/, "ć"],
1829
+ [/зь/, "ź"],
1830
+ [/сь/, "ś"],
1831
+ [/нь/, "ń"],
1832
+ [/ль/, "l"],
1833
+ [/а/, "a"],
1834
+ [/б/, "b"],
1835
+ [/в/, "v"],
1836
+ [/г/, "h"],
1837
+ [/ґ/, "g"],
1838
+ [/д/, "d"],
1839
+ [/е/, "ie"],
1840
+ [/ё/, "io"],
1841
+ [/ж/, "ž"],
1842
+ [/з/, "z"],
1843
+ [/і/, "i"],
1844
+ [/й/, "j"],
1845
+ [/к/, "k"],
1846
+ [/л/, "ł"],
1847
+ [/м/, "m"],
1848
+ [/н/, "n"],
1849
+ [/о/, "o"],
1850
+ [/п/, "p"],
1851
+ [/р/, "r"],
1852
+ [/с/, "s"],
1853
+ [/т/, "t"],
1854
+ [/у/, "u"],
1855
+ [/ў/, "ŭ"],
1856
+ [/ф/, "f"],
1857
+ [/х/, "ch"],
1858
+ [/ц/, "c"],
1859
+ [/ч/, "č"],
1860
+ [/ш/, "š"],
1861
+ [/ы/, "y"],
1862
+ [/э/, "e"],
1863
+ [/ю/, "iu"],
1864
+ [/я/, "ia"],
1865
+ [/łi(?=[eoua])/, "l"],
1866
+ [/łi/, "li"]
1867
+ ]
1868
+ ].map(dictFrom.nonGlobal),
1869
+ upper: [
1870
+ [
1871
+ [new RegExp(" Е(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Je"],
1872
+ [new RegExp(" Ё(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Jo"],
1873
+ [new RegExp(" Ю(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ju"],
1874
+ [new RegExp(" Я(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "u"), " Ja"]
1875
+ ],
1876
+ [
1877
+ [/([АЕЁІОУЎЫЭЮЯЬ| ]\(?)Е/, "$1JE"],
1878
+ [/([EАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ё/, "$1JO"],
1879
+ [/([EOАЕЁІОУЎЫЭЮЯЬ| ]\(?)Ю/, "$1JU"],
1880
+ [/([EOUАЕЁІОУЎЫЭЮЯЬ| ]\(?)Я/, "$1JA"]
1881
+ ],
1882
+ [
1883
+ [/Е/, "IE"],
1884
+ [/Ё/, "IO"],
1885
+ [/Ю/, "IU"],
1886
+ [/Я/, "IA"],
1887
+ [/Ц[Ьь]/, "Ć"],
1888
+ [/З[Ьь]/, "Ź"],
1889
+ [/С[Ьь]/, "Ś"],
1890
+ [/Н[Ьь]/, "Ń"],
1891
+ [/Л[Ьь]/, "L"],
1892
+ [/А/, "A"],
1893
+ [/Б/, "B"],
1894
+ [/В/, "V"],
1895
+ [/Г/, "H"],
1896
+ [/Ґ/, "G"],
1897
+ [/Д/, "D"],
1898
+ [/Ж/, "Ž"],
1899
+ [/З/, "Z"],
1900
+ [/І/, "I"],
1901
+ [/Й/, "J"],
1902
+ [/К/, "K"],
1903
+ [/Л/, "Ł"],
1904
+ [/М/, "M"],
1905
+ [/Н/, "N"],
1906
+ [/О/, "O"],
1907
+ [/П/, "P"],
1908
+ [/Р/, "R"],
1909
+ [/С/, "S"],
1910
+ [/Т/, "T"],
1911
+ [/У/, "U"],
1912
+ [/Ў/, "Ŭ"],
1913
+ [/Ф/, "F"],
1914
+ [/ Х(?=[\p{Ll} ])/u, " Ch"],
1915
+ [/Х/, "CH"],
1916
+ [/Ц/, "C"],
1917
+ [/Ч/, "Č"],
1918
+ [/Ш/, "Š"],
1919
+ [/Ы/, "Y"],
1920
+ [/Э/, "E"],
1921
+ [/Ł[Ii](?=[AEOUaeou])/, "L"],
1922
+ [/Ł(?=[Ii])/, "L"]
1923
+ ]
1924
+ ].map(dictFrom.nonGlobal)
1925
+ };
1926
+ var latin = {
1927
+ lower: [...common.lower[0], [/ʼі/g, "ji"], ...common.lower[1]],
1928
+ upper: common.upper.flat()
1929
+ };
1930
+ var latinJi = {
1931
+ lower: dictFrom.raw([
1932
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і Ў/, "$1j U"],
1933
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і ў/, "$1j u"],
1934
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )і /, "$1j "],
1935
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І Ў/, "$1J U"],
1936
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І ў/, "$1J u"],
1937
+ [/([аеёіоуыэюяАЕЁІОУЫЭЮЯ] )І /, "$1J "],
1938
+ [` і(?=${iwords})`, " ji"],
1939
+ [` І(?=${iwords})`, " Ji"],
1940
+ [` І(?=${iwords.toUpperCase()})`, " JI"]
1941
+ ]).concat([
1942
+ ...common.lower[0],
1943
+ [/([eouaаеёіоуыэюяʼАЕЁІОУЫЭЮЯЬ] *)і/g, "$1ji"],
1944
+ ...common.lower[1]
1945
+ ]),
1946
+ upper: [
1947
+ ...common.upper[0],
1948
+ [new RegExp("([eoua] *)І(?=[ \\p{P}\\d]*\\p{Lu}?\\p{Ll})", "gu"), "$1Ji"],
1949
+ ...common.upper[1],
1950
+ [/([AOEUАЕЁІОУЎЫЭЮЯ][( ]*)І/g, "$1JI"],
1951
+ ...common.upper[2],
1952
+ [/ JIŁ -/g, " IŁ -"]
1953
+ ]
1954
+ };
1955
+
1956
+ // src/dict/alphabets/arabic.ts
1957
+ var soft = "ْ(?=[еёіюяь])";
1958
+ var presoft = "([تزكثࢮбвгджзйклмнпрстфхцчшў])ْ?(ّ?)";
1959
+ var arabic = {
1960
+ lower: dictFrom.raw([
1961
+ [/ л[ая]/, " لا"],
1962
+ [/л[ая]/, "ـلا"],
1963
+ // падваеньне зычнага, шадда
1964
+ [/([бвгджзйклмнпрстфхцчшў]|д[зж])\1/, "$1ّ"],
1965
+ // няма галоснага, сукун
1966
+ [/([бвгджзйклмнпрстфхцчшў])/, "$1ْ"],
1967
+ // а, аліф
1968
+ [/а/, "اа"],
1969
+ // першая галосная, аліф
1970
+ [/ (?=[еэыуо])/, " ا"],
1971
+ ["дْз" + soft, "ࢮ"],
1972
+ ["з" + soft, "ز"],
1973
+ ["к" + soft, "ك"],
1974
+ ["с" + soft, "ث"],
1975
+ ["т" + soft, "ت"],
1976
+ [/([تزكث])і/, "ы"],
1977
+ // $2 - шадда
1978
+ [presoft + "[аяэе]", "$1$2َ"],
1979
+ [presoft + "[іы]", "$1$2ِ"],
1980
+ [/ і /, " اِ "],
1981
+ [presoft + "[оёую]", "$1$2ُ"],
1982
+ [/ʼ/, "ع"],
1983
+ [/ь/, ""],
1984
+ // [/[ьʼ]/, ''],
1985
+ [/[яе]/, "يَ"],
1986
+ [/і/, "يِ"],
1987
+ [/[ёю]/, "يُ"],
1988
+ [/[аэ]/, "َ"],
1989
+ [/[ыі]/, "ِ"],
1990
+ [/[оу]/, "ُ"],
1991
+ [/б/, "ب"],
1992
+ [/[вў]/, "و"],
1993
+ [/г/, "ه"],
1994
+ [/ґ/, "غ"],
1995
+ [/дْж/, "ج"],
1996
+ [/д/, "د"],
1997
+ [/ж/, "ژ"],
1998
+ [/з/, "ض"],
1999
+ [/й/, "ي"],
2000
+ [/к/, "ق"],
2001
+ [/л/, "ل"],
2002
+ [/м/, "م"],
2003
+ [/н/, "ن"],
2004
+ [/п/, "پ"],
2005
+ [/р/, "ر"],
2006
+ [/с/, "ص"],
2007
+ [/т/, "ط"],
2008
+ [/ф/, "ف"],
2009
+ [/х/, "ح"],
2010
+ [/ц/, "ࢯ"],
2011
+ [/ч/, "چ"],
2012
+ [/ш/, "ش"],
2013
+ [/,/, "،"],
2014
+ [/\?/, "؟"]
2015
+ ])
2022
2016
  };
2023
2017
 
2024
2018
  // src/config.ts
@@ -2039,7 +2033,7 @@ var TaraskConfig = class {
2039
2033
  }
2040
2034
  }
2041
2035
  general = {
2042
- abc: ALPHABET.CYRILLIC,
2036
+ abc: alphabets_exports.cyrillic,
2043
2037
  j: REPLACE_J.NEVER,
2044
2038
  doEscapeCapitalized: true
2045
2039
  };
@@ -2264,7 +2258,7 @@ var highlightDiffStep = (highlight) => (_, {
2264
2258
  },
2265
2259
  storage: { text, orig }
2266
2260
  }) => {
2267
- highlightDiff(text, orig, abc === ALPHABET.CYRILLIC, highlight);
2261
+ highlightDiff(text, orig, abc === alphabets_exports.cyrillic, highlight);
2268
2262
  return _;
2269
2263
  };
2270
2264
  var highlightDiffNonHtmlStep = (_, {
@@ -2275,7 +2269,12 @@ var highlightDiffNonHtmlStep = (_, {
2275
2269
  storage: { text, orig }
2276
2270
  }) => {
2277
2271
  if (ansiColors)
2278
- highlightDiff(text, orig, abc === ALPHABET.CYRILLIC, ansiColorWrappers.fix);
2272
+ highlightDiff(
2273
+ text,
2274
+ orig,
2275
+ abc === alphabets_exports.cyrillic,
2276
+ ansiColorWrappers.fix
2277
+ );
2279
2278
  return _;
2280
2279
  };
2281
2280
 
@@ -2364,7 +2363,7 @@ var applyHtmlG = (text, {
2364
2363
  }
2365
2364
  }) => {
2366
2365
  const colorize = htmlWrappers.letterH;
2367
- return abc === ALPHABET.CYRILLIC ? replaceG(g ? colorize("$&") : ($0) => colorize(gobj[$0]))(text) : text;
2366
+ return abc === alphabets_exports.cyrillic ? replaceG(g ? colorize("$&") : ($0) => colorize(gobj[$0]))(text) : text;
2368
2367
  };
2369
2368
 
2370
2369
  // src/steps/i-to-j.ts
@@ -2373,7 +2372,7 @@ var replaceIbyJ = (text, {
2373
2372
  cfg: {
2374
2373
  general: { j, abc }
2375
2374
  }
2376
- }) => j && abc !== ALPHABET.LATIN_JI ? text.replace(
2375
+ }) => j && abc !== alphabets_exports.latinJi ? text.replace(
2377
2376
  /(?<=[аеёіоуыэюя] )і (ў?)/g,
2378
2377
  j === REPLACE_J.ALWAYS ? ($0, $1) => toJ($1) : ($0, $1) => Math.random() >= 0.5 ? toJ($1) : $0
2379
2378
  ) : text;
@@ -2396,7 +2395,7 @@ var applyNonHtmlG = (text, {
2396
2395
  }
2397
2396
  }) => {
2398
2397
  const colorize = ansiColorWrappers.variable;
2399
- return abc === ALPHABET.CYRILLIC && (h || ansiColors) ? replaceG(
2398
+ return abc === alphabets_exports.cyrillic && (h || ansiColors) ? replaceG(
2400
2399
  ansiColors ? h ? ($0) => colorize(gobj[$0]) : colorize("$&") : ($0) => gobj[$0]
2401
2400
  )(text) : text;
2402
2401
  };
@@ -2411,7 +2410,7 @@ var restoreCaseStep = (_, {
2411
2410
  },
2412
2411
  storage
2413
2412
  }) => {
2414
- if (abc !== ALPHABET.ARABIC) {
2413
+ if (abc.upper) {
2415
2414
  storage.text = restoreCase(storage.text, storage.orig);
2416
2415
  }
2417
2416
  return _;
@@ -2525,7 +2524,6 @@ var htmlPipeline = createPipeline(
2525
2524
  highlightDiffStep(htmlWrappers.fix)
2526
2525
  );
2527
2526
  export {
2528
- ALPHABET,
2529
2527
  REPLACE_J,
2530
2528
  TaraskConfig,
2531
2529
  VARIATION,
@@ -2533,7 +2531,7 @@ export {
2533
2531
  dict_exports as dicts,
2534
2532
  htmlPipeline,
2535
2533
  lib_exports as lib,
2536
- steps_exports as pipelineSteps,
2537
2534
  plainTextPipeline,
2535
+ steps_exports as steps,
2538
2536
  tarask
2539
2537
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taraskevizer",
3
- "version": "7.0.2",
3
+ "version": "7.1.0",
4
4
  "author": "GooseOb",
5
5
  "repository": {
6
6
  "type": "git",