@promptbook/core 0.43.0 → 0.44.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/index.es.js +565 -179
- package/esm/index.es.js.map +1 -1
- package/esm/typings/_packages/utils.index.d.ts +19 -1
- package/esm/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
- package/esm/typings/utils/normalization/IKeywords.d.ts +18 -0
- package/esm/typings/utils/normalization/capitalize.d.ts +5 -0
- package/esm/typings/utils/normalization/capitalize.test.d.ts +1 -0
- package/esm/typings/utils/normalization/decapitalize.d.ts +5 -0
- package/esm/typings/utils/normalization/decapitalize.test.d.ts +1 -0
- package/esm/typings/utils/normalization/isValidKeyword.d.ts +8 -0
- package/esm/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriPart.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriParts.d.ts +1 -0
- package/esm/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
- package/esm/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
- package/esm/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
- package/esm/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
- package/esm/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
- package/esm/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
- package/esm/typings/utils/normalization/parseKeywords.d.ts +14 -0
- package/esm/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
- package/esm/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
- package/esm/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
- package/esm/typings/utils/normalization/removeDiacritics.d.ts +4 -0
- package/esm/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
- package/esm/typings/utils/normalization/searchKeywords.d.ts +5 -0
- package/esm/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
- package/package.json +1 -2
- package/umd/index.umd.js +570 -186
- package/umd/index.umd.js.map +1 -1
- package/umd/typings/_packages/utils.index.d.ts +19 -1
- package/umd/typings/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +10 -0
- package/umd/typings/utils/normalization/IKeywords.d.ts +18 -0
- package/umd/typings/utils/normalization/capitalize.d.ts +5 -0
- package/umd/typings/utils/normalization/capitalize.test.d.ts +1 -0
- package/umd/typings/utils/normalization/decapitalize.d.ts +5 -0
- package/umd/typings/utils/normalization/decapitalize.test.d.ts +1 -0
- package/umd/typings/utils/normalization/isValidKeyword.d.ts +8 -0
- package/umd/typings/utils/normalization/isValidKeyword.test.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriPart.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriPart.test.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriParts.d.ts +1 -0
- package/umd/typings/utils/normalization/nameToUriParts.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalize-to-kebab-case.d.ts +1 -0
- package/umd/typings/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_PascalCase.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +4 -0
- package/umd/typings/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_camelCase.d.ts +4 -0
- package/umd/typings/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_snake_case.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
- package/umd/typings/utils/normalization/normalizeWhitespaces.d.ts +4 -0
- package/umd/typings/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
- package/umd/typings/utils/normalization/parseKeywords.d.ts +14 -0
- package/umd/typings/utils/normalization/parseKeywords.test.d.ts +1 -0
- package/umd/typings/utils/normalization/parseKeywordsFromString.d.ts +8 -0
- package/umd/typings/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
- package/umd/typings/utils/normalization/removeDiacritics.d.ts +4 -0
- package/umd/typings/utils/normalization/removeDiacritics.test.d.ts +1 -0
- package/umd/typings/utils/normalization/searchKeywords.d.ts +5 -0
- package/umd/typings/utils/normalization/searchKeywords.test.d.ts +1 -0
package/umd/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-core"] = {}, global.
|
|
5
|
-
})(this, (function (exports,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('prettier'), require('prettier/parser-html'), require('moment')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'prettier', 'prettier/parser-html', 'moment'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-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(
|
|
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(
|
|
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.
|
|
448
|
+
var PROMPTBOOK_VERSION = '0.43.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,559 @@
|
|
|
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
|
+
* Counts number of sentences in the text
|
|
734
|
+
*/
|
|
735
|
+
function countSentences(text) {
|
|
736
|
+
return text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; }).length;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
var defaultDiacriticsRemovalMap = [
|
|
740
|
+
{
|
|
741
|
+
base: 'A',
|
|
742
|
+
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',
|
|
743
|
+
},
|
|
744
|
+
{ base: 'AA', letters: '\uA732' },
|
|
745
|
+
{ base: 'AE', letters: '\u00C6\u01FC\u01E2' },
|
|
746
|
+
{ base: 'AO', letters: '\uA734' },
|
|
747
|
+
{ base: 'AU', letters: '\uA736' },
|
|
748
|
+
{ base: 'AV', letters: '\uA738\uA73A' },
|
|
749
|
+
{ base: 'AY', letters: '\uA73C' },
|
|
750
|
+
{
|
|
751
|
+
base: 'B',
|
|
752
|
+
letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181',
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
base: 'C',
|
|
756
|
+
letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E',
|
|
757
|
+
},
|
|
758
|
+
{
|
|
759
|
+
base: 'D',
|
|
760
|
+
letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779\u00D0',
|
|
761
|
+
},
|
|
762
|
+
{ base: 'DZ', letters: '\u01F1\u01C4' },
|
|
763
|
+
{ base: 'Dz', letters: '\u01F2\u01C5' },
|
|
764
|
+
{
|
|
765
|
+
base: 'E',
|
|
766
|
+
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',
|
|
767
|
+
},
|
|
768
|
+
{ base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' },
|
|
769
|
+
{
|
|
770
|
+
base: 'G',
|
|
771
|
+
letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E',
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
base: 'H',
|
|
775
|
+
letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D',
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
base: 'I',
|
|
779
|
+
letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197',
|
|
780
|
+
},
|
|
781
|
+
{ base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' },
|
|
782
|
+
{
|
|
783
|
+
base: 'K',
|
|
784
|
+
letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2',
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
base: 'L',
|
|
788
|
+
letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780',
|
|
789
|
+
},
|
|
790
|
+
{ base: 'LJ', letters: '\u01C7' },
|
|
791
|
+
{ base: 'Lj', letters: '\u01C8' },
|
|
792
|
+
{ base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' },
|
|
793
|
+
{
|
|
794
|
+
base: 'N',
|
|
795
|
+
letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4',
|
|
796
|
+
},
|
|
797
|
+
{ base: 'NJ', letters: '\u01CA' },
|
|
798
|
+
{ base: 'Nj', letters: '\u01CB' },
|
|
799
|
+
{
|
|
800
|
+
base: 'O',
|
|
801
|
+
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',
|
|
802
|
+
},
|
|
803
|
+
{ base: 'OI', letters: '\u01A2' },
|
|
804
|
+
{ base: 'OO', letters: '\uA74E' },
|
|
805
|
+
{ base: 'OU', letters: '\u0222' },
|
|
806
|
+
{ base: 'OE', letters: '\u008C\u0152' },
|
|
807
|
+
{ base: 'oe', letters: '\u009C\u0153' },
|
|
808
|
+
{
|
|
809
|
+
base: 'P',
|
|
810
|
+
letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754',
|
|
811
|
+
},
|
|
812
|
+
{ base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' },
|
|
813
|
+
{
|
|
814
|
+
base: 'R',
|
|
815
|
+
letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782',
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
base: 'S',
|
|
819
|
+
letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784',
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
base: 'T',
|
|
823
|
+
letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786',
|
|
824
|
+
},
|
|
825
|
+
{ base: 'TZ', letters: '\uA728' },
|
|
826
|
+
{
|
|
827
|
+
base: 'U',
|
|
828
|
+
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',
|
|
829
|
+
},
|
|
830
|
+
{ base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' },
|
|
831
|
+
{ base: 'VY', letters: '\uA760' },
|
|
832
|
+
{
|
|
833
|
+
base: 'W',
|
|
834
|
+
letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72',
|
|
835
|
+
},
|
|
836
|
+
{ base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' },
|
|
837
|
+
{
|
|
838
|
+
base: 'Y',
|
|
839
|
+
letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE',
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
base: 'Z',
|
|
843
|
+
letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762',
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
base: 'a',
|
|
847
|
+
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',
|
|
848
|
+
},
|
|
849
|
+
{ base: 'aa', letters: '\uA733' },
|
|
850
|
+
{ base: 'ae', letters: '\u00E6\u01FD\u01E3' },
|
|
851
|
+
{ base: 'ao', letters: '\uA735' },
|
|
852
|
+
{ base: 'au', letters: '\uA737' },
|
|
853
|
+
{ base: 'av', letters: '\uA739\uA73B' },
|
|
854
|
+
{ base: 'ay', letters: '\uA73D' },
|
|
855
|
+
{
|
|
856
|
+
base: 'b',
|
|
857
|
+
letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253',
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
base: 'c',
|
|
861
|
+
letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184',
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
base: 'd',
|
|
865
|
+
letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A',
|
|
866
|
+
},
|
|
867
|
+
{ base: 'dz', letters: '\u01F3\u01C6' },
|
|
868
|
+
{
|
|
869
|
+
base: 'e',
|
|
870
|
+
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',
|
|
871
|
+
},
|
|
872
|
+
{ base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' },
|
|
873
|
+
{
|
|
874
|
+
base: 'g',
|
|
875
|
+
letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F',
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
base: 'h',
|
|
879
|
+
letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265',
|
|
880
|
+
},
|
|
881
|
+
{ base: 'hv', letters: '\u0195' },
|
|
882
|
+
{
|
|
883
|
+
base: 'i',
|
|
884
|
+
letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131',
|
|
885
|
+
},
|
|
886
|
+
{ base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' },
|
|
887
|
+
{
|
|
888
|
+
base: 'k',
|
|
889
|
+
letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3',
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
base: 'l',
|
|
893
|
+
letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747',
|
|
894
|
+
},
|
|
895
|
+
{ base: 'lj', letters: '\u01C9' },
|
|
896
|
+
{ base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' },
|
|
897
|
+
{
|
|
898
|
+
base: 'n',
|
|
899
|
+
letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5',
|
|
900
|
+
},
|
|
901
|
+
{ base: 'nj', letters: '\u01CC' },
|
|
902
|
+
{
|
|
903
|
+
base: 'o',
|
|
904
|
+
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',
|
|
905
|
+
},
|
|
906
|
+
{ base: 'oi', letters: '\u01A3' },
|
|
907
|
+
{ base: 'ou', letters: '\u0223' },
|
|
908
|
+
{ base: 'oo', letters: '\uA74F' },
|
|
909
|
+
{
|
|
910
|
+
base: 'p',
|
|
911
|
+
letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755',
|
|
912
|
+
},
|
|
913
|
+
{ base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' },
|
|
914
|
+
{
|
|
915
|
+
base: 'r',
|
|
916
|
+
letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783',
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
base: 's',
|
|
920
|
+
letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B',
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
base: 't',
|
|
924
|
+
letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787',
|
|
925
|
+
},
|
|
926
|
+
{ base: 'tz', letters: '\uA729' },
|
|
927
|
+
{
|
|
928
|
+
base: 'u',
|
|
929
|
+
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',
|
|
930
|
+
},
|
|
931
|
+
{ base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' },
|
|
932
|
+
{ base: 'vy', letters: '\uA761' },
|
|
933
|
+
{
|
|
934
|
+
base: 'w',
|
|
935
|
+
letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73',
|
|
936
|
+
},
|
|
937
|
+
{ base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' },
|
|
938
|
+
{
|
|
939
|
+
base: 'y',
|
|
940
|
+
letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF',
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
base: 'z',
|
|
944
|
+
letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763',
|
|
945
|
+
},
|
|
946
|
+
];
|
|
947
|
+
/**
|
|
948
|
+
* Map of letters from diacritic variant to diacritless variant
|
|
949
|
+
* Contains lowercase and uppercase separatelly
|
|
950
|
+
*
|
|
951
|
+
* > "á" => "a"
|
|
952
|
+
* > "ě" => "e"
|
|
953
|
+
* > "Ă" => "A"
|
|
954
|
+
* > ...
|
|
955
|
+
*/
|
|
956
|
+
var DIACRITIC_VARIANTS_LETTERS = {};
|
|
957
|
+
// tslint:disable-next-line: prefer-for-of
|
|
958
|
+
for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) {
|
|
959
|
+
var letters = defaultDiacriticsRemovalMap[i].letters;
|
|
960
|
+
// tslint:disable-next-line: prefer-for-of
|
|
961
|
+
for (var j = 0; j < letters.length; j++) {
|
|
962
|
+
DIACRITIC_VARIANTS_LETTERS[letters[j]] =
|
|
963
|
+
defaultDiacriticsRemovalMap[i].base;
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
// <- TODO: !!!! Put to maker function
|
|
967
|
+
/*
|
|
968
|
+
@see https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript
|
|
969
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
970
|
+
you may not use this file except in compliance with the License.
|
|
971
|
+
You may obtain a copy of the License at
|
|
972
|
+
|
|
973
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
974
|
+
|
|
975
|
+
Unless required by applicable law or agreed to in writing, software
|
|
976
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
977
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
978
|
+
See the License for the specific language governing permissions and
|
|
979
|
+
limitations under the License.
|
|
980
|
+
*/
|
|
981
|
+
|
|
982
|
+
/**
|
|
983
|
+
*
|
|
984
|
+
*/
|
|
985
|
+
function removeDiacritics(input) {
|
|
986
|
+
/*eslint no-control-regex: "off"*/
|
|
987
|
+
return input.replace(/[^\u0000-\u007E]/g, function (a) {
|
|
988
|
+
return DIACRITIC_VARIANTS_LETTERS[a] || a;
|
|
989
|
+
});
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
/**
|
|
993
|
+
* Counts number of words in the text
|
|
994
|
+
*/
|
|
995
|
+
function countWords(text) {
|
|
996
|
+
text = text.replace(/[\p{Extended_Pictographic}]/gu, 'a');
|
|
997
|
+
text = removeDiacritics(text);
|
|
998
|
+
return text.split(/[^a-zа-я0-9]+/i).filter(function (word) { return word.length > 0; }).length;
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
/**
|
|
1002
|
+
* Index of all counter functions
|
|
1003
|
+
*/
|
|
1004
|
+
var CountUtils = {
|
|
1005
|
+
CHARACTERS: countCharacters,
|
|
1006
|
+
WORDS: countWords,
|
|
1007
|
+
SENTENCES: countSentences,
|
|
1008
|
+
PARAGRAPHS: countParagraphs,
|
|
1009
|
+
LINES: countLines,
|
|
1010
|
+
PAGES: countPages,
|
|
1011
|
+
};
|
|
1012
|
+
|
|
1013
|
+
/**
|
|
1014
|
+
* Function isValidJsonString will tell you if the string is valid JSON or not
|
|
1015
|
+
*/
|
|
1016
|
+
function isValidJsonString(value) {
|
|
1017
|
+
try {
|
|
1018
|
+
JSON.parse(value);
|
|
1019
|
+
return true;
|
|
1020
|
+
}
|
|
1021
|
+
catch (error) {
|
|
1022
|
+
if (!(error instanceof Error)) {
|
|
1023
|
+
throw error;
|
|
1024
|
+
}
|
|
1025
|
+
if (error.message.includes('Unexpected token')) {
|
|
1026
|
+
return false;
|
|
1027
|
+
}
|
|
1028
|
+
return false;
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
/* tslint:disable */
|
|
1033
|
+
/*
|
|
1034
|
+
TODO: Tests
|
|
1035
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'Moje tabule' })).toEqual('/VtG7sR9rRJqwNEdM2/Moje tabule');
|
|
1036
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'ěščřžžýáíúů' })).toEqual('/VtG7sR9rRJqwNEdM2/escrzyaieuu');
|
|
1037
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj');
|
|
1038
|
+
expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj_ahojAhoj ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj-ahoj-ahoj-ahoj');
|
|
1039
|
+
*/
|
|
1040
|
+
function normalizeTo_SCREAMING_CASE(sentence) {
|
|
1041
|
+
var e_1, _a;
|
|
1042
|
+
var charType;
|
|
1043
|
+
var lastCharType = 'OTHER';
|
|
1044
|
+
var normalizedName = '';
|
|
1045
|
+
try {
|
|
1046
|
+
for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
|
|
1047
|
+
var char = sentence_1_1.value;
|
|
1048
|
+
var normalizedChar = void 0;
|
|
1049
|
+
if (/^[a-z]$/.test(char)) {
|
|
1050
|
+
charType = 'LOWERCASE';
|
|
1051
|
+
normalizedChar = char.toUpperCase();
|
|
1052
|
+
}
|
|
1053
|
+
else if (/^[A-Z]$/.test(char)) {
|
|
1054
|
+
charType = 'UPPERCASE';
|
|
1055
|
+
normalizedChar = char;
|
|
1056
|
+
}
|
|
1057
|
+
else if (/^[0-9]$/.test(char)) {
|
|
1058
|
+
charType = 'NUMBER';
|
|
1059
|
+
normalizedChar = char;
|
|
1060
|
+
}
|
|
1061
|
+
else if (/^\/$/.test(char)) {
|
|
1062
|
+
charType = 'SLASH';
|
|
1063
|
+
normalizedChar = char;
|
|
1064
|
+
}
|
|
1065
|
+
else {
|
|
1066
|
+
charType = 'OTHER';
|
|
1067
|
+
normalizedChar = '_';
|
|
1068
|
+
}
|
|
1069
|
+
if (charType !== lastCharType &&
|
|
1070
|
+
!(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
|
|
1071
|
+
!(lastCharType === 'NUMBER') &&
|
|
1072
|
+
!(charType === 'NUMBER')) {
|
|
1073
|
+
normalizedName += '_';
|
|
1074
|
+
}
|
|
1075
|
+
normalizedName += normalizedChar;
|
|
1076
|
+
lastCharType = charType;
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
1080
|
+
finally {
|
|
1081
|
+
try {
|
|
1082
|
+
if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
|
|
1083
|
+
}
|
|
1084
|
+
finally { if (e_1) throw e_1.error; }
|
|
1085
|
+
}
|
|
1086
|
+
normalizedName = normalizedName.replace(/_+/g, '_');
|
|
1087
|
+
normalizedName = normalizedName.replace(/_?\/_?/g, '/');
|
|
1088
|
+
normalizedName = normalizedName.replace(/^_/, '');
|
|
1089
|
+
normalizedName = normalizedName.replace(/_$/, '');
|
|
1090
|
+
return normalizedName;
|
|
1091
|
+
}
|
|
1092
|
+
/**
|
|
1093
|
+
* TODO: [🌺] Use some intermediate util splitWords
|
|
1094
|
+
*/
|
|
1095
|
+
|
|
1096
|
+
/* tslint:disable */
|
|
1097
|
+
function normalizeTo_camelCase(sentence, __firstLetterCapital) {
|
|
1098
|
+
var e_1, _a;
|
|
1099
|
+
if (__firstLetterCapital === void 0) { __firstLetterCapital = false; }
|
|
1100
|
+
var charType;
|
|
1101
|
+
var lastCharType = null;
|
|
1102
|
+
var normalizedName = '';
|
|
1103
|
+
try {
|
|
1104
|
+
for (var sentence_1 = __values(sentence), sentence_1_1 = sentence_1.next(); !sentence_1_1.done; sentence_1_1 = sentence_1.next()) {
|
|
1105
|
+
var char = sentence_1_1.value;
|
|
1106
|
+
var normalizedChar = void 0;
|
|
1107
|
+
if (/^[a-z]$/.test(char)) {
|
|
1108
|
+
charType = 'LOWERCASE';
|
|
1109
|
+
normalizedChar = char;
|
|
1110
|
+
}
|
|
1111
|
+
else if (/^[A-Z]$/.test(char)) {
|
|
1112
|
+
charType = 'UPPERCASE';
|
|
1113
|
+
normalizedChar = char.toLowerCase();
|
|
1114
|
+
}
|
|
1115
|
+
else if (/^[0-9]$/.test(char)) {
|
|
1116
|
+
charType = 'NUMBER';
|
|
1117
|
+
normalizedChar = char;
|
|
1118
|
+
}
|
|
1119
|
+
else {
|
|
1120
|
+
charType = 'OTHER';
|
|
1121
|
+
normalizedChar = '';
|
|
1122
|
+
}
|
|
1123
|
+
if (!lastCharType) {
|
|
1124
|
+
if (__firstLetterCapital) {
|
|
1125
|
+
normalizedChar = normalizedChar.toUpperCase(); //TODO: DRY
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
else if (charType !== lastCharType &&
|
|
1129
|
+
!(charType === 'LOWERCASE' && lastCharType === 'UPPERCASE') &&
|
|
1130
|
+
!(lastCharType === 'NUMBER') &&
|
|
1131
|
+
!(charType === 'NUMBER')) {
|
|
1132
|
+
normalizedChar = normalizedChar.toUpperCase(); //TODO: [🌺] DRY
|
|
1133
|
+
}
|
|
1134
|
+
normalizedName += normalizedChar;
|
|
1135
|
+
lastCharType = charType;
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
1139
|
+
finally {
|
|
1140
|
+
try {
|
|
1141
|
+
if (sentence_1_1 && !sentence_1_1.done && (_a = sentence_1.return)) _a.call(sentence_1);
|
|
1142
|
+
}
|
|
1143
|
+
finally { if (e_1) throw e_1.error; }
|
|
1144
|
+
}
|
|
1145
|
+
return normalizedName;
|
|
1146
|
+
}
|
|
1147
|
+
/**
|
|
1148
|
+
* TODO: [🌺] Use some intermediate util splitWords
|
|
1149
|
+
*/
|
|
1150
|
+
|
|
1151
|
+
function normalizeTo_PascalCase(sentence) {
|
|
1152
|
+
return normalizeTo_camelCase(sentence, true);
|
|
1153
|
+
}
|
|
1154
|
+
|
|
594
1155
|
/**
|
|
595
1156
|
* Parses one line of ul/ol to command
|
|
596
1157
|
*
|
|
@@ -613,7 +1174,7 @@
|
|
|
613
1174
|
type = type.split(']').join('');
|
|
614
1175
|
type = type.split('(').join('');
|
|
615
1176
|
type = type.split(')').join('');
|
|
616
|
-
type =
|
|
1177
|
+
type = normalizeTo_SCREAMING_CASE(type);
|
|
617
1178
|
type = type.split('DIALOGUE').join('DIALOG');
|
|
618
1179
|
var listItemParts = listItem
|
|
619
1180
|
.split(' ')
|
|
@@ -1077,7 +1638,7 @@
|
|
|
1077
1638
|
}
|
|
1078
1639
|
dependentParameterNames = __spreadArray([], __read(new Set(dependentParameterNames)), false);
|
|
1079
1640
|
promptbookJson.promptTemplates.push({
|
|
1080
|
-
name:
|
|
1641
|
+
name: normalizeTo_PascalCase(section.title),
|
|
1081
1642
|
title: section.title,
|
|
1082
1643
|
description: description_1,
|
|
1083
1644
|
dependentParameterNames: dependentParameterNames,
|
|
@@ -1344,183 +1905,6 @@
|
|
|
1344
1905
|
return ExpectError;
|
|
1345
1906
|
}(Error));
|
|
1346
1907
|
|
|
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
1908
|
/**
|
|
1525
1909
|
* Creates executor function from promptbook and execution tools.
|
|
1526
1910
|
*
|