1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.ipAddressSchema = exports.utcOffsetSchema = exports.userAgentSchema = exports.semVerSchema = exports.SEM_VER_PATTERN = exports.emailSchema = exports.verSchema = exports.unixTimestampSchema = exports.slugSchema = exports.SLUG_PATTERN = exports.idSchema = exports.anyObjectSchema = exports.anySchema = exports.objectSchema = exports.arraySchema = exports.urlSchema = exports.binarySchema = exports.dateStringSchema = exports.percentageSchema = exports.integerSchema = exports.numberSchema = exports.stringSchema = exports.booleanDefaultToFalseSchema = exports.booleanSchema = void 0;
|
4 | const joi_extensions_1 = require("./joi.extensions");
|
5 | exports.booleanSchema = joi_extensions_1.Joi.boolean();
|
6 | exports.booleanDefaultToFalseSchema = joi_extensions_1.Joi.boolean().default(false);
|
7 | exports.stringSchema = joi_extensions_1.Joi.string();
|
8 | exports.numberSchema = joi_extensions_1.Joi.number();
|
9 | exports.integerSchema = joi_extensions_1.Joi.number().integer();
|
10 | exports.percentageSchema = joi_extensions_1.Joi.number().integer().min(0).max(100);
|
11 | exports.dateStringSchema = exports.stringSchema.dateString();
|
12 | exports.binarySchema = joi_extensions_1.Joi.binary();
|
13 | const urlSchema = (scheme = 'https') => joi_extensions_1.Joi.string().uri({ scheme });
|
14 | exports.urlSchema = urlSchema;
|
15 | function arraySchema(items) {
|
16 | return items ? joi_extensions_1.Joi.array().items(items) : joi_extensions_1.Joi.array();
|
17 | }
|
18 | exports.arraySchema = arraySchema;
|
19 | function objectSchema(schema) {
|
20 | return joi_extensions_1.Joi.object(schema);
|
21 | }
|
22 | exports.objectSchema = objectSchema;
|
23 | exports.anySchema = joi_extensions_1.Joi.any();
|
24 | exports.anyObjectSchema = joi_extensions_1.Joi.object().options({ stripUnknown: false });
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 | exports.idSchema = exports.stringSchema
|
31 | .regex(/^[a-z0-9_]*$/)
|
32 | .min(6)
|
33 | .max(64);
|
34 |
|
35 |
|
36 |
|
37 | exports.SLUG_PATTERN = /^[a-z0-9-]*$/;
|
38 |
|
39 |
|
40 |
|
41 | exports.slugSchema = exports.stringSchema.regex(exports.SLUG_PATTERN).min(1).max(255);
|
42 |
|
43 | exports.unixTimestampSchema = exports.numberSchema.integer().min(0).max(16725225600);
|
44 |
|
45 | exports.verSchema = exports.numberSchema.optional().integer().min(1).max(100);
|
46 |
|
47 |
|
48 |
|
49 | exports.emailSchema = exports.stringSchema.email().lowercase();
|
50 |
|
51 |
|
52 |
|
53 | exports.SEM_VER_PATTERN = /^[0-9]+\.[0-9]+\.[0-9]+$/;
|
54 | exports.semVerSchema = exports.stringSchema.regex(exports.SEM_VER_PATTERN);
|
55 |
|
56 | exports.userAgentSchema = exports.stringSchema
|
57 | .min(5)
|
58 | .max(400);
|
59 | exports.utcOffsetSchema = exports.numberSchema
|
60 | .min(-14 * 60)
|
61 | .max(14 * 60)
|
62 | .dividable(15);
|
63 | exports.ipAddressSchema = exports.stringSchema.ip();
|