@promptbook/utils 0.105.0-5 → 0.105.0-7

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 CHANGED
@@ -18,7 +18,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
18
18
  * @generated
19
19
  * @see https://github.com/webgptorg/promptbook
20
20
  */
21
- const PROMPTBOOK_ENGINE_VERSION = '0.105.0-5';
21
+ const PROMPTBOOK_ENGINE_VERSION = '0.105.0-7';
22
22
  /**
23
23
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
24
24
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -3057,6 +3057,709 @@ function debounce(fn, delay) {
3057
3057
  };
3058
3058
  }
3059
3059
 
3060
+ /**
3061
+ * Makes first letter of a string uppercase
3062
+ *
3063
+ * Note: [🔂] This function is idempotent.
3064
+ *
3065
+ * @public exported from `@promptbook/utils`
3066
+ */
3067
+ function capitalize(word) {
3068
+ return word.substring(0, 1).toUpperCase() + word.substring(1);
3069
+ }
3070
+
3071
+ /**
3072
+ * Creates human-readable hash
3073
+ *
3074
+ * @public exported from `@promptbook/utils`
3075
+ */
3076
+ async function linguisticHash(input) {
3077
+ const hash = computeHash(input);
3078
+ // Use parts of the hash to select words
3079
+ // SHA256 is 64 hex characters
3080
+ // We use different slices of the hash to ensure variety even with small changes in input
3081
+ const part1 = parseInt(hash.substring(0, 10), 16);
3082
+ const part2 = parseInt(hash.substring(10, 20), 16);
3083
+ const part3 = parseInt(hash.substring(20, 30), 16);
3084
+ const adjective = ADJECTIVES[part1 % ADJECTIVES.length];
3085
+ const noun = NOUNS[part2 % NOUNS.length];
3086
+ const verb = VERBS[part3 % VERBS.length];
3087
+ return `${capitalize(adjective)} ${noun.toLowerCase()} ${verb.toLowerCase()}`;
3088
+ }
3089
+ const ADJECTIVES = [
3090
+ 'red',
3091
+ 'blue',
3092
+ 'green',
3093
+ 'yellow',
3094
+ 'quick',
3095
+ 'slow',
3096
+ 'bright',
3097
+ 'dark',
3098
+ 'happy',
3099
+ 'sad',
3100
+ 'brave',
3101
+ 'calm',
3102
+ 'clever',
3103
+ 'eager',
3104
+ 'fancy',
3105
+ 'grand',
3106
+ 'jolly',
3107
+ 'kind',
3108
+ 'lucky',
3109
+ 'nice',
3110
+ 'proud',
3111
+ 'silly',
3112
+ 'wise',
3113
+ 'young',
3114
+ 'old',
3115
+ 'big',
3116
+ 'small',
3117
+ 'fast',
3118
+ 'shiny',
3119
+ 'wild',
3120
+ 'silent',
3121
+ 'loud',
3122
+ 'soft',
3123
+ 'hard',
3124
+ 'warm',
3125
+ 'cold',
3126
+ 'sweet',
3127
+ 'sour',
3128
+ 'bitter',
3129
+ 'salty',
3130
+ 'rich',
3131
+ 'poor',
3132
+ 'heavy',
3133
+ 'light',
3134
+ 'strong',
3135
+ 'weak',
3136
+ 'smooth',
3137
+ 'rough',
3138
+ 'clean',
3139
+ 'dirty',
3140
+ 'fresh',
3141
+ 'stale',
3142
+ 'sharp',
3143
+ 'blunt',
3144
+ 'thick',
3145
+ 'thin',
3146
+ 'wide',
3147
+ 'narrow',
3148
+ 'deep',
3149
+ 'shallow',
3150
+ 'mighty',
3151
+ 'gentle',
3152
+ 'fierce',
3153
+ 'vibrant',
3154
+ 'dusty',
3155
+ 'golden',
3156
+ 'silver',
3157
+ 'frozen',
3158
+ 'burning',
3159
+ 'ancient',
3160
+ 'modern',
3161
+ 'hidden',
3162
+ 'lost',
3163
+ 'found',
3164
+ 'magic',
3165
+ 'mystic',
3166
+ 'cosmic',
3167
+ 'stellar',
3168
+ 'lunar',
3169
+ 'solar',
3170
+ 'misty',
3171
+ 'foggy',
3172
+ 'stormy',
3173
+ 'sunny',
3174
+ 'windy',
3175
+ 'quiet',
3176
+ 'noisy',
3177
+ 'peaceful',
3178
+ 'busy',
3179
+ 'empty',
3180
+ 'full',
3181
+ 'round',
3182
+ 'square',
3183
+ 'flat',
3184
+ 'curved',
3185
+ 'tiny',
3186
+ 'huge',
3187
+ 'giant',
3188
+ 'little',
3189
+ 'short',
3190
+ 'long',
3191
+ 'near',
3192
+ 'distant',
3193
+ 'inner',
3194
+ 'outer',
3195
+ 'patient',
3196
+ 'steady',
3197
+ 'noble',
3198
+ 'pure',
3199
+ 'graceful',
3200
+ 'honest',
3201
+ 'simple',
3202
+ 'complex',
3203
+ 'active',
3204
+ 'passive',
3205
+ 'vivid',
3206
+ 'pale',
3207
+ 'loyal',
3208
+ 'true',
3209
+ 'false',
3210
+ 'fair',
3211
+ 'clear',
3212
+ 'murky',
3213
+ 'vast',
3214
+ 'slick',
3215
+ 'slippery',
3216
+ 'sticky',
3217
+ 'dull',
3218
+ 'keen',
3219
+ 'broad',
3220
+ 'slim',
3221
+ 'slender',
3222
+ 'fat',
3223
+ 'lean',
3224
+ 'stiff',
3225
+ 'flexible',
3226
+ 'rigid',
3227
+ 'elastic',
3228
+ 'tough',
3229
+ 'brittle',
3230
+ 'fragile',
3231
+ 'solid',
3232
+ 'liquid',
3233
+ 'gaseous',
3234
+ 'airy',
3235
+ 'weighty',
3236
+ 'buoyant',
3237
+ 'dense',
3238
+ 'sparse',
3239
+ 'hollow',
3240
+ 'stuffed',
3241
+ 'crowded',
3242
+ 'lonely',
3243
+ 'social',
3244
+ 'private',
3245
+ 'public',
3246
+ 'secret',
3247
+ 'famous',
3248
+ 'certain',
3249
+ 'vague',
3250
+ 'plain',
3251
+ 'easy',
3252
+ 'tame',
3253
+ 'mild',
3254
+ 'hot',
3255
+ 'cool',
3256
+ 'dry',
3257
+ 'wet',
3258
+ 'damp',
3259
+ 'moist',
3260
+ 'soaked',
3261
+ 'parched',
3262
+ 'hungry',
3263
+ 'thirsty',
3264
+ 'sleepy',
3265
+ 'awake',
3266
+ 'tired',
3267
+ 'lazy',
3268
+ 'idle',
3269
+ 'swift',
3270
+ 'rapid',
3271
+ 'unstable',
3272
+ 'shaky',
3273
+ 'firm',
3274
+ 'bold',
3275
+ 'timid',
3276
+ 'brave',
3277
+ 'cowardly',
3278
+ 'smart',
3279
+ 'dumb',
3280
+ 'foolish',
3281
+ 'mean',
3282
+ 'rude',
3283
+ 'tasty',
3284
+ 'bland',
3285
+ 'arctic',
3286
+ 'tropical',
3287
+ 'deserted',
3288
+ 'urban',
3289
+ 'rural',
3290
+ 'local',
3291
+ 'global',
3292
+ 'digital',
3293
+ 'analog',
3294
+ 'virtual',
3295
+ 'real',
3296
+ 'fake',
3297
+ 'natural',
3298
+ 'artificial',
3299
+ 'living',
3300
+ 'dead',
3301
+ 'broken',
3302
+ 'fixed',
3303
+ 'new',
3304
+ 'worn',
3305
+ 'neat',
3306
+ 'messy',
3307
+ 'brave',
3308
+ 'fearful',
3309
+ 'proud',
3310
+ 'humble',
3311
+ 'greedy',
3312
+ 'generous',
3313
+ 'calm',
3314
+ 'angry',
3315
+ 'happy',
3316
+ 'sad',
3317
+ 'excited',
3318
+ 'bored',
3319
+ 'strange',
3320
+ 'normal',
3321
+ 'odd',
3322
+ 'even',
3323
+ 'rare',
3324
+ 'common',
3325
+ 'unique',
3326
+ 'plain',
3327
+ 'fancy',
3328
+ 'basic',
3329
+ 'prime',
3330
+ 'super',
3331
+ 'mega',
3332
+ 'ultra',
3333
+ 'micro',
3334
+ 'nano',
3335
+ 'macro',
3336
+ 'mini',
3337
+ ];
3338
+ const NOUNS = [
3339
+ 'apple',
3340
+ 'sky',
3341
+ 'tree',
3342
+ 'fox',
3343
+ 'cat',
3344
+ 'bird',
3345
+ 'dog',
3346
+ 'river',
3347
+ 'mountain',
3348
+ 'forest',
3349
+ 'ocean',
3350
+ 'star',
3351
+ 'moon',
3352
+ 'sun',
3353
+ 'cloud',
3354
+ 'flower',
3355
+ 'leaf',
3356
+ 'stone',
3357
+ 'wind',
3358
+ 'rain',
3359
+ 'fire',
3360
+ 'ice',
3361
+ 'book',
3362
+ 'dream',
3363
+ 'song',
3364
+ 'road',
3365
+ 'gate',
3366
+ 'key',
3367
+ 'lamp',
3368
+ 'map',
3369
+ 'house',
3370
+ 'city',
3371
+ 'bridge',
3372
+ 'field',
3373
+ 'garden',
3374
+ 'lake',
3375
+ 'beach',
3376
+ 'island',
3377
+ 'valley',
3378
+ 'desert',
3379
+ 'world',
3380
+ 'spirit',
3381
+ 'heart',
3382
+ 'mind',
3383
+ 'soul',
3384
+ 'life',
3385
+ 'time',
3386
+ 'space',
3387
+ 'light',
3388
+ 'shadow',
3389
+ 'sound',
3390
+ 'music',
3391
+ 'voice',
3392
+ 'word',
3393
+ 'page',
3394
+ 'story',
3395
+ 'pearl',
3396
+ 'gold',
3397
+ 'silver',
3398
+ 'crystal',
3399
+ 'diamond',
3400
+ 'emerald',
3401
+ 'ruby',
3402
+ 'path',
3403
+ 'trail',
3404
+ 'peak',
3405
+ 'shore',
3406
+ 'wave',
3407
+ 'tide',
3408
+ 'flame',
3409
+ 'spark',
3410
+ 'beam',
3411
+ 'ray',
3412
+ 'seed',
3413
+ 'root',
3414
+ 'branch',
3415
+ 'bloom',
3416
+ 'thorn',
3417
+ 'bark',
3418
+ 'shell',
3419
+ 'feather',
3420
+ 'wing',
3421
+ 'claw',
3422
+ 'paw',
3423
+ 'nest',
3424
+ 'cave',
3425
+ 'grove',
3426
+ 'tower',
3427
+ 'castle',
3428
+ 'crown',
3429
+ 'sword',
3430
+ 'shield',
3431
+ 'coin',
3432
+ 'gem',
3433
+ 'ring',
3434
+ 'bell',
3435
+ 'clock',
3436
+ 'compass',
3437
+ 'anchor',
3438
+ 'torch',
3439
+ 'flute',
3440
+ 'harp',
3441
+ 'drum',
3442
+ 'lens',
3443
+ 'glass',
3444
+ 'sand',
3445
+ 'dust',
3446
+ 'mist',
3447
+ 'dew',
3448
+ 'dawn',
3449
+ 'dusk',
3450
+ 'night',
3451
+ 'day',
3452
+ 'year',
3453
+ 'age',
3454
+ 'bolt',
3455
+ 'drop',
3456
+ 'storm',
3457
+ 'snow',
3458
+ 'hail',
3459
+ 'fog',
3460
+ 'smoke',
3461
+ 'vapor',
3462
+ 'gas',
3463
+ 'fluid',
3464
+ 'liquid',
3465
+ 'solid',
3466
+ 'metal',
3467
+ 'rock',
3468
+ 'dirt',
3469
+ 'clay',
3470
+ 'sand',
3471
+ 'salt',
3472
+ 'sugar',
3473
+ 'wood',
3474
+ 'bone',
3475
+ 'skin',
3476
+ 'flesh',
3477
+ 'blood',
3478
+ 'cell',
3479
+ 'atom',
3480
+ 'pulse',
3481
+ 'beat',
3482
+ 'breath',
3483
+ 'sigh',
3484
+ 'name',
3485
+ 'echo',
3486
+ 'image',
3487
+ 'vision',
3488
+ 'thought',
3489
+ 'idea',
3490
+ 'plan',
3491
+ 'goal',
3492
+ 'wish',
3493
+ 'hope',
3494
+ 'fear',
3495
+ 'joy',
3496
+ 'love',
3497
+ 'hate',
3498
+ 'will',
3499
+ 'power',
3500
+ 'force',
3501
+ 'energy',
3502
+ 'motion',
3503
+ 'speed',
3504
+ 'place',
3505
+ 'point',
3506
+ 'line',
3507
+ 'shape',
3508
+ 'form',
3509
+ 'size',
3510
+ 'mass',
3511
+ 'weight',
3512
+ 'heat',
3513
+ 'cold',
3514
+ 'color',
3515
+ 'tone',
3516
+ 'pitch',
3517
+ 'rhythm',
3518
+ 'vibe',
3519
+ 'mood',
3520
+ 'state',
3521
+ 'way',
3522
+ 'step',
3523
+ 'move',
3524
+ 'turn',
3525
+ 'fall',
3526
+ 'rise',
3527
+ 'jump',
3528
+ 'leap',
3529
+ 'run',
3530
+ 'walk',
3531
+ 'rest',
3532
+ 'stay',
3533
+ 'trip',
3534
+ 'quest',
3535
+ 'task',
3536
+ 'work',
3537
+ 'job',
3538
+ 'play',
3539
+ 'game',
3540
+ 'sport',
3541
+ 'art',
3542
+ 'craft',
3543
+ 'tool',
3544
+ 'ship',
3545
+ 'boat',
3546
+ 'car',
3547
+ 'bike',
3548
+ 'train',
3549
+ 'plane',
3550
+ 'hub',
3551
+ 'base',
3552
+ 'core',
3553
+ 'node',
3554
+ 'link',
3555
+ 'net',
3556
+ 'web',
3557
+ 'box',
3558
+ 'bag',
3559
+ 'jar',
3560
+ 'cup',
3561
+ 'bowl',
3562
+ 'plate',
3563
+ 'dish',
3564
+ 'spoon',
3565
+ 'fork',
3566
+ 'knife',
3567
+ 'pan',
3568
+ 'pot',
3569
+ 'bed',
3570
+ 'desk',
3571
+ 'chair',
3572
+ 'door',
3573
+ 'wall',
3574
+ 'roof',
3575
+ 'floor',
3576
+ ];
3577
+ const VERBS = [
3578
+ 'jumping',
3579
+ 'dancing',
3580
+ 'flying',
3581
+ 'running',
3582
+ 'singing',
3583
+ 'shining',
3584
+ 'growing',
3585
+ 'flowing',
3586
+ 'falling',
3587
+ 'rising',
3588
+ 'sleeping',
3589
+ 'walking',
3590
+ 'talking',
3591
+ 'thinking',
3592
+ 'dreaming',
3593
+ 'looking',
3594
+ 'feeling',
3595
+ 'smiling',
3596
+ 'laughing',
3597
+ 'playing',
3598
+ 'working',
3599
+ 'resting',
3600
+ 'moving',
3601
+ 'staying',
3602
+ 'beaming',
3603
+ 'glowing',
3604
+ 'sparkling',
3605
+ 'waiting',
3606
+ 'waking',
3607
+ 'drifting',
3608
+ 'spinning',
3609
+ 'gliding',
3610
+ 'soaring',
3611
+ 'floating',
3612
+ 'whispering',
3613
+ 'calling',
3614
+ 'seeking',
3615
+ 'finding',
3616
+ 'giving',
3617
+ 'taking',
3618
+ 'weaving',
3619
+ 'building',
3620
+ 'creating',
3621
+ 'burning',
3622
+ 'freezing',
3623
+ 'melting',
3624
+ 'breathing',
3625
+ 'pulsing',
3626
+ 'beating',
3627
+ 'living',
3628
+ 'learning',
3629
+ 'knowing',
3630
+ 'hidden',
3631
+ 'shown',
3632
+ 'broken',
3633
+ 'mended',
3634
+ 'lost',
3635
+ 'found',
3636
+ 'starting',
3637
+ 'ending',
3638
+ 'climbing',
3639
+ 'diving',
3640
+ 'swimming',
3641
+ 'sailing',
3642
+ 'rolling',
3643
+ 'shaking',
3644
+ 'turning',
3645
+ 'shifting',
3646
+ 'changing',
3647
+ 'fading',
3648
+ 'dying',
3649
+ 'born',
3650
+ 'humming',
3651
+ 'crying',
3652
+ 'racing',
3653
+ 'creeping',
3654
+ 'hiding',
3655
+ 'watching',
3656
+ 'hearing',
3657
+ 'sensing',
3658
+ 'longing',
3659
+ 'hoping',
3660
+ 'loving',
3661
+ 'fearing',
3662
+ 'wondering',
3663
+ 'wandering',
3664
+ 'traveling',
3665
+ 'crossing',
3666
+ 'meeting',
3667
+ 'parting',
3668
+ 'keeping',
3669
+ 'sharing',
3670
+ 'sparking',
3671
+ 'flaming',
3672
+ 'healing',
3673
+ 'solving',
3674
+ 'opening',
3675
+ 'closing',
3676
+ 'lifting',
3677
+ 'pulling',
3678
+ 'pushing',
3679
+ 'holding',
3680
+ 'tossing',
3681
+ 'throwing',
3682
+ 'catching',
3683
+ 'fixing',
3684
+ 'making',
3685
+ 'doing',
3686
+ 'seeing',
3687
+ 'tasting',
3688
+ 'smelling',
3689
+ 'touching',
3690
+ 'pacing',
3691
+ 'hurrying',
3692
+ 'pausing',
3693
+ 'going',
3694
+ 'coming',
3695
+ 'leaving',
3696
+ 'acting',
3697
+ 'being',
3698
+ 'seeming',
3699
+ 'shrinking',
3700
+ 'widening',
3701
+ 'narrowing',
3702
+ 'heating',
3703
+ 'cooling',
3704
+ 'drying',
3705
+ 'wetting',
3706
+ 'filling',
3707
+ 'filling',
3708
+ 'emptying',
3709
+ 'letting',
3710
+ 'gaining',
3711
+ 'winning',
3712
+ 'failing',
3713
+ 'trying',
3714
+ 'using',
3715
+ 'getting',
3716
+ 'showing',
3717
+ 'hiding',
3718
+ 'breaking',
3719
+ 'fixing',
3720
+ 'saving',
3721
+ 'spending',
3722
+ 'buying',
3723
+ 'selling',
3724
+ 'paying',
3725
+ 'costing',
3726
+ 'reaching',
3727
+ 'missing',
3728
+ 'hitting',
3729
+ 'striking',
3730
+ 'leading',
3731
+ 'following',
3732
+ 'helping',
3733
+ 'serving',
3734
+ 'teaching',
3735
+ 'training',
3736
+ 'coding',
3737
+ 'writing',
3738
+ 'reading',
3739
+ 'drawing',
3740
+ 'painting',
3741
+ 'crafting',
3742
+ 'shaping',
3743
+ 'forming',
3744
+ 'joining',
3745
+ 'splitting',
3746
+ 'sharing',
3747
+ 'bonding',
3748
+ 'healing',
3749
+ 'harming',
3750
+ 'protecting',
3751
+ 'fighting',
3752
+ 'defending',
3753
+ 'attacking',
3754
+ 'escaping',
3755
+ 'catching',
3756
+ 'trapping',
3757
+ 'freeing',
3758
+ 'binding',
3759
+ 'weaving',
3760
+ 'spinning',
3761
+ ];
3762
+
3060
3763
  /**
3061
3764
  * Function parseNumber will parse number from string
3062
3765
  *
@@ -3129,17 +3832,6 @@ function parseNumber(value) {
3129
3832
  * TODO: [🧠][🌻] Maybe export through `@promptbook/markdown-utils` not `@promptbook/utils`
3130
3833
  */
3131
3834
 
3132
- /**
3133
- * Makes first letter of a string uppercase
3134
- *
3135
- * Note: [🔂] This function is idempotent.
3136
- *
3137
- * @public exported from `@promptbook/utils`
3138
- */
3139
- function capitalize(word) {
3140
- return word.substring(0, 1).toUpperCase() + word.substring(1);
3141
- }
3142
-
3143
3835
  /**
3144
3836
  * Makes first letter of a string lowercase
3145
3837
  *
@@ -3435,6 +4127,16 @@ function unwrapResult(text, options) {
3435
4127
  trimmedText = spaceTrim$1(trimmedText);
3436
4128
  }
3437
4129
  let processedText = trimmedText;
4130
+ // Check for markdown code block
4131
+ const codeBlockRegex = /^```[a-z]*\n([\s\S]*?)\n```\s*$/;
4132
+ const codeBlockMatch = processedText.match(codeBlockRegex);
4133
+ if (codeBlockMatch && codeBlockMatch[1] !== undefined) {
4134
+ // Check if there's only one code block
4135
+ const codeBlockCount = (processedText.match(/```/g) || []).length / 2;
4136
+ if (codeBlockCount === 1) {
4137
+ return unwrapResult(codeBlockMatch[1], { isTrimmed: false, isIntroduceSentenceRemoved: false });
4138
+ }
4139
+ }
3438
4140
  if (isIntroduceSentenceRemoved) {
3439
4141
  const introduceSentenceRegex = /^[a-zěščřžýáíéúů:\s]*:\s*/i;
3440
4142
  if (introduceSentenceRegex.test(text)) {
@@ -3442,6 +4144,14 @@ function unwrapResult(text, options) {
3442
4144
  processedText = processedText.replace(introduceSentenceRegex, '');
3443
4145
  }
3444
4146
  processedText = spaceTrim$1(processedText);
4147
+ // Check again for code block after removing introduce sentence
4148
+ const codeBlockMatch2 = processedText.match(codeBlockRegex);
4149
+ if (codeBlockMatch2 && codeBlockMatch2[1] !== undefined) {
4150
+ const codeBlockCount = (processedText.match(/```/g) || []).length / 2;
4151
+ if (codeBlockCount === 1) {
4152
+ return unwrapResult(codeBlockMatch2[1], { isTrimmed: false, isIntroduceSentenceRemoved: false });
4153
+ }
4154
+ }
3445
4155
  }
3446
4156
  if (processedText.length < 3) {
3447
4157
  return trimmedText;
@@ -3941,5 +4651,5 @@ function isValidUuid(value) {
3941
4651
  return /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i.test(value);
3942
4652
  }
3943
4653
 
3944
- export { $deepFreeze, $detectRuntimeEnvironment, $getCurrentDate, $isRunningInBrowser, $isRunningInJest, $isRunningInNode, $isRunningInWebWorker, BOOK_LANGUAGE_VERSION, CHARACTERS_PER_STANDARD_LINE, CountUtils, DIACRITIC_VARIANTS_LETTERS, LINES_PER_STANDARD_PAGE, PROMPTBOOK_ENGINE_VERSION, SMALL_NUMBER, VALUE_STRINGS, capitalize, checkSerializableAsJson, clonePipeline, computeHash, countCharacters, countLines, countPages, countParagraphs, countSentences, countWords, debounce, decapitalize, deepClone, deserializeError, difference, exportJson, extractParameterNames, forEachAsync, intersection, isHostnameOnPrivateNetwork, isRootPath, isSerializableAsJson, isUrlOnPrivateNetwork, isValidAgentUrl, isValidCsvString, isValidEmail, isValidFilePath, isValidJavascriptName, isValidJsonString, isValidKeyword, isValidPipelineUrl, isValidPromptbookVersion, isValidSemanticVersion, isValidUrl, isValidUuid, isValidXmlString, jsonParse, jsonStringsToJsons, nameToUriPart, nameToUriParts, normalizeMessageText, normalizeToKebabCase, normalizeTo_PascalCase, normalizeTo_SCREAMING_CASE, normalizeTo_camelCase, normalizeTo_snake_case, normalizeWhitespaces, numberToString, orderJson, parseKeywords, parseKeywordsFromString, parseNumber, prompt, promptTemplate, removeDiacritics, removeEmojis, removeQuotes, renderPromptbookMermaid, searchKeywords, serializeError, serializeToPromptbookJavascript, spaceTrim, splitIntoSentences, suffixUrl, templateParameters, titleToName, union, unwrapResult, valueToString };
4654
+ export { $deepFreeze, $detectRuntimeEnvironment, $getCurrentDate, $isRunningInBrowser, $isRunningInJest, $isRunningInNode, $isRunningInWebWorker, BOOK_LANGUAGE_VERSION, CHARACTERS_PER_STANDARD_LINE, CountUtils, DIACRITIC_VARIANTS_LETTERS, LINES_PER_STANDARD_PAGE, PROMPTBOOK_ENGINE_VERSION, SMALL_NUMBER, VALUE_STRINGS, capitalize, checkSerializableAsJson, clonePipeline, computeHash, countCharacters, countLines, countPages, countParagraphs, countSentences, countWords, debounce, decapitalize, deepClone, deserializeError, difference, exportJson, extractParameterNames, forEachAsync, intersection, isHostnameOnPrivateNetwork, isRootPath, isSerializableAsJson, isUrlOnPrivateNetwork, isValidAgentUrl, isValidCsvString, isValidEmail, isValidFilePath, isValidJavascriptName, isValidJsonString, isValidKeyword, isValidPipelineUrl, isValidPromptbookVersion, isValidSemanticVersion, isValidUrl, isValidUuid, isValidXmlString, jsonParse, jsonStringsToJsons, linguisticHash, nameToUriPart, nameToUriParts, normalizeMessageText, normalizeToKebabCase, normalizeTo_PascalCase, normalizeTo_SCREAMING_CASE, normalizeTo_camelCase, normalizeTo_snake_case, normalizeWhitespaces, numberToString, orderJson, parseKeywords, parseKeywordsFromString, parseNumber, prompt, promptTemplate, removeDiacritics, removeEmojis, removeQuotes, renderPromptbookMermaid, searchKeywords, serializeError, serializeToPromptbookJavascript, spaceTrim, splitIntoSentences, suffixUrl, templateParameters, titleToName, union, unwrapResult, valueToString };
3945
4655
  //# sourceMappingURL=index.es.js.map