@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.
Files changed (71) hide show
  1. package/esm/index.es.js +577 -11
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/_packages/utils.index.d.ts +19 -1
  4. package/esm/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
  5. package/esm/typings/utils/normalization/IKeywords.d.ts +18 -0
  6. package/esm/typings/utils/normalization/capitalize.d.ts +5 -0
  7. package/esm/typings/utils/normalization/capitalize.test.d.ts +1 -0
  8. package/esm/typings/utils/normalization/decapitalize.d.ts +5 -0
  9. package/esm/typings/utils/normalization/decapitalize.test.d.ts +1 -0
  10. package/esm/typings/utils/normalization/isValidKeyword.d.ts +8 -0
  11. package/esm/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
  12. package/esm/typings/utils/normalization/nameToUriPart.d.ts +1 -0
  13. package/esm/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
  14. package/esm/typings/utils/normalization/nameToUriParts.d.ts +1 -0
  15. package/esm/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
  16. package/esm/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
  17. package/esm/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
  18. package/esm/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
  19. package/esm/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
  20. package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
  21. package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
  22. package/esm/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
  23. package/esm/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
  24. package/esm/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
  25. package/esm/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
  26. package/esm/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
  27. package/esm/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
  28. package/esm/typings/utils/normalization/parseKeywords.d.ts +14 -0
  29. package/esm/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
  30. package/esm/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
  31. package/esm/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
  32. package/esm/typings/utils/normalization/removeDiacritics.d.ts +4 -0
  33. package/esm/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
  34. package/esm/typings/utils/normalization/searchKeywords.d.ts +5 -0
  35. package/esm/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
  36. package/package.json +2 -3
  37. package/umd/index.umd.js +603 -20
  38. package/umd/index.umd.js.map +1 -1
  39. package/umd/typings/_packages/utils.index.d.ts +19 -1
  40. package/umd/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
  41. package/umd/typings/utils/normalization/IKeywords.d.ts +18 -0
  42. package/umd/typings/utils/normalization/capitalize.d.ts +5 -0
  43. package/umd/typings/utils/normalization/capitalize.test.d.ts +1 -0
  44. package/umd/typings/utils/normalization/decapitalize.d.ts +5 -0
  45. package/umd/typings/utils/normalization/decapitalize.test.d.ts +1 -0
  46. package/umd/typings/utils/normalization/isValidKeyword.d.ts +8 -0
  47. package/umd/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
  48. package/umd/typings/utils/normalization/nameToUriPart.d.ts +1 -0
  49. package/umd/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
  50. package/umd/typings/utils/normalization/nameToUriParts.d.ts +1 -0
  51. package/umd/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
  52. package/umd/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
  53. package/umd/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
  54. package/umd/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
  55. package/umd/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
  56. package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
  57. package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
  58. package/umd/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
  59. package/umd/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
  60. package/umd/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
  61. package/umd/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
  62. package/umd/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
  63. package/umd/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
  64. package/umd/typings/utils/normalization/parseKeywords.d.ts +14 -0
  65. package/umd/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
  66. package/umd/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
  67. package/umd/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
  68. package/umd/typings/utils/normalization/removeDiacritics.d.ts +4 -0
  69. package/umd/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
  70. package/umd/typings/utils/normalization/searchKeywords.d.ts +5 -0
  71. package/umd/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
package/esm/index.es.js CHANGED
@@ -1,4 +1,3 @@
1
- import { capitalize, normalizeTo_SCREAMING_CASE, normalizeTo_PascalCase, normalizeToKebabCase, removeDiacritics } from 'n12';
2
1
  import spaceTrim from 'spacetrim';
3
2
  import { format } from 'prettier';
4
3
  import parserHtml from 'prettier/parser-html';
@@ -301,6 +300,14 @@ function extractAllListItemsFromMarkdown(markdown) {
301
300
  return listItems;
302
301
  }
303
302
 
303
+ /**
304
+ * Makes first letter of a string uppercase
305
+ *
306
+ */
307
+ function capitalize(word) {
308
+ return word.substring(0, 1).toUpperCase() + word.substring(1);
309
+ }
310
+
304
311
  /**
305
312
  * Extracts all code blocks from markdown.
306
313
  *
@@ -395,7 +402,7 @@ function removeContentComments(content) {
395
402
  /**
396
403
  * The version of the Promptbook library
397
404
  */
398
- var PROMPTBOOK_VERSION = '0.41.111-2';
405
+ var PROMPTBOOK_VERSION = '0.43.0';
399
406
 
400
407
  /**
401
408
  * Parses the given script and returns the list of all used variables that are not defined in the script
@@ -1296,14 +1303,6 @@ function replaceParameters(template, parameters) {
1296
1303
  return replacedTemplate;
1297
1304
  }
1298
1305
 
1299
- /**
1300
- * Default options for generating an execution report string
1301
- */
1302
- var ExecutionReportStringOptionsDefaults = {
1303
- taxRate: 0,
1304
- chartsWidth: 36,
1305
- };
1306
-
1307
1306
  /**
1308
1307
  * Format either small or big number
1309
1308
  *
@@ -1428,6 +1427,14 @@ function escapeMarkdownBlock(value) {
1428
1427
  return value.replace(/```/g, '\\`\\`\\`');
1429
1428
  }
1430
1429
 
1430
+ /**
1431
+ * Default options for generating an execution report string
1432
+ */
1433
+ var ExecutionReportStringOptionsDefaults = {
1434
+ taxRate: 0,
1435
+ chartsWidth: 36,
1436
+ };
1437
+
1431
1438
  /**
1432
1439
  * The thresholds for the relative time in the `moment` library.
1433
1440
  *
@@ -1675,6 +1682,259 @@ function countSentences(text) {
1675
1682
  return text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; }).length;
1676
1683
  }
1677
1684
 
1685
+ var defaultDiacriticsRemovalMap = [
1686
+ {
1687
+ base: 'A',
1688
+ 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',
1689
+ },
1690
+ { base: 'AA', letters: '\uA732' },
1691
+ { base: 'AE', letters: '\u00C6\u01FC\u01E2' },
1692
+ { base: 'AO', letters: '\uA734' },
1693
+ { base: 'AU', letters: '\uA736' },
1694
+ { base: 'AV', letters: '\uA738\uA73A' },
1695
+ { base: 'AY', letters: '\uA73C' },
1696
+ {
1697
+ base: 'B',
1698
+ letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181',
1699
+ },
1700
+ {
1701
+ base: 'C',
1702
+ letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E',
1703
+ },
1704
+ {
1705
+ base: 'D',
1706
+ letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779\u00D0',
1707
+ },
1708
+ { base: 'DZ', letters: '\u01F1\u01C4' },
1709
+ { base: 'Dz', letters: '\u01F2\u01C5' },
1710
+ {
1711
+ base: 'E',
1712
+ 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',
1713
+ },
1714
+ { base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' },
1715
+ {
1716
+ base: 'G',
1717
+ letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E',
1718
+ },
1719
+ {
1720
+ base: 'H',
1721
+ letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D',
1722
+ },
1723
+ {
1724
+ base: 'I',
1725
+ letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197',
1726
+ },
1727
+ { base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' },
1728
+ {
1729
+ base: 'K',
1730
+ letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2',
1731
+ },
1732
+ {
1733
+ base: 'L',
1734
+ letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780',
1735
+ },
1736
+ { base: 'LJ', letters: '\u01C7' },
1737
+ { base: 'Lj', letters: '\u01C8' },
1738
+ { base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' },
1739
+ {
1740
+ base: 'N',
1741
+ letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4',
1742
+ },
1743
+ { base: 'NJ', letters: '\u01CA' },
1744
+ { base: 'Nj', letters: '\u01CB' },
1745
+ {
1746
+ base: 'O',
1747
+ 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',
1748
+ },
1749
+ { base: 'OI', letters: '\u01A2' },
1750
+ { base: 'OO', letters: '\uA74E' },
1751
+ { base: 'OU', letters: '\u0222' },
1752
+ { base: 'OE', letters: '\u008C\u0152' },
1753
+ { base: 'oe', letters: '\u009C\u0153' },
1754
+ {
1755
+ base: 'P',
1756
+ letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754',
1757
+ },
1758
+ { base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' },
1759
+ {
1760
+ base: 'R',
1761
+ letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782',
1762
+ },
1763
+ {
1764
+ base: 'S',
1765
+ letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784',
1766
+ },
1767
+ {
1768
+ base: 'T',
1769
+ letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786',
1770
+ },
1771
+ { base: 'TZ', letters: '\uA728' },
1772
+ {
1773
+ base: 'U',
1774
+ 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',
1775
+ },
1776
+ { base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' },
1777
+ { base: 'VY', letters: '\uA760' },
1778
+ {
1779
+ base: 'W',
1780
+ letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72',
1781
+ },
1782
+ { base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' },
1783
+ {
1784
+ base: 'Y',
1785
+ letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE',
1786
+ },
1787
+ {
1788
+ base: 'Z',
1789
+ letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762',
1790
+ },
1791
+ {
1792
+ base: 'a',
1793
+ 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',
1794
+ },
1795
+ { base: 'aa', letters: '\uA733' },
1796
+ { base: 'ae', letters: '\u00E6\u01FD\u01E3' },
1797
+ { base: 'ao', letters: '\uA735' },
1798
+ { base: 'au', letters: '\uA737' },
1799
+ { base: 'av', letters: '\uA739\uA73B' },
1800
+ { base: 'ay', letters: '\uA73D' },
1801
+ {
1802
+ base: 'b',
1803
+ letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253',
1804
+ },
1805
+ {
1806
+ base: 'c',
1807
+ letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184',
1808
+ },
1809
+ {
1810
+ base: 'd',
1811
+ letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A',
1812
+ },
1813
+ { base: 'dz', letters: '\u01F3\u01C6' },
1814
+ {
1815
+ base: 'e',
1816
+ 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',
1817
+ },
1818
+ { base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' },
1819
+ {
1820
+ base: 'g',
1821
+ letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F',
1822
+ },
1823
+ {
1824
+ base: 'h',
1825
+ letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265',
1826
+ },
1827
+ { base: 'hv', letters: '\u0195' },
1828
+ {
1829
+ base: 'i',
1830
+ letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131',
1831
+ },
1832
+ { base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' },
1833
+ {
1834
+ base: 'k',
1835
+ letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3',
1836
+ },
1837
+ {
1838
+ base: 'l',
1839
+ letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747',
1840
+ },
1841
+ { base: 'lj', letters: '\u01C9' },
1842
+ { base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' },
1843
+ {
1844
+ base: 'n',
1845
+ letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5',
1846
+ },
1847
+ { base: 'nj', letters: '\u01CC' },
1848
+ {
1849
+ base: 'o',
1850
+ 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',
1851
+ },
1852
+ { base: 'oi', letters: '\u01A3' },
1853
+ { base: 'ou', letters: '\u0223' },
1854
+ { base: 'oo', letters: '\uA74F' },
1855
+ {
1856
+ base: 'p',
1857
+ letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755',
1858
+ },
1859
+ { base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' },
1860
+ {
1861
+ base: 'r',
1862
+ letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783',
1863
+ },
1864
+ {
1865
+ base: 's',
1866
+ letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B',
1867
+ },
1868
+ {
1869
+ base: 't',
1870
+ letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787',
1871
+ },
1872
+ { base: 'tz', letters: '\uA729' },
1873
+ {
1874
+ base: 'u',
1875
+ 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',
1876
+ },
1877
+ { base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' },
1878
+ { base: 'vy', letters: '\uA761' },
1879
+ {
1880
+ base: 'w',
1881
+ letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73',
1882
+ },
1883
+ { base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' },
1884
+ {
1885
+ base: 'y',
1886
+ letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF',
1887
+ },
1888
+ {
1889
+ base: 'z',
1890
+ letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763',
1891
+ },
1892
+ ];
1893
+ /**
1894
+ * Map of letters from diacritic variant to diacritless variant
1895
+ * Contains lowercase and uppercase separatelly
1896
+ *
1897
+ * > "á" => "a"
1898
+ * > "ě" => "e"
1899
+ * > "Ă" => "A"
1900
+ * > ...
1901
+ */
1902
+ var DIACRITIC_VARIANTS_LETTERS = {};
1903
+ // tslint:disable-next-line: prefer-for-of
1904
+ for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
1905
+ var letters = defaultDiacriticsRemovalMap[i].letters;
1906
+ // tslint:disable-next-line: prefer-for-of
1907
+ for (var j = 0; j < letters.length; j++) {
1908
+ DIACRITIC_VARIANTS_LETTERS[letters[j]] =
1909
+ defaultDiacriticsRemovalMap[i].base;
1910
+ }
1911
+ }
1912
+ // <- TODO: !!!! Put to maker function
1913
+ /*
1914
+ @see https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript
1915
+ Licensed under the Apache License, Version 2.0 (the "License");
1916
+ you may not use this file except in compliance with the License.
1917
+ You may obtain a copy of the License at
1918
+
1919
+ http://www.apache.org/licenses/LICENSE-2.0
1920
+
1921
+ Unless required by applicable law or agreed to in writing, software
1922
+ distributed under the License is distributed on an "AS IS" BASIS,
1923
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1924
+ See the License for the specific language governing permissions and
1925
+ limitations under the License.
1926
+ */
1927
+
1928
+ /**
1929
+ *
1930
+ */
1931
+ function removeDiacritics(input) {
1932
+ /*eslint no-control-regex: "off"*/
1933
+ return input.replace(/[^\u0000-\u007E]/g, function (a) {
1934
+ return DIACRITIC_VARIANTS_LETTERS[a] || a;
1935
+ });
1936
+ }
1937
+
1678
1938
  /**
1679
1939
  * Counts number of words in the text
1680
1940
  */
@@ -1855,5 +2115,311 @@ function unwrapResult(text, options) {
1855
2115
  * TODO: [🧠] Should this also unwrap the (parenthesis)
1856
2116
  */
1857
2117
 
1858
- export { CountUtils, ExecutionReportStringOptionsDefaults, assertsExecutionSuccessful, countCharacters, countLines, countPages, countParagraphs, countSentences, countWords, executionReportJsonToString, extractAllBlocksFromMarkdown, extractAllListItemsFromMarkdown, extractBlock, extractOneBlockFromMarkdown, isValidJsonString, parseNumber, prettifyPromptbookString, removeContentComments, removeEmojis, removeMarkdownFormatting, removeQuotes, replaceParameters, trimCodeBlock, trimEndOfCodeBlock, unwrapResult };
2118
+ /**
2119
+ * Makes first letter of a string uppercase
2120
+ *
2121
+ */
2122
+ function decapitalize(word) {
2123
+ return word.substring(0, 1).toLowerCase() + word.substring(1);
2124
+ }
2125
+
2126
+ /* tslint:disable */
2127
+ /*
2128
+ TODO: Tests
2129
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'Moje tabule' })).toEqual('/VtG7sR9rRJqwNEdM2/Moje tabule');
2130
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'ěščřžžýáíúů' })).toEqual('/VtG7sR9rRJqwNEdM2/escrzyaieuu');
2131
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj');
2132
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj_ahojAhoj ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj-ahoj-ahoj-ahoj');
2133
+ */
2134
+ function normalizeTo_SCREAMING_CASE(sentence) {
2135
+ var e_1, _a;
2136
+ var charType;
2137
+ var lastCharType = 'OTHER';
2138
+ var normalizedName = '';
2139
+ try {
2140
+ for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
2141
+ var char = sentence_1_1.value;
2142
+ var normalizedChar = void 0;
2143
+ if (/^[a-z]$/.test(char)) {
2144
+ charType = 'LOWERCASE';
2145
+ normalizedChar = char.toUpperCase();
2146
+ }
2147
+ else if (/^[A-Z]$/.test(char)) {
2148
+ charType = 'UPPERCASE';
2149
+ normalizedChar = char;
2150
+ }
2151
+ else if (/^[0-9]$/.test(char)) {
2152
+ charType = 'NUMBER';
2153
+ normalizedChar = char;
2154
+ }
2155
+ else if (/^\/$/.test(char)) {
2156
+ charType = 'SLASH';
2157
+ normalizedChar = char;
2158
+ }
2159
+ else {
2160
+ charType = 'OTHER';
2161
+ normalizedChar = '_';
2162
+ }
2163
+ if (charType !== lastCharType &&
2164
+ !(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
2165
+ !(lastCharType === 'NUMBER') &&
2166
+ !(charType === 'NUMBER')) {
2167
+ normalizedName += '_';
2168
+ }
2169
+ normalizedName += normalizedChar;
2170
+ lastCharType = charType;
2171
+ }
2172
+ }
2173
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2174
+ finally {
2175
+ try {
2176
+ if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
2177
+ }
2178
+ finally { if (e_1) throw e_1.error; }
2179
+ }
2180
+ normalizedName = normalizedName.replace(/_+/g, '_');
2181
+ normalizedName = normalizedName.replace(/_?\/_?/g, '/');
2182
+ normalizedName = normalizedName.replace(/^_/, '');
2183
+ normalizedName = normalizedName.replace(/_$/, '');
2184
+ return normalizedName;
2185
+ }
2186
+ /**
2187
+ * TODO: [🌺] Use some intermediate util splitWords
2188
+ */
2189
+
2190
+ /**
2191
+ * Parses keywords from a string
2192
+ *
2193
+ * @param {string} input
2194
+ * @returns {Set} of keywords without diacritics in lowercase
2195
+ */
2196
+ function parseKeywordsFromString(input) {
2197
+ var keywords = normalizeTo_SCREAMING_CASE(removeDiacritics(input))
2198
+ .toLowerCase()
2199
+ .split(/[^a-z0-9]+/gs)
2200
+ .filter(function (value) { return value; });
2201
+ return new Set(keywords);
2202
+ }
2203
+
2204
+ /**
2205
+ * Tests if keyword is valid
2206
+ *
2207
+ * @param keyword to test
2208
+ * @returns if keyword is valid or not
2209
+ */
2210
+ function isValidKeyword(keyword) {
2211
+ var keywordParsed = parseKeywordsFromString(keyword);
2212
+ if (keywordParsed.size !== 1) {
2213
+ return false;
2214
+ }
2215
+ var keywordParsedArray = Array.from(keywordParsed);
2216
+ var keywordParsedFirst = keywordParsedArray[0];
2217
+ return keywordParsedFirst === keyword;
2218
+ }
2219
+
2220
+ function nameToUriPart(name) {
2221
+ var uriPart = name;
2222
+ uriPart = uriPart.toLowerCase();
2223
+ uriPart = removeDiacritics(uriPart);
2224
+ uriPart = uriPart.replace(/[^a-zA-Z0-9]+/g, '-');
2225
+ uriPart = uriPart.replace(/^-+/, '');
2226
+ uriPart = uriPart.replace(/-+$/, '');
2227
+ return uriPart;
2228
+ }
2229
+
2230
+ function nameToUriParts(name) {
2231
+ return nameToUriPart(name)
2232
+ .split('-')
2233
+ .filter(function (value) { return value !== ''; });
2234
+ }
2235
+
2236
+ /* tslint:disable */
2237
+ function normalizeToKebabCase(sentence) {
2238
+ var e_1, _a;
2239
+ sentence = removeDiacritics(sentence);
2240
+ var charType;
2241
+ var lastCharType = 'OTHER';
2242
+ var normalizedName = '';
2243
+ try {
2244
+ for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
2245
+ var char = sentence_1_1.value;
2246
+ var normalizedChar = void 0;
2247
+ if (/^[a-z]$/.test(char)) {
2248
+ charType = 'LOWERCASE';
2249
+ normalizedChar = char;
2250
+ }
2251
+ else if (/^[A-Z]$/.test(char)) {
2252
+ charType = 'UPPERCASE';
2253
+ normalizedChar = char.toLowerCase();
2254
+ }
2255
+ else if (/^[0-9]$/.test(char)) {
2256
+ charType = 'NUMBER';
2257
+ normalizedChar = char;
2258
+ }
2259
+ else if (/^\/$/.test(char)) {
2260
+ charType = 'SLASH';
2261
+ normalizedChar = char;
2262
+ }
2263
+ else {
2264
+ charType = 'OTHER';
2265
+ normalizedChar = '-';
2266
+ }
2267
+ if (charType !== lastCharType &&
2268
+ !(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
2269
+ !(lastCharType === 'NUMBER') &&
2270
+ !(charType === 'NUMBER')) {
2271
+ normalizedName += '-';
2272
+ }
2273
+ normalizedName += normalizedChar;
2274
+ lastCharType = charType;
2275
+ }
2276
+ }
2277
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2278
+ finally {
2279
+ try {
2280
+ if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
2281
+ }
2282
+ finally { if (e_1) throw e_1.error; }
2283
+ }
2284
+ normalizedName = normalizedName.split(/-+/g).join('-');
2285
+ normalizedName = normalizedName.split(/-?\/-?/g).join('/');
2286
+ normalizedName = normalizedName.replace(/^-/, '');
2287
+ normalizedName = normalizedName.replace(/-$/, '');
2288
+ return normalizedName;
2289
+ }
2290
+
2291
+ /* tslint:disable */
2292
+ function normalizeTo_camelCase(sentence, __firstLetterCapital) {
2293
+ var e_1, _a;
2294
+ if (__firstLetterCapital === void 0) { __firstLetterCapital = false; }
2295
+ var charType;
2296
+ var lastCharType = null;
2297
+ var normalizedName = '';
2298
+ try {
2299
+ for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
2300
+ var char = sentence_1_1.value;
2301
+ var normalizedChar = void 0;
2302
+ if (/^[a-z]$/.test(char)) {
2303
+ charType = 'LOWERCASE';
2304
+ normalizedChar = char;
2305
+ }
2306
+ else if (/^[A-Z]$/.test(char)) {
2307
+ charType = 'UPPERCASE';
2308
+ normalizedChar = char.toLowerCase();
2309
+ }
2310
+ else if (/^[0-9]$/.test(char)) {
2311
+ charType = 'NUMBER';
2312
+ normalizedChar = char;
2313
+ }
2314
+ else {
2315
+ charType = 'OTHER';
2316
+ normalizedChar = '';
2317
+ }
2318
+ if (!lastCharType) {
2319
+ if (__firstLetterCapital) {
2320
+ normalizedChar = normalizedChar.toUpperCase(); //TODO: DRY
2321
+ }
2322
+ }
2323
+ else if (charType !== lastCharType &&
2324
+ !(charType === 'LOWERCASE' && lastCharType === 'UPPERCASE') &&
2325
+ !(lastCharType === 'NUMBER') &&
2326
+ !(charType === 'NUMBER')) {
2327
+ normalizedChar = normalizedChar.toUpperCase(); //TODO: [🌺] DRY
2328
+ }
2329
+ normalizedName += normalizedChar;
2330
+ lastCharType = charType;
2331
+ }
2332
+ }
2333
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2334
+ finally {
2335
+ try {
2336
+ if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
2337
+ }
2338
+ finally { if (e_1) throw e_1.error; }
2339
+ }
2340
+ return normalizedName;
2341
+ }
2342
+ /**
2343
+ * TODO: [🌺] Use some intermediate util splitWords
2344
+ */
2345
+
2346
+ function normalizeTo_PascalCase(sentence) {
2347
+ return normalizeTo_camelCase(sentence, true);
2348
+ }
2349
+
2350
+ /* tslint:disable */
2351
+ function normalizeTo_snake_case(sentence) {
2352
+ return normalizeTo_SCREAMING_CASE(sentence).toLowerCase();
2353
+ }
2354
+
2355
+ /**
2356
+ * Take every whitespace (space, new line, tab) and replace it with a single space.
2357
+ */
2358
+ function normalizeWhitespaces(sentence) {
2359
+ return sentence.replace(/\s+/gs, ' ').trim();
2360
+ }
2361
+
2362
+ /**
2363
+ * Parses keywords from any object and recursively walks through
2364
+ *
2365
+ * Tip: If you want to parse multiple inputs, just wrap them in an array
2366
+ *
2367
+ * @param input of any kind
2368
+ * @returns {Set} of keywords without diacritics in lowercase
2369
+ */
2370
+ function parseKeywords(input) {
2371
+ if (typeof input === 'string') {
2372
+ return parseKeywordsFromString(input);
2373
+ }
2374
+ else if (typeof input === 'object') {
2375
+ if (Array.isArray(input)) {
2376
+ return input.map(parseKeywords).reduce(function (a, b) { return new Set(__spreadArray(__spreadArray([], __read(a), false), __read(b), false)); }, new Set());
2377
+ }
2378
+ else if (input === null) {
2379
+ return new Set();
2380
+ }
2381
+ else {
2382
+ return parseKeywords(Object.values(input));
2383
+ }
2384
+ }
2385
+ else {
2386
+ return new Set();
2387
+ }
2388
+ }
2389
+ /**
2390
+ * Note: Not using spread in input param because of keeping second parameter for options
2391
+ * TODO: [🌺] Use some intermediate util splitWords
2392
+ */
2393
+
2394
+ /**
2395
+ *
2396
+ */
2397
+ function searchKeywords(haystack, needle) {
2398
+ var e_1, _a;
2399
+ var _loop_1 = function (needleWord) {
2400
+ if (!__spreadArray([], __read(haystack), false).some(function (haystackWord) {
2401
+ return haystackWord.substring(0, needleWord.length) === needleWord;
2402
+ })) {
2403
+ return { value: false };
2404
+ }
2405
+ };
2406
+ try {
2407
+ for (var needle_1 = __values(needle), needle_1_1 = needle_1.next(); !needle_1_1.done; needle_1_1 = needle_1.next()) {
2408
+ var needleWord = needle_1_1.value;
2409
+ var state_1 = _loop_1(needleWord);
2410
+ if (typeof state_1 === "object")
2411
+ return state_1.value;
2412
+ }
2413
+ }
2414
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2415
+ finally {
2416
+ try {
2417
+ if (needle_1_1 && !needle_1_1.done && (_a = needle_1.return)) _a.call(needle_1);
2418
+ }
2419
+ finally { if (e_1) throw e_1.error; }
2420
+ }
2421
+ return true;
2422
+ }
2423
+
2424
+ export { CountUtils, DIACRITIC_VARIANTS_LETTERS, ExecutionReportStringOptionsDefaults, assertsExecutionSuccessful, capitalize, countCharacters, countLines, countPages, countParagraphs, countSentences, countWords, decapitalize, executionReportJsonToString, extractAllBlocksFromMarkdown, extractAllListItemsFromMarkdown, extractBlock, extractOneBlockFromMarkdown, isValidJsonString, isValidKeyword, nameToUriPart, nameToUriParts, normalizeToKebabCase, normalizeTo_PascalCase, normalizeTo_SCREAMING_CASE, normalizeTo_camelCase, normalizeTo_snake_case, normalizeWhitespaces, parseKeywords, parseKeywordsFromString, parseNumber, prettifyPromptbookString, removeContentComments, removeDiacritics, removeEmojis, removeMarkdownFormatting, removeQuotes, replaceParameters, searchKeywords, trimCodeBlock, trimEndOfCodeBlock, unwrapResult };
1859
2425
  //# sourceMappingURL=index.es.js.map