taraskevizer 1.4.2 → 1.4.4

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
@@ -63,13 +63,13 @@ When to replace `і`(`i`) by `й`(`j`) after vowels:
63
63
 
64
64
  ### html
65
65
 
66
- Type: `false|object`
66
+ Type: `boolean|object`
67
67
 
68
68
  Default value: `false`
69
69
 
70
- If `object`, some parts of a text are wrapped in HTML tags.
70
+ If `true|object`, some parts of a text are wrapped in HTML tags.
71
71
 
72
- #### g
72
+ #### html.g
73
73
 
74
74
  Type: `boolean`
75
75
 
@@ -85,19 +85,19 @@ true: <tarH>ґ</tarH> <tarH>Ґ</tarH>
85
85
 
86
86
  ### nonHtml
87
87
 
88
- Type: `false|object`
88
+ Type: `boolean|object`
89
89
 
90
90
  Default value: `false`
91
91
 
92
92
  If `html` is defined, will be ignored
93
93
 
94
- #### nodeColors
94
+ #### nonHtml.nodeColors
95
95
 
96
96
  Type: `boolean`
97
97
 
98
98
  Default value: `false`
99
99
 
100
- #### h
100
+ #### nonHtml.h
101
101
 
102
102
  Type: `boolean`
103
103
 
@@ -111,7 +111,7 @@ false: Ґ ґ
111
111
  true: Г г
112
112
  ```
113
113
 
114
- #### variations
114
+ #### nonHtml.variations
115
115
 
116
116
  Type: `number`
117
117
 
package/dist/index.cjs CHANGED
@@ -143,6 +143,7 @@ var greekLetters = [
143
143
  ["υ", /й/],
144
144
  ["κ", /к/],
145
145
  ["λ", /л/],
146
+ ["μ‘π", /мп/],
146
147
  ["μ", /м/],
147
148
  ["ν", /н/],
148
149
  ["ο", /о/],
@@ -189,6 +190,8 @@ var greekLettersUpperCase = [
189
190
  ["Υ", /Й/],
190
191
  ["Κ", /К/],
191
192
  ["Λ", /Л/],
193
+ ["Μ‘Π", /МП/],
194
+ ["Μ‘π", /Мп/],
192
195
  ["Μ", /М/],
193
196
  ["Ν", /Н/],
194
197
  ["Ο", /О/],
@@ -210,25 +213,38 @@ var greekLettersUpperCase = [
210
213
  ];
211
214
  var thWords = [
212
215
  ["θει", /тэі(?=зм|ст)/],
216
+ [" αγαθ", / агат/],
213
217
  [" αναθεμ", / анатэм/],
218
+ ["ανθραπα", /антрапа/],
219
+ [" απαθε", / апатэ(?=оз|аты|м)/],
214
220
  [" αρθα", / арта(?=графі|д[ао]кс|эпі)/],
215
221
  [" αρίθμετ", / арытмэт/],
216
222
  [" αθεν", / атэн/],
217
223
  [" καλιθε", / калітэ/],
218
224
  [" καθεδ", / катэд(?=\(?а?р)/],
225
+ ["λυαμπιρίνθ", /лябірынт/],
226
+ ["λυαγαρίθμ", /лягарытм/],
227
+ [" μαρθί ", / мар[фт]ы /],
228
+ [" μαρθη ", / марфе /],
219
229
  [" μαθεματί", / матэматы/],
220
230
  [" μιθ", / міт(?=[ауы]|оляг| )/],
221
231
  [" μεθ", / мэт(?=[ао]д)/],
232
+ ["παθ", /пат(?=ал[ёя]гі|оляг|ычн|ыя|ы[ійю] |[ауы] |а[ўм] |амі | )/],
222
233
  [" πιθαγορ", / пітагор/],
223
234
  [" ρίθμ", / ры[тф]м/],
235
+ ["σίνθετ", /сынтэ[зт]/],
236
+ [" θομασ", / томас/],
237
+ [" θρομμπ", / тромб/],
238
+ [" θρον", / трон/],
239
+ ["θραμμποζ", /трамбоз/],
224
240
  [" θεαδοσ", / тэадос/],
225
241
  [" θεαρεμ", / тэарэм/],
226
242
  [" θεατ", / тэат(?=ар |р)/],
227
243
  [" θεμ", / тэм(?=[аеуы])/],
228
- [" Θε", / тэ(?=[ао]р|салёнік|сал)/],
229
- ["θεσ", /тэс(?=\S*алёнік)/],
230
- ["Θερμα", /тэрма/],
231
- [" εΘερ", / этэр/]
244
+ [" θε", / тэ(?=[ао]р|салёнік|сал)/],
245
+ ["θε", /тэ(?=с\S*алёнік|\S*зіс)/],
246
+ ["θερμα", /тэрма/],
247
+ [" εθ", / эт(?=ы[кч]|эр)/]
232
248
  ];
233
249
 
234
250
  // src/dict/arabic.ts
@@ -434,6 +450,7 @@ var rawWordlist = [
434
450
  ["анэ", /ане(?=стэ[зт])/],
435
451
  ["апазыцы", /апазіцы/],
436
452
  ["апаляґет", /апалагет/],
453
+ [" апатэ", / апафе(?=оз|аты|м)/],
437
454
  ["апсыд", /апсід/],
438
455
  // Апсыда
439
456
  ["апэльсін", /апельсін/],
@@ -837,9 +854,11 @@ var rawWordlist = [
837
854
  [" люўр", / луўр/],
838
855
  // [' $1ляг$2', / ((?:пра|не)?)лаг(аван|і|уе)/],
839
856
  ["лябара", /лабара(?=[нт])/],
857
+ ["лябірын", /лабірын(?=[тц])/],
840
858
  ["лябатам", /лабатам/],
841
859
  ["ляванд", /лаванд/],
842
- ["лягарыт", /лага(?=рыф|тып)/],
860
+ ["лягарыт", /лагарыф/],
861
+ ["лягатып", /лагатып/],
843
862
  ["лягуна", /лагуна/],
844
863
  ["ляйпцыг", /лейпцыг/],
845
864
  ["ляйтматы", /лейтматы/],
@@ -2084,6 +2103,7 @@ for (const word of gwords)
2084
2103
  wordlist.push([word, RegExp(word.replace(/ґ/g, "г"), "g")]);
2085
2104
 
2086
2105
  // src/tarask.ts
2106
+ var isObject = (arg) => typeof arg === "object";
2087
2107
  var isUpperCase = (str) => str === str.toUpperCase();
2088
2108
  var getLastLetter = (word) => {
2089
2109
  for (let i = word.length - 1; i > 0; i--)
@@ -2131,7 +2151,9 @@ var tagApplications = {
2131
2151
  };
2132
2152
  var taraskSync = (text, options) => {
2133
2153
  const { abc = 0, j = 0, html = false, nonHtml = false } = options || {};
2134
- if (typeof nonHtml === "object") {
2154
+ const isHtmlObject = isObject(html);
2155
+ const isNonHtmlObject = isObject(nonHtml);
2156
+ if (isNonHtmlObject) {
2135
2157
  nonHtml.variations || (nonHtml.variations = 0);
2136
2158
  }
2137
2159
  const apply = html ? tagApplications.html : tagApplications.nonHtml;
@@ -2157,17 +2179,22 @@ var taraskSync = (text, options) => {
2157
2179
  splitted = text.split(" ");
2158
2180
  if (abc !== ALPHABET.ARABIC)
2159
2181
  splitted = restoreCase(splitted, splittedOrig);
2160
- const nodeColors = nonHtml && nonHtml.nodeColors;
2182
+ const nodeColors = isNonHtmlObject && nonHtml.nodeColors;
2161
2183
  if (html || nodeColors)
2162
- splitted = toTags(splitted, splittedOrig, abc, apply.F);
2184
+ splitted = toTags(
2185
+ splitted,
2186
+ splittedOrig,
2187
+ abc === ALPHABET.CYRILLIC,
2188
+ apply.F
2189
+ );
2163
2190
  text = splitted.join(" ").replace(/&nbsp;/g, " ").replace(/ (\p{P}|\p{S}|\d|&#40) /gu, "$1");
2164
2191
  let gReplacer;
2165
2192
  if (html) {
2166
2193
  text = replaceWithDict(text, additionalReplacements[abc]);
2167
- if (abc === ALPHABET.CYRILLIC) {
2194
+ if (isHtmlObject && abc === ALPHABET.CYRILLIC) {
2168
2195
  gReplacer = html.g ? apply.H("$&") : ($0) => apply.H(gobj[$0]);
2169
2196
  }
2170
- } else if (nonHtml && abc === ALPHABET.CYRILLIC) {
2197
+ } else if (isNonHtmlObject && abc === ALPHABET.CYRILLIC) {
2171
2198
  if (nonHtml.nodeColors) {
2172
2199
  gReplacer = nonHtml.h ? ($0) => apply.H(gobj[$0]) : apply.H("$&");
2173
2200
  } else if (nonHtml.h) {
@@ -2206,13 +2233,13 @@ function restoreCase(text, orig) {
2206
2233
  }
2207
2234
  return text;
2208
2235
  }
2209
- function toTags(text, orig, abc, applyF) {
2236
+ function toTags(text, orig, isCyrillic, applyF) {
2210
2237
  for (let i = 0; i < text.length; i++) {
2211
2238
  const word = text[i];
2212
2239
  const oWord = orig[i];
2213
2240
  if (oWord === word)
2214
2241
  continue;
2215
- const wordH = word.replace(G_REGEX, ($0) => gobj[$0]);
2242
+ const wordH = isCyrillic ? word.replace(G_REGEX, ($0) => gobj[$0]) : word;
2216
2243
  if (oWord === wordH)
2217
2244
  continue;
2218
2245
  if (!/\(/.test(word)) {
@@ -2225,7 +2252,7 @@ function toTags(text, orig, abc, applyF) {
2225
2252
  text[i] = wordLetters.join("");
2226
2253
  continue;
2227
2254
  }
2228
- if (abc === ALPHABET.CYRILLIC) {
2255
+ if (isCyrillic) {
2229
2256
  const word1 = word.replace(/ь/g, "");
2230
2257
  switch (oWord) {
2231
2258
  case word1:
@@ -2297,7 +2324,7 @@ var finalizer = {
2297
2324
  return `<tarL data-l='${options}'>${main}</tarL>`;
2298
2325
  }).replace(/ \n /g, "<br>"),
2299
2326
  nonHtml(text, options) {
2300
- if (options && options.variations !== VARIATION.ALL) {
2327
+ if (isObject(options) && options.variations !== VARIATION.ALL) {
2301
2328
  const WORD_INDEX = options.variations;
2302
2329
  const replacer = ($0) => $0.slice(1, -1).split("|")[WORD_INDEX];
2303
2330
  text = text.replace(
package/dist/index.d.ts CHANGED
@@ -16,13 +16,9 @@ type HtmlOptions = {
16
16
  type TaraskOptionsStrict = {
17
17
  abc: Alphabet;
18
18
  j: J$1;
19
- } & ({
20
- html: HtmlOptions;
21
- nonHtml: false;
22
- } | {
23
- html: false;
24
- nonHtml: NonHtmlOptions;
25
- });
19
+ html: boolean | HtmlOptions;
20
+ nonHtml: boolean | NonHtmlOptions;
21
+ };
26
22
  type TaraskOptions = DeepPartial<TaraskOptionsStrict>;
27
23
  type Tarask = (text: string, options?: TaraskOptions) => string;
28
24
  type TaraskAsync = Promisify<Tarask>;
package/dist/index.js CHANGED
@@ -113,6 +113,7 @@ var greekLetters = [
113
113
  ["υ", /й/],
114
114
  ["κ", /к/],
115
115
  ["λ", /л/],
116
+ ["μ‘π", /мп/],
116
117
  ["μ", /м/],
117
118
  ["ν", /н/],
118
119
  ["ο", /о/],
@@ -159,6 +160,8 @@ var greekLettersUpperCase = [
159
160
  ["Υ", /Й/],
160
161
  ["Κ", /К/],
161
162
  ["Λ", /Л/],
163
+ ["Μ‘Π", /МП/],
164
+ ["Μ‘π", /Мп/],
162
165
  ["Μ", /М/],
163
166
  ["Ν", /Н/],
164
167
  ["Ο", /О/],
@@ -180,25 +183,38 @@ var greekLettersUpperCase = [
180
183
  ];
181
184
  var thWords = [
182
185
  ["θει", /тэі(?=зм|ст)/],
186
+ [" αγαθ", / агат/],
183
187
  [" αναθεμ", / анатэм/],
188
+ ["ανθραπα", /антрапа/],
189
+ [" απαθε", / апатэ(?=оз|аты|м)/],
184
190
  [" αρθα", / арта(?=графі|д[ао]кс|эпі)/],
185
191
  [" αρίθμετ", / арытмэт/],
186
192
  [" αθεν", / атэн/],
187
193
  [" καλιθε", / калітэ/],
188
194
  [" καθεδ", / катэд(?=\(?а?р)/],
195
+ ["λυαμπιρίνθ", /лябірынт/],
196
+ ["λυαγαρίθμ", /лягарытм/],
197
+ [" μαρθί ", / мар[фт]ы /],
198
+ [" μαρθη ", / марфе /],
189
199
  [" μαθεματί", / матэматы/],
190
200
  [" μιθ", / міт(?=[ауы]|оляг| )/],
191
201
  [" μεθ", / мэт(?=[ао]д)/],
202
+ ["παθ", /пат(?=ал[ёя]гі|оляг|ычн|ыя|ы[ійю] |[ауы] |а[ўм] |амі | )/],
192
203
  [" πιθαγορ", / пітагор/],
193
204
  [" ρίθμ", / ры[тф]м/],
205
+ ["σίνθετ", /сынтэ[зт]/],
206
+ [" θομασ", / томас/],
207
+ [" θρομμπ", / тромб/],
208
+ [" θρον", / трон/],
209
+ ["θραμμποζ", /трамбоз/],
194
210
  [" θεαδοσ", / тэадос/],
195
211
  [" θεαρεμ", / тэарэм/],
196
212
  [" θεατ", / тэат(?=ар |р)/],
197
213
  [" θεμ", / тэм(?=[аеуы])/],
198
- [" Θε", / тэ(?=[ао]р|салёнік|сал)/],
199
- ["θεσ", /тэс(?=\S*алёнік)/],
200
- ["Θερμα", /тэрма/],
201
- [" εΘερ", / этэр/]
214
+ [" θε", / тэ(?=[ао]р|салёнік|сал)/],
215
+ ["θε", /тэ(?=с\S*алёнік|\S*зіс)/],
216
+ ["θερμα", /тэрма/],
217
+ [" εθ", / эт(?=ы[кч]|эр)/]
202
218
  ];
203
219
 
204
220
  // src/dict/arabic.ts
@@ -404,6 +420,7 @@ var rawWordlist = [
404
420
  ["анэ", /ане(?=стэ[зт])/],
405
421
  ["апазыцы", /апазіцы/],
406
422
  ["апаляґет", /апалагет/],
423
+ [" апатэ", / апафе(?=оз|аты|м)/],
407
424
  ["апсыд", /апсід/],
408
425
  // Апсыда
409
426
  ["апэльсін", /апельсін/],
@@ -807,9 +824,11 @@ var rawWordlist = [
807
824
  [" люўр", / луўр/],
808
825
  // [' $1ляг$2', / ((?:пра|не)?)лаг(аван|і|уе)/],
809
826
  ["лябара", /лабара(?=[нт])/],
827
+ ["лябірын", /лабірын(?=[тц])/],
810
828
  ["лябатам", /лабатам/],
811
829
  ["ляванд", /лаванд/],
812
- ["лягарыт", /лага(?=рыф|тып)/],
830
+ ["лягарыт", /лагарыф/],
831
+ ["лягатып", /лагатып/],
813
832
  ["лягуна", /лагуна/],
814
833
  ["ляйпцыг", /лейпцыг/],
815
834
  ["ляйтматы", /лейтматы/],
@@ -2054,6 +2073,7 @@ for (const word of gwords)
2054
2073
  wordlist.push([word, RegExp(word.replace(/ґ/g, "г"), "g")]);
2055
2074
 
2056
2075
  // src/tarask.ts
2076
+ var isObject = (arg) => typeof arg === "object";
2057
2077
  var isUpperCase = (str) => str === str.toUpperCase();
2058
2078
  var getLastLetter = (word) => {
2059
2079
  for (let i = word.length - 1; i > 0; i--)
@@ -2101,7 +2121,9 @@ var tagApplications = {
2101
2121
  };
2102
2122
  var taraskSync = (text, options) => {
2103
2123
  const { abc = 0, j = 0, html = false, nonHtml = false } = options || {};
2104
- if (typeof nonHtml === "object") {
2124
+ const isHtmlObject = isObject(html);
2125
+ const isNonHtmlObject = isObject(nonHtml);
2126
+ if (isNonHtmlObject) {
2105
2127
  nonHtml.variations || (nonHtml.variations = 0);
2106
2128
  }
2107
2129
  const apply = html ? tagApplications.html : tagApplications.nonHtml;
@@ -2127,17 +2149,22 @@ var taraskSync = (text, options) => {
2127
2149
  splitted = text.split(" ");
2128
2150
  if (abc !== ALPHABET.ARABIC)
2129
2151
  splitted = restoreCase(splitted, splittedOrig);
2130
- const nodeColors = nonHtml && nonHtml.nodeColors;
2152
+ const nodeColors = isNonHtmlObject && nonHtml.nodeColors;
2131
2153
  if (html || nodeColors)
2132
- splitted = toTags(splitted, splittedOrig, abc, apply.F);
2154
+ splitted = toTags(
2155
+ splitted,
2156
+ splittedOrig,
2157
+ abc === ALPHABET.CYRILLIC,
2158
+ apply.F
2159
+ );
2133
2160
  text = splitted.join(" ").replace(/&nbsp;/g, " ").replace(/ (\p{P}|\p{S}|\d|&#40) /gu, "$1");
2134
2161
  let gReplacer;
2135
2162
  if (html) {
2136
2163
  text = replaceWithDict(text, additionalReplacements[abc]);
2137
- if (abc === ALPHABET.CYRILLIC) {
2164
+ if (isHtmlObject && abc === ALPHABET.CYRILLIC) {
2138
2165
  gReplacer = html.g ? apply.H("$&") : ($0) => apply.H(gobj[$0]);
2139
2166
  }
2140
- } else if (nonHtml && abc === ALPHABET.CYRILLIC) {
2167
+ } else if (isNonHtmlObject && abc === ALPHABET.CYRILLIC) {
2141
2168
  if (nonHtml.nodeColors) {
2142
2169
  gReplacer = nonHtml.h ? ($0) => apply.H(gobj[$0]) : apply.H("$&");
2143
2170
  } else if (nonHtml.h) {
@@ -2176,13 +2203,13 @@ function restoreCase(text, orig) {
2176
2203
  }
2177
2204
  return text;
2178
2205
  }
2179
- function toTags(text, orig, abc, applyF) {
2206
+ function toTags(text, orig, isCyrillic, applyF) {
2180
2207
  for (let i = 0; i < text.length; i++) {
2181
2208
  const word = text[i];
2182
2209
  const oWord = orig[i];
2183
2210
  if (oWord === word)
2184
2211
  continue;
2185
- const wordH = word.replace(G_REGEX, ($0) => gobj[$0]);
2212
+ const wordH = isCyrillic ? word.replace(G_REGEX, ($0) => gobj[$0]) : word;
2186
2213
  if (oWord === wordH)
2187
2214
  continue;
2188
2215
  if (!/\(/.test(word)) {
@@ -2195,7 +2222,7 @@ function toTags(text, orig, abc, applyF) {
2195
2222
  text[i] = wordLetters.join("");
2196
2223
  continue;
2197
2224
  }
2198
- if (abc === ALPHABET.CYRILLIC) {
2225
+ if (isCyrillic) {
2199
2226
  const word1 = word.replace(/ь/g, "");
2200
2227
  switch (oWord) {
2201
2228
  case word1:
@@ -2267,7 +2294,7 @@ var finalizer = {
2267
2294
  return `<tarL data-l='${options}'>${main}</tarL>`;
2268
2295
  }).replace(/ \n /g, "<br>"),
2269
2296
  nonHtml(text, options) {
2270
- if (options && options.variations !== VARIATION.ALL) {
2297
+ if (isObject(options) && options.variations !== VARIATION.ALL) {
2271
2298
  const WORD_INDEX = options.variations;
2272
2299
  const replacer = ($0) => $0.slice(1, -1).split("|")[WORD_INDEX];
2273
2300
  text = text.replace(
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "taraskevizer",
3
3
  "author": "GooseOb",
4
4
  "license": "MIT",
5
- "version": "1.4.2",
5
+ "version": "1.4.4",
6
6
  "private": false,
7
7
  "homepage": "https://gooseob.github.io/taraskevizatar/",
8
8
  "main": "dist/index.js",