taraskevizer 1.5.2 → 1.6.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 +10 -7
- package/dist/index.cjs +59 -49
- package/dist/index.d.cts +12 -15
- package/dist/index.d.ts +12 -15
- package/dist/index.js +57 -47
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -7,21 +7,24 @@ $ npm i taraskevizer
|
|
|
7
7
|
## Usage
|
|
8
8
|
|
|
9
9
|
```js
|
|
10
|
-
import {
|
|
10
|
+
import { tarask, ALPHABET } from 'taraskevizer';
|
|
11
11
|
|
|
12
|
-
const result =
|
|
12
|
+
const result = tarask(text);
|
|
13
13
|
// or
|
|
14
|
-
const result =
|
|
14
|
+
const result = tarask(text, {
|
|
15
|
+
html: {
|
|
16
|
+
abc: ALPHABET.ARABIC,
|
|
17
|
+
g: false,
|
|
18
|
+
// ...
|
|
19
|
+
},
|
|
20
|
+
nonHtml: false,
|
|
21
|
+
});
|
|
15
22
|
```
|
|
16
23
|
|
|
17
24
|
## API
|
|
18
25
|
|
|
19
26
|
### tarask(text, options?)
|
|
20
27
|
|
|
21
|
-
Returns a `Promise<string>`
|
|
22
|
-
|
|
23
|
-
### taraskSync(text, options?)
|
|
24
|
-
|
|
25
28
|
Returns a `string`
|
|
26
29
|
|
|
27
30
|
#### text
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -23,8 +24,7 @@ __export(src_exports, {
|
|
|
23
24
|
J: () => J,
|
|
24
25
|
VARIATION: () => VARIATION,
|
|
25
26
|
gobj: () => gobj,
|
|
26
|
-
tarask: () => tarask
|
|
27
|
-
taraskSync: () => taraskSync
|
|
27
|
+
tarask: () => tarask
|
|
28
28
|
});
|
|
29
29
|
module.exports = __toCommonJS(src_exports);
|
|
30
30
|
|
|
@@ -308,15 +308,17 @@ var rawArabLetters = [
|
|
|
308
308
|
];
|
|
309
309
|
|
|
310
310
|
// src/dict/index.ts
|
|
311
|
-
var
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
311
|
+
var chemicalElements1 = [
|
|
312
|
+
"сканд|ванад|рубід|род|ірыд|рэзэрфорд",
|
|
313
|
+
"стронц|бар|цэр|лютэц|самар| тор|амэрыц|кальц|кюр|дармштат|лівэрмор|натр"
|
|
314
|
+
];
|
|
315
|
+
chemicalElements1[2] = chemicalElements1[1] + "|тэхнэц|прамэт|майтнэр|капэрніц";
|
|
316
|
+
chemicalElements1[3] = chemicalElements1[0] + "|паляд|" + chemicalElements1[2];
|
|
317
|
+
var chemicalElements2 = [
|
|
318
|
+
"алюмін|магн|крэмн|цыркон|ніоб|рутэн|кадм|гафн|рэн|осм|эўроп|гандалін|тэрб|дыспроз|гольм| эрб|ітэрб|актын|пратактын|нэптун|плютон|фэрм|ляўрэнс|дубн|рэнтген|ніхон"
|
|
319
|
+
];
|
|
320
|
+
chemicalElements2[1] = chemicalElements2[0] + "|айнштайн|мендзялев|сыборг|гас|флеров";
|
|
321
|
+
var chemicalElements3 = " гал|бэрыл|тул|бэркл|набэл";
|
|
320
322
|
var toOneLine = (str) => str.replace(/\n/g, "|");
|
|
321
323
|
var ia = (word, words) => ` ${word} (?=\\(?(?:[бвгджзйклмнпстфцчшў]*[оё]|${words.replace(/\(/g, "(?:")}|${iwords}))`;
|
|
322
324
|
var iwords = toOneLine(`і(
|
|
@@ -432,7 +434,6 @@ var rawWordlist = [
|
|
|
432
434
|
[/алка(?=г[ао]|ло)/, "алька"],
|
|
433
435
|
[/алфавіт/, "альфабэт"],
|
|
434
436
|
[/алхім/, "альхім"],
|
|
435
|
-
[/ альцгеймер/, " альцгаймэр"],
|
|
436
437
|
// [/аланд/, 'алянд'],
|
|
437
438
|
// [/ала/, 'аля'], TODO: аля-
|
|
438
439
|
[/амбулатор/, "амбулятор"],
|
|
@@ -905,6 +906,7 @@ var rawWordlist = [
|
|
|
905
906
|
[/марцінке/, "марці�нке"],
|
|
906
907
|
[/марцінес/, "мартынэс"],
|
|
907
908
|
[/марцін/, "мартын"],
|
|
909
|
+
[/ марыянет/, " марыянэт"],
|
|
908
910
|
// [/морэл/, 'марэл'],
|
|
909
911
|
// [/абрыкосав/, '($&|марэлев)'],
|
|
910
912
|
// [/[іы] абрыкос /, '(ая|ую) марэ(ля|лю) '],
|
|
@@ -1219,7 +1221,7 @@ var rawWordlist = [
|
|
|
1219
1221
|
[/ трыа /, " трыё "],
|
|
1220
1222
|
// [/трыўмф/, 'трыюмф'],
|
|
1221
1223
|
[/цю(?=баж|бінг|льпан|рбан)/, "ту"],
|
|
1222
|
-
[/(
|
|
1224
|
+
[/(ар|бізнэс|да|рэкардс|спартс|турк)мен/, "$1мэн"],
|
|
1223
1225
|
[/цюрынгі(?=\S)/, "турынґі"],
|
|
1224
1226
|
[/ цюрынг/, " тʼюрынґ"],
|
|
1225
1227
|
[/турцыя/, "тур(цыя|эччына)"],
|
|
@@ -1514,30 +1516,35 @@ var rawWordlist = [
|
|
|
1514
1516
|
[/ гэлій /, " (гэ|г�е)(ль|лі) "],
|
|
1515
1517
|
[/ гэлі(?=[юя] |е)/, " (гэ|г�е)л"],
|
|
1516
1518
|
[/ гэліі /, " (гэ|г�е)ле "],
|
|
1517
|
-
[`(
|
|
1518
|
-
[`(
|
|
1519
|
-
[`(
|
|
1520
|
-
[`(
|
|
1521
|
-
[`(
|
|
1522
|
-
[`(${
|
|
1523
|
-
[`(${
|
|
1524
|
-
[`(${
|
|
1525
|
-
[`(${
|
|
1519
|
+
[`(${chemicalElements1[0] + chemicalElements1[1]}|інд|франц|рад)ый `, "$1 "],
|
|
1520
|
+
[`(${chemicalElements1[3]})ы[ея]`, "$1а"],
|
|
1521
|
+
[`(${chemicalElements1[3]})ыю`, "$1у"],
|
|
1522
|
+
[`(${chemicalElements1[3]}|рад)ыі`, "$1зе"],
|
|
1523
|
+
[`(${chemicalElements1[2]})ыі`, "$1ы"],
|
|
1524
|
+
[`(${chemicalElements2[0]}|герман)ій`, "$1"],
|
|
1525
|
+
[`(${chemicalElements2[1]})і[ея]`, "$1а"],
|
|
1526
|
+
[`(${chemicalElements2[1]})ію`, "$1у"],
|
|
1527
|
+
[`(${chemicalElements3}| тал)ій `, "$1ь "],
|
|
1526
1528
|
[/ таліе/, " тале"],
|
|
1527
|
-
[`(
|
|
1528
|
-
[`(${
|
|
1529
|
+
[`(${chemicalElements3})і(?=[юя] |е)`, "$1"],
|
|
1530
|
+
[`(${chemicalElements3})іі `, "$1е "],
|
|
1529
1531
|
/* ер > эр */
|
|
1530
1532
|
[/(антрэпрэн|бакс|грав|грым|гіпнатыз|паз|партн|плян|прыз|рэжыс|рэзан|сап|сутэн|трас|фантаз)ёр/, "$1эр"],
|
|
1531
1533
|
[/(біле|брэ|ман|мушке|(ім|рэ|транс|экс)пар|салі)цёр/, "$1тэр"],
|
|
1532
1534
|
[/(вальты|коміваяж|фура)жор/, "$1жэр"],
|
|
1533
1535
|
[/(каска|мара|фура)дзёр/, "$1дэр"],
|
|
1534
1536
|
[/браўз[еа]р/, "браўз(э|а)р"],
|
|
1535
|
-
[/(
|
|
1536
|
-
[/(
|
|
1537
|
-
[/(
|
|
1537
|
+
[/(дыскаўнт|ляйт|мэлянж|пражэкт)ар/, "$1(э|а)р"],
|
|
1538
|
+
[/(парфум|фраз)[её]р/, "$1эр"],
|
|
1539
|
+
[/(абсорб|акцыян|альб|амп|апазыцыян| вэзэр|гіп|дызайн|імп|інжын|каба-в|кам|кандыцыян|кіб|легіян|мільян|піян|пфайф|пэнсіян|рэвалюцыян|рэф|скан|скв|снайп| суп|сф|тайм| тап|трэн)ер/, "$1эр"],
|
|
1538
1540
|
// Вэзэр - Места
|
|
1539
1541
|
[/ супэрні/, " суперні"],
|
|
1540
1542
|
[/(вах|ліф|шах)цёр/, "$1тар"],
|
|
1543
|
+
/* Імёны */
|
|
1544
|
+
[/ альцгеймер/, " альцгаймэр"],
|
|
1545
|
+
[/ веерштрас/, " ваерштрас"],
|
|
1546
|
+
[/ лейбніц/, " ляйбніц"],
|
|
1547
|
+
[/ нейман/, " нойман"],
|
|
1541
1548
|
/* Імёны з лаціны */
|
|
1542
1549
|
[/ понцій/, " понтыюс"],
|
|
1543
1550
|
[/ понці/, " понты"],
|
|
@@ -1552,17 +1559,17 @@ var rawWordlist = [
|
|
|
1552
1559
|
/* -ір- */
|
|
1553
1560
|
[/блакір(?=[аоу])/, "блякір"],
|
|
1554
1561
|
[/арыенцір(?=[ауы] |а[мў] |амі? )/, "арыентыр"],
|
|
1555
|
-
[/(
|
|
1556
|
-
[/(
|
|
1557
|
-
[/(
|
|
1558
|
-
[/(
|
|
1559
|
-
[/(
|
|
1560
|
-
[/(
|
|
1561
|
-
[/(
|
|
1562
|
-
[/(
|
|
1563
|
-
[/(
|
|
1564
|
-
[/(
|
|
1565
|
-
[/(
|
|
1562
|
+
[/(абстраг|акліматыз|акуп|(?:а|нацыя)наліз|баз|балянс|бляк|ваеніз|груп|імпан|імправіз|інсцэн|інфарм|іраніз|каляніз|каляпс|каталіз|культыв|курс|ма[рс]к|нэрв|плян|прагназ|праграм|прыватыз|рэаг|санкцыян|скан|трэн|тыпіз|урбаніз|фантаз|фарм|фінанс|фраз|функцыян)ір(?=[ау])/, "$1"],
|
|
1563
|
+
[/(анке|арыен|дыску|дэб[аю]|(?:ім|экс)пар|праек|інспэк|кантак|кансуль|паразі|тэс|фарма|цы)цір(?=[ау])/, "$1т"],
|
|
1564
|
+
[/(дэгра|ка|лікві)дзір(?=[ау])/, "$1д"],
|
|
1565
|
+
[/(ангаж|дэкляр|ігнар|тыраж|фініш|генэр)ыр(?=[ау])/, "$1"],
|
|
1566
|
+
[/(інду|кваліфі|права|фальсыфі)цыр(?=[ау])/, "$1к"],
|
|
1567
|
+
[/(кап|прэм)іра/, "$1ія"],
|
|
1568
|
+
[/(кап|прэм)іру/, "$1ію"],
|
|
1569
|
+
[/(дуб|кантра|капіту|прафі|пэда)ліра/, "$1ля"],
|
|
1570
|
+
[/(дуб|кантра|капіту|прафі|пэда)ліру/, "$1лю"],
|
|
1571
|
+
[/(ініцы|канстру|тату)іра/, "$1я"],
|
|
1572
|
+
[/(ініцы|канстру|тату)іру/, "$1ю"],
|
|
1566
1573
|
[/(бляк|балянс|інсцэн|плян|трэн|фарм)іроўкай/, "$1аваньнем"],
|
|
1567
1574
|
[/(бляк|балянс|інсцэн|плян|трэн|фарм)іроўка/, "$1аваньне"],
|
|
1568
1575
|
[/(бляк|балянс|інсцэн|плян|трэн|фарм)іроўкі/, "$1аваньня"],
|
|
@@ -1833,11 +1840,11 @@ var rawWordlist = [
|
|
|
1833
1840
|
/* Іншае */
|
|
1834
1841
|
[/(кібер|фа)неты(?=[кч])/, "$1нэты"],
|
|
1835
1842
|
[/цій /, "(цій|ці) "],
|
|
1836
|
-
// [/(
|
|
1837
|
-
// [/(
|
|
1838
|
-
// [/(
|
|
1839
|
-
// [/(
|
|
1840
|
-
// [/(
|
|
1843
|
+
// [/(андрэс\S* цэльсі)й/, '$1юс'],
|
|
1844
|
+
// [/(андрэс\S* цэльсі)ем/, '$1юсам'],
|
|
1845
|
+
// [/(андрэс\S* цэльсі)[яе]/, '$1юса'],
|
|
1846
|
+
// [/(андрэс\S* цэльсі)і/, '$1юсе'],
|
|
1847
|
+
// [/(андрэс\S* цэльсі)ю/, '$1юсу'],
|
|
1841
1848
|
[/пёрл - харбар/, "пэрл - гарбар"],
|
|
1842
1849
|
[/рымска - кат/, "рыма - кат"],
|
|
1843
1850
|
[/ іата /, " і�ата "],
|
|
@@ -2111,6 +2118,7 @@ var getLastLetter = (word) => {
|
|
|
2111
2118
|
for (let i = word.length - 1; i >= 0; i--)
|
|
2112
2119
|
if (/\p{L}/u.test(word[i]))
|
|
2113
2120
|
return word[i];
|
|
2121
|
+
throw new Error(`the last letter of the word ${word} not found`);
|
|
2114
2122
|
};
|
|
2115
2123
|
var NOFIX_CHAR = " ";
|
|
2116
2124
|
var NOFIX_REGEX = new RegExp(NOFIX_CHAR, "g");
|
|
@@ -2153,7 +2161,7 @@ var afterTarask = [
|
|
|
2153
2161
|
($0, $1, $2) => /([ая]ў|ну)$/.test($2) ? $1 + "ь і" + $2 : $0
|
|
2154
2162
|
]
|
|
2155
2163
|
];
|
|
2156
|
-
var
|
|
2164
|
+
var tarask = (text, options = {}) => {
|
|
2157
2165
|
const { abc = 0, j = 0, html = false, nonHtml = false } = options;
|
|
2158
2166
|
const isHtmlObject = isObject(html);
|
|
2159
2167
|
const isNonHtmlObject = isObject(nonHtml);
|
|
@@ -2210,12 +2218,15 @@ var taraskSync = (text, options = {}) => {
|
|
|
2210
2218
|
}
|
|
2211
2219
|
}
|
|
2212
2220
|
if (gReplacer)
|
|
2213
|
-
text = text.replace(
|
|
2221
|
+
text = text.replace(
|
|
2222
|
+
G_REGEX,
|
|
2223
|
+
// @ts-ignore
|
|
2224
|
+
gReplacer
|
|
2225
|
+
);
|
|
2214
2226
|
if (noFix.length)
|
|
2215
2227
|
text = text.replace(NOFIX_REGEX, () => noFix.shift());
|
|
2216
2228
|
return (html ? finalizer.html(text) : finalizer.nonHtml(text, nonHtml)).trim();
|
|
2217
2229
|
};
|
|
2218
|
-
var tarask = (...args) => new Promise((res) => res(taraskSync(...args)));
|
|
2219
2230
|
var restoreCase = (text, orig) => {
|
|
2220
2231
|
for (let i = 0; i < text.length; i++) {
|
|
2221
2232
|
const word = text[i];
|
|
@@ -2327,7 +2338,7 @@ var finalizer = {
|
|
|
2327
2338
|
return `<tarL data-l='${options}'>${main}</tarL>`;
|
|
2328
2339
|
}).replace(/ \n /g, "<br>"),
|
|
2329
2340
|
nonHtml(text, options) {
|
|
2330
|
-
if (isObject(options) && options.variations !== VARIATION.ALL) {
|
|
2341
|
+
if (isObject(options) && options.variations && options.variations !== VARIATION.ALL) {
|
|
2331
2342
|
const WORD_INDEX = options.variations;
|
|
2332
2343
|
const replacer = ($0) => $0.slice(1, -1).split("|")[WORD_INDEX];
|
|
2333
2344
|
text = text.replace(
|
|
@@ -2344,6 +2355,5 @@ var finalizer = {
|
|
|
2344
2355
|
J,
|
|
2345
2356
|
VARIATION,
|
|
2346
2357
|
gobj,
|
|
2347
|
-
tarask
|
|
2348
|
-
taraskSync
|
|
2358
|
+
tarask
|
|
2349
2359
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
type Promisify<T> = T extends (...args: infer TArgs) => infer TReturn ? (...args: TArgs) => Promise<TReturn> : never;
|
|
2
1
|
type AnyFn = (...args: any[]) => any;
|
|
3
2
|
type DeepPartial<T> = T extends object ? T extends AnyFn ? T : {
|
|
4
3
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
@@ -25,7 +24,6 @@ type TaraskOptionsStrict = {
|
|
|
25
24
|
};
|
|
26
25
|
type TaraskOptions = DeepPartial<TaraskOptionsStrict>;
|
|
27
26
|
type Tarask = (text: string, options?: TaraskOptions) => string;
|
|
28
|
-
type TaraskAsync = Promisify<Tarask>;
|
|
29
27
|
type Dict<T = RegExp> = [T, string][];
|
|
30
28
|
type ExtendedDict = [
|
|
31
29
|
RegExp,
|
|
@@ -36,23 +34,22 @@ type AlphabetDependentDict = {
|
|
|
36
34
|
};
|
|
37
35
|
|
|
38
36
|
declare const ALPHABET: {
|
|
39
|
-
CYRILLIC:
|
|
40
|
-
LATIN:
|
|
41
|
-
ARABIC:
|
|
42
|
-
GREEK:
|
|
37
|
+
readonly CYRILLIC: 0;
|
|
38
|
+
readonly LATIN: 1;
|
|
39
|
+
readonly ARABIC: 2;
|
|
40
|
+
readonly GREEK: 3;
|
|
43
41
|
};
|
|
44
42
|
declare const J: {
|
|
45
|
-
NEVER:
|
|
46
|
-
RANDOM:
|
|
47
|
-
ALWAYS:
|
|
43
|
+
readonly NEVER: 0;
|
|
44
|
+
readonly RANDOM: 1;
|
|
45
|
+
readonly ALWAYS: 2;
|
|
48
46
|
};
|
|
49
47
|
declare const VARIATION: {
|
|
50
|
-
NO:
|
|
51
|
-
FIRST:
|
|
52
|
-
ALL:
|
|
48
|
+
readonly NO: 0;
|
|
49
|
+
readonly FIRST: 1;
|
|
50
|
+
readonly ALL: 2;
|
|
53
51
|
};
|
|
54
|
-
declare const
|
|
55
|
-
declare const tarask: TaraskAsync;
|
|
52
|
+
declare const tarask: Tarask;
|
|
56
53
|
|
|
57
54
|
declare const gobj: {
|
|
58
55
|
readonly г: "ґ";
|
|
@@ -61,4 +58,4 @@ declare const gobj: {
|
|
|
61
58
|
readonly Ґ: "Г";
|
|
62
59
|
};
|
|
63
60
|
|
|
64
|
-
export { ALPHABET, AlphabetDependentDict, Dict, ExtendedDict, HtmlOptions, J, NonHtmlOptions, ReplaceWithDict, Tarask,
|
|
61
|
+
export { ALPHABET, AlphabetDependentDict, Dict, ExtendedDict, HtmlOptions, J, NonHtmlOptions, ReplaceWithDict, Tarask, TaraskOptions, TaraskOptionsStrict, ToTarask, VARIATION, gobj, tarask };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
type Promisify<T> = T extends (...args: infer TArgs) => infer TReturn ? (...args: TArgs) => Promise<TReturn> : never;
|
|
2
1
|
type AnyFn = (...args: any[]) => any;
|
|
3
2
|
type DeepPartial<T> = T extends object ? T extends AnyFn ? T : {
|
|
4
3
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
@@ -25,7 +24,6 @@ type TaraskOptionsStrict = {
|
|
|
25
24
|
};
|
|
26
25
|
type TaraskOptions = DeepPartial<TaraskOptionsStrict>;
|
|
27
26
|
type Tarask = (text: string, options?: TaraskOptions) => string;
|
|
28
|
-
type TaraskAsync = Promisify<Tarask>;
|
|
29
27
|
type Dict<T = RegExp> = [T, string][];
|
|
30
28
|
type ExtendedDict = [
|
|
31
29
|
RegExp,
|
|
@@ -36,23 +34,22 @@ type AlphabetDependentDict = {
|
|
|
36
34
|
};
|
|
37
35
|
|
|
38
36
|
declare const ALPHABET: {
|
|
39
|
-
CYRILLIC:
|
|
40
|
-
LATIN:
|
|
41
|
-
ARABIC:
|
|
42
|
-
GREEK:
|
|
37
|
+
readonly CYRILLIC: 0;
|
|
38
|
+
readonly LATIN: 1;
|
|
39
|
+
readonly ARABIC: 2;
|
|
40
|
+
readonly GREEK: 3;
|
|
43
41
|
};
|
|
44
42
|
declare const J: {
|
|
45
|
-
NEVER:
|
|
46
|
-
RANDOM:
|
|
47
|
-
ALWAYS:
|
|
43
|
+
readonly NEVER: 0;
|
|
44
|
+
readonly RANDOM: 1;
|
|
45
|
+
readonly ALWAYS: 2;
|
|
48
46
|
};
|
|
49
47
|
declare const VARIATION: {
|
|
50
|
-
NO:
|
|
51
|
-
FIRST:
|
|
52
|
-
ALL:
|
|
48
|
+
readonly NO: 0;
|
|
49
|
+
readonly FIRST: 1;
|
|
50
|
+
readonly ALL: 2;
|
|
53
51
|
};
|
|
54
|
-
declare const
|
|
55
|
-
declare const tarask: TaraskAsync;
|
|
52
|
+
declare const tarask: Tarask;
|
|
56
53
|
|
|
57
54
|
declare const gobj: {
|
|
58
55
|
readonly г: "ґ";
|
|
@@ -61,4 +58,4 @@ declare const gobj: {
|
|
|
61
58
|
readonly Ґ: "Г";
|
|
62
59
|
};
|
|
63
60
|
|
|
64
|
-
export { ALPHABET, AlphabetDependentDict, Dict, ExtendedDict, HtmlOptions, J, NonHtmlOptions, ReplaceWithDict, Tarask,
|
|
61
|
+
export { ALPHABET, AlphabetDependentDict, Dict, ExtendedDict, HtmlOptions, J, NonHtmlOptions, ReplaceWithDict, Tarask, TaraskOptions, TaraskOptionsStrict, ToTarask, VARIATION, gobj, tarask };
|
package/dist/index.js
CHANGED
|
@@ -278,15 +278,17 @@ var rawArabLetters = [
|
|
|
278
278
|
];
|
|
279
279
|
|
|
280
280
|
// src/dict/index.ts
|
|
281
|
-
var
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
281
|
+
var chemicalElements1 = [
|
|
282
|
+
"сканд|ванад|рубід|род|ірыд|рэзэрфорд",
|
|
283
|
+
"стронц|бар|цэр|лютэц|самар| тор|амэрыц|кальц|кюр|дармштат|лівэрмор|натр"
|
|
284
|
+
];
|
|
285
|
+
chemicalElements1[2] = chemicalElements1[1] + "|тэхнэц|прамэт|майтнэр|капэрніц";
|
|
286
|
+
chemicalElements1[3] = chemicalElements1[0] + "|паляд|" + chemicalElements1[2];
|
|
287
|
+
var chemicalElements2 = [
|
|
288
|
+
"алюмін|магн|крэмн|цыркон|ніоб|рутэн|кадм|гафн|рэн|осм|эўроп|гандалін|тэрб|дыспроз|гольм| эрб|ітэрб|актын|пратактын|нэптун|плютон|фэрм|ляўрэнс|дубн|рэнтген|ніхон"
|
|
289
|
+
];
|
|
290
|
+
chemicalElements2[1] = chemicalElements2[0] + "|айнштайн|мендзялев|сыборг|гас|флеров";
|
|
291
|
+
var chemicalElements3 = " гал|бэрыл|тул|бэркл|набэл";
|
|
290
292
|
var toOneLine = (str) => str.replace(/\n/g, "|");
|
|
291
293
|
var ia = (word, words) => ` ${word} (?=\\(?(?:[бвгджзйклмнпстфцчшў]*[оё]|${words.replace(/\(/g, "(?:")}|${iwords}))`;
|
|
292
294
|
var iwords = toOneLine(`і(
|
|
@@ -402,7 +404,6 @@ var rawWordlist = [
|
|
|
402
404
|
[/алка(?=г[ао]|ло)/, "алька"],
|
|
403
405
|
[/алфавіт/, "альфабэт"],
|
|
404
406
|
[/алхім/, "альхім"],
|
|
405
|
-
[/ альцгеймер/, " альцгаймэр"],
|
|
406
407
|
// [/аланд/, 'алянд'],
|
|
407
408
|
// [/ала/, 'аля'], TODO: аля-
|
|
408
409
|
[/амбулатор/, "амбулятор"],
|
|
@@ -875,6 +876,7 @@ var rawWordlist = [
|
|
|
875
876
|
[/марцінке/, "марці�нке"],
|
|
876
877
|
[/марцінес/, "мартынэс"],
|
|
877
878
|
[/марцін/, "мартын"],
|
|
879
|
+
[/ марыянет/, " марыянэт"],
|
|
878
880
|
// [/морэл/, 'марэл'],
|
|
879
881
|
// [/абрыкосав/, '($&|марэлев)'],
|
|
880
882
|
// [/[іы] абрыкос /, '(ая|ую) марэ(ля|лю) '],
|
|
@@ -1189,7 +1191,7 @@ var rawWordlist = [
|
|
|
1189
1191
|
[/ трыа /, " трыё "],
|
|
1190
1192
|
// [/трыўмф/, 'трыюмф'],
|
|
1191
1193
|
[/цю(?=баж|бінг|льпан|рбан)/, "ту"],
|
|
1192
|
-
[/(
|
|
1194
|
+
[/(ар|бізнэс|да|рэкардс|спартс|турк)мен/, "$1мэн"],
|
|
1193
1195
|
[/цюрынгі(?=\S)/, "турынґі"],
|
|
1194
1196
|
[/ цюрынг/, " тʼюрынґ"],
|
|
1195
1197
|
[/турцыя/, "тур(цыя|эччына)"],
|
|
@@ -1484,30 +1486,35 @@ var rawWordlist = [
|
|
|
1484
1486
|
[/ гэлій /, " (гэ|г�е)(ль|лі) "],
|
|
1485
1487
|
[/ гэлі(?=[юя] |е)/, " (гэ|г�е)л"],
|
|
1486
1488
|
[/ гэліі /, " (гэ|г�е)ле "],
|
|
1487
|
-
[`(
|
|
1488
|
-
[`(
|
|
1489
|
-
[`(
|
|
1490
|
-
[`(
|
|
1491
|
-
[`(
|
|
1492
|
-
[`(${
|
|
1493
|
-
[`(${
|
|
1494
|
-
[`(${
|
|
1495
|
-
[`(${
|
|
1489
|
+
[`(${chemicalElements1[0] + chemicalElements1[1]}|інд|франц|рад)ый `, "$1 "],
|
|
1490
|
+
[`(${chemicalElements1[3]})ы[ея]`, "$1а"],
|
|
1491
|
+
[`(${chemicalElements1[3]})ыю`, "$1у"],
|
|
1492
|
+
[`(${chemicalElements1[3]}|рад)ыі`, "$1зе"],
|
|
1493
|
+
[`(${chemicalElements1[2]})ыі`, "$1ы"],
|
|
1494
|
+
[`(${chemicalElements2[0]}|герман)ій`, "$1"],
|
|
1495
|
+
[`(${chemicalElements2[1]})і[ея]`, "$1а"],
|
|
1496
|
+
[`(${chemicalElements2[1]})ію`, "$1у"],
|
|
1497
|
+
[`(${chemicalElements3}| тал)ій `, "$1ь "],
|
|
1496
1498
|
[/ таліе/, " тале"],
|
|
1497
|
-
[`(
|
|
1498
|
-
[`(${
|
|
1499
|
+
[`(${chemicalElements3})і(?=[юя] |е)`, "$1"],
|
|
1500
|
+
[`(${chemicalElements3})іі `, "$1е "],
|
|
1499
1501
|
/* ер > эр */
|
|
1500
1502
|
[/(антрэпрэн|бакс|грав|грым|гіпнатыз|паз|партн|плян|прыз|рэжыс|рэзан|сап|сутэн|трас|фантаз)ёр/, "$1эр"],
|
|
1501
1503
|
[/(біле|брэ|ман|мушке|(ім|рэ|транс|экс)пар|салі)цёр/, "$1тэр"],
|
|
1502
1504
|
[/(вальты|коміваяж|фура)жор/, "$1жэр"],
|
|
1503
1505
|
[/(каска|мара|фура)дзёр/, "$1дэр"],
|
|
1504
1506
|
[/браўз[еа]р/, "браўз(э|а)р"],
|
|
1505
|
-
[/(
|
|
1506
|
-
[/(
|
|
1507
|
-
[/(
|
|
1507
|
+
[/(дыскаўнт|ляйт|мэлянж|пражэкт)ар/, "$1(э|а)р"],
|
|
1508
|
+
[/(парфум|фраз)[её]р/, "$1эр"],
|
|
1509
|
+
[/(абсорб|акцыян|альб|амп|апазыцыян| вэзэр|гіп|дызайн|імп|інжын|каба-в|кам|кандыцыян|кіб|легіян|мільян|піян|пфайф|пэнсіян|рэвалюцыян|рэф|скан|скв|снайп| суп|сф|тайм| тап|трэн)ер/, "$1эр"],
|
|
1508
1510
|
// Вэзэр - Места
|
|
1509
1511
|
[/ супэрні/, " суперні"],
|
|
1510
1512
|
[/(вах|ліф|шах)цёр/, "$1тар"],
|
|
1513
|
+
/* Імёны */
|
|
1514
|
+
[/ альцгеймер/, " альцгаймэр"],
|
|
1515
|
+
[/ веерштрас/, " ваерштрас"],
|
|
1516
|
+
[/ лейбніц/, " ляйбніц"],
|
|
1517
|
+
[/ нейман/, " нойман"],
|
|
1511
1518
|
/* Імёны з лаціны */
|
|
1512
1519
|
[/ понцій/, " понтыюс"],
|
|
1513
1520
|
[/ понці/, " понты"],
|
|
@@ -1522,17 +1529,17 @@ var rawWordlist = [
|
|
|
1522
1529
|
/* -ір- */
|
|
1523
1530
|
[/блакір(?=[аоу])/, "блякір"],
|
|
1524
1531
|
[/арыенцір(?=[ауы] |а[мў] |амі? )/, "арыентыр"],
|
|
1525
|
-
[/(
|
|
1526
|
-
[/(
|
|
1527
|
-
[/(
|
|
1528
|
-
[/(
|
|
1529
|
-
[/(
|
|
1530
|
-
[/(
|
|
1531
|
-
[/(
|
|
1532
|
-
[/(
|
|
1533
|
-
[/(
|
|
1534
|
-
[/(
|
|
1535
|
-
[/(
|
|
1532
|
+
[/(абстраг|акліматыз|акуп|(?:а|нацыя)наліз|баз|балянс|бляк|ваеніз|груп|імпан|імправіз|інсцэн|інфарм|іраніз|каляніз|каляпс|каталіз|культыв|курс|ма[рс]к|нэрв|плян|прагназ|праграм|прыватыз|рэаг|санкцыян|скан|трэн|тыпіз|урбаніз|фантаз|фарм|фінанс|фраз|функцыян)ір(?=[ау])/, "$1"],
|
|
1533
|
+
[/(анке|арыен|дыску|дэб[аю]|(?:ім|экс)пар|праек|інспэк|кантак|кансуль|паразі|тэс|фарма|цы)цір(?=[ау])/, "$1т"],
|
|
1534
|
+
[/(дэгра|ка|лікві)дзір(?=[ау])/, "$1д"],
|
|
1535
|
+
[/(ангаж|дэкляр|ігнар|тыраж|фініш|генэр)ыр(?=[ау])/, "$1"],
|
|
1536
|
+
[/(інду|кваліфі|права|фальсыфі)цыр(?=[ау])/, "$1к"],
|
|
1537
|
+
[/(кап|прэм)іра/, "$1ія"],
|
|
1538
|
+
[/(кап|прэм)іру/, "$1ію"],
|
|
1539
|
+
[/(дуб|кантра|капіту|прафі|пэда)ліра/, "$1ля"],
|
|
1540
|
+
[/(дуб|кантра|капіту|прафі|пэда)ліру/, "$1лю"],
|
|
1541
|
+
[/(ініцы|канстру|тату)іра/, "$1я"],
|
|
1542
|
+
[/(ініцы|канстру|тату)іру/, "$1ю"],
|
|
1536
1543
|
[/(бляк|балянс|інсцэн|плян|трэн|фарм)іроўкай/, "$1аваньнем"],
|
|
1537
1544
|
[/(бляк|балянс|інсцэн|плян|трэн|фарм)іроўка/, "$1аваньне"],
|
|
1538
1545
|
[/(бляк|балянс|інсцэн|плян|трэн|фарм)іроўкі/, "$1аваньня"],
|
|
@@ -1803,11 +1810,11 @@ var rawWordlist = [
|
|
|
1803
1810
|
/* Іншае */
|
|
1804
1811
|
[/(кібер|фа)неты(?=[кч])/, "$1нэты"],
|
|
1805
1812
|
[/цій /, "(цій|ці) "],
|
|
1806
|
-
// [/(
|
|
1807
|
-
// [/(
|
|
1808
|
-
// [/(
|
|
1809
|
-
// [/(
|
|
1810
|
-
// [/(
|
|
1813
|
+
// [/(андрэс\S* цэльсі)й/, '$1юс'],
|
|
1814
|
+
// [/(андрэс\S* цэльсі)ем/, '$1юсам'],
|
|
1815
|
+
// [/(андрэс\S* цэльсі)[яе]/, '$1юса'],
|
|
1816
|
+
// [/(андрэс\S* цэльсі)і/, '$1юсе'],
|
|
1817
|
+
// [/(андрэс\S* цэльсі)ю/, '$1юсу'],
|
|
1811
1818
|
[/пёрл - харбар/, "пэрл - гарбар"],
|
|
1812
1819
|
[/рымска - кат/, "рыма - кат"],
|
|
1813
1820
|
[/ іата /, " і�ата "],
|
|
@@ -2081,6 +2088,7 @@ var getLastLetter = (word) => {
|
|
|
2081
2088
|
for (let i = word.length - 1; i >= 0; i--)
|
|
2082
2089
|
if (/\p{L}/u.test(word[i]))
|
|
2083
2090
|
return word[i];
|
|
2091
|
+
throw new Error(`the last letter of the word ${word} not found`);
|
|
2084
2092
|
};
|
|
2085
2093
|
var NOFIX_CHAR = " ";
|
|
2086
2094
|
var NOFIX_REGEX = new RegExp(NOFIX_CHAR, "g");
|
|
@@ -2123,7 +2131,7 @@ var afterTarask = [
|
|
|
2123
2131
|
($0, $1, $2) => /([ая]ў|ну)$/.test($2) ? $1 + "ь і" + $2 : $0
|
|
2124
2132
|
]
|
|
2125
2133
|
];
|
|
2126
|
-
var
|
|
2134
|
+
var tarask = (text, options = {}) => {
|
|
2127
2135
|
const { abc = 0, j = 0, html = false, nonHtml = false } = options;
|
|
2128
2136
|
const isHtmlObject = isObject(html);
|
|
2129
2137
|
const isNonHtmlObject = isObject(nonHtml);
|
|
@@ -2180,12 +2188,15 @@ var taraskSync = (text, options = {}) => {
|
|
|
2180
2188
|
}
|
|
2181
2189
|
}
|
|
2182
2190
|
if (gReplacer)
|
|
2183
|
-
text = text.replace(
|
|
2191
|
+
text = text.replace(
|
|
2192
|
+
G_REGEX,
|
|
2193
|
+
// @ts-ignore
|
|
2194
|
+
gReplacer
|
|
2195
|
+
);
|
|
2184
2196
|
if (noFix.length)
|
|
2185
2197
|
text = text.replace(NOFIX_REGEX, () => noFix.shift());
|
|
2186
2198
|
return (html ? finalizer.html(text) : finalizer.nonHtml(text, nonHtml)).trim();
|
|
2187
2199
|
};
|
|
2188
|
-
var tarask = (...args) => new Promise((res) => res(taraskSync(...args)));
|
|
2189
2200
|
var restoreCase = (text, orig) => {
|
|
2190
2201
|
for (let i = 0; i < text.length; i++) {
|
|
2191
2202
|
const word = text[i];
|
|
@@ -2297,7 +2308,7 @@ var finalizer = {
|
|
|
2297
2308
|
return `<tarL data-l='${options}'>${main}</tarL>`;
|
|
2298
2309
|
}).replace(/ \n /g, "<br>"),
|
|
2299
2310
|
nonHtml(text, options) {
|
|
2300
|
-
if (isObject(options) && options.variations !== VARIATION.ALL) {
|
|
2311
|
+
if (isObject(options) && options.variations && options.variations !== VARIATION.ALL) {
|
|
2301
2312
|
const WORD_INDEX = options.variations;
|
|
2302
2313
|
const replacer = ($0) => $0.slice(1, -1).split("|")[WORD_INDEX];
|
|
2303
2314
|
text = text.replace(
|
|
@@ -2313,6 +2324,5 @@ export {
|
|
|
2313
2324
|
J,
|
|
2314
2325
|
VARIATION,
|
|
2315
2326
|
gobj,
|
|
2316
|
-
tarask
|
|
2317
|
-
taraskSync
|
|
2327
|
+
tarask
|
|
2318
2328
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "taraskevizer",
|
|
3
3
|
"author": "GooseOb",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.6.0",
|
|
6
6
|
"private": false,
|
|
7
7
|
"homepage": "https://gooseob.github.io/taraskevizatar/",
|
|
8
8
|
"main": "dist/index.js",
|
|
@@ -19,9 +19,10 @@
|
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
21
|
"build": "tsup --config build-config/index.js",
|
|
22
|
-
"
|
|
23
|
-
"dev
|
|
24
|
-
"
|
|
22
|
+
"build:bun_EXPERIMENTAL": "bun ./build-config/bun.ts",
|
|
23
|
+
"dev": "esrun --watch=src/*,test/* --send-code-mode=temporaryFile test",
|
|
24
|
+
"dev:bun": "bun test --watch",
|
|
25
|
+
"test": "esrun --send-code-mode=temporaryFile test",
|
|
25
26
|
"prepare": "husky install"
|
|
26
27
|
},
|
|
27
28
|
"repository": {
|
|
@@ -37,7 +38,9 @@
|
|
|
37
38
|
"belarusian"
|
|
38
39
|
],
|
|
39
40
|
"devDependencies": {
|
|
41
|
+
"@digitak/esrun": "^3.2.24",
|
|
40
42
|
"@types/node": "^20.5.4",
|
|
43
|
+
"bun-types": "^1.0.1",
|
|
41
44
|
"husky": "^8.0.3",
|
|
42
45
|
"prettier": "^3.0.0",
|
|
43
46
|
"simple-git": "^3.19.1",
|