@tellescope/validation 1.224.0 → 1.226.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.
@@ -858,6 +858,10 @@ export var positiveNumberValidator = numberValidatorBuilder({ lower: 1, upper: 1
858
858
  export var numberValidator = numberValidatorBuilder({ lower: -10000000000000, upper: 10000000000000 }); // max is 2286 in UTC MS
859
859
  export var numberValidatorOptional = numberValidatorBuilder({ lower: -10000000000000, upper: 10000000000000, isOptional: true, emptyStringOk: true }); // max is 2286 in UTC MS
860
860
  export var listOfNumbersValidatorUniqueOptionalOrEmptyOkay = listValidatorUniqueOptionalEmptyOkay(numberValidator, { isNumber: true });
861
+ // Day of month and time validators for automation events
862
+ export var numberValidatorMin1Max31 = numberValidatorBuilder({ lower: 1, upper: 31 });
863
+ export var numberValidatorMin0Max23Optional = numberValidatorBuilder({ lower: 0, upper: 23, isOptional: true });
864
+ export var numberValidatorMin0Max59Optional = numberValidatorBuilder({ lower: 0, upper: 59, isOptional: true });
861
865
  export var fileSizeValidator = numberValidatorBuilder({ lower: 0, upper: MAX_FILE_SIZE });
862
866
  export var numberOrStringValidatorEmptyOkay = orValidator({
863
867
  number: numberValidator,
@@ -1925,6 +1929,7 @@ var _AUTOMATION_EVENTS = {
1925
1929
  waitForTrigger: '',
1926
1930
  onCallOutcome: '',
1927
1931
  onAIDecision: '',
1932
+ onError: '',
1928
1933
  };
1929
1934
  export var AUTOMATION_EVENTS = Object.keys(_AUTOMATION_EVENTS);
1930
1935
  export var automationEventTypeValidator = exactMatchValidator(AUTOMATION_EVENTS);
@@ -2091,6 +2096,10 @@ export var automationEventValidator = orValidator({
2091
2096
  before: booleanValidatorOptional,
2092
2097
  }, { isOptional: true, emptyOk: true, }), eventCondition: objectValidator({
2093
2098
  before: booleanValidatorOptional,
2099
+ }, { isOptional: true, emptyOk: true }), dayOfMonthCondition: objectValidator({
2100
+ dayOfMonth: numberValidatorMin1Max31,
2101
+ hour: numberValidatorMin0Max23Optional,
2102
+ minute: numberValidatorMin0Max59Optional,
2094
2103
  }, { isOptional: true, emptyOk: true }), skipIfDelayPassed: booleanValidatorOptional }), { emptyOk: false }),
2095
2104
  }),
2096
2105
  formUnsubmitted: objectValidator({
@@ -2133,6 +2142,12 @@ export var automationEventValidator = orValidator({
2133
2142
  outcomes: listOfStringsValidator,
2134
2143
  }, { emptyOk: false }),
2135
2144
  }),
2145
+ onError: objectValidator({
2146
+ type: exactMatchValidator(['onError']),
2147
+ info: objectValidator({
2148
+ automationStepId: mongoIdStringRequired,
2149
+ }, { emptyOk: false }),
2150
+ }),
2136
2151
  });
2137
2152
  export var automationEventsValidator = listValidatorEmptyOk(automationEventValidator);
2138
2153
  export var automationConditionValidator = orValidator({
@@ -2491,6 +2506,7 @@ export var automationActionValidator = orValidator({
2491
2506
  stripeChargeCardOnFile: objectValidator(__assign(__assign({}, sharedAutomationActionValidators), { type: exactMatchValidator(['stripeChargeCardOnFile']), info: objectValidator({
2492
2507
  stripeKey: stringValidatorOptionalEmptyOkay,
2493
2508
  priceIds: listOfStringsValidatorEmptyOk,
2509
+ productIds: listOfStringsValidatorOptionalOrEmptyOk,
2494
2510
  subscriptionPriceId: stringValidatorOptionalEmptyOkay,
2495
2511
  }, { emptyOk: false }) // at least tags is required
2496
2512
  })),
@@ -2526,6 +2542,8 @@ export var journeyContextValidator = objectValidator({
2526
2542
  fileId: mongoIdStringOptional,
2527
2543
  chatRoomId: mongoIdStringOptional,
2528
2544
  twilioNumber: stringValidatorOptionalEmptyOkay,
2545
+ ticketThreadId: mongoIdStringOptional,
2546
+ ticketThreadCommentId: mongoIdStringOptional,
2529
2547
  });
2530
2548
  export var relatedRecordValidator = objectValidator({
2531
2549
  type: stringValidator100,
@@ -2751,6 +2769,7 @@ export var formFieldOptionsValidator = objectValidator({
2751
2769
  })),
2752
2770
  validFileTypes: listOfStringsValidatorOptionalOrEmptyOk,
2753
2771
  maxFileSize: numberValidatorOptional,
2772
+ hideFromPortal: booleanValidatorOptional,
2754
2773
  productIds: listOfStringsValidatorOptionalOrEmptyOk,
2755
2774
  chargeImmediately: booleanValidatorOptional,
2756
2775
  signatureUrl: stringValidator5000Optional,
@@ -2823,74 +2842,94 @@ export var formFieldOptionsValidator = objectValidator({
2823
2842
  elationAppendToNotePrefix: stringValidatorOptionalEmptyOkay,
2824
2843
  allowAddToDatabase: booleanValidatorOptional,
2825
2844
  });
2845
+ export var blockStyleValidator = objectValidator({
2846
+ width: numberValidatorOptional,
2847
+ height: numberValidatorOptional,
2848
+ backgroundColor: stringValidatorOptional,
2849
+ borderColor: stringValidatorOptional,
2850
+ borderWidth: numberValidatorOptional,
2851
+ textColor: stringValidatorOptional,
2852
+ }, { isOptional: true, emptyOk: true });
2826
2853
  export var blockValidator = orValidator({
2827
2854
  h1: objectValidator({
2828
2855
  type: exactMatchValidator(['h1']),
2829
2856
  info: objectValidator({
2830
2857
  text: stringValidator5000EmptyOkay,
2831
2858
  }),
2859
+ style: blockStyleValidator,
2832
2860
  }),
2833
2861
  h2: objectValidator({
2834
2862
  type: exactMatchValidator(['h2']),
2835
2863
  info: objectValidator({
2836
2864
  text: stringValidator5000EmptyOkay,
2837
2865
  }),
2866
+ style: blockStyleValidator,
2838
2867
  }),
2839
2868
  html: objectValidator({
2840
2869
  type: exactMatchValidator(['html']),
2841
2870
  info: objectValidator({
2842
2871
  html: stringValidator25000EmptyOkay,
2843
2872
  }),
2873
+ style: blockStyleValidator,
2844
2874
  }),
2845
2875
  image: objectValidator({
2846
2876
  type: exactMatchValidator(['image']),
2847
2877
  info: objectValidator({
2848
2878
  link: stringValidator5000EmptyOkay,
2849
2879
  name: stringValidatorOptional,
2880
+ alt: stringValidatorOptional,
2850
2881
  height: numberValidatorOptional,
2851
2882
  maxHeight: numberValidatorOptional,
2852
2883
  width: numberValidatorOptional,
2853
2884
  maxWidth: numberValidatorOptional,
2854
2885
  }),
2886
+ style: blockStyleValidator,
2855
2887
  }),
2856
2888
  pdf: objectValidator({
2857
2889
  type: exactMatchValidator(['pdf']),
2858
2890
  info: objectValidator({
2859
2891
  link: stringValidator5000EmptyOkay,
2860
2892
  name: stringValidatorOptional,
2893
+ alt: stringValidatorOptional,
2861
2894
  height: numberValidatorOptional,
2862
2895
  maxHeight: numberValidatorOptional,
2863
2896
  width: numberValidatorOptional,
2864
2897
  maxWidth: numberValidatorOptional,
2865
2898
  }),
2899
+ style: blockStyleValidator,
2866
2900
  }),
2867
2901
  youtube: objectValidator({
2868
2902
  type: exactMatchValidator(['youtube']),
2869
2903
  info: objectValidator({
2870
2904
  link: stringValidator5000EmptyOkay,
2871
2905
  name: stringValidatorOptional,
2906
+ alt: stringValidatorOptional,
2872
2907
  height: numberValidatorOptional,
2873
2908
  maxHeight: numberValidatorOptional,
2874
2909
  width: numberValidatorOptional,
2875
2910
  maxWidth: numberValidatorOptional,
2876
2911
  }),
2912
+ style: blockStyleValidator,
2877
2913
  }),
2878
2914
  iframe: objectValidator({
2879
2915
  type: exactMatchValidator(['iframe']),
2880
2916
  info: objectValidator({
2881
2917
  link: stringValidator5000EmptyOkay,
2882
2918
  name: stringValidatorOptional,
2919
+ alt: stringValidatorOptional,
2883
2920
  height: numberValidatorOptional,
2884
2921
  maxHeight: numberValidatorOptional,
2885
2922
  width: numberValidatorOptional,
2886
2923
  maxWidth: numberValidatorOptional,
2887
2924
  }),
2925
+ style: blockStyleValidator,
2888
2926
  }),
2889
2927
  "content-link": objectValidator({
2890
2928
  type: exactMatchValidator(["content-link"]),
2891
2929
  info: objectValidator({
2892
2930
  recordId: mongoIdStringRequired,
2893
2931
  }),
2932
+ style: blockStyleValidator,
2894
2933
  }),
2895
2934
  });
2896
2935
  var _BLOCK_TYPES = {
@@ -3184,6 +3223,13 @@ export var portalBlockValidator = orValidator({
3184
3223
  html: stringValidator5000,
3185
3224
  })
3186
3225
  }),
3226
+ pinnedForms: objectValidator({
3227
+ type: exactMatchValidator(['pinnedForms']),
3228
+ info: objectValidator({
3229
+ title: stringValidatorOptional,
3230
+ formIds: listOfMongoIdStringValidatorEmptyOk,
3231
+ })
3232
+ }),
3187
3233
  });
3188
3234
  export var portalBlocksValidator = listValidatorEmptyOk(portalBlockValidator);
3189
3235
  var _PORTAL_BLOCK_TYPES = {
@@ -3196,6 +3242,7 @@ var _PORTAL_BLOCK_TYPES = {
3196
3242
  "Manage Subscription Button": '',
3197
3243
  Orders: '',
3198
3244
  HTML: '',
3245
+ pinnedForms: '',
3199
3246
  };
3200
3247
  export var PORTAL_BLOCK_TYPES = Object.keys(_PORTAL_BLOCK_TYPES);
3201
3248
  export var portalTypeValidator = exactMatchValidator(PORTAL_BLOCK_TYPES);
@@ -3227,6 +3274,25 @@ export var baseAvailabilityBlockValidator = objectValidator({
3227
3274
  externalId: stringValidatorOptionalEmptyOkay,
3228
3275
  });
3229
3276
  export var baseAvailabilityBlocksValidator = listValidatorEmptyOk(baseAvailabilityBlockValidator);
3277
+ var monthlyOccurrenceValidator = {
3278
+ validate: function (o) {
3279
+ if (o === void 0) { o = {}; }
3280
+ return build_validator(function (value) {
3281
+ if (![1, 2, 3, 4, 5].includes(value)) {
3282
+ throw new Error("Value must be one of 1, 2, 3, 4, 5");
3283
+ }
3284
+ return value;
3285
+ }, __assign(__assign({}, o), { listOf: false }));
3286
+ },
3287
+ getExample: function () { return 1; },
3288
+ getType: getTypeString,
3289
+ };
3290
+ export var monthlyRestrictionValidator = objectValidator({
3291
+ occurrences: listValidator(monthlyOccurrenceValidator),
3292
+ });
3293
+ export var monthlyRestrictionOptionalValidator = objectValidator({
3294
+ occurrences: listValidator(monthlyOccurrenceValidator),
3295
+ }, { isOptional: true, emptyOk: true });
3230
3296
  export var weeklyAvailabilityValidator = objectValidator({
3231
3297
  dayOfWeekStartingSundayIndexedByZero: nonNegNumberValidator,
3232
3298
  endTimeInMinutes: nonNegNumberValidator,
@@ -3238,6 +3304,7 @@ export var weeklyAvailabilityValidator = objectValidator({
3238
3304
  intervalInMinutes: numberValidatorOptional,
3239
3305
  priority: numberValidatorOptional,
3240
3306
  bufferStartMinutes: numberValidatorOptional,
3307
+ monthlyRestriction: monthlyRestrictionOptionalValidator,
3241
3308
  });
3242
3309
  export var weeklyAvailabilitiesValidator = listValidatorEmptyOk(weeklyAvailabilityValidator);
3243
3310
  export var timezoneValidator = exactMatchValidator(Object.keys(TIMEZONE_MAP));
@@ -3282,6 +3349,7 @@ export var customEnduserFieldValidator = orValidator({
3282
3349
  required: booleanValidatorOptional,
3283
3350
  hiddenFromProfile: booleanValidatorOptional,
3284
3351
  requireConfirmation: booleanValidatorOptional,
3352
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3285
3353
  }),
3286
3354
  "Multiple Select": objectValidator({
3287
3355
  type: exactMatchValidator(['Multiple Select']),
@@ -3292,6 +3360,7 @@ export var customEnduserFieldValidator = orValidator({
3292
3360
  required: booleanValidatorOptional,
3293
3361
  hiddenFromProfile: booleanValidatorOptional,
3294
3362
  requireConfirmation: booleanValidatorOptional,
3363
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3295
3364
  }),
3296
3365
  Text: objectValidator({
3297
3366
  type: exactMatchValidator(['Text']),
@@ -3300,6 +3369,7 @@ export var customEnduserFieldValidator = orValidator({
3300
3369
  required: booleanValidatorOptional,
3301
3370
  hiddenFromProfile: booleanValidatorOptional,
3302
3371
  requireConfirmation: booleanValidatorOptional,
3372
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3303
3373
  }),
3304
3374
  Number: objectValidator({
3305
3375
  type: exactMatchValidator(['Number']),
@@ -3308,6 +3378,7 @@ export var customEnduserFieldValidator = orValidator({
3308
3378
  required: booleanValidatorOptional,
3309
3379
  hiddenFromProfile: booleanValidatorOptional,
3310
3380
  requireConfirmation: booleanValidatorOptional,
3381
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3311
3382
  }),
3312
3383
  File: objectValidator({
3313
3384
  type: exactMatchValidator(['File']),
@@ -3316,6 +3387,7 @@ export var customEnduserFieldValidator = orValidator({
3316
3387
  required: booleanValidatorOptional,
3317
3388
  hiddenFromProfile: booleanValidatorOptional,
3318
3389
  requireConfirmation: booleanValidatorOptional,
3390
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3319
3391
  }),
3320
3392
  "Multiple Text": objectValidator({
3321
3393
  type: exactMatchValidator(["Multiple Text"]),
@@ -3324,6 +3396,7 @@ export var customEnduserFieldValidator = orValidator({
3324
3396
  required: booleanValidatorOptional,
3325
3397
  hiddenFromProfile: booleanValidatorOptional,
3326
3398
  requireConfirmation: booleanValidatorOptional,
3399
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3327
3400
  }),
3328
3401
  Date: objectValidator({
3329
3402
  type: exactMatchValidator(['Date']),
@@ -3332,6 +3405,7 @@ export var customEnduserFieldValidator = orValidator({
3332
3405
  required: booleanValidatorOptional,
3333
3406
  hiddenFromProfile: booleanValidatorOptional,
3334
3407
  requireConfirmation: booleanValidatorOptional,
3408
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3335
3409
  }),
3336
3410
  "Auto Detect": objectValidator({
3337
3411
  type: exactMatchValidator(["Auto Detect"]),
@@ -3340,6 +3414,7 @@ export var customEnduserFieldValidator = orValidator({
3340
3414
  required: booleanValidatorOptional,
3341
3415
  hiddenFromProfile: booleanValidatorOptional,
3342
3416
  requireConfirmation: booleanValidatorOptional,
3417
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3343
3418
  }),
3344
3419
  "Table": objectValidator({
3345
3420
  type: exactMatchValidator(["Table"]),
@@ -3350,6 +3425,7 @@ export var customEnduserFieldValidator = orValidator({
3350
3425
  required: booleanValidatorOptional,
3351
3426
  hiddenFromProfile: booleanValidatorOptional,
3352
3427
  requireConfirmation: booleanValidatorOptional,
3428
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3353
3429
  }),
3354
3430
  "Checkbox": objectValidator({
3355
3431
  type: exactMatchValidator(["Checkbox"]),
@@ -3358,6 +3434,7 @@ export var customEnduserFieldValidator = orValidator({
3358
3434
  required: booleanValidatorOptional,
3359
3435
  hiddenFromProfile: booleanValidatorOptional,
3360
3436
  requireConfirmation: booleanValidatorOptional,
3437
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3361
3438
  }),
3362
3439
  "Database Select": objectValidator({
3363
3440
  type: exactMatchValidator(["Database Select"]),
@@ -3369,6 +3446,7 @@ export var customEnduserFieldValidator = orValidator({
3369
3446
  required: booleanValidatorOptional,
3370
3447
  hiddenFromProfile: booleanValidatorOptional,
3371
3448
  requireConfirmation: booleanValidatorOptional,
3449
+ tags: listOfStringsValidatorOptionalOrEmptyOk,
3372
3450
  }),
3373
3451
  });
3374
3452
  export var customEnduserFieldsValidatorOptionalOrEmpty = listValidatorOptionalOrEmptyOk(customEnduserFieldValidator);
@@ -3702,6 +3780,7 @@ export var automationTriggerEventValidator = orValidator({
3702
3780
  type: exactMatchValidator(['Appointment Rescheduled']),
3703
3781
  info: objectValidator({
3704
3782
  titles: listOfStringsValidatorOptionalOrEmptyOk,
3783
+ detectManualReschedules: booleanValidatorOptional,
3705
3784
  }),
3706
3785
  conditions: optionalEmptyObjectValidator,
3707
3786
  }),
@@ -3889,6 +3968,7 @@ var _AUTOMATION_TRIGGER_ACTION_TYPES = {
3889
3968
  "Reply to Chat": true,
3890
3969
  "Create User Notifications": true,
3891
3970
  "Assign to Incoming Message": true,
3971
+ "Zendesk: Update Ticket Assignee": true,
3892
3972
  };
3893
3973
  export var AUTOMATION_TRIGGER_ACTION_TYPES = Object.keys(_AUTOMATION_TRIGGER_ACTION_TYPES);
3894
3974
  export var automationTriggerActionValidator = orValidator({
@@ -4010,6 +4090,10 @@ export var automationTriggerActionValidator = orValidator({
4010
4090
  maxUsers: numberValidatorOptional,
4011
4091
  }),
4012
4092
  }),
4093
+ "Zendesk: Update Ticket Assignee": objectValidator({
4094
+ type: exactMatchValidator(['Zendesk: Update Ticket Assignee']),
4095
+ info: objectValidator({}),
4096
+ }),
4013
4097
  });
4014
4098
  var _AUTOMATION_TRIGGER_STATUSES = {
4015
4099
  Active: true,
@@ -4447,6 +4531,7 @@ export var analyticsQueryValidator = orValidator({
4447
4531
  State: booleanValidatorOptional,
4448
4532
  Phone: booleanValidatorOptional,
4449
4533
  "Scheduled By": booleanValidatorOptional,
4534
+ "Completed By": booleanValidatorOptional,
4450
4535
  alsoGroupByHost: booleanValidatorOptional,
4451
4536
  "Cancel Reason": booleanValidatorOptional,
4452
4537
  }, { isOptional: true, emptyOk: true }),