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