@promptbook/core 0.43.0 → 0.44.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.
Files changed (79) hide show
  1. package/esm/index.es.js +582 -189
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/_packages/utils.index.d.ts +30 -3
  4. package/esm/typings/errors/PromptbookNotFoundError.d.ts +7 -0
  5. package/esm/typings/errors/{ExpectError.d.ts → _ExpectError.d.ts} +1 -0
  6. package/esm/typings/utils/expectation-counters/countSentences.d.ts +4 -0
  7. package/esm/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
  8. package/esm/typings/utils/normalization/IKeywords.d.ts +18 -0
  9. package/esm/typings/utils/normalization/capitalize.d.ts +5 -0
  10. package/esm/typings/utils/normalization/capitalize.test.d.ts +1 -0
  11. package/esm/typings/utils/normalization/decapitalize.d.ts +5 -0
  12. package/esm/typings/utils/normalization/decapitalize.test.d.ts +1 -0
  13. package/esm/typings/utils/normalization/isValidKeyword.d.ts +8 -0
  14. package/esm/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
  15. package/esm/typings/utils/normalization/nameToUriPart.d.ts +1 -0
  16. package/esm/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
  17. package/esm/typings/utils/normalization/nameToUriParts.d.ts +1 -0
  18. package/esm/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
  19. package/esm/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
  20. package/esm/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
  21. package/esm/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
  22. package/esm/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
  23. package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
  24. package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
  25. package/esm/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
  26. package/esm/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
  27. package/esm/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
  28. package/esm/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
  29. package/esm/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
  30. package/esm/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
  31. package/esm/typings/utils/normalization/parseKeywords.d.ts +14 -0
  32. package/esm/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
  33. package/esm/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
  34. package/esm/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
  35. package/esm/typings/utils/normalization/removeDiacritics.d.ts +4 -0
  36. package/esm/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
  37. package/esm/typings/utils/normalization/searchKeywords.d.ts +5 -0
  38. package/esm/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
  39. package/package.json +1 -2
  40. package/umd/index.umd.js +587 -196
  41. package/umd/index.umd.js.map +1 -1
  42. package/umd/typings/_packages/utils.index.d.ts +30 -3
  43. package/umd/typings/errors/PromptbookNotFoundError.d.ts +7 -0
  44. package/umd/typings/errors/{ExpectError.d.ts → _ExpectError.d.ts} +1 -0
  45. package/umd/typings/utils/expectation-counters/countSentences.d.ts +4 -0
  46. package/umd/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
  47. package/umd/typings/utils/normalization/IKeywords.d.ts +18 -0
  48. package/umd/typings/utils/normalization/capitalize.d.ts +5 -0
  49. package/umd/typings/utils/normalization/capitalize.test.d.ts +1 -0
  50. package/umd/typings/utils/normalization/decapitalize.d.ts +5 -0
  51. package/umd/typings/utils/normalization/decapitalize.test.d.ts +1 -0
  52. package/umd/typings/utils/normalization/isValidKeyword.d.ts +8 -0
  53. package/umd/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
  54. package/umd/typings/utils/normalization/nameToUriPart.d.ts +1 -0
  55. package/umd/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
  56. package/umd/typings/utils/normalization/nameToUriParts.d.ts +1 -0
  57. package/umd/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
  58. package/umd/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
  59. package/umd/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
  60. package/umd/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
  61. package/umd/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
  62. package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
  63. package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
  64. package/umd/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
  65. package/umd/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
  66. package/umd/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
  67. package/umd/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
  68. package/umd/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
  69. package/umd/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
  70. package/umd/typings/utils/normalization/parseKeywords.d.ts +14 -0
  71. package/umd/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
  72. package/umd/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
  73. package/umd/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
  74. package/umd/typings/utils/normalization/removeDiacritics.d.ts +4 -0
  75. package/umd/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
  76. package/umd/typings/utils/normalization/searchKeywords.d.ts +5 -0
  77. package/umd/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
  78. package/esm/typings/errors/NotFoundError.d.ts +0 -7
  79. package/umd/typings/errors/NotFoundError.d.ts +0 -7
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('n12'), require('spacetrim')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'n12', 'spacetrim'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-core"] = {}, global.n12, global.spaceTrim));
5
- })(this, (function (exports, n12, spaceTrim) { 'use strict';
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-core"] = {}, global.spaceTrim));
5
+ })(this, (function (exports, spaceTrim) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -343,6 +343,14 @@
343
343
  return listItems;
344
344
  }
345
345
 
346
+ /**
347
+ * Makes first letter of a string uppercase
348
+ *
349
+ */
350
+ function capitalize(word) {
351
+ return word.substring(0, 1).toUpperCase() + word.substring(1);
352
+ }
353
+
346
354
  /**
347
355
  * Extracts all code blocks from markdown.
348
356
  *
@@ -371,7 +379,7 @@
371
379
  else {
372
380
  if (language !== null) {
373
381
  // [🌻]
374
- throw new Error("".concat(n12.capitalize(currentCodeBlock.language || 'the'), " code block was not closed and already opening new ").concat(language, " code block"));
382
+ throw new Error("".concat(capitalize(currentCodeBlock.language || 'the'), " code block was not closed and already opening new ").concat(language, " code block"));
375
383
  }
376
384
  codeBlocks.push(currentCodeBlock);
377
385
  currentCodeBlock = null;
@@ -394,7 +402,7 @@
394
402
  }
395
403
  if (currentCodeBlock !== null) {
396
404
  // [🌻]
397
- throw new Error("".concat(n12.capitalize(currentCodeBlock.language || 'the'), " code block was not closed at the end of the markdown"));
405
+ throw new Error("".concat(capitalize(currentCodeBlock.language || 'the'), " code block was not closed at the end of the markdown"));
398
406
  }
399
407
  return codeBlocks;
400
408
  }
@@ -437,7 +445,7 @@
437
445
  /**
438
446
  * The version of the Promptbook library
439
447
  */
440
- var PROMPTBOOK_VERSION = '0.42.0';
448
+ var PROMPTBOOK_VERSION = '0.44.0-0';
441
449
 
442
450
  /**
443
451
  * Parses the given script and returns the list of all used variables that are not defined in the script
@@ -591,6 +599,565 @@
591
599
  * TODO: Maybe use sth. like safe-eval in fraction/calculation case @see https://www.npmjs.com/package/safe-eval
592
600
  */
593
601
 
602
+ /**
603
+ * This error indicates errors during the execution of the promptbook
604
+ */
605
+ var PromptbookExecutionError = /** @class */ (function (_super) {
606
+ __extends(PromptbookExecutionError, _super);
607
+ function PromptbookExecutionError(message) {
608
+ var _this = _super.call(this, message) || this;
609
+ _this.name = 'PromptbookExecutionError';
610
+ Object.setPrototypeOf(_this, PromptbookExecutionError.prototype);
611
+ return _this;
612
+ }
613
+ return PromptbookExecutionError;
614
+ }(Error));
615
+
616
+ /**
617
+ * This error occurs during the parameter replacement in the template
618
+ *
619
+ * Note: This is a kindof subtype of PromptbookExecutionError because it occurs during the execution of the pipeline
620
+ */
621
+ var TemplateError = /** @class */ (function (_super) {
622
+ __extends(TemplateError, _super);
623
+ function TemplateError(message) {
624
+ var _this = _super.call(this, message) || this;
625
+ _this.name = 'TemplateError';
626
+ Object.setPrototypeOf(_this, TemplateError.prototype);
627
+ return _this;
628
+ }
629
+ return TemplateError;
630
+ }(Error));
631
+
632
+ /**
633
+ * Replaces parameters in template with values from parameters object
634
+ *
635
+ * @param template the template with parameters in {curly} braces
636
+ * @param parameters the object with parameters
637
+ * @returns the template with replaced parameters
638
+ * @throws {TemplateError} if parameter is not defined, not closed, or not opened
639
+ *
640
+ * @private within the createPromptbookExecutor
641
+ */
642
+ function replaceParameters(template, parameters) {
643
+ var replacedTemplate = template;
644
+ var match;
645
+ var loopLimit = LOOP_LIMIT;
646
+ var _loop_1 = function () {
647
+ if (loopLimit-- < 0) {
648
+ throw new UnexpectedError('Loop limit reached during parameters replacement in `replaceParameters`');
649
+ }
650
+ var precol = match.groups.precol;
651
+ var parameterName = match.groups.parameterName;
652
+ if (parameterName === '') {
653
+ return "continue";
654
+ }
655
+ if (parameterName.indexOf('{') !== -1 || parameterName.indexOf('}') !== -1) {
656
+ throw new TemplateError('Parameter is already opened or not closed');
657
+ }
658
+ if (parameters[parameterName] === undefined) {
659
+ throw new TemplateError("Parameter {".concat(parameterName, "} is not defined"));
660
+ }
661
+ var parameterValue = parameters[parameterName];
662
+ if (parameterValue === undefined) {
663
+ throw new TemplateError("Parameter {".concat(parameterName, "} is not defined"));
664
+ }
665
+ parameterValue = parameterValue.toString();
666
+ if (parameterValue.includes('\n') && /^\s*\W{0,3}\s*$/.test(precol)) {
667
+ parameterValue = parameterValue
668
+ .split('\n')
669
+ .map(function (line, index) { return (index === 0 ? line : "".concat(precol).concat(line)); })
670
+ .join('\n');
671
+ }
672
+ replacedTemplate =
673
+ replacedTemplate.substring(0, match.index + precol.length) +
674
+ parameterValue +
675
+ replacedTemplate.substring(match.index + precol.length + parameterName.length + 2);
676
+ };
677
+ while ((match = /^(?<precol>.*){(?<parameterName>\w+)}(.*)/m /* <- Not global */
678
+ .exec(replacedTemplate))) {
679
+ _loop_1();
680
+ }
681
+ // [💫] Check if there are parameters that are not closed properly
682
+ if (/{\w+$/.test(replacedTemplate)) {
683
+ throw new TemplateError('Parameter is not closed');
684
+ }
685
+ // [💫] Check if there are parameters that are not opened properly
686
+ if (/^\w+}/.test(replacedTemplate)) {
687
+ throw new TemplateError('Parameter is not opened');
688
+ }
689
+ return replacedTemplate;
690
+ }
691
+
692
+ /**
693
+ * Counts number of characters in the text
694
+ */
695
+ function countCharacters(text) {
696
+ // Remove null characters
697
+ text = text.replace(/\0/g, '');
698
+ // Replace emojis (and also ZWJ sequence) with hyphens
699
+ text = text.replace(/(\p{Extended_Pictographic})\p{Modifier_Symbol}/gu, '$1');
700
+ text = text.replace(/(\p{Extended_Pictographic})[\u{FE00}-\u{FE0F}]/gu, '$1');
701
+ text = text.replace(/\p{Extended_Pictographic}(\u{200D}\p{Extended_Pictographic})*/gu, '-');
702
+ return text.length;
703
+ }
704
+
705
+ /**
706
+ * Counts number of lines in the text
707
+ */
708
+ function countLines(text) {
709
+ if (text === '') {
710
+ return 0;
711
+ }
712
+ return text.split('\n').length;
713
+ }
714
+
715
+ /**
716
+ * Counts number of pages in the text
717
+ */
718
+ function countPages(text) {
719
+ var sentencesPerPage = 5; // Assuming each page has 5 sentences
720
+ var sentences = text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; });
721
+ var pageCount = Math.ceil(sentences.length / sentencesPerPage);
722
+ return pageCount;
723
+ }
724
+
725
+ /**
726
+ * Counts number of paragraphs in the text
727
+ */
728
+ function countParagraphs(text) {
729
+ return text.split(/\n\s*\n/).filter(function (paragraph) { return paragraph.trim() !== ''; }).length;
730
+ }
731
+
732
+ /**
733
+ * Split text into sentences
734
+ */
735
+ function splitIntoSentences(text) {
736
+ return text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; });
737
+ }
738
+ /**
739
+ * Counts number of sentences in the text
740
+ */
741
+ function countSentences(text) {
742
+ return splitIntoSentences(text).length;
743
+ }
744
+
745
+ var defaultDiacriticsRemovalMap = [
746
+ {
747
+ base: 'A',
748
+ 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',
749
+ },
750
+ { base: 'AA', letters: '\uA732' },
751
+ { base: 'AE', letters: '\u00C6\u01FC\u01E2' },
752
+ { base: 'AO', letters: '\uA734' },
753
+ { base: 'AU', letters: '\uA736' },
754
+ { base: 'AV', letters: '\uA738\uA73A' },
755
+ { base: 'AY', letters: '\uA73C' },
756
+ {
757
+ base: 'B',
758
+ letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181',
759
+ },
760
+ {
761
+ base: 'C',
762
+ letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E',
763
+ },
764
+ {
765
+ base: 'D',
766
+ letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779\u00D0',
767
+ },
768
+ { base: 'DZ', letters: '\u01F1\u01C4' },
769
+ { base: 'Dz', letters: '\u01F2\u01C5' },
770
+ {
771
+ base: 'E',
772
+ 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',
773
+ },
774
+ { base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' },
775
+ {
776
+ base: 'G',
777
+ letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E',
778
+ },
779
+ {
780
+ base: 'H',
781
+ letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D',
782
+ },
783
+ {
784
+ base: 'I',
785
+ letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197',
786
+ },
787
+ { base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' },
788
+ {
789
+ base: 'K',
790
+ letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2',
791
+ },
792
+ {
793
+ base: 'L',
794
+ letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780',
795
+ },
796
+ { base: 'LJ', letters: '\u01C7' },
797
+ { base: 'Lj', letters: '\u01C8' },
798
+ { base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' },
799
+ {
800
+ base: 'N',
801
+ letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4',
802
+ },
803
+ { base: 'NJ', letters: '\u01CA' },
804
+ { base: 'Nj', letters: '\u01CB' },
805
+ {
806
+ base: 'O',
807
+ 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',
808
+ },
809
+ { base: 'OI', letters: '\u01A2' },
810
+ { base: 'OO', letters: '\uA74E' },
811
+ { base: 'OU', letters: '\u0222' },
812
+ { base: 'OE', letters: '\u008C\u0152' },
813
+ { base: 'oe', letters: '\u009C\u0153' },
814
+ {
815
+ base: 'P',
816
+ letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754',
817
+ },
818
+ { base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' },
819
+ {
820
+ base: 'R',
821
+ letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782',
822
+ },
823
+ {
824
+ base: 'S',
825
+ letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784',
826
+ },
827
+ {
828
+ base: 'T',
829
+ letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786',
830
+ },
831
+ { base: 'TZ', letters: '\uA728' },
832
+ {
833
+ base: 'U',
834
+ 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',
835
+ },
836
+ { base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' },
837
+ { base: 'VY', letters: '\uA760' },
838
+ {
839
+ base: 'W',
840
+ letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72',
841
+ },
842
+ { base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' },
843
+ {
844
+ base: 'Y',
845
+ letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE',
846
+ },
847
+ {
848
+ base: 'Z',
849
+ letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762',
850
+ },
851
+ {
852
+ base: 'a',
853
+ 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',
854
+ },
855
+ { base: 'aa', letters: '\uA733' },
856
+ { base: 'ae', letters: '\u00E6\u01FD\u01E3' },
857
+ { base: 'ao', letters: '\uA735' },
858
+ { base: 'au', letters: '\uA737' },
859
+ { base: 'av', letters: '\uA739\uA73B' },
860
+ { base: 'ay', letters: '\uA73D' },
861
+ {
862
+ base: 'b',
863
+ letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253',
864
+ },
865
+ {
866
+ base: 'c',
867
+ letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184',
868
+ },
869
+ {
870
+ base: 'd',
871
+ letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A',
872
+ },
873
+ { base: 'dz', letters: '\u01F3\u01C6' },
874
+ {
875
+ base: 'e',
876
+ 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',
877
+ },
878
+ { base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' },
879
+ {
880
+ base: 'g',
881
+ letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F',
882
+ },
883
+ {
884
+ base: 'h',
885
+ letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265',
886
+ },
887
+ { base: 'hv', letters: '\u0195' },
888
+ {
889
+ base: 'i',
890
+ letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131',
891
+ },
892
+ { base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' },
893
+ {
894
+ base: 'k',
895
+ letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3',
896
+ },
897
+ {
898
+ base: 'l',
899
+ letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747',
900
+ },
901
+ { base: 'lj', letters: '\u01C9' },
902
+ { base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' },
903
+ {
904
+ base: 'n',
905
+ letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5',
906
+ },
907
+ { base: 'nj', letters: '\u01CC' },
908
+ {
909
+ base: 'o',
910
+ 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',
911
+ },
912
+ { base: 'oi', letters: '\u01A3' },
913
+ { base: 'ou', letters: '\u0223' },
914
+ { base: 'oo', letters: '\uA74F' },
915
+ {
916
+ base: 'p',
917
+ letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755',
918
+ },
919
+ { base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' },
920
+ {
921
+ base: 'r',
922
+ letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783',
923
+ },
924
+ {
925
+ base: 's',
926
+ letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B',
927
+ },
928
+ {
929
+ base: 't',
930
+ letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787',
931
+ },
932
+ { base: 'tz', letters: '\uA729' },
933
+ {
934
+ base: 'u',
935
+ 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',
936
+ },
937
+ { base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' },
938
+ { base: 'vy', letters: '\uA761' },
939
+ {
940
+ base: 'w',
941
+ letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73',
942
+ },
943
+ { base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' },
944
+ {
945
+ base: 'y',
946
+ letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF',
947
+ },
948
+ {
949
+ base: 'z',
950
+ letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763',
951
+ },
952
+ ];
953
+ /**
954
+ * Map of letters from diacritic variant to diacritless variant
955
+ * Contains lowercase and uppercase separatelly
956
+ *
957
+ * > "á" => "a"
958
+ * > "ě" => "e"
959
+ * > "Ă" => "A"
960
+ * > ...
961
+ */
962
+ var DIACRITIC_VARIANTS_LETTERS = {};
963
+ // tslint:disable-next-line: prefer-for-of
964
+ for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
965
+ var letters = defaultDiacriticsRemovalMap[i].letters;
966
+ // tslint:disable-next-line: prefer-for-of
967
+ for (var j = 0; j < letters.length; j++) {
968
+ DIACRITIC_VARIANTS_LETTERS[letters[j]] =
969
+ defaultDiacriticsRemovalMap[i].base;
970
+ }
971
+ }
972
+ // <- TODO: !!!! Put to maker function
973
+ /*
974
+ @see https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript
975
+ Licensed under the Apache License, Version 2.0 (the "License");
976
+ you may not use this file except in compliance with the License.
977
+ You may obtain a copy of the License at
978
+
979
+ http://www.apache.org/licenses/LICENSE-2.0
980
+
981
+ Unless required by applicable law or agreed to in writing, software
982
+ distributed under the License is distributed on an "AS IS" BASIS,
983
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
984
+ See the License for the specific language governing permissions and
985
+ limitations under the License.
986
+ */
987
+
988
+ /**
989
+ *
990
+ */
991
+ function removeDiacritics(input) {
992
+ /*eslint no-control-regex: "off"*/
993
+ return input.replace(/[^\u0000-\u007E]/g, function (a) {
994
+ return DIACRITIC_VARIANTS_LETTERS[a] || a;
995
+ });
996
+ }
997
+
998
+ /**
999
+ * Counts number of words in the text
1000
+ */
1001
+ function countWords(text) {
1002
+ text = text.replace(/[\p{Extended_Pictographic}]/gu, 'a');
1003
+ text = removeDiacritics(text);
1004
+ return text.split(/[^a-zа-я0-9]+/i).filter(function (word) { return word.length > 0; }).length;
1005
+ }
1006
+
1007
+ /**
1008
+ * Index of all counter functions
1009
+ */
1010
+ var CountUtils = {
1011
+ CHARACTERS: countCharacters,
1012
+ WORDS: countWords,
1013
+ SENTENCES: countSentences,
1014
+ PARAGRAPHS: countParagraphs,
1015
+ LINES: countLines,
1016
+ PAGES: countPages,
1017
+ };
1018
+
1019
+ /**
1020
+ * Function isValidJsonString will tell you if the string is valid JSON or not
1021
+ */
1022
+ function isValidJsonString(value) {
1023
+ try {
1024
+ JSON.parse(value);
1025
+ return true;
1026
+ }
1027
+ catch (error) {
1028
+ if (!(error instanceof Error)) {
1029
+ throw error;
1030
+ }
1031
+ if (error.message.includes('Unexpected token')) {
1032
+ return false;
1033
+ }
1034
+ return false;
1035
+ }
1036
+ }
1037
+
1038
+ /* tslint:disable */
1039
+ /*
1040
+ TODO: Tests
1041
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'Moje tabule' })).toEqual('/VtG7sR9rRJqwNEdM2/Moje tabule');
1042
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'ěščřžžýáíúů' })).toEqual('/VtG7sR9rRJqwNEdM2/escrzyaieuu');
1043
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj');
1044
+ expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj_ahojAhoj ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj-ahoj-ahoj-ahoj');
1045
+ */
1046
+ function normalizeTo_SCREAMING_CASE(sentence) {
1047
+ var e_1, _a;
1048
+ var charType;
1049
+ var lastCharType = 'OTHER';
1050
+ var normalizedName = '';
1051
+ try {
1052
+ for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
1053
+ var char = sentence_1_1.value;
1054
+ var normalizedChar = void 0;
1055
+ if (/^[a-z]$/.test(char)) {
1056
+ charType = 'LOWERCASE';
1057
+ normalizedChar = char.toUpperCase();
1058
+ }
1059
+ else if (/^[A-Z]$/.test(char)) {
1060
+ charType = 'UPPERCASE';
1061
+ normalizedChar = char;
1062
+ }
1063
+ else if (/^[0-9]$/.test(char)) {
1064
+ charType = 'NUMBER';
1065
+ normalizedChar = char;
1066
+ }
1067
+ else if (/^\/$/.test(char)) {
1068
+ charType = 'SLASH';
1069
+ normalizedChar = char;
1070
+ }
1071
+ else {
1072
+ charType = 'OTHER';
1073
+ normalizedChar = '_';
1074
+ }
1075
+ if (charType !== lastCharType &&
1076
+ !(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
1077
+ !(lastCharType === 'NUMBER') &&
1078
+ !(charType === 'NUMBER')) {
1079
+ normalizedName += '_';
1080
+ }
1081
+ normalizedName += normalizedChar;
1082
+ lastCharType = charType;
1083
+ }
1084
+ }
1085
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
1086
+ finally {
1087
+ try {
1088
+ if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
1089
+ }
1090
+ finally { if (e_1) throw e_1.error; }
1091
+ }
1092
+ normalizedName = normalizedName.replace(/_+/g, '_');
1093
+ normalizedName = normalizedName.replace(/_?\/_?/g, '/');
1094
+ normalizedName = normalizedName.replace(/^_/, '');
1095
+ normalizedName = normalizedName.replace(/_$/, '');
1096
+ return normalizedName;
1097
+ }
1098
+ /**
1099
+ * TODO: [🌺] Use some intermediate util splitWords
1100
+ */
1101
+
1102
+ /* tslint:disable */
1103
+ function normalizeTo_camelCase(sentence, __firstLetterCapital) {
1104
+ var e_1, _a;
1105
+ if (__firstLetterCapital === void 0) { __firstLetterCapital = false; }
1106
+ var charType;
1107
+ var lastCharType = null;
1108
+ var normalizedName = '';
1109
+ try {
1110
+ for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
1111
+ var char = sentence_1_1.value;
1112
+ var normalizedChar = void 0;
1113
+ if (/^[a-z]$/.test(char)) {
1114
+ charType = 'LOWERCASE';
1115
+ normalizedChar = char;
1116
+ }
1117
+ else if (/^[A-Z]$/.test(char)) {
1118
+ charType = 'UPPERCASE';
1119
+ normalizedChar = char.toLowerCase();
1120
+ }
1121
+ else if (/^[0-9]$/.test(char)) {
1122
+ charType = 'NUMBER';
1123
+ normalizedChar = char;
1124
+ }
1125
+ else {
1126
+ charType = 'OTHER';
1127
+ normalizedChar = '';
1128
+ }
1129
+ if (!lastCharType) {
1130
+ if (__firstLetterCapital) {
1131
+ normalizedChar = normalizedChar.toUpperCase(); //TODO: DRY
1132
+ }
1133
+ }
1134
+ else if (charType !== lastCharType &&
1135
+ !(charType === 'LOWERCASE' && lastCharType === 'UPPERCASE') &&
1136
+ !(lastCharType === 'NUMBER') &&
1137
+ !(charType === 'NUMBER')) {
1138
+ normalizedChar = normalizedChar.toUpperCase(); //TODO: [🌺] DRY
1139
+ }
1140
+ normalizedName += normalizedChar;
1141
+ lastCharType = charType;
1142
+ }
1143
+ }
1144
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
1145
+ finally {
1146
+ try {
1147
+ if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
1148
+ }
1149
+ finally { if (e_1) throw e_1.error; }
1150
+ }
1151
+ return normalizedName;
1152
+ }
1153
+ /**
1154
+ * TODO: [🌺] Use some intermediate util splitWords
1155
+ */
1156
+
1157
+ function normalizeTo_PascalCase(sentence) {
1158
+ return normalizeTo_camelCase(sentence, true);
1159
+ }
1160
+
594
1161
  /**
595
1162
  * Parses one line of ul/ol to command
596
1163
  *
@@ -613,7 +1180,7 @@
613
1180
  type = type.split(']').join('');
614
1181
  type = type.split('(').join('');
615
1182
  type = type.split(')').join('');
616
- type = n12.normalizeTo_SCREAMING_CASE(type);
1183
+ type = normalizeTo_SCREAMING_CASE(type);
617
1184
  type = type.split('DIALOGUE').join('DIALOG');
618
1185
  var listItemParts = listItem
619
1186
  .split(' ')
@@ -1077,7 +1644,7 @@
1077
1644
  }
1078
1645
  dependentParameterNames = __spreadArray([], __read(new Set(dependentParameterNames)), false);
1079
1646
  promptbookJson.promptTemplates.push({
1080
- name: n12.normalizeTo_PascalCase(section.title),
1647
+ name: normalizeTo_PascalCase(section.title),
1081
1648
  title: section.title,
1082
1649
  description: description_1,
1083
1650
  dependentParameterNames: dependentParameterNames,
@@ -1331,6 +1898,7 @@
1331
1898
  /**
1332
1899
  * This error occurs when some expectation is not met in the execution of the pipeline
1333
1900
  *
1901
+ * @private Always catched and rethrown as `PromptbookExecutionError`
1334
1902
  * Note: This is a kindof subtype of PromptbookExecutionError
1335
1903
  */
1336
1904
  var ExpectError = /** @class */ (function (_super) {
@@ -1344,183 +1912,6 @@
1344
1912
  return ExpectError;
1345
1913
  }(Error));
1346
1914
 
1347
- /**
1348
- * This error indicates errors during the execution of the promptbook
1349
- */
1350
- var PromptbookExecutionError = /** @class */ (function (_super) {
1351
- __extends(PromptbookExecutionError, _super);
1352
- function PromptbookExecutionError(message) {
1353
- var _this = _super.call(this, message) || this;
1354
- _this.name = 'PromptbookExecutionError';
1355
- Object.setPrototypeOf(_this, PromptbookExecutionError.prototype);
1356
- return _this;
1357
- }
1358
- return PromptbookExecutionError;
1359
- }(Error));
1360
-
1361
- /**
1362
- * Counts number of characters in the text
1363
- */
1364
- function countCharacters(text) {
1365
- // Remove null characters
1366
- text = text.replace(/\0/g, '');
1367
- // Replace emojis (and also ZWJ sequence) with hyphens
1368
- text = text.replace(/(\p{Extended_Pictographic})\p{Modifier_Symbol}/gu, '$1');
1369
- text = text.replace(/(\p{Extended_Pictographic})[\u{FE00}-\u{FE0F}]/gu, '$1');
1370
- text = text.replace(/\p{Extended_Pictographic}(\u{200D}\p{Extended_Pictographic})*/gu, '-');
1371
- return text.length;
1372
- }
1373
-
1374
- /**
1375
- * Counts number of lines in the text
1376
- */
1377
- function countLines(text) {
1378
- if (text === '') {
1379
- return 0;
1380
- }
1381
- return text.split('\n').length;
1382
- }
1383
-
1384
- /**
1385
- * Counts number of pages in the text
1386
- */
1387
- function countPages(text) {
1388
- var sentencesPerPage = 5; // Assuming each page has 5 sentences
1389
- var sentences = text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; });
1390
- var pageCount = Math.ceil(sentences.length / sentencesPerPage);
1391
- return pageCount;
1392
- }
1393
-
1394
- /**
1395
- * Counts number of paragraphs in the text
1396
- */
1397
- function countParagraphs(text) {
1398
- return text.split(/\n\s*\n/).filter(function (paragraph) { return paragraph.trim() !== ''; }).length;
1399
- }
1400
-
1401
- /**
1402
- * Counts number of sentences in the text
1403
- */
1404
- function countSentences(text) {
1405
- return text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; }).length;
1406
- }
1407
-
1408
- /**
1409
- * Counts number of words in the text
1410
- */
1411
- function countWords(text) {
1412
- text = text.replace(/[\p{Extended_Pictographic}]/gu, 'a');
1413
- text = n12.removeDiacritics(text);
1414
- return text.split(/[^a-zа-я0-9]+/i).filter(function (word) { return word.length > 0; }).length;
1415
- }
1416
-
1417
- /**
1418
- * Index of all counter functions
1419
- */
1420
- var CountUtils = {
1421
- CHARACTERS: countCharacters,
1422
- WORDS: countWords,
1423
- SENTENCES: countSentences,
1424
- PARAGRAPHS: countParagraphs,
1425
- LINES: countLines,
1426
- PAGES: countPages,
1427
- };
1428
-
1429
- /**
1430
- * Function isValidJsonString will tell you if the string is valid JSON or not
1431
- */
1432
- function isValidJsonString(value) {
1433
- try {
1434
- JSON.parse(value);
1435
- return true;
1436
- }
1437
- catch (error) {
1438
- if (!(error instanceof Error)) {
1439
- throw error;
1440
- }
1441
- if (error.message.includes('Unexpected token')) {
1442
- return false;
1443
- }
1444
- return false;
1445
- }
1446
- }
1447
-
1448
- /**
1449
- * This error occurs during the parameter replacement in the template
1450
- *
1451
- * Note: This is a kindof subtype of PromptbookExecutionError because it occurs during the execution of the pipeline
1452
- */
1453
- var TemplateError = /** @class */ (function (_super) {
1454
- __extends(TemplateError, _super);
1455
- function TemplateError(message) {
1456
- var _this = _super.call(this, message) || this;
1457
- _this.name = 'TemplateError';
1458
- Object.setPrototypeOf(_this, TemplateError.prototype);
1459
- return _this;
1460
- }
1461
- return TemplateError;
1462
- }(Error));
1463
-
1464
- /**
1465
- * Replaces parameters in template with values from parameters object
1466
- *
1467
- * @param template the template with parameters in {curly} braces
1468
- * @param parameters the object with parameters
1469
- * @returns the template with replaced parameters
1470
- * @throws {TemplateError} if parameter is not defined, not closed, or not opened
1471
- *
1472
- * @private within the createPromptbookExecutor
1473
- */
1474
- function replaceParameters(template, parameters) {
1475
- var replacedTemplate = template;
1476
- var match;
1477
- var loopLimit = LOOP_LIMIT;
1478
- var _loop_1 = function () {
1479
- if (loopLimit-- < 0) {
1480
- throw new UnexpectedError('Loop limit reached during parameters replacement in `replaceParameters`');
1481
- }
1482
- var precol = match.groups.precol;
1483
- var parameterName = match.groups.parameterName;
1484
- if (parameterName === '') {
1485
- return "continue";
1486
- }
1487
- if (parameterName.indexOf('{') !== -1 || parameterName.indexOf('}') !== -1) {
1488
- throw new TemplateError('Parameter is already opened or not closed');
1489
- }
1490
- if (parameters[parameterName] === undefined) {
1491
- throw new TemplateError("Parameter {".concat(parameterName, "} is not defined"));
1492
- }
1493
- var parameterValue = parameters[parameterName];
1494
- if (parameterValue === undefined) {
1495
- throw new TemplateError("Parameter {".concat(parameterName, "} is not defined"));
1496
- }
1497
- parameterValue = parameterValue.toString();
1498
- if (parameterValue.includes('\n') && /^\s*\W{0,3}\s*$/.test(precol)) {
1499
- parameterValue = parameterValue
1500
- .split('\n')
1501
- .map(function (line, index) { return (index === 0 ? line : "".concat(precol).concat(line)); })
1502
- .join('\n');
1503
- }
1504
- replacedTemplate =
1505
- replacedTemplate.substring(0, match.index + precol.length) +
1506
- parameterValue +
1507
- replacedTemplate.substring(match.index + precol.length + parameterName.length + 2);
1508
- };
1509
- while ((match = /^(?<precol>.*){(?<parameterName>\w+)}(.*)/m /* <- Not global */
1510
- .exec(replacedTemplate))) {
1511
- _loop_1();
1512
- }
1513
- // [💫] Check if there are parameters that are not closed properly
1514
- if (/{\w+$/.test(replacedTemplate)) {
1515
- throw new TemplateError('Parameter is not closed');
1516
- }
1517
- // [💫] Check if there are parameters that are not opened properly
1518
- if (/^\w+}/.test(replacedTemplate)) {
1519
- throw new TemplateError('Parameter is not opened');
1520
- }
1521
- return replacedTemplate;
1522
- }
1523
-
1524
1915
  /**
1525
1916
  * Creates executor function from promptbook and execution tools.
1526
1917
  *
@@ -2127,17 +2518,17 @@
2127
2518
  }());
2128
2519
 
2129
2520
  /**
2130
- * This error indicates that the requested resource (for example promptbook in the library ) was not found
2521
+ * This error indicates that promptbook not found in the library
2131
2522
  */
2132
- var NotFoundError = /** @class */ (function (_super) {
2133
- __extends(NotFoundError, _super);
2134
- function NotFoundError(message) {
2523
+ var PromptbookNotFoundError = /** @class */ (function (_super) {
2524
+ __extends(PromptbookNotFoundError, _super);
2525
+ function PromptbookNotFoundError(message) {
2135
2526
  var _this = _super.call(this, message) || this;
2136
- _this.name = 'NotFoundError';
2137
- Object.setPrototypeOf(_this, NotFoundError.prototype);
2527
+ _this.name = 'PromptbookNotFoundError';
2528
+ Object.setPrototypeOf(_this, PromptbookNotFoundError.prototype);
2138
2529
  return _this;
2139
2530
  }
2140
- return NotFoundError;
2531
+ return PromptbookNotFoundError;
2141
2532
  }(Error));
2142
2533
 
2143
2534
  /**
@@ -2208,7 +2599,7 @@
2208
2599
  var _this = this;
2209
2600
  var promptbook = this.library.get(url);
2210
2601
  if (!promptbook) {
2211
- throw new NotFoundError(spaceTrim__default["default"](function (block) { return "\n Promptbook with url \"".concat(url, "\" not found\n\n Available promptbooks:\n ").concat(block(_this.listPromptbooks()
2602
+ throw new PromptbookNotFoundError(spaceTrim__default["default"](function (block) { return "\n Promptbook with url \"".concat(url, "\" not found\n\n Available promptbooks:\n ").concat(block(_this.listPromptbooks()
2212
2603
  .map(function (promptbookUrl) { return "- ".concat(promptbookUrl); })
2213
2604
  .join('\n')), "\n\n "); }));
2214
2605
  }
@@ -2358,7 +2749,7 @@
2358
2749
  switch (_b.label) {
2359
2750
  case 0:
2360
2751
  if (!!predicate(url)) return [3 /*break*/, 2];
2361
- _a = NotFoundError.bind;
2752
+ _a = PromptbookNotFoundError.bind;
2362
2753
  return [4 /*yield*/, spaceTrim__default["default"](function (block) { return __awaiter(_this, void 0, void 0, function () {
2363
2754
  var _a, _b, _c, _d, _e, _f;
2364
2755
  return __generator(this, function (_g) {
@@ -2375,7 +2766,7 @@
2375
2766
  }
2376
2767
  });
2377
2768
  }); })];
2378
- case 1: throw new (_a.apply(NotFoundError, [void 0, _b.sent()]))();
2769
+ case 1: throw new (_a.apply(PromptbookNotFoundError, [void 0, _b.sent()]))();
2379
2770
  case 2: return [4 /*yield*/, library.getPromptbookByUrl(url)];
2380
2771
  case 3:
2381
2772
  promptbook = _b.sent();