@promptbook/utils 0.42.0 → 0.44.0-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/esm/index.es.js +577 -11
- package/esm/index.es.js.map +1 -1
- package/esm/typings/_packages/utils.index.d.ts +19 -1
- package/esm/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
- package/esm/typings/utils/normalization/IKeywords.d.ts +18 -0
- package/esm/typings/utils/normalization/capitalize.d.ts +5 -0
- package/esm/typings/utils/normalization/capitalize.test.d.ts +1 -0
- package/esm/typings/utils/normalization/decapitalize.d.ts +5 -0
- package/esm/typings/utils/normalization/decapitalize.test.d.ts +1 -0
- package/esm/typings/utils/normalization/isValidKeyword.d.ts +8 -0
- package/esm/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriPart.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriParts.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
- package/esm/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
- package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
- package/esm/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
- package/esm/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
- package/esm/typings/utils/normalization/parseKeywords.d.ts +14 -0
- package/esm/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
- package/esm/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
- package/esm/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
- package/esm/typings/utils/normalization/removeDiacritics.d.ts +4 -0
- package/esm/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
- package/esm/typings/utils/normalization/searchKeywords.d.ts +5 -0
- package/esm/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
- package/package.json +2 -3
- package/umd/index.umd.js +603 -20
- package/umd/index.umd.js.map +1 -1
- package/umd/typings/_packages/utils.index.d.ts +19 -1
- package/umd/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
- package/umd/typings/utils/normalization/IKeywords.d.ts +18 -0
- package/umd/typings/utils/normalization/capitalize.d.ts +5 -0
- package/umd/typings/utils/normalization/capitalize.test.d.ts +1 -0
- package/umd/typings/utils/normalization/decapitalize.d.ts +5 -0
- package/umd/typings/utils/normalization/decapitalize.test.d.ts +1 -0
- package/umd/typings/utils/normalization/isValidKeyword.d.ts +8 -0
- package/umd/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriPart.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriParts.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
- package/umd/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
- package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
- package/umd/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
- package/umd/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
- package/umd/typings/utils/normalization/parseKeywords.d.ts +14 -0
- package/umd/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
- package/umd/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
- package/umd/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
- package/umd/typings/utils/normalization/removeDiacritics.d.ts +4 -0
- package/umd/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
- package/umd/typings/utils/normalization/searchKeywords.d.ts +5 -0
- package/umd/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
package/umd/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-utils"] = {}, global.
|
|
5
|
-
})(this, (function (exports,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('prettier'), require('prettier/parser-html'), require('moment')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'prettier', 'prettier/parser-html', 'moment'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-utils"] = {}, global.spaceTrim, global.prettier, global.parserHtml, global.moment));
|
|
5
|
+
})(this, (function (exports, spaceTrim, prettier, parserHtml, moment) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -307,6 +307,14 @@
|
|
|
307
307
|
return listItems;
|
|
308
308
|
}
|
|
309
309
|
|
|
310
|
+
/**
|
|
311
|
+
* Makes first letter of a string uppercase
|
|
312
|
+
*
|
|
313
|
+
*/
|
|
314
|
+
function capitalize(word) {
|
|
315
|
+
return word.substring(0, 1).toUpperCase() + word.substring(1);
|
|
316
|
+
}
|
|
317
|
+
|
|
310
318
|
/**
|
|
311
319
|
* Extracts all code blocks from markdown.
|
|
312
320
|
*
|
|
@@ -335,7 +343,7 @@
|
|
|
335
343
|
else {
|
|
336
344
|
if (language !== null) {
|
|
337
345
|
// [🌻]
|
|
338
|
-
throw new Error("".concat(
|
|
346
|
+
throw new Error("".concat(capitalize(currentCodeBlock.language || 'the'), " code block was not closed and already opening new ").concat(language, " code block"));
|
|
339
347
|
}
|
|
340
348
|
codeBlocks.push(currentCodeBlock);
|
|
341
349
|
currentCodeBlock = null;
|
|
@@ -358,7 +366,7 @@
|
|
|
358
366
|
}
|
|
359
367
|
if (currentCodeBlock !== null) {
|
|
360
368
|
// [🌻]
|
|
361
|
-
throw new Error("".concat(
|
|
369
|
+
throw new Error("".concat(capitalize(currentCodeBlock.language || 'the'), " code block was not closed at the end of the markdown"));
|
|
362
370
|
}
|
|
363
371
|
return codeBlocks;
|
|
364
372
|
}
|
|
@@ -401,7 +409,7 @@
|
|
|
401
409
|
/**
|
|
402
410
|
* The version of the Promptbook library
|
|
403
411
|
*/
|
|
404
|
-
var PROMPTBOOK_VERSION = '0.
|
|
412
|
+
var PROMPTBOOK_VERSION = '0.43.0';
|
|
405
413
|
|
|
406
414
|
/**
|
|
407
415
|
* Parses the given script and returns the list of all used variables that are not defined in the script
|
|
@@ -577,7 +585,7 @@
|
|
|
577
585
|
type = type.split(']').join('');
|
|
578
586
|
type = type.split('(').join('');
|
|
579
587
|
type = type.split(')').join('');
|
|
580
|
-
type =
|
|
588
|
+
type = normalizeTo_SCREAMING_CASE(type);
|
|
581
589
|
type = type.split('DIALOGUE').join('DIALOG');
|
|
582
590
|
var listItemParts = listItem
|
|
583
591
|
.split(' ')
|
|
@@ -1041,7 +1049,7 @@
|
|
|
1041
1049
|
}
|
|
1042
1050
|
dependentParameterNames = __spreadArray([], __read(new Set(dependentParameterNames)), false);
|
|
1043
1051
|
promptbookJson.promptTemplates.push({
|
|
1044
|
-
name:
|
|
1052
|
+
name: normalizeTo_PascalCase(section.title),
|
|
1045
1053
|
title: section.title,
|
|
1046
1054
|
description: description_1,
|
|
1047
1055
|
dependentParameterNames: dependentParameterNames,
|
|
@@ -1150,7 +1158,7 @@
|
|
|
1150
1158
|
if (!template) {
|
|
1151
1159
|
throw new Error("Could not find template for {".concat(parameterName, "}"));
|
|
1152
1160
|
}
|
|
1153
|
-
return 'template' +
|
|
1161
|
+
return 'template' + normalizeTo_PascalCase(template.title);
|
|
1154
1162
|
};
|
|
1155
1163
|
var promptbookMermaid_1 = spaceTrim__default["default"](function (block) { return "\n\n %% \uD83D\uDD2E Tip: Open this on GitHub or in the VSCode website to see the Mermaid graph visually\n\n flowchart LR\n subgraph \"".concat(promptbookJson_1.title, "\"\n\n direction TB\n\n input((Input)):::input\n ").concat(block(promptbookJson_1.promptTemplates
|
|
1156
1164
|
.flatMap(function (_a) {
|
|
@@ -1302,14 +1310,6 @@
|
|
|
1302
1310
|
return replacedTemplate;
|
|
1303
1311
|
}
|
|
1304
1312
|
|
|
1305
|
-
/**
|
|
1306
|
-
* Default options for generating an execution report string
|
|
1307
|
-
*/
|
|
1308
|
-
var ExecutionReportStringOptionsDefaults = {
|
|
1309
|
-
taxRate: 0,
|
|
1310
|
-
chartsWidth: 36,
|
|
1311
|
-
};
|
|
1312
|
-
|
|
1313
1313
|
/**
|
|
1314
1314
|
* Format either small or big number
|
|
1315
1315
|
*
|
|
@@ -1434,6 +1434,14 @@
|
|
|
1434
1434
|
return value.replace(/```/g, '\\`\\`\\`');
|
|
1435
1435
|
}
|
|
1436
1436
|
|
|
1437
|
+
/**
|
|
1438
|
+
* Default options for generating an execution report string
|
|
1439
|
+
*/
|
|
1440
|
+
var ExecutionReportStringOptionsDefaults = {
|
|
1441
|
+
taxRate: 0,
|
|
1442
|
+
chartsWidth: 36,
|
|
1443
|
+
};
|
|
1444
|
+
|
|
1437
1445
|
/**
|
|
1438
1446
|
* The thresholds for the relative time in the `moment` library.
|
|
1439
1447
|
*
|
|
@@ -1539,7 +1547,7 @@
|
|
|
1539
1547
|
executionReportJson.promptExecutions
|
|
1540
1548
|
.map(function (promptExecution) {
|
|
1541
1549
|
// TODO: Make some better system to convert hedings to links
|
|
1542
|
-
var hash =
|
|
1550
|
+
var hash = normalizeToKebabCase(promptExecution.prompt.title);
|
|
1543
1551
|
if (/^\s*\p{Extended_Pictographic}/u.test(promptExecution.prompt.title)) {
|
|
1544
1552
|
hash = '-' + hash;
|
|
1545
1553
|
}
|
|
@@ -1681,12 +1689,265 @@
|
|
|
1681
1689
|
return text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; }).length;
|
|
1682
1690
|
}
|
|
1683
1691
|
|
|
1692
|
+
var defaultDiacriticsRemovalMap = [
|
|
1693
|
+
{
|
|
1694
|
+
base: 'A',
|
|
1695
|
+
letters: '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F',
|
|
1696
|
+
},
|
|
1697
|
+
{ base: 'AA', letters: '\uA732' },
|
|
1698
|
+
{ base: 'AE', letters: '\u00C6\u01FC\u01E2' },
|
|
1699
|
+
{ base: 'AO', letters: '\uA734' },
|
|
1700
|
+
{ base: 'AU', letters: '\uA736' },
|
|
1701
|
+
{ base: 'AV', letters: '\uA738\uA73A' },
|
|
1702
|
+
{ base: 'AY', letters: '\uA73C' },
|
|
1703
|
+
{
|
|
1704
|
+
base: 'B',
|
|
1705
|
+
letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181',
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
base: 'C',
|
|
1709
|
+
letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E',
|
|
1710
|
+
},
|
|
1711
|
+
{
|
|
1712
|
+
base: 'D',
|
|
1713
|
+
letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779\u00D0',
|
|
1714
|
+
},
|
|
1715
|
+
{ base: 'DZ', letters: '\u01F1\u01C4' },
|
|
1716
|
+
{ base: 'Dz', letters: '\u01F2\u01C5' },
|
|
1717
|
+
{
|
|
1718
|
+
base: 'E',
|
|
1719
|
+
letters: '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E',
|
|
1720
|
+
},
|
|
1721
|
+
{ base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' },
|
|
1722
|
+
{
|
|
1723
|
+
base: 'G',
|
|
1724
|
+
letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E',
|
|
1725
|
+
},
|
|
1726
|
+
{
|
|
1727
|
+
base: 'H',
|
|
1728
|
+
letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D',
|
|
1729
|
+
},
|
|
1730
|
+
{
|
|
1731
|
+
base: 'I',
|
|
1732
|
+
letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197',
|
|
1733
|
+
},
|
|
1734
|
+
{ base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' },
|
|
1735
|
+
{
|
|
1736
|
+
base: 'K',
|
|
1737
|
+
letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2',
|
|
1738
|
+
},
|
|
1739
|
+
{
|
|
1740
|
+
base: 'L',
|
|
1741
|
+
letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780',
|
|
1742
|
+
},
|
|
1743
|
+
{ base: 'LJ', letters: '\u01C7' },
|
|
1744
|
+
{ base: 'Lj', letters: '\u01C8' },
|
|
1745
|
+
{ base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' },
|
|
1746
|
+
{
|
|
1747
|
+
base: 'N',
|
|
1748
|
+
letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4',
|
|
1749
|
+
},
|
|
1750
|
+
{ base: 'NJ', letters: '\u01CA' },
|
|
1751
|
+
{ base: 'Nj', letters: '\u01CB' },
|
|
1752
|
+
{
|
|
1753
|
+
base: 'O',
|
|
1754
|
+
letters: '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C',
|
|
1755
|
+
},
|
|
1756
|
+
{ base: 'OI', letters: '\u01A2' },
|
|
1757
|
+
{ base: 'OO', letters: '\uA74E' },
|
|
1758
|
+
{ base: 'OU', letters: '\u0222' },
|
|
1759
|
+
{ base: 'OE', letters: '\u008C\u0152' },
|
|
1760
|
+
{ base: 'oe', letters: '\u009C\u0153' },
|
|
1761
|
+
{
|
|
1762
|
+
base: 'P',
|
|
1763
|
+
letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754',
|
|
1764
|
+
},
|
|
1765
|
+
{ base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' },
|
|
1766
|
+
{
|
|
1767
|
+
base: 'R',
|
|
1768
|
+
letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782',
|
|
1769
|
+
},
|
|
1770
|
+
{
|
|
1771
|
+
base: 'S',
|
|
1772
|
+
letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784',
|
|
1773
|
+
},
|
|
1774
|
+
{
|
|
1775
|
+
base: 'T',
|
|
1776
|
+
letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786',
|
|
1777
|
+
},
|
|
1778
|
+
{ base: 'TZ', letters: '\uA728' },
|
|
1779
|
+
{
|
|
1780
|
+
base: 'U',
|
|
1781
|
+
letters: '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244',
|
|
1782
|
+
},
|
|
1783
|
+
{ base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' },
|
|
1784
|
+
{ base: 'VY', letters: '\uA760' },
|
|
1785
|
+
{
|
|
1786
|
+
base: 'W',
|
|
1787
|
+
letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72',
|
|
1788
|
+
},
|
|
1789
|
+
{ base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' },
|
|
1790
|
+
{
|
|
1791
|
+
base: 'Y',
|
|
1792
|
+
letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE',
|
|
1793
|
+
},
|
|
1794
|
+
{
|
|
1795
|
+
base: 'Z',
|
|
1796
|
+
letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762',
|
|
1797
|
+
},
|
|
1798
|
+
{
|
|
1799
|
+
base: 'a',
|
|
1800
|
+
letters: '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250',
|
|
1801
|
+
},
|
|
1802
|
+
{ base: 'aa', letters: '\uA733' },
|
|
1803
|
+
{ base: 'ae', letters: '\u00E6\u01FD\u01E3' },
|
|
1804
|
+
{ base: 'ao', letters: '\uA735' },
|
|
1805
|
+
{ base: 'au', letters: '\uA737' },
|
|
1806
|
+
{ base: 'av', letters: '\uA739\uA73B' },
|
|
1807
|
+
{ base: 'ay', letters: '\uA73D' },
|
|
1808
|
+
{
|
|
1809
|
+
base: 'b',
|
|
1810
|
+
letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253',
|
|
1811
|
+
},
|
|
1812
|
+
{
|
|
1813
|
+
base: 'c',
|
|
1814
|
+
letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184',
|
|
1815
|
+
},
|
|
1816
|
+
{
|
|
1817
|
+
base: 'd',
|
|
1818
|
+
letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A',
|
|
1819
|
+
},
|
|
1820
|
+
{ base: 'dz', letters: '\u01F3\u01C6' },
|
|
1821
|
+
{
|
|
1822
|
+
base: 'e',
|
|
1823
|
+
letters: '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD',
|
|
1824
|
+
},
|
|
1825
|
+
{ base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' },
|
|
1826
|
+
{
|
|
1827
|
+
base: 'g',
|
|
1828
|
+
letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F',
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
base: 'h',
|
|
1832
|
+
letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265',
|
|
1833
|
+
},
|
|
1834
|
+
{ base: 'hv', letters: '\u0195' },
|
|
1835
|
+
{
|
|
1836
|
+
base: 'i',
|
|
1837
|
+
letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131',
|
|
1838
|
+
},
|
|
1839
|
+
{ base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' },
|
|
1840
|
+
{
|
|
1841
|
+
base: 'k',
|
|
1842
|
+
letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3',
|
|
1843
|
+
},
|
|
1844
|
+
{
|
|
1845
|
+
base: 'l',
|
|
1846
|
+
letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747',
|
|
1847
|
+
},
|
|
1848
|
+
{ base: 'lj', letters: '\u01C9' },
|
|
1849
|
+
{ base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' },
|
|
1850
|
+
{
|
|
1851
|
+
base: 'n',
|
|
1852
|
+
letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5',
|
|
1853
|
+
},
|
|
1854
|
+
{ base: 'nj', letters: '\u01CC' },
|
|
1855
|
+
{
|
|
1856
|
+
base: 'o',
|
|
1857
|
+
letters: '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275',
|
|
1858
|
+
},
|
|
1859
|
+
{ base: 'oi', letters: '\u01A3' },
|
|
1860
|
+
{ base: 'ou', letters: '\u0223' },
|
|
1861
|
+
{ base: 'oo', letters: '\uA74F' },
|
|
1862
|
+
{
|
|
1863
|
+
base: 'p',
|
|
1864
|
+
letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755',
|
|
1865
|
+
},
|
|
1866
|
+
{ base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' },
|
|
1867
|
+
{
|
|
1868
|
+
base: 'r',
|
|
1869
|
+
letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783',
|
|
1870
|
+
},
|
|
1871
|
+
{
|
|
1872
|
+
base: 's',
|
|
1873
|
+
letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B',
|
|
1874
|
+
},
|
|
1875
|
+
{
|
|
1876
|
+
base: 't',
|
|
1877
|
+
letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787',
|
|
1878
|
+
},
|
|
1879
|
+
{ base: 'tz', letters: '\uA729' },
|
|
1880
|
+
{
|
|
1881
|
+
base: 'u',
|
|
1882
|
+
letters: '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289',
|
|
1883
|
+
},
|
|
1884
|
+
{ base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' },
|
|
1885
|
+
{ base: 'vy', letters: '\uA761' },
|
|
1886
|
+
{
|
|
1887
|
+
base: 'w',
|
|
1888
|
+
letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73',
|
|
1889
|
+
},
|
|
1890
|
+
{ base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' },
|
|
1891
|
+
{
|
|
1892
|
+
base: 'y',
|
|
1893
|
+
letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF',
|
|
1894
|
+
},
|
|
1895
|
+
{
|
|
1896
|
+
base: 'z',
|
|
1897
|
+
letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763',
|
|
1898
|
+
},
|
|
1899
|
+
];
|
|
1900
|
+
/**
|
|
1901
|
+
* Map of letters from diacritic variant to diacritless variant
|
|
1902
|
+
* Contains lowercase and uppercase separatelly
|
|
1903
|
+
*
|
|
1904
|
+
* > "á" => "a"
|
|
1905
|
+
* > "ě" => "e"
|
|
1906
|
+
* > "Ă" => "A"
|
|
1907
|
+
* > ...
|
|
1908
|
+
*/
|
|
1909
|
+
var DIACRITIC_VARIANTS_LETTERS = {};
|
|
1910
|
+
// tslint:disable-next-line: prefer-for-of
|
|
1911
|
+
for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
|
|
1912
|
+
var letters = defaultDiacriticsRemovalMap[i].letters;
|
|
1913
|
+
// tslint:disable-next-line: prefer-for-of
|
|
1914
|
+
for (var j = 0; j < letters.length; j++) {
|
|
1915
|
+
DIACRITIC_VARIANTS_LETTERS[letters[j]] =
|
|
1916
|
+
defaultDiacriticsRemovalMap[i].base;
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
1919
|
+
// <- TODO: !!!! Put to maker function
|
|
1920
|
+
/*
|
|
1921
|
+
@see https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript
|
|
1922
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
1923
|
+
you may not use this file except in compliance with the License.
|
|
1924
|
+
You may obtain a copy of the License at
|
|
1925
|
+
|
|
1926
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
1927
|
+
|
|
1928
|
+
Unless required by applicable law or agreed to in writing, software
|
|
1929
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
1930
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1931
|
+
See the License for the specific language governing permissions and
|
|
1932
|
+
limitations under the License.
|
|
1933
|
+
*/
|
|
1934
|
+
|
|
1935
|
+
/**
|
|
1936
|
+
*
|
|
1937
|
+
*/
|
|
1938
|
+
function removeDiacritics(input) {
|
|
1939
|
+
/*eslint no-control-regex: "off"*/
|
|
1940
|
+
return input.replace(/[^\u0000-\u007E]/g, function (a) {
|
|
1941
|
+
return DIACRITIC_VARIANTS_LETTERS[a] || a;
|
|
1942
|
+
});
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1684
1945
|
/**
|
|
1685
1946
|
* Counts number of words in the text
|
|
1686
1947
|
*/
|
|
1687
1948
|
function countWords(text) {
|
|
1688
1949
|
text = text.replace(/[\p{Extended_Pictographic}]/gu, 'a');
|
|
1689
|
-
text =
|
|
1950
|
+
text = removeDiacritics(text);
|
|
1690
1951
|
return text.split(/[^a-zа-я0-9]+/i).filter(function (word) { return word.length > 0; }).length;
|
|
1691
1952
|
}
|
|
1692
1953
|
|
|
@@ -1861,28 +2122,350 @@
|
|
|
1861
2122
|
* TODO: [🧠] Should this also unwrap the (parenthesis)
|
|
1862
2123
|
*/
|
|
1863
2124
|
|
|
2125
|
+
/**
|
|
2126
|
+
* Makes first letter of a string uppercase
|
|
2127
|
+
*
|
|
2128
|
+
*/
|
|
2129
|
+
function decapitalize(word) {
|
|
2130
|
+
return word.substring(0, 1).toLowerCase() + word.substring(1);
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
/* tslint:disable */
|
|
2134
|
+
/*
|
|
2135
|
+
TODO: Tests
|
|
2136
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'Moje tabule' })).toEqual('/VtG7sR9rRJqwNEdM2/Moje tabule');
|
|
2137
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'ěščřžžýáíúů' })).toEqual('/VtG7sR9rRJqwNEdM2/escrzyaieuu');
|
|
2138
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj');
|
|
2139
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj_ahojAhoj ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj-ahoj-ahoj-ahoj');
|
|
2140
|
+
*/
|
|
2141
|
+
function normalizeTo_SCREAMING_CASE(sentence) {
|
|
2142
|
+
var e_1, _a;
|
|
2143
|
+
var charType;
|
|
2144
|
+
var lastCharType = 'OTHER';
|
|
2145
|
+
var normalizedName = '';
|
|
2146
|
+
try {
|
|
2147
|
+
for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
|
|
2148
|
+
var char = sentence_1_1.value;
|
|
2149
|
+
var normalizedChar = void 0;
|
|
2150
|
+
if (/^[a-z]$/.test(char)) {
|
|
2151
|
+
charType = 'LOWERCASE';
|
|
2152
|
+
normalizedChar = char.toUpperCase();
|
|
2153
|
+
}
|
|
2154
|
+
else if (/^[A-Z]$/.test(char)) {
|
|
2155
|
+
charType = 'UPPERCASE';
|
|
2156
|
+
normalizedChar = char;
|
|
2157
|
+
}
|
|
2158
|
+
else if (/^[0-9]$/.test(char)) {
|
|
2159
|
+
charType = 'NUMBER';
|
|
2160
|
+
normalizedChar = char;
|
|
2161
|
+
}
|
|
2162
|
+
else if (/^\/$/.test(char)) {
|
|
2163
|
+
charType = 'SLASH';
|
|
2164
|
+
normalizedChar = char;
|
|
2165
|
+
}
|
|
2166
|
+
else {
|
|
2167
|
+
charType = 'OTHER';
|
|
2168
|
+
normalizedChar = '_';
|
|
2169
|
+
}
|
|
2170
|
+
if (charType !== lastCharType &&
|
|
2171
|
+
!(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
|
|
2172
|
+
!(lastCharType === 'NUMBER') &&
|
|
2173
|
+
!(charType === 'NUMBER')) {
|
|
2174
|
+
normalizedName += '_';
|
|
2175
|
+
}
|
|
2176
|
+
normalizedName += normalizedChar;
|
|
2177
|
+
lastCharType = charType;
|
|
2178
|
+
}
|
|
2179
|
+
}
|
|
2180
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2181
|
+
finally {
|
|
2182
|
+
try {
|
|
2183
|
+
if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
|
|
2184
|
+
}
|
|
2185
|
+
finally { if (e_1) throw e_1.error; }
|
|
2186
|
+
}
|
|
2187
|
+
normalizedName = normalizedName.replace(/_+/g, '_');
|
|
2188
|
+
normalizedName = normalizedName.replace(/_?\/_?/g, '/');
|
|
2189
|
+
normalizedName = normalizedName.replace(/^_/, '');
|
|
2190
|
+
normalizedName = normalizedName.replace(/_$/, '');
|
|
2191
|
+
return normalizedName;
|
|
2192
|
+
}
|
|
2193
|
+
/**
|
|
2194
|
+
* TODO: [🌺] Use some intermediate util splitWords
|
|
2195
|
+
*/
|
|
2196
|
+
|
|
2197
|
+
/**
|
|
2198
|
+
* Parses keywords from a string
|
|
2199
|
+
*
|
|
2200
|
+
* @param {string} input
|
|
2201
|
+
* @returns {Set} of keywords without diacritics in lowercase
|
|
2202
|
+
*/
|
|
2203
|
+
function parseKeywordsFromString(input) {
|
|
2204
|
+
var keywords = normalizeTo_SCREAMING_CASE(removeDiacritics(input))
|
|
2205
|
+
.toLowerCase()
|
|
2206
|
+
.split(/[^a-z0-9]+/gs)
|
|
2207
|
+
.filter(function (value) { return value; });
|
|
2208
|
+
return new Set(keywords);
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2211
|
+
/**
|
|
2212
|
+
* Tests if keyword is valid
|
|
2213
|
+
*
|
|
2214
|
+
* @param keyword to test
|
|
2215
|
+
* @returns if keyword is valid or not
|
|
2216
|
+
*/
|
|
2217
|
+
function isValidKeyword(keyword) {
|
|
2218
|
+
var keywordParsed = parseKeywordsFromString(keyword);
|
|
2219
|
+
if (keywordParsed.size !== 1) {
|
|
2220
|
+
return false;
|
|
2221
|
+
}
|
|
2222
|
+
var keywordParsedArray = Array.from(keywordParsed);
|
|
2223
|
+
var keywordParsedFirst = keywordParsedArray[0];
|
|
2224
|
+
return keywordParsedFirst === keyword;
|
|
2225
|
+
}
|
|
2226
|
+
|
|
2227
|
+
function nameToUriPart(name) {
|
|
2228
|
+
var uriPart = name;
|
|
2229
|
+
uriPart = uriPart.toLowerCase();
|
|
2230
|
+
uriPart = removeDiacritics(uriPart);
|
|
2231
|
+
uriPart = uriPart.replace(/[^a-zA-Z0-9]+/g, '-');
|
|
2232
|
+
uriPart = uriPart.replace(/^-+/, '');
|
|
2233
|
+
uriPart = uriPart.replace(/-+$/, '');
|
|
2234
|
+
return uriPart;
|
|
2235
|
+
}
|
|
2236
|
+
|
|
2237
|
+
function nameToUriParts(name) {
|
|
2238
|
+
return nameToUriPart(name)
|
|
2239
|
+
.split('-')
|
|
2240
|
+
.filter(function (value) { return value !== ''; });
|
|
2241
|
+
}
|
|
2242
|
+
|
|
2243
|
+
/* tslint:disable */
|
|
2244
|
+
function normalizeToKebabCase(sentence) {
|
|
2245
|
+
var e_1, _a;
|
|
2246
|
+
sentence = removeDiacritics(sentence);
|
|
2247
|
+
var charType;
|
|
2248
|
+
var lastCharType = 'OTHER';
|
|
2249
|
+
var normalizedName = '';
|
|
2250
|
+
try {
|
|
2251
|
+
for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
|
|
2252
|
+
var char = sentence_1_1.value;
|
|
2253
|
+
var normalizedChar = void 0;
|
|
2254
|
+
if (/^[a-z]$/.test(char)) {
|
|
2255
|
+
charType = 'LOWERCASE';
|
|
2256
|
+
normalizedChar = char;
|
|
2257
|
+
}
|
|
2258
|
+
else if (/^[A-Z]$/.test(char)) {
|
|
2259
|
+
charType = 'UPPERCASE';
|
|
2260
|
+
normalizedChar = char.toLowerCase();
|
|
2261
|
+
}
|
|
2262
|
+
else if (/^[0-9]$/.test(char)) {
|
|
2263
|
+
charType = 'NUMBER';
|
|
2264
|
+
normalizedChar = char;
|
|
2265
|
+
}
|
|
2266
|
+
else if (/^\/$/.test(char)) {
|
|
2267
|
+
charType = 'SLASH';
|
|
2268
|
+
normalizedChar = char;
|
|
2269
|
+
}
|
|
2270
|
+
else {
|
|
2271
|
+
charType = 'OTHER';
|
|
2272
|
+
normalizedChar = '-';
|
|
2273
|
+
}
|
|
2274
|
+
if (charType !== lastCharType &&
|
|
2275
|
+
!(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
|
|
2276
|
+
!(lastCharType === 'NUMBER') &&
|
|
2277
|
+
!(charType === 'NUMBER')) {
|
|
2278
|
+
normalizedName += '-';
|
|
2279
|
+
}
|
|
2280
|
+
normalizedName += normalizedChar;
|
|
2281
|
+
lastCharType = charType;
|
|
2282
|
+
}
|
|
2283
|
+
}
|
|
2284
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2285
|
+
finally {
|
|
2286
|
+
try {
|
|
2287
|
+
if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
|
|
2288
|
+
}
|
|
2289
|
+
finally { if (e_1) throw e_1.error; }
|
|
2290
|
+
}
|
|
2291
|
+
normalizedName = normalizedName.split(/-+/g).join('-');
|
|
2292
|
+
normalizedName = normalizedName.split(/-?\/-?/g).join('/');
|
|
2293
|
+
normalizedName = normalizedName.replace(/^-/, '');
|
|
2294
|
+
normalizedName = normalizedName.replace(/-$/, '');
|
|
2295
|
+
return normalizedName;
|
|
2296
|
+
}
|
|
2297
|
+
|
|
2298
|
+
/* tslint:disable */
|
|
2299
|
+
function normalizeTo_camelCase(sentence, __firstLetterCapital) {
|
|
2300
|
+
var e_1, _a;
|
|
2301
|
+
if (__firstLetterCapital === void 0) { __firstLetterCapital = false; }
|
|
2302
|
+
var charType;
|
|
2303
|
+
var lastCharType = null;
|
|
2304
|
+
var normalizedName = '';
|
|
2305
|
+
try {
|
|
2306
|
+
for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
|
|
2307
|
+
var char = sentence_1_1.value;
|
|
2308
|
+
var normalizedChar = void 0;
|
|
2309
|
+
if (/^[a-z]$/.test(char)) {
|
|
2310
|
+
charType = 'LOWERCASE';
|
|
2311
|
+
normalizedChar = char;
|
|
2312
|
+
}
|
|
2313
|
+
else if (/^[A-Z]$/.test(char)) {
|
|
2314
|
+
charType = 'UPPERCASE';
|
|
2315
|
+
normalizedChar = char.toLowerCase();
|
|
2316
|
+
}
|
|
2317
|
+
else if (/^[0-9]$/.test(char)) {
|
|
2318
|
+
charType = 'NUMBER';
|
|
2319
|
+
normalizedChar = char;
|
|
2320
|
+
}
|
|
2321
|
+
else {
|
|
2322
|
+
charType = 'OTHER';
|
|
2323
|
+
normalizedChar = '';
|
|
2324
|
+
}
|
|
2325
|
+
if (!lastCharType) {
|
|
2326
|
+
if (__firstLetterCapital) {
|
|
2327
|
+
normalizedChar = normalizedChar.toUpperCase(); //TODO: DRY
|
|
2328
|
+
}
|
|
2329
|
+
}
|
|
2330
|
+
else if (charType !== lastCharType &&
|
|
2331
|
+
!(charType === 'LOWERCASE' && lastCharType === 'UPPERCASE') &&
|
|
2332
|
+
!(lastCharType === 'NUMBER') &&
|
|
2333
|
+
!(charType === 'NUMBER')) {
|
|
2334
|
+
normalizedChar = normalizedChar.toUpperCase(); //TODO: [🌺] DRY
|
|
2335
|
+
}
|
|
2336
|
+
normalizedName += normalizedChar;
|
|
2337
|
+
lastCharType = charType;
|
|
2338
|
+
}
|
|
2339
|
+
}
|
|
2340
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2341
|
+
finally {
|
|
2342
|
+
try {
|
|
2343
|
+
if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
|
|
2344
|
+
}
|
|
2345
|
+
finally { if (e_1) throw e_1.error; }
|
|
2346
|
+
}
|
|
2347
|
+
return normalizedName;
|
|
2348
|
+
}
|
|
2349
|
+
/**
|
|
2350
|
+
* TODO: [🌺] Use some intermediate util splitWords
|
|
2351
|
+
*/
|
|
2352
|
+
|
|
2353
|
+
function normalizeTo_PascalCase(sentence) {
|
|
2354
|
+
return normalizeTo_camelCase(sentence, true);
|
|
2355
|
+
}
|
|
2356
|
+
|
|
2357
|
+
/* tslint:disable */
|
|
2358
|
+
function normalizeTo_snake_case(sentence) {
|
|
2359
|
+
return normalizeTo_SCREAMING_CASE(sentence).toLowerCase();
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
/**
|
|
2363
|
+
* Take every whitespace (space, new line, tab) and replace it with a single space.
|
|
2364
|
+
*/
|
|
2365
|
+
function normalizeWhitespaces(sentence) {
|
|
2366
|
+
return sentence.replace(/\s+/gs, ' ').trim();
|
|
2367
|
+
}
|
|
2368
|
+
|
|
2369
|
+
/**
|
|
2370
|
+
* Parses keywords from any object and recursively walks through
|
|
2371
|
+
*
|
|
2372
|
+
* Tip: If you want to parse multiple inputs, just wrap them in an array
|
|
2373
|
+
*
|
|
2374
|
+
* @param input of any kind
|
|
2375
|
+
* @returns {Set} of keywords without diacritics in lowercase
|
|
2376
|
+
*/
|
|
2377
|
+
function parseKeywords(input) {
|
|
2378
|
+
if (typeof input === 'string') {
|
|
2379
|
+
return parseKeywordsFromString(input);
|
|
2380
|
+
}
|
|
2381
|
+
else if (typeof input === 'object') {
|
|
2382
|
+
if (Array.isArray(input)) {
|
|
2383
|
+
return input.map(parseKeywords).reduce(function (a, b) { return new Set(__spreadArray(__spreadArray([], __read(a), false), __read(b), false)); }, new Set());
|
|
2384
|
+
}
|
|
2385
|
+
else if (input === null) {
|
|
2386
|
+
return new Set();
|
|
2387
|
+
}
|
|
2388
|
+
else {
|
|
2389
|
+
return parseKeywords(Object.values(input));
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
else {
|
|
2393
|
+
return new Set();
|
|
2394
|
+
}
|
|
2395
|
+
}
|
|
2396
|
+
/**
|
|
2397
|
+
* Note: Not using spread in input param because of keeping second parameter for options
|
|
2398
|
+
* TODO: [🌺] Use some intermediate util splitWords
|
|
2399
|
+
*/
|
|
2400
|
+
|
|
2401
|
+
/**
|
|
2402
|
+
*
|
|
2403
|
+
*/
|
|
2404
|
+
function searchKeywords(haystack, needle) {
|
|
2405
|
+
var e_1, _a;
|
|
2406
|
+
var _loop_1 = function (needleWord) {
|
|
2407
|
+
if (!__spreadArray([], __read(haystack), false).some(function (haystackWord) {
|
|
2408
|
+
return haystackWord.substring(0, needleWord.length) === needleWord;
|
|
2409
|
+
})) {
|
|
2410
|
+
return { value: false };
|
|
2411
|
+
}
|
|
2412
|
+
};
|
|
2413
|
+
try {
|
|
2414
|
+
for (var needle_1 = __values(needle), needle_1_1 = needle_1.next(); !needle_1_1.done; needle_1_1 = needle_1.next()) {
|
|
2415
|
+
var needleWord = needle_1_1.value;
|
|
2416
|
+
var state_1 = _loop_1(needleWord);
|
|
2417
|
+
if (typeof state_1 === "object")
|
|
2418
|
+
return state_1.value;
|
|
2419
|
+
}
|
|
2420
|
+
}
|
|
2421
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
2422
|
+
finally {
|
|
2423
|
+
try {
|
|
2424
|
+
if (needle_1_1 && !needle_1_1.done && (_a = needle_1.return)) _a.call(needle_1);
|
|
2425
|
+
}
|
|
2426
|
+
finally { if (e_1) throw e_1.error; }
|
|
2427
|
+
}
|
|
2428
|
+
return true;
|
|
2429
|
+
}
|
|
2430
|
+
|
|
1864
2431
|
exports.CountUtils = CountUtils;
|
|
2432
|
+
exports.DIACRITIC_VARIANTS_LETTERS = DIACRITIC_VARIANTS_LETTERS;
|
|
1865
2433
|
exports.ExecutionReportStringOptionsDefaults = ExecutionReportStringOptionsDefaults;
|
|
1866
2434
|
exports.assertsExecutionSuccessful = assertsExecutionSuccessful;
|
|
2435
|
+
exports.capitalize = capitalize;
|
|
1867
2436
|
exports.countCharacters = countCharacters;
|
|
1868
2437
|
exports.countLines = countLines;
|
|
1869
2438
|
exports.countPages = countPages;
|
|
1870
2439
|
exports.countParagraphs = countParagraphs;
|
|
1871
2440
|
exports.countSentences = countSentences;
|
|
1872
2441
|
exports.countWords = countWords;
|
|
2442
|
+
exports.decapitalize = decapitalize;
|
|
1873
2443
|
exports.executionReportJsonToString = executionReportJsonToString;
|
|
1874
2444
|
exports.extractAllBlocksFromMarkdown = extractAllBlocksFromMarkdown;
|
|
1875
2445
|
exports.extractAllListItemsFromMarkdown = extractAllListItemsFromMarkdown;
|
|
1876
2446
|
exports.extractBlock = extractBlock;
|
|
1877
2447
|
exports.extractOneBlockFromMarkdown = extractOneBlockFromMarkdown;
|
|
1878
2448
|
exports.isValidJsonString = isValidJsonString;
|
|
2449
|
+
exports.isValidKeyword = isValidKeyword;
|
|
2450
|
+
exports.nameToUriPart = nameToUriPart;
|
|
2451
|
+
exports.nameToUriParts = nameToUriParts;
|
|
2452
|
+
exports.normalizeToKebabCase = normalizeToKebabCase;
|
|
2453
|
+
exports.normalizeTo_PascalCase = normalizeTo_PascalCase;
|
|
2454
|
+
exports.normalizeTo_SCREAMING_CASE = normalizeTo_SCREAMING_CASE;
|
|
2455
|
+
exports.normalizeTo_camelCase = normalizeTo_camelCase;
|
|
2456
|
+
exports.normalizeTo_snake_case = normalizeTo_snake_case;
|
|
2457
|
+
exports.normalizeWhitespaces = normalizeWhitespaces;
|
|
2458
|
+
exports.parseKeywords = parseKeywords;
|
|
2459
|
+
exports.parseKeywordsFromString = parseKeywordsFromString;
|
|
1879
2460
|
exports.parseNumber = parseNumber;
|
|
1880
2461
|
exports.prettifyPromptbookString = prettifyPromptbookString;
|
|
1881
2462
|
exports.removeContentComments = removeContentComments;
|
|
2463
|
+
exports.removeDiacritics = removeDiacritics;
|
|
1882
2464
|
exports.removeEmojis = removeEmojis;
|
|
1883
2465
|
exports.removeMarkdownFormatting = removeMarkdownFormatting;
|
|
1884
2466
|
exports.removeQuotes = removeQuotes;
|
|
1885
2467
|
exports.replaceParameters = replaceParameters;
|
|
2468
|
+
exports.searchKeywords = searchKeywords;
|
|
1886
2469
|
exports.trimCodeBlock = trimCodeBlock;
|
|
1887
2470
|
exports.trimEndOfCodeBlock = trimEndOfCodeBlock;
|
|
1888
2471
|
exports.unwrapResult = unwrapResult;
|