taraskevizer 6.1.19 → 7.0.1
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 +25 -32
- package/dist/bin.js +18 -10
- package/dist/index.cjs +417 -232
- package/dist/index.d.ts +186 -32
- package/dist/index.js +409 -229
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4,6 +4,20 @@ var __export = (target, all) => {
|
|
|
4
4
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
+
// src/dict/index.ts
|
|
8
|
+
var dict_exports = {};
|
|
9
|
+
__export(dict_exports, {
|
|
10
|
+
arabLetters: () => arabLetters,
|
|
11
|
+
gobj: () => gobj,
|
|
12
|
+
latinLettersLowerCase: () => latinLettersLowerCase,
|
|
13
|
+
latinLettersLowerCaseJi: () => latinLettersLowerCaseJi,
|
|
14
|
+
latinLettersUpperCase: () => latinLettersUpperCase,
|
|
15
|
+
latinLettersUpperCaseJi: () => latinLettersUpperCaseJi,
|
|
16
|
+
noSoften: () => noSoften,
|
|
17
|
+
softeners: () => softeners,
|
|
18
|
+
wordlist: () => wordlist
|
|
19
|
+
});
|
|
20
|
+
|
|
7
21
|
// src/dict/lib.ts
|
|
8
22
|
var dictFrom = {
|
|
9
23
|
raw: (dict) => {
|
|
@@ -1988,31 +2002,142 @@ var softeners = dictFrom.raw([
|
|
|
1988
2002
|
[/([сз])ʼ(?=[яюеё])/, "$1ь"]
|
|
1989
2003
|
]);
|
|
1990
2004
|
|
|
1991
|
-
// src/
|
|
1992
|
-
var
|
|
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
|
+
}
|
|
2022
|
+
};
|
|
2023
|
+
|
|
2024
|
+
// src/config.ts
|
|
2025
|
+
var TaraskConfig = class {
|
|
2026
|
+
constructor(options) {
|
|
2027
|
+
if (!options)
|
|
2028
|
+
return;
|
|
2029
|
+
for (const [target, source] of [
|
|
2030
|
+
[this.general, options.general],
|
|
2031
|
+
[this.html, options.html],
|
|
2032
|
+
[this.nonHtml, options.nonHtml]
|
|
2033
|
+
]) {
|
|
2034
|
+
if (source)
|
|
2035
|
+
for (const [key, value] of Object.entries(source)) {
|
|
2036
|
+
if (value !== void 0)
|
|
2037
|
+
target[key] = value;
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
general = {
|
|
2042
|
+
abc: ALPHABET.CYRILLIC,
|
|
2043
|
+
j: REPLACE_J.NEVER,
|
|
2044
|
+
doEscapeCapitalized: true
|
|
2045
|
+
};
|
|
2046
|
+
html = {
|
|
2047
|
+
g: false
|
|
2048
|
+
};
|
|
2049
|
+
nonHtml = {
|
|
2050
|
+
h: false,
|
|
2051
|
+
ansiColors: false,
|
|
2052
|
+
variations: VARIATION.ALL
|
|
2053
|
+
};
|
|
2054
|
+
};
|
|
2055
|
+
var REPLACE_J = {
|
|
2056
|
+
NEVER: 0,
|
|
2057
|
+
RANDOM: 1,
|
|
2058
|
+
ALWAYS: 2
|
|
2059
|
+
};
|
|
2060
|
+
var VARIATION = {
|
|
2061
|
+
NO: 0,
|
|
2062
|
+
FIRST: 1,
|
|
2063
|
+
ALL: 2
|
|
2064
|
+
};
|
|
2065
|
+
|
|
2066
|
+
// src/tarask.ts
|
|
2067
|
+
var tarask = (text, pipeline, cfg = new TaraskConfig()) => {
|
|
2068
|
+
const options = { cfg, storage: {} };
|
|
2069
|
+
return pipeline.reduce((text2, step) => step(text2, options), text);
|
|
2070
|
+
};
|
|
2071
|
+
|
|
2072
|
+
// src/steps/index.ts
|
|
2073
|
+
var steps_exports = {};
|
|
2074
|
+
__export(steps_exports, {
|
|
2075
|
+
applyHtmlG: () => applyHtmlG,
|
|
2076
|
+
applyHtmlVariations: () => applyHtmlVariations,
|
|
2077
|
+
applyNoFix: () => applyNoFix,
|
|
2078
|
+
applyNonHtmlG: () => applyNonHtmlG,
|
|
2079
|
+
applyNonHtmlVariations: () => applyNonHtmlVariations,
|
|
2080
|
+
applyVariableParts: () => applyVariableParts,
|
|
2081
|
+
convertAlphabet: () => convertAlphabet,
|
|
2082
|
+
convertAlphabetLowerCase: () => convertAlphabetLowerCase,
|
|
2083
|
+
highlightDiffNonHtmlStep: () => highlightDiffNonHtmlStep,
|
|
2084
|
+
highlightDiffStep: () => highlightDiffStep,
|
|
2085
|
+
joinSplittedText: () => joinSplittedText,
|
|
2086
|
+
prepare: () => prepare,
|
|
2087
|
+
replaceIbyJ: () => replaceIbyJ,
|
|
2088
|
+
resolveSpecialSyntax: () => resolveSpecialSyntax,
|
|
2089
|
+
restoreCaseStep: () => restoreCaseStep,
|
|
2090
|
+
restoreWhitespaces: () => restoreWhitespaces,
|
|
2091
|
+
storeSplittedAbcConvertedOrig: () => storeSplittedAbcConvertedOrig,
|
|
2092
|
+
storeSplittedText: () => storeSplittedText,
|
|
2093
|
+
taraskevize: () => taraskevize,
|
|
2094
|
+
trim: () => trim,
|
|
2095
|
+
whitespacesToSpaces: () => whitespacesToSpaces
|
|
2096
|
+
});
|
|
2097
|
+
|
|
2098
|
+
// src/lib/index.ts
|
|
2099
|
+
var lib_exports = {};
|
|
2100
|
+
__export(lib_exports, {
|
|
2101
|
+
afterTarask: () => afterTarask,
|
|
2102
|
+
ansiColorWrappers: () => ansiColorWrappers,
|
|
2103
|
+
dictFrom: () => dictFrom,
|
|
2104
|
+
highlightDiff: () => highlightDiff,
|
|
2105
|
+
htmlWrappers: () => htmlWrappers,
|
|
2106
|
+
replaceG: () => replaceG,
|
|
2107
|
+
replaceWithDict: () => replaceWithDict,
|
|
2108
|
+
restoreCase: () => restoreCase
|
|
2109
|
+
});
|
|
2110
|
+
|
|
2111
|
+
// src/lib/after-tarask.ts
|
|
2112
|
+
var iaReplacer = ($0, $1, $2) => {
|
|
2113
|
+
var _a;
|
|
2114
|
+
return ((_a = $2.match(/[аеёіоуыэюя]/g)) == null ? void 0 : _a.length) === 1 ? $1 + "я" + $2 : $0;
|
|
2115
|
+
};
|
|
2116
|
+
var afterTarask = [
|
|
2117
|
+
[/( б)е(зь? \S+)/g, iaReplacer],
|
|
2118
|
+
[/( н)е( \S+)/g, iaReplacer],
|
|
2119
|
+
[
|
|
2120
|
+
/( (?:б[ея]|пра|цера)?з) і(\S*)/g,
|
|
2121
|
+
($0, $1, $2) => /([ая]ў|ну)$/.test($2) ? $1 + "ь і" + $2 : $0
|
|
2122
|
+
]
|
|
2123
|
+
];
|
|
2124
|
+
|
|
2125
|
+
// src/lib/replace-g.ts
|
|
2126
|
+
var replaceG = (replacer) => (text) => text.replace(
|
|
1993
2127
|
/[Ґґ]/g,
|
|
1994
2128
|
// @ts-ignore
|
|
1995
2129
|
replacer
|
|
1996
2130
|
);
|
|
1997
2131
|
|
|
1998
|
-
// src/highlight-diff.ts
|
|
1999
|
-
var wrappers = {
|
|
2000
|
-
html: {
|
|
2001
|
-
fix: (content) => `<tarF>${content}</tarF>`,
|
|
2002
|
-
letterH: (content) => `<tarH>${content}</tarH>`
|
|
2003
|
-
},
|
|
2004
|
-
ansiColors: {
|
|
2005
|
-
fix: (content) => `\x1B[32m${content}\x1B[0m`,
|
|
2006
|
-
variable: (content) => `\x1B[35m${content}\x1B[0m`
|
|
2007
|
-
}
|
|
2008
|
-
};
|
|
2132
|
+
// src/lib/highlight-diff.ts
|
|
2009
2133
|
var highlightDiff = (text, orig, isCyrillic, highlight) => {
|
|
2134
|
+
const replaceGByOpposite = replaceG(($0) => gobj[$0]);
|
|
2010
2135
|
for (let i = 0; i < text.length; i++) {
|
|
2011
2136
|
const word = text[i];
|
|
2012
2137
|
const oWord = orig[i];
|
|
2013
2138
|
if (oWord === word)
|
|
2014
2139
|
continue;
|
|
2015
|
-
const wordH = isCyrillic ?
|
|
2140
|
+
const wordH = isCyrillic ? replaceGByOpposite(word) : word;
|
|
2016
2141
|
if (oWord === wordH)
|
|
2017
2142
|
continue;
|
|
2018
2143
|
if (!/\(/.test(word)) {
|
|
@@ -2063,14 +2188,18 @@ var highlightDiff = (text, orig, isCyrillic, highlight) => {
|
|
|
2063
2188
|
}
|
|
2064
2189
|
};
|
|
2065
2190
|
|
|
2066
|
-
// src/
|
|
2067
|
-
var
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2191
|
+
// src/lib/replace-with-dict.ts
|
|
2192
|
+
var replaceWithDict = (text, dict = []) => {
|
|
2193
|
+
for (const [pattern, result] of dict)
|
|
2194
|
+
text = text.replace(
|
|
2195
|
+
pattern,
|
|
2196
|
+
//@ts-ignore
|
|
2197
|
+
result
|
|
2198
|
+
);
|
|
2199
|
+
return text;
|
|
2200
|
+
};
|
|
2072
2201
|
|
|
2073
|
-
// src/restore-case.ts
|
|
2202
|
+
// src/lib/restore-case.ts
|
|
2074
2203
|
var isUpperCase = (str) => str === str.toUpperCase();
|
|
2075
2204
|
var getLastLetter = (word, i) => {
|
|
2076
2205
|
const result = new RegExp("\\p{L}(?=[^\\p{L}]*$)", "u").exec(word);
|
|
@@ -2106,71 +2235,73 @@ var restoreCase = (text, orig) => {
|
|
|
2106
2235
|
return text;
|
|
2107
2236
|
};
|
|
2108
2237
|
|
|
2109
|
-
// src/
|
|
2110
|
-
var
|
|
2111
|
-
|
|
2112
|
-
|
|
2238
|
+
// src/lib/wrappers.ts
|
|
2239
|
+
var htmlWrappers = {
|
|
2240
|
+
fix: (content) => `<tarF>${content}</tarF>`,
|
|
2241
|
+
letterH: (content) => `<tarH>${content}</tarH>`
|
|
2113
2242
|
};
|
|
2114
|
-
var
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
[
|
|
2118
|
-
/( (?:б[ея]|пра|цера)?з) і(\S*)/g,
|
|
2119
|
-
($0, $1, $2) => /([ая]ў|ну)$/.test($2) ? $1 + "ь і" + $2 : $0
|
|
2120
|
-
]
|
|
2121
|
-
];
|
|
2122
|
-
|
|
2123
|
-
// src/config-constants.ts
|
|
2124
|
-
var ALPHABET = {
|
|
2125
|
-
CYRILLIC: 0,
|
|
2126
|
-
LATIN: 1,
|
|
2127
|
-
ARABIC: 2,
|
|
2128
|
-
LATIN_JI: 3
|
|
2129
|
-
};
|
|
2130
|
-
var REPLACE_J = {
|
|
2131
|
-
NEVER: 0,
|
|
2132
|
-
RANDOM: 1,
|
|
2133
|
-
ALWAYS: 2
|
|
2134
|
-
};
|
|
2135
|
-
var VARIATION = {
|
|
2136
|
-
NO: 0,
|
|
2137
|
-
FIRST: 1,
|
|
2138
|
-
ALL: 2
|
|
2243
|
+
var ansiColorWrappers = {
|
|
2244
|
+
fix: (content) => `\x1B[32m${content}\x1B[0m`,
|
|
2245
|
+
variable: (content) => `\x1B[35m${content}\x1B[0m`
|
|
2139
2246
|
};
|
|
2140
2247
|
|
|
2141
|
-
// src/
|
|
2142
|
-
var
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
};
|
|
2147
|
-
var
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
}
|
|
2248
|
+
// src/steps/convert-alphabet.ts
|
|
2249
|
+
var convertAlphabet = (text, {
|
|
2250
|
+
cfg: {
|
|
2251
|
+
general: { abc }
|
|
2252
|
+
}
|
|
2253
|
+
}) => replaceWithDict(replaceWithDict(text, abc.lower), abc.upper);
|
|
2254
|
+
var convertAlphabetLowerCase = (text, {
|
|
2255
|
+
cfg: {
|
|
2256
|
+
general: { abc }
|
|
2257
|
+
}
|
|
2258
|
+
}) => replaceWithDict(text, abc.lower);
|
|
2151
2259
|
|
|
2152
|
-
// src/
|
|
2153
|
-
var
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
return
|
|
2260
|
+
// src/steps/highlight-diff.ts
|
|
2261
|
+
var highlightDiffStep = (highlight) => (_, {
|
|
2262
|
+
cfg: {
|
|
2263
|
+
general: { abc }
|
|
2264
|
+
},
|
|
2265
|
+
storage: { text, orig }
|
|
2266
|
+
}) => {
|
|
2267
|
+
highlightDiff(text, orig, abc === ALPHABET.CYRILLIC, highlight);
|
|
2268
|
+
return _;
|
|
2269
|
+
};
|
|
2270
|
+
var highlightDiffNonHtmlStep = (_, {
|
|
2271
|
+
cfg: {
|
|
2272
|
+
general: { abc },
|
|
2273
|
+
nonHtml: { ansiColors }
|
|
2274
|
+
},
|
|
2275
|
+
storage: { text, orig }
|
|
2276
|
+
}) => {
|
|
2277
|
+
if (ansiColors)
|
|
2278
|
+
highlightDiff(text, orig, abc === ALPHABET.CYRILLIC, ansiColorWrappers.fix);
|
|
2279
|
+
return _;
|
|
2161
2280
|
};
|
|
2162
|
-
var convertAlphabet = (text, abc) => replaceWithDict(replaceWithDict(text, letters[abc]), lettersUpperCase[abc]);
|
|
2163
2281
|
|
|
2164
|
-
// src/resolve-syntax.ts
|
|
2282
|
+
// src/steps/resolve-syntax.ts
|
|
2165
2283
|
var NOFIX_CHAR = " ";
|
|
2166
2284
|
var NOFIX_REGEX = new RegExp(NOFIX_CHAR, "g");
|
|
2167
|
-
var applyNoFix = (
|
|
2168
|
-
var applyVariableParts = (
|
|
2169
|
-
var resolveSpecialSyntax = (
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
}
|
|
2285
|
+
var applyNoFix = (text, { storage: { noFixArr } }) => noFixArr.length ? text.replace(NOFIX_REGEX, () => noFixArr.shift()) : text;
|
|
2286
|
+
var applyVariableParts = (callback) => (text) => text.replace(/\([^)]*?\)/g, ($0) => callback($0.slice(1, -1).split("|")));
|
|
2287
|
+
var resolveSpecialSyntax = (leftAngleBracket) => (text, {
|
|
2288
|
+
storage,
|
|
2289
|
+
cfg: {
|
|
2290
|
+
general: { doEscapeCapitalized, abc }
|
|
2291
|
+
}
|
|
2292
|
+
}) => {
|
|
2293
|
+
const noFixArr = storage.noFixArr = [];
|
|
2294
|
+
const convertAlphavet = (abcOnlyText, abc2) => restoreCase(
|
|
2295
|
+
replaceWithDict(abcOnlyText.toLowerCase(), abc2.lower).split(" "),
|
|
2296
|
+
abcOnlyText.split(" ")
|
|
2297
|
+
).join(" ");
|
|
2298
|
+
const escapeCapsIfNeeded = (text2) => doEscapeCapitalized ? text2.replace(
|
|
2299
|
+
new RegExp("(?!<=\\p{Lu} )\\p{Lu}{2}[\\p{Lu} ]*(?!= \\p{Lu})", "gu"),
|
|
2300
|
+
($0) => {
|
|
2301
|
+
noFixArr.push(convertAlphavet($0, abc));
|
|
2302
|
+
return NOFIX_CHAR;
|
|
2303
|
+
}
|
|
2304
|
+
) : text2;
|
|
2174
2305
|
const parts = text.split(/(?=[<>])/g);
|
|
2175
2306
|
if (parts.length === 1)
|
|
2176
2307
|
return escapeCapsIfNeeded(text);
|
|
@@ -2187,11 +2318,12 @@ var resolveSpecialSyntax = (text, noFixArr, leftAngleBracket, convertAlphavet, d
|
|
|
2187
2318
|
currentPart += part;
|
|
2188
2319
|
} else {
|
|
2189
2320
|
let char = "";
|
|
2190
|
-
const
|
|
2191
|
-
if (
|
|
2321
|
+
const isAbc = currentPart[1] === "*";
|
|
2322
|
+
if (isAbc) {
|
|
2192
2323
|
char = currentPart[2];
|
|
2193
2324
|
currentPart = convertAlphavet(
|
|
2194
|
-
currentPart.slice(char === "," || char === "." ? 3 : 2)
|
|
2325
|
+
currentPart.slice(char === "," || char === "." ? 3 : 2),
|
|
2326
|
+
abc
|
|
2195
2327
|
);
|
|
2196
2328
|
} else {
|
|
2197
2329
|
char = currentPart[1];
|
|
@@ -2208,7 +2340,7 @@ var resolveSpecialSyntax = (text, noFixArr, leftAngleBracket, convertAlphavet, d
|
|
|
2208
2340
|
break;
|
|
2209
2341
|
default:
|
|
2210
2342
|
toAddToResult = leftAngleBracket + NOFIX_CHAR;
|
|
2211
|
-
noFixArr.push((
|
|
2343
|
+
noFixArr.push((isAbc ? "" : char) + currentPart + ">");
|
|
2212
2344
|
}
|
|
2213
2345
|
result += toAddToResult + escapeCapsIfNeeded(part.slice(1));
|
|
2214
2346
|
currentPart = "";
|
|
@@ -2220,163 +2352,211 @@ var resolveSpecialSyntax = (text, noFixArr, leftAngleBracket, convertAlphavet, d
|
|
|
2220
2352
|
return result + escapeCapsIfNeeded(currentPart);
|
|
2221
2353
|
};
|
|
2222
2354
|
|
|
2223
|
-
// src/
|
|
2224
|
-
var
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
var
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
doEscapeCapitalized: true
|
|
2233
|
-
};
|
|
2234
|
-
html = {
|
|
2235
|
-
g: false
|
|
2236
|
-
};
|
|
2237
|
-
nonHtml = {
|
|
2238
|
-
h: false,
|
|
2239
|
-
ansiColors: false,
|
|
2240
|
-
variations: VARIATION.ALL
|
|
2241
|
-
};
|
|
2242
|
-
spaces = [];
|
|
2243
|
-
restoreSpaces(text) {
|
|
2244
|
-
return text.replace(/ /g, () => this.spaces.shift());
|
|
2245
|
-
}
|
|
2246
|
-
constructor(options) {
|
|
2247
|
-
if (!options)
|
|
2248
|
-
return;
|
|
2249
|
-
Object.assign(this.general, options.general);
|
|
2250
|
-
Object.assign(this.html, options.html);
|
|
2251
|
-
Object.assign(this.nonHtml, options.nonHtml);
|
|
2252
|
-
if (options.taraskevize)
|
|
2253
|
-
this.taraskevize = options.taraskevize;
|
|
2254
|
-
}
|
|
2255
|
-
convert(text) {
|
|
2256
|
-
const wrapInColorOf = wrappers.ansiColors;
|
|
2257
|
-
const isCyrillic = this.general.abc === ALPHABET.CYRILLIC;
|
|
2258
|
-
const noFixArr = [];
|
|
2259
|
-
const { splitted, splittedOrig } = this.process(
|
|
2260
|
-
this.prepare(text, noFixArr, "<")
|
|
2261
|
-
);
|
|
2262
|
-
if (this.nonHtml.ansiColors)
|
|
2263
|
-
highlightDiff(splitted, splittedOrig, isCyrillic, wrapInColorOf.fix);
|
|
2264
|
-
text = afterJoin(this.restoreSpaces(splitted.join(" ")));
|
|
2265
|
-
if (isCyrillic && (this.nonHtml.h || this.nonHtml.ansiColors))
|
|
2266
|
-
text = replaceG(
|
|
2267
|
-
text,
|
|
2268
|
-
this.nonHtml.ansiColors ? this.nonHtml.h ? ($0) => wrapInColorOf.variable(gobj[$0]) : wrapInColorOf.variable("$&") : ($0) => gobj[$0]
|
|
2269
|
-
);
|
|
2270
|
-
if (this.nonHtml.variations !== VARIATION.ALL) {
|
|
2271
|
-
const partIndex = this.nonHtml.variations;
|
|
2272
|
-
text = applyVariableParts(
|
|
2273
|
-
text,
|
|
2274
|
-
this.nonHtml.ansiColors ? (parts) => wrapInColorOf.variable(parts[partIndex]) : (parts) => parts[partIndex]
|
|
2275
|
-
);
|
|
2276
|
-
}
|
|
2277
|
-
return finalize(restoreParentheses(applyNoFix(noFixArr, text)), "\n");
|
|
2355
|
+
// src/steps/html-steps.ts
|
|
2356
|
+
var applyHtmlVariations = applyVariableParts((parts) => {
|
|
2357
|
+
const main = parts.shift();
|
|
2358
|
+
return `<tarL data-l='${parts}'>${main}</tarL>`;
|
|
2359
|
+
});
|
|
2360
|
+
var applyHtmlG = (text, {
|
|
2361
|
+
cfg: {
|
|
2362
|
+
general: { abc },
|
|
2363
|
+
html: { g }
|
|
2278
2364
|
}
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
text = replaceG(
|
|
2290
|
-
text,
|
|
2291
|
-
this.html.g ? wrapInTag.letterH("$&") : ($0) => wrapInTag.letterH(gobj[$0])
|
|
2292
|
-
);
|
|
2293
|
-
return finalize(
|
|
2294
|
-
applyVariableParts(applyNoFix(noFixArr, text), (parts) => {
|
|
2295
|
-
const main = parts.shift();
|
|
2296
|
-
return `<tarL data-l='${parts}'>${main}</tarL>`;
|
|
2297
|
-
}),
|
|
2298
|
-
"<br>"
|
|
2299
|
-
);
|
|
2365
|
+
}) => {
|
|
2366
|
+
const colorize = htmlWrappers.letterH;
|
|
2367
|
+
return abc === ALPHABET.CYRILLIC ? replaceG(g ? colorize("$&") : ($0) => colorize(gobj[$0]))(text) : text;
|
|
2368
|
+
};
|
|
2369
|
+
|
|
2370
|
+
// src/steps/i-to-j.ts
|
|
2371
|
+
var toJ = (shortU) => "й " + (shortU ? "у" : "");
|
|
2372
|
+
var replaceIbyJ = (text, {
|
|
2373
|
+
cfg: {
|
|
2374
|
+
general: { j, abc }
|
|
2300
2375
|
}
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2376
|
+
}) => j && abc !== ALPHABET.LATIN_JI ? text.replace(
|
|
2377
|
+
/(?<=[аеёіоуыэюя] )і (ў?)/g,
|
|
2378
|
+
j === REPLACE_J.ALWAYS ? ($0, $1) => toJ($1) : ($0, $1) => Math.random() >= 0.5 ? toJ($1) : $0
|
|
2379
|
+
) : text;
|
|
2380
|
+
|
|
2381
|
+
// src/steps/join-splitted.ts
|
|
2382
|
+
var joinSplittedText = (_, { storage: { text } }) => text.join(" ");
|
|
2383
|
+
|
|
2384
|
+
// src/steps/non-html-steps.ts
|
|
2385
|
+
var applyNonHtmlVariations = (text, options) => {
|
|
2386
|
+
const partIndex = options.cfg.nonHtml.variations;
|
|
2387
|
+
const colorize = ansiColorWrappers.variable;
|
|
2388
|
+
return partIndex === VARIATION.ALL ? text : applyVariableParts(
|
|
2389
|
+
options.cfg.nonHtml.ansiColors ? (parts) => colorize(parts[partIndex]) : (parts) => parts[partIndex]
|
|
2390
|
+
)(text, options);
|
|
2391
|
+
};
|
|
2392
|
+
var applyNonHtmlG = (text, {
|
|
2393
|
+
cfg: {
|
|
2394
|
+
general: { abc },
|
|
2395
|
+
nonHtml: { h, ansiColors }
|
|
2320
2396
|
}
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2397
|
+
}) => {
|
|
2398
|
+
const colorize = ansiColorWrappers.variable;
|
|
2399
|
+
return abc === ALPHABET.CYRILLIC && (h || ansiColors) ? replaceG(
|
|
2400
|
+
ansiColors ? h ? ($0) => colorize(gobj[$0]) : colorize("$&") : ($0) => gobj[$0]
|
|
2401
|
+
)(text) : text;
|
|
2402
|
+
};
|
|
2403
|
+
|
|
2404
|
+
// src/steps/prepare.ts
|
|
2405
|
+
var prepare = (text) => text.replace(/г'(?![еёіюя])/g, "ґ").replace(/ - /g, " — ").replace(new RegExp("(\\p{P}|\\p{S}|\\d+)", "gu"), " $1 ").replace(/ ['`’] (?=\S)/g, "ʼ").replace(/\(/g, "(");
|
|
2406
|
+
|
|
2407
|
+
// src/steps/restore-case.ts
|
|
2408
|
+
var restoreCaseStep = (_, {
|
|
2409
|
+
cfg: {
|
|
2410
|
+
general: { abc }
|
|
2411
|
+
},
|
|
2412
|
+
storage
|
|
2413
|
+
}) => {
|
|
2414
|
+
if (abc !== ALPHABET.ARABIC) {
|
|
2415
|
+
storage.text = restoreCase(storage.text, storage.orig);
|
|
2339
2416
|
}
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2417
|
+
return _;
|
|
2418
|
+
};
|
|
2419
|
+
|
|
2420
|
+
// src/steps/store-splitted-abc-converted-orig.ts
|
|
2421
|
+
var storeSplittedAbcConvertedOrig = (text, options) => {
|
|
2422
|
+
options.storage.orig = convertAlphabet(text, options).split(" ");
|
|
2423
|
+
return text;
|
|
2424
|
+
};
|
|
2425
|
+
|
|
2426
|
+
// src/steps/store-splitted-text.ts
|
|
2427
|
+
var storeSplittedText = (text, { storage }) => {
|
|
2428
|
+
storage.text = text.split(" ");
|
|
2429
|
+
return text;
|
|
2430
|
+
};
|
|
2431
|
+
|
|
2432
|
+
// src/steps/taraskevize.ts
|
|
2433
|
+
var wordlistPlusNoSoften = wordlist.concat(noSoften);
|
|
2434
|
+
var taraskevize = (text) => {
|
|
2435
|
+
text = replaceWithDict(text, wordlistPlusNoSoften);
|
|
2436
|
+
softening:
|
|
2437
|
+
do {
|
|
2438
|
+
text = replaceWithDict(text, softeners);
|
|
2439
|
+
for (const [pattern, result] of softeners)
|
|
2440
|
+
if (result !== "$1дзьдз" && pattern.test(text))
|
|
2441
|
+
continue softening;
|
|
2442
|
+
break;
|
|
2443
|
+
} while (true);
|
|
2444
|
+
return replaceWithDict(text.replace(//g, ""), afterTarask);
|
|
2445
|
+
};
|
|
2446
|
+
|
|
2447
|
+
// src/steps/whitespaces.ts
|
|
2448
|
+
var whitespacesToSpaces = (text, { storage }) => {
|
|
2449
|
+
storage.spaces = [];
|
|
2450
|
+
storage.positions = [];
|
|
2451
|
+
let result = "";
|
|
2452
|
+
let i = 0;
|
|
2453
|
+
while (i < text.length) {
|
|
2454
|
+
if (/\s/.test(text[i])) {
|
|
2455
|
+
let start = i;
|
|
2456
|
+
while (i < text.length && /\s/.test(text[i]))
|
|
2457
|
+
++i;
|
|
2458
|
+
storage.spaces.push(text.slice(start, i));
|
|
2459
|
+
storage.positions.push(result.length);
|
|
2460
|
+
result += " ";
|
|
2461
|
+
} else {
|
|
2462
|
+
result += text[i];
|
|
2463
|
+
++i;
|
|
2464
|
+
}
|
|
2351
2465
|
}
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2466
|
+
return result;
|
|
2467
|
+
};
|
|
2468
|
+
var restoreWhitespaces = (text, { storage }) => {
|
|
2469
|
+
let result = "";
|
|
2470
|
+
let lastIndex = 0;
|
|
2471
|
+
let spaceIndex = 0;
|
|
2472
|
+
for (let i = 0; i < text.length; i++) {
|
|
2473
|
+
if (text[i] === " " && spaceIndex < storage.spaces.length) {
|
|
2474
|
+
result += text.slice(lastIndex, i) + storage.spaces[spaceIndex];
|
|
2475
|
+
lastIndex = i + 1;
|
|
2476
|
+
++spaceIndex;
|
|
2477
|
+
}
|
|
2363
2478
|
}
|
|
2479
|
+
result += text.slice(lastIndex);
|
|
2480
|
+
return result;
|
|
2364
2481
|
};
|
|
2365
2482
|
|
|
2366
|
-
// src/
|
|
2367
|
-
var
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2483
|
+
// src/steps/trim.ts
|
|
2484
|
+
var trim = (text) => ` ${text.trim()} `;
|
|
2485
|
+
|
|
2486
|
+
// src/pipelines.ts
|
|
2487
|
+
var restoreParentheses = (text) => text.replace(/(/g, "(");
|
|
2488
|
+
var afterJoin = (text) => text.replace(/ /g, " ").replace(new RegExp(" (\\p{P}|\\p{S}|\\d+|() ", "gu"), "$1");
|
|
2489
|
+
var finalize = (newLine) => (text) => text.replace(/\n/g, newLine).trim();
|
|
2490
|
+
var resolveSpecialSyntaxWithLAB = resolveSpecialSyntax("<");
|
|
2491
|
+
var toLowerCase = (text) => text.toLowerCase();
|
|
2492
|
+
var finalizeWithNewLine = finalize("\n");
|
|
2493
|
+
var abcOnlyPipeline = [
|
|
2494
|
+
(_, { storage, cfg: { general } }) => {
|
|
2495
|
+
storage.doEscapeCapitalized = general.doEscapeCapitalized;
|
|
2496
|
+
general.doEscapeCapitalized = false;
|
|
2497
|
+
return _;
|
|
2498
|
+
},
|
|
2499
|
+
trim,
|
|
2500
|
+
resolveSpecialSyntaxWithLAB,
|
|
2501
|
+
prepare,
|
|
2502
|
+
whitespacesToSpaces,
|
|
2503
|
+
convertAlphabet,
|
|
2504
|
+
restoreWhitespaces,
|
|
2505
|
+
applyNoFix,
|
|
2506
|
+
restoreParentheses,
|
|
2507
|
+
afterJoin,
|
|
2508
|
+
finalizeWithNewLine,
|
|
2509
|
+
(_, { storage, cfg: { general } }) => {
|
|
2510
|
+
general.doEscapeCapitalized = storage.doEscapeCapitalized;
|
|
2511
|
+
return _;
|
|
2512
|
+
}
|
|
2513
|
+
];
|
|
2514
|
+
var createPipeline = (resolveSpecialSyntax2, applyG, applyVariations, finalize2, highlightDiffStep2) => [
|
|
2515
|
+
trim,
|
|
2516
|
+
resolveSpecialSyntax2,
|
|
2517
|
+
prepare,
|
|
2518
|
+
whitespacesToSpaces,
|
|
2519
|
+
storeSplittedAbcConvertedOrig,
|
|
2520
|
+
toLowerCase,
|
|
2521
|
+
taraskevize,
|
|
2522
|
+
replaceIbyJ,
|
|
2523
|
+
convertAlphabetLowerCase,
|
|
2524
|
+
storeSplittedText,
|
|
2525
|
+
restoreCaseStep,
|
|
2526
|
+
highlightDiffStep2,
|
|
2527
|
+
joinSplittedText,
|
|
2528
|
+
restoreWhitespaces,
|
|
2529
|
+
restoreParentheses,
|
|
2530
|
+
afterJoin,
|
|
2531
|
+
applyG,
|
|
2532
|
+
applyVariations,
|
|
2533
|
+
applyNoFix,
|
|
2534
|
+
finalize2
|
|
2535
|
+
];
|
|
2536
|
+
var plainTextPipeline = createPipeline(
|
|
2537
|
+
resolveSpecialSyntaxWithLAB,
|
|
2538
|
+
applyNonHtmlG,
|
|
2539
|
+
applyNonHtmlVariations,
|
|
2540
|
+
finalizeWithNewLine,
|
|
2541
|
+
highlightDiffNonHtmlStep
|
|
2542
|
+
);
|
|
2543
|
+
var htmlPipeline = createPipeline(
|
|
2544
|
+
resolveSpecialSyntax("<"),
|
|
2545
|
+
applyHtmlG,
|
|
2546
|
+
applyHtmlVariations,
|
|
2547
|
+
finalize("<br>"),
|
|
2548
|
+
highlightDiffStep(htmlWrappers.fix)
|
|
2549
|
+
);
|
|
2375
2550
|
export {
|
|
2376
2551
|
ALPHABET,
|
|
2377
2552
|
REPLACE_J,
|
|
2378
|
-
|
|
2553
|
+
TaraskConfig,
|
|
2379
2554
|
VARIATION,
|
|
2380
|
-
|
|
2381
|
-
|
|
2555
|
+
abcOnlyPipeline,
|
|
2556
|
+
dict_exports as dicts,
|
|
2557
|
+
htmlPipeline,
|
|
2558
|
+
lib_exports as lib,
|
|
2559
|
+
steps_exports as pipelineSteps,
|
|
2560
|
+
plainTextPipeline,
|
|
2561
|
+
tarask
|
|
2382
2562
|
};
|