@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.
- package/lib/cjs/validation.d.ts +56 -2
- package/lib/cjs/validation.d.ts.map +1 -1
- package/lib/cjs/validation.js +92 -7
- package/lib/cjs/validation.js.map +1 -1
- package/lib/esm/validation.d.ts +56 -2
- package/lib/esm/validation.d.ts.map +1 -1
- package/lib/esm/validation.js +85 -0
- package/lib/esm/validation.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/validation.ts +97 -3
package/lib/esm/validation.js
CHANGED
|
@@ -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 }),
|