@rosen-bridge/config 0.1.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/.eslintignore +1 -0
- package/CHANGELOG.md +8 -0
- package/README.md +24 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +102 -0
- package/dist/config.d.ts +131 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +578 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/schema/Validators/fieldProperties.d.ts +29 -0
- package/dist/schema/Validators/fieldProperties.d.ts.map +1 -0
- package/dist/schema/Validators/fieldProperties.js +254 -0
- package/dist/schema/types/fields.d.ts +37 -0
- package/dist/schema/types/fields.d.ts.map +1 -0
- package/dist/schema/types/fields.js +2 -0
- package/dist/schema/types/validations.d.ts +46 -0
- package/dist/schema/types/validations.d.ts.map +1 -0
- package/dist/schema/types/validations.js +2 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils.d.ts +36 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +59 -0
- package/dist/value/validators.d.ts +3 -0
- package/dist/value/validators.d.ts.map +1 -0
- package/dist/value/validators.js +188 -0
- package/lib/cli.ts +113 -0
- package/lib/config.ts +664 -0
- package/lib/index.ts +1 -0
- package/lib/schema/Validators/fieldProperties.ts +273 -0
- package/lib/schema/types/fields.ts +46 -0
- package/lib/schema/types/validations.ts +63 -0
- package/lib/utils.ts +68 -0
- package/lib/value/validators.ts +268 -0
- package/package.json +48 -0
- package/tests/.gitkeep +0 -0
- package/tests/config.spec.ts +895 -0
- package/tests/configEnvSetup.ts +34 -0
- package/tests/configTestData.ts +977 -0
- package/tests/configTestFiles/custom-environment-variables.json +5 -0
- package/tests/configTestFiles/default.json +12 -0
- package/tests/configTestFiles/local.json +5 -0
- package/tests/utils.spec.ts +117 -0
- package/tests/utilsTestData.ts +26 -0
- package/tsconfig.build.json +7 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.json +7 -0
- package/vitest.config.ts +11 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './config';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZyc7XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ConfigValidator } from '../../config';
|
|
2
|
+
import * as types from '../types/fields';
|
|
3
|
+
export declare const propertyValidators: {
|
|
4
|
+
all: {
|
|
5
|
+
type: (field: types.ConfigField, config: ConfigValidator) => void;
|
|
6
|
+
label: (field: types.ConfigField, config: ConfigValidator) => void;
|
|
7
|
+
description: (field: types.ConfigField, config: ConfigValidator) => void;
|
|
8
|
+
};
|
|
9
|
+
primitive: {
|
|
10
|
+
validations: (field: types.PrimitiveField, config: ConfigValidator) => void;
|
|
11
|
+
};
|
|
12
|
+
object: {
|
|
13
|
+
children: (field: types.ObjectField, config: ConfigValidator) => void;
|
|
14
|
+
};
|
|
15
|
+
string: {
|
|
16
|
+
default: (field: types.StringField, config: ConfigValidator) => void;
|
|
17
|
+
};
|
|
18
|
+
boolean: {
|
|
19
|
+
default: (field: types.BooleanField, config: ConfigValidator) => void;
|
|
20
|
+
};
|
|
21
|
+
number: {
|
|
22
|
+
default: (field: types.NumberField, config: ConfigValidator) => void;
|
|
23
|
+
};
|
|
24
|
+
bigint: {
|
|
25
|
+
default: (field: types.BigIntField, config: ConfigValidator) => void;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export declare const supportedTypes: string[];
|
|
29
|
+
//# sourceMappingURL=fieldProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldProperties.d.ts","sourceRoot":"","sources":["../../../lib/schema/Validators/fieldProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAC;AAGzC,eAAO,MAAM,kBAAkB;;sBAEb,MAAM,WAAW,UAAU,eAAe;uBAWzC,MAAM,WAAW,UAAU,eAAe;6BAKpC,MAAM,WAAW,UAAU,eAAe;;;6BAU1C,MAAM,cAAc,UAAU,eAAe;;;0BAuEhD,MAAM,WAAW,UAAU,eAAe;;;yBAK3C,MAAM,WAAW,UAAU,eAAe;;;yBAY1C,MAAM,YAAY,UAAU,eAAe;;;yBAY3C,MAAM,WAAW,UAAU,eAAe;;;yBAY1C,MAAM,WAAW,UAAU,eAAe;;CAW9D,CAAC;AAEF,eAAO,MAAM,cAAc,UAE1B,CAAC"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
export const propertyValidators = {
|
|
2
|
+
all: {
|
|
3
|
+
type: (field, config) => {
|
|
4
|
+
if (!Object.hasOwn(field, 'type') || typeof field.type !== 'string') {
|
|
5
|
+
throw new Error(
|
|
6
|
+
`every schema field must have a "type" property of type "string"`
|
|
7
|
+
);
|
|
8
|
+
}
|
|
9
|
+
if (!supportedTypes.includes(field.type)) {
|
|
10
|
+
throw new Error(`unsupported field type "${field.type}"`);
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
label: (field, config) => {
|
|
14
|
+
if (Object.hasOwn(field, 'label') && typeof field.label !== 'string') {
|
|
15
|
+
throw new Error(`"label" property should be a "string"`);
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
description: (field, config) => {
|
|
19
|
+
if (
|
|
20
|
+
Object.hasOwn(field, 'description') &&
|
|
21
|
+
typeof field.description !== 'string'
|
|
22
|
+
) {
|
|
23
|
+
throw new Error(`"description" property should be a "string"`);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
primitive: {
|
|
28
|
+
validations: (field, config) => {
|
|
29
|
+
if (!Object.hasOwn(field, 'validations')) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (!Array.isArray(field.validations)) {
|
|
33
|
+
throw new Error(
|
|
34
|
+
'"validations" property must be an array of validation descriptions'
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
for (const validation of field.validations) {
|
|
38
|
+
if (
|
|
39
|
+
Object.hasOwn(validation, 'error') &&
|
|
40
|
+
typeof validation.error !== 'string'
|
|
41
|
+
) {
|
|
42
|
+
throw new Error(
|
|
43
|
+
'"error" property of a validation description must be a string'
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
if (Object.hasOwn(validation, 'when') && validation.when != undefined) {
|
|
47
|
+
if (
|
|
48
|
+
!Object.hasOwn(validation.when, 'path') ||
|
|
49
|
+
typeof validation.when.path !== 'string'
|
|
50
|
+
) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
`"when" property of a validation description must have a "path" property of type "string"`
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
if (
|
|
56
|
+
config.getSchemaField(validation.when.path.split('.')) == undefined
|
|
57
|
+
) {
|
|
58
|
+
throw new Error(
|
|
59
|
+
`"when" property of a validation description has a non-existent path=[${validation.when.path}]`
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
if (!Object.hasOwn(validation.when, 'value')) {
|
|
63
|
+
throw new Error(
|
|
64
|
+
`"when" property of a validation description must have a "value" property`
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const validationProperties = Object.keys(validation).filter(
|
|
69
|
+
(key) => key !== 'when' && key !== 'error'
|
|
70
|
+
);
|
|
71
|
+
if (validationProperties.length !== 1) {
|
|
72
|
+
throw new Error('validation description format is wrong');
|
|
73
|
+
}
|
|
74
|
+
const validationName = validationProperties[0];
|
|
75
|
+
const primitiveValidator = fieldValidations.primitive[validationName];
|
|
76
|
+
const typeValidator = fieldValidations[field.type][validationName];
|
|
77
|
+
if (primitiveValidator == undefined && typeValidator == undefined) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
`validation description has an unknown validator "${validationName}"`
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
if (primitiveValidator != undefined) {
|
|
83
|
+
primitiveValidator(validation);
|
|
84
|
+
} else {
|
|
85
|
+
typeValidator(validation);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
object: {
|
|
91
|
+
children: (field, config) => {
|
|
92
|
+
return;
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
string: {
|
|
96
|
+
default: (field, config) => {
|
|
97
|
+
if (
|
|
98
|
+
Object.hasOwn(field, 'default') &&
|
|
99
|
+
typeof field.default !== 'string'
|
|
100
|
+
) {
|
|
101
|
+
throw new Error(
|
|
102
|
+
`default value=[${field.default}] doesn't match field type=[${field.type}]`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
boolean: {
|
|
108
|
+
default: (field, config) => {
|
|
109
|
+
if (
|
|
110
|
+
Object.hasOwn(field, 'default') &&
|
|
111
|
+
typeof field.default !== 'boolean'
|
|
112
|
+
) {
|
|
113
|
+
throw new Error(
|
|
114
|
+
`default value=[${field.default}] doesn't match field type=[${field.type}]`
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
number: {
|
|
120
|
+
default: (field, config) => {
|
|
121
|
+
if (
|
|
122
|
+
Object.hasOwn(field, 'default') &&
|
|
123
|
+
typeof field.default !== 'number'
|
|
124
|
+
) {
|
|
125
|
+
throw new Error(
|
|
126
|
+
`default value=[${field.default}] doesn't match field type=[${field.type}]`
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
bigint: {
|
|
132
|
+
default: (field, config) => {
|
|
133
|
+
if (
|
|
134
|
+
Object.hasOwn(field, 'default') &&
|
|
135
|
+
typeof field.default !== 'bigint'
|
|
136
|
+
) {
|
|
137
|
+
throw new Error(
|
|
138
|
+
`default value=[${field.default}] doesn't match field type=[${field.type}]`
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
export const supportedTypes = Object.keys(propertyValidators).filter(
|
|
145
|
+
(key) => key !== 'all' && key !== 'primitive'
|
|
146
|
+
);
|
|
147
|
+
const fieldValidations = {
|
|
148
|
+
primitive: {
|
|
149
|
+
required: (validation) => {
|
|
150
|
+
if (!('required' in validation)) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (typeof validation.required !== 'boolean') {
|
|
154
|
+
throw new Error(`"required" validation property should be a boolean`);
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
string: {
|
|
159
|
+
regex: (validation) => {
|
|
160
|
+
if (!('regex' in validation)) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (typeof validation.regex !== 'string') {
|
|
164
|
+
throw new Error(`"regex" validation property should be a string`);
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
choices: (validation) => {
|
|
168
|
+
if (!('choices' in validation)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (!Array.isArray(validation.choices)) {
|
|
172
|
+
throw new Error(
|
|
173
|
+
`"choices" validation property should be an "array" of strings`
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
for (const choice of validation.choices) {
|
|
177
|
+
if (typeof choice !== 'string') {
|
|
178
|
+
throw new Error(
|
|
179
|
+
`"choices" validation property should be an array of "strings"`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
number: {
|
|
186
|
+
gt: (validation) => {
|
|
187
|
+
if (!('gt' in validation)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (typeof validation.gt !== 'number') {
|
|
191
|
+
throw new Error(`"gt" validation property should be a number`);
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
gte: (validation) => {
|
|
195
|
+
if (!('gte' in validation)) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (typeof validation.gte !== 'number') {
|
|
199
|
+
throw new Error(`"gte" validation property should be a number`);
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
lt: (validation) => {
|
|
203
|
+
if (!('lt' in validation)) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (typeof validation.lt !== 'number') {
|
|
207
|
+
throw new Error(`"lt" validation property should be a number`);
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
lte: (validation) => {
|
|
211
|
+
if (!('lte' in validation)) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
if (typeof validation.lte !== 'number') {
|
|
215
|
+
throw new Error(`"lte" validation property should be a number`);
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
bigint: {
|
|
220
|
+
gt: (validation) => {
|
|
221
|
+
if (!('gt' in validation)) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
if (typeof validation.gt !== 'bigint') {
|
|
225
|
+
throw new Error(`"gt" validation property should be a bigint`);
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
gte: (validation) => {
|
|
229
|
+
if (!('gte' in validation)) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (typeof validation.gte !== 'bigint') {
|
|
233
|
+
throw new Error(`"gte" validation property should be a bigint`);
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
lt: (validation) => {
|
|
237
|
+
if (!('lt' in validation)) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (typeof validation.lt !== 'bigint') {
|
|
241
|
+
throw new Error(`"lt" validation property should be a bigint`);
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
lte: (validation) => {
|
|
245
|
+
if (!('lte' in validation)) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (typeof validation.lte !== 'bigint') {
|
|
249
|
+
throw new Error(`"lte" validation property should be a bigint`);
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
};
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRQcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS9WYWxpZGF0b3JzL2ZpZWxkUHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxHQUFHLEVBQUU7UUFDSCxJQUFJLEVBQUUsQ0FBQyxLQUF3QixFQUFFLE1BQXVCLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDbkUsTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQzthQUMzRDtRQUNILENBQUM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUF3QixFQUFFLE1BQXVCLEVBQUUsRUFBRTtZQUMzRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQzthQUMxRDtRQUNILENBQUM7UUFDRCxXQUFXLEVBQUUsQ0FBQyxLQUF3QixFQUFFLE1BQXVCLEVBQUUsRUFBRTtZQUNqRSxJQUNFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQztnQkFDbkMsT0FBTyxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFDckM7Z0JBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FB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T0FBTyxVQUFVLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO2FBQ2pFO1FBQ0gsQ0FBQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1ZhbGlkYXRvciB9IGZyb20gJy4uLy4uL2NvbmZpZyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuLi90eXBlcy9maWVsZHMnO1xuaW1wb3J0IHsgVkFsbCwgVk51bWVyaWMsIFZTdHJpbmcgfSBmcm9tICcuLi90eXBlcy92YWxpZGF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVZhbGlkYXRvcnMgPSB7XG4gIGFsbDoge1xuICAgIHR5cGU6IChmaWVsZDogdHlwZXMuQ29uZmlnRmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oZmllbGQsICd0eXBlJykgfHwgdHlwZW9mIGZpZWxkLnR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgZXZlcnkgc2NoZW1hIGZpZWxkIG11c3QgaGF2ZSBhIFwidHlwZVwiIHByb3BlcnR5IG9mIHR5cGUgXCJzdHJpbmdcImBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzdXBwb3J0ZWRUeXBlcy5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIGZpZWxkIHR5cGUgXCIke2ZpZWxkLnR5cGV9XCJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGxhYmVsOiAoZmllbGQ6IHR5cGVzLkNvbmZpZ0ZpZWxkLCBjb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgaWYgKE9iamVjdC5oYXNPd24oZmllbGQsICdsYWJlbCcpICYmIHR5cGVvZiBmaWVsZC5sYWJlbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImxhYmVsXCIgcHJvcGVydHkgc2hvdWxkIGJlIGEgXCJzdHJpbmdcImApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZGVzY3JpcHRpb246IChmaWVsZDogdHlwZXMuQ29uZmlnRmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oZmllbGQsICdkZXNjcmlwdGlvbicpICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5kZXNjcmlwdGlvbiAhPT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwiZGVzY3JpcHRpb25cIiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBcInN0cmluZ1wiYCk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgcHJpbWl0aXZlOiB7XG4gICAgdmFsaWRhdGlvbnM6IChmaWVsZDogdHlwZXMuUHJpbWl0aXZlRmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd24oZmllbGQsICd2YWxpZGF0aW9ucycpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkLnZhbGlkYXRpb25zKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1widmFsaWRhdGlvbnNcIiBwcm9wZXJ0eSBtdXN0IGJlIGFuIGFycmF5IG9mIHZhbGlkYXRpb24gZGVzY3JpcHRpb25zJ1xuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IHZhbGlkYXRpb24gb2YgZmllbGQudmFsaWRhdGlvbnMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIE9iamVjdC5oYXNPd24odmFsaWRhdGlvbiwgJ2Vycm9yJykgJiZcbiAgICAgICAgICB0eXBlb2YgdmFsaWRhdGlvbi5lcnJvciAhPT0gJ3N0cmluZydcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ1wiZXJyb3JcIiBwcm9wZXJ0eSBvZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRpb24gbXVzdCBiZSBhIHN0cmluZydcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKE9iamVjdC5oYXNPd24odmFsaWRhdGlvbiwgJ3doZW4nKSAmJiB2YWxpZGF0aW9uLndoZW4gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIU9iamVjdC5oYXNPd24odmFsaWRhdGlvbi53aGVuLCAncGF0aCcpIHx8XG4gICAgICAgICAgICB0eXBlb2YgdmFsaWRhdGlvbi53aGVuLnBhdGggIT09ICdzdHJpbmcnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBcIndoZW5cIiBwcm9wZXJ0eSBvZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRpb24gbXVzdCBoYXZlIGEgXCJwYXRoXCIgcHJvcGVydHkgb2YgdHlwZSBcInN0cmluZ1wiYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb25maWcuZ2V0U2NoZW1hRmllbGQodmFsaWRhdGlvbi53aGVuLnBhdGguc3BsaXQoJy4nKSkgPT0gdW5kZWZpbmVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBcIndoZW5cIiBwcm9wZXJ0eSBvZiBhIHZhbGlkYXRpb24gZGVzY3JpcHRpb24gaGFzIGEgbm9uLWV4aXN0ZW50IHBhdGg9WyR7dmFsaWRhdGlvbi53aGVuLnBhdGh9XWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKHZhbGlkYXRpb24ud2hlbiwgJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFwid2hlblwiIHByb3BlcnR5IG9mIGEgdmFsaWRhdGlvbiBkZXNjcmlwdGlvbiBtdXN0IGhhdmUgYSBcInZhbHVlXCIgcHJvcGVydHlgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25Qcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModmFsaWRhdGlvbikuZmlsdGVyKFxuICAgICAgICAgIChrZXkpID0+IGtleSAhPT0gJ3doZW4nICYmIGtleSAhPT0gJ2Vycm9yJ1xuICAgICAgICApO1xuICAgICAgICBpZiAodmFsaWRhdGlvblByb3BlcnRpZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YWxpZGF0aW9uIGRlc2NyaXB0aW9uIGZvcm1hdCBpcyB3cm9uZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdGlvbk5hbWUgPSB2YWxpZGF0aW9uUHJvcGVydGllc1swXTtcbiAgICAgICAgY29uc3QgcHJpbWl0aXZlVmFsaWRhdG9yID0gZmllbGRWYWxpZGF0aW9ucy5wcmltaXRpdmVbdmFsaWRhdGlvbk5hbWVdO1xuICAgICAgICBjb25zdCB0eXBlVmFsaWRhdG9yID0gZmllbGRWYWxpZGF0aW9uc1tmaWVsZC50eXBlXVt2YWxpZGF0aW9uTmFtZV07XG4gICAgICAgIGlmIChwcmltaXRpdmVWYWxpZGF0b3IgPT0gdW5kZWZpbmVkICYmIHR5cGVWYWxpZGF0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYHZhbGlkYXRpb24gZGVzY3JpcHRpb24gaGFzIGFuIHVua25vd24gdmFsaWRhdG9yIFwiJHt2YWxpZGF0aW9uTmFtZX1cImBcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByaW1pdGl2ZVZhbGlkYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwcmltaXRpdmVWYWxpZGF0b3IodmFsaWRhdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHlwZVZhbGlkYXRvcih2YWxpZGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIG9iamVjdDoge1xuICAgIGNoaWxkcmVuOiAoZmllbGQ6IHR5cGVzLk9iamVjdEZpZWxkLCBjb25maWc6IENvbmZpZ1ZhbGlkYXRvcikgPT4ge1xuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gIH0sXG4gIHN0cmluZzoge1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuU3RyaW5nRmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oZmllbGQsICdkZWZhdWx0JykgJiZcbiAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHQgIT09ICdzdHJpbmcnXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBkZWZhdWx0IHZhbHVlPVske2ZpZWxkLmRlZmF1bHR9XSBkb2Vzbid0IG1hdGNoIGZpZWxkIHR5cGU9WyR7ZmllbGQudHlwZX1dYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJvb2xlYW46IHtcbiAgICBkZWZhdWx0OiAoZmllbGQ6IHR5cGVzLkJvb2xlYW5GaWVsZCwgY29uZmlnOiBDb25maWdWYWxpZGF0b3IpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0Lmhhc093bihmaWVsZCwgJ2RlZmF1bHQnKSAmJlxuICAgICAgICB0eXBlb2YgZmllbGQuZGVmYXVsdCAhPT0gJ2Jvb2xlYW4nXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBkZWZhdWx0IHZhbHVlPVske2ZpZWxkLmRlZmF1bHR9XSBkb2Vzbid0IG1hdGNoIGZpZWxkIHR5cGU9WyR7ZmllbGQudHlwZX1dYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuTnVtYmVyRmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oZmllbGQsICdkZWZhdWx0JykgJiZcbiAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHQgIT09ICdudW1iZXInXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBkZWZhdWx0IHZhbHVlPVske2ZpZWxkLmRlZmF1bHR9XSBkb2Vzbid0IG1hdGNoIGZpZWxkIHR5cGU9WyR7ZmllbGQudHlwZX1dYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG4gIGJpZ2ludDoge1xuICAgIGRlZmF1bHQ6IChmaWVsZDogdHlwZXMuQmlnSW50RmllbGQsIGNvbmZpZzogQ29uZmlnVmFsaWRhdG9yKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5oYXNPd24oZmllbGQsICdkZWZhdWx0JykgJiZcbiAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHQgIT09ICdiaWdpbnQnXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBkZWZhdWx0IHZhbHVlPVske2ZpZWxkLmRlZmF1bHR9XSBkb2Vzbid0IG1hdGNoIGZpZWxkIHR5cGU9WyR7ZmllbGQudHlwZX1dYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc3VwcG9ydGVkVHlwZXMgPSBPYmplY3Qua2V5cyhwcm9wZXJ0eVZhbGlkYXRvcnMpLmZpbHRlcihcbiAgKGtleSkgPT4ga2V5ICE9PSAnYWxsJyAmJiBrZXkgIT09ICdwcmltaXRpdmUnXG4pO1xuXG5jb25zdCBmaWVsZFZhbGlkYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcbiAgcHJpbWl0aXZlOiB7XG4gICAgcmVxdWlyZWQ6ICh2YWxpZGF0aW9uOiBWQWxsKSA9PiB7XG4gICAgICBpZiAoISgncmVxdWlyZWQnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLnJlcXVpcmVkICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcInJlcXVpcmVkXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBib29sZWFuYCk7XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgc3RyaW5nOiB7XG4gICAgcmVnZXg6ICh2YWxpZGF0aW9uOiBWU3RyaW5nKSA9PiB7XG4gICAgICBpZiAoISgncmVnZXgnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5yZWdleCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcInJlZ2V4XCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBzdHJpbmdgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGNob2ljZXM6ICh2YWxpZGF0aW9uOiBWU3RyaW5nKSA9PiB7XG4gICAgICBpZiAoISgnY2hvaWNlcycgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbGlkYXRpb24uY2hvaWNlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBcImNob2ljZXNcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhbiBcImFycmF5XCIgb2Ygc3RyaW5nc2BcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjaG9pY2Ugb2YgdmFsaWRhdGlvbi5jaG9pY2VzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2hvaWNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBcImNob2ljZXNcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhbiBhcnJheSBvZiBcInN0cmluZ3NcImBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgZ3Q6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxudW1iZXI+KSA9PiB7XG4gICAgICBpZiAoISgnZ3QnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5ndCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcImd0XCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBudW1iZXJgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGd0ZTogKHZhbGlkYXRpb246IFZOdW1lcmljPG51bWJlcj4pID0+IHtcbiAgICAgIGlmICghKCdndGUnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvbi5ndGUgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJndGVcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIG51bWJlcmApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHQ6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxudW1iZXI+KSA9PiB7XG4gICAgICBpZiAoISgnbHQnIGluIHZhbGlkYXRpb24pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uLmx0ICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibHRcIiB2YWxpZGF0aW9uIHByb3BlcnR5IHNob3VsZCBiZSBhIG51bWJlcmApO1xuICAgICAgfVxuICAgIH0sXG4gICAgbHRlOiAodmFsaWRhdGlvbjogVk51bWVyaWM8bnVtYmVyPikgPT4ge1xuICAgICAgaWYgKCEoJ2x0ZScgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHRlICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibHRlXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBudW1iZXJgKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBiaWdpbnQ6IHtcbiAgICBndDogKHZhbGlkYXRpb246IFZOdW1lcmljPGJpZ2ludD4pID0+IHtcbiAgICAgIGlmICghKCdndCcgaW4gdmFsaWRhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24uZ3QgIT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJndFwiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGEgYmlnaW50YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBndGU6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxiaWdpbnQ+KSA9PiB7XG4gICAgICBpZiAoISgnZ3RlJyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24uZ3RlICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwiZ3RlXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBiaWdpbnRgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGx0OiAodmFsaWRhdGlvbjogVk51bWVyaWM8YmlnaW50PikgPT4ge1xuICAgICAgaWYgKCEoJ2x0JyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHQgIT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJsdFwiIHZhbGlkYXRpb24gcHJvcGVydHkgc2hvdWxkIGJlIGEgYmlnaW50YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBsdGU6ICh2YWxpZGF0aW9uOiBWTnVtZXJpYzxiaWdpbnQ+KSA9PiB7XG4gICAgICBpZiAoISgnbHRlJyBpbiB2YWxpZGF0aW9uKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIHZhbGlkYXRpb24ubHRlICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibHRlXCIgdmFsaWRhdGlvbiBwcm9wZXJ0eSBzaG91bGQgYmUgYSBiaWdpbnRgKTtcbiAgICAgIH1cbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { VBoolean, VNumeric, VString } from './validations';
|
|
2
|
+
export type PrimitiveValue = string | boolean | number | bigint;
|
|
3
|
+
export type ConfigSchema = Record<string, ConfigField>;
|
|
4
|
+
export type ConfigField = ObjectField | PrimitiveField;
|
|
5
|
+
export type PrimitiveField =
|
|
6
|
+
| StringField
|
|
7
|
+
| NumberField
|
|
8
|
+
| BigIntField
|
|
9
|
+
| BooleanField;
|
|
10
|
+
export interface ObjectField {
|
|
11
|
+
type: 'object';
|
|
12
|
+
description?: string;
|
|
13
|
+
label?: string;
|
|
14
|
+
children: ConfigSchema;
|
|
15
|
+
}
|
|
16
|
+
export interface GenericField<T> {
|
|
17
|
+
default?: T;
|
|
18
|
+
description?: string;
|
|
19
|
+
label?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface StringField extends GenericField<string> {
|
|
22
|
+
type: 'string';
|
|
23
|
+
validations?: VString[];
|
|
24
|
+
}
|
|
25
|
+
export interface NumberField extends GenericField<number> {
|
|
26
|
+
type: 'number';
|
|
27
|
+
validations?: VNumeric<number>[];
|
|
28
|
+
}
|
|
29
|
+
export interface BigIntField extends GenericField<bigint> {
|
|
30
|
+
type: 'bigint';
|
|
31
|
+
validations?: VNumeric<bigint>[];
|
|
32
|
+
}
|
|
33
|
+
export interface BooleanField extends GenericField<boolean> {
|
|
34
|
+
type: 'boolean';
|
|
35
|
+
validations?: VBoolean[];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../lib/schema/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;AAEvD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY,CAAC,OAAO,CAAC;IACzD,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS90eXBlcy9maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZCb29sZWFuLCBWTnVtZXJpYywgVlN0cmluZyB9IGZyb20gJy4vdmFsaWRhdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVWYWx1ZSA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBiaWdpbnQ7XG5cbmV4cG9ydCB0eXBlIENvbmZpZ1NjaGVtYSA9IFJlY29yZDxzdHJpbmcsIENvbmZpZ0ZpZWxkPjtcblxuZXhwb3J0IHR5cGUgQ29uZmlnRmllbGQgPSBPYmplY3RGaWVsZCB8IFByaW1pdGl2ZUZpZWxkO1xuXG5leHBvcnQgdHlwZSBQcmltaXRpdmVGaWVsZCA9XG4gIHwgU3RyaW5nRmllbGRcbiAgfCBOdW1iZXJGaWVsZFxuICB8IEJpZ0ludEZpZWxkXG4gIHwgQm9vbGVhbkZpZWxkO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdEZpZWxkIHtcbiAgdHlwZTogJ29iamVjdCc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgY2hpbGRyZW46IENvbmZpZ1NjaGVtYTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljRmllbGQ8VD4ge1xuICBkZWZhdWx0PzogVDtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0ZpZWxkIGV4dGVuZHMgR2VuZXJpY0ZpZWxkPHN0cmluZz4ge1xuICB0eXBlOiAnc3RyaW5nJztcbiAgdmFsaWRhdGlvbnM/OiBWU3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnVtYmVyRmllbGQgZXh0ZW5kcyBHZW5lcmljRmllbGQ8bnVtYmVyPiB7XG4gIHR5cGU6ICdudW1iZXInO1xuICB2YWxpZGF0aW9ucz86IFZOdW1lcmljPG51bWJlcj5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaWdJbnRGaWVsZCBleHRlbmRzIEdlbmVyaWNGaWVsZDxiaWdpbnQ+IHtcbiAgdHlwZTogJ2JpZ2ludCc7XG4gIHZhbGlkYXRpb25zPzogVk51bWVyaWM8YmlnaW50PltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2xlYW5GaWVsZCBleHRlbmRzIEdlbmVyaWNGaWVsZDxib29sZWFuPiB7XG4gIHR5cGU6ICdib29sZWFuJztcbiAgdmFsaWRhdGlvbnM/OiBWQm9vbGVhbltdO1xufVxuIl19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { PrimitiveValue } from './fields';
|
|
2
|
+
export type Validation =
|
|
3
|
+
| VAll
|
|
4
|
+
| VString
|
|
5
|
+
| VBoolean
|
|
6
|
+
| VNumeric<number>
|
|
7
|
+
| VNumeric<bigint>;
|
|
8
|
+
export interface When {
|
|
9
|
+
path: string;
|
|
10
|
+
value: PrimitiveValue;
|
|
11
|
+
}
|
|
12
|
+
export interface VGeneric {
|
|
13
|
+
error?: string;
|
|
14
|
+
when?: When;
|
|
15
|
+
}
|
|
16
|
+
export type VAll = VRequired;
|
|
17
|
+
export interface VRequired extends VGeneric {
|
|
18
|
+
required: boolean;
|
|
19
|
+
}
|
|
20
|
+
export type VString = VAll | VRegex | VChoices;
|
|
21
|
+
export interface VRegex extends VGeneric {
|
|
22
|
+
regex: string;
|
|
23
|
+
}
|
|
24
|
+
export interface VChoices extends VGeneric {
|
|
25
|
+
choices: string[];
|
|
26
|
+
}
|
|
27
|
+
export type VBoolean = VAll;
|
|
28
|
+
export type VNumeric<T extends number | bigint> =
|
|
29
|
+
| VAll
|
|
30
|
+
| VGreater<T>
|
|
31
|
+
| VGreaterEqual<T>
|
|
32
|
+
| VLess<T>
|
|
33
|
+
| VLessEqual<T>;
|
|
34
|
+
export interface VGreater<T extends number | bigint> extends VGeneric {
|
|
35
|
+
gt: T;
|
|
36
|
+
}
|
|
37
|
+
export interface VGreaterEqual<T extends number | bigint> extends VGeneric {
|
|
38
|
+
gte: T;
|
|
39
|
+
}
|
|
40
|
+
export interface VLess<T extends number | bigint> extends VGeneric {
|
|
41
|
+
lt: T;
|
|
42
|
+
}
|
|
43
|
+
export interface VLessEqual<T extends number | bigint> extends VGeneric {
|
|
44
|
+
lte: T;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=validations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../../lib/schema/types/validations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,MAAM,UAAU,GAClB,IAAI,GACJ,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC,MAAM,CAAC,GAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAGD,MAAM,MAAM,IAAI,GAAG,SAAS,CAAC;AAE7B,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACzC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC;AAG5B,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAC1C,IAAI,GACJ,QAAQ,CAAC,CAAC,CAAC,GACX,aAAa,CAAC,CAAC,CAAC,GAChB,KAAK,CAAC,CAAC,CAAC,GACR,UAAU,CAAC,CAAC,CAAC,CAAC;AAElB,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ;IACnE,EAAE,EAAE,CAAC,CAAC;CACP;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ;IACxE,GAAG,EAAE,CAAC,CAAC;CACR;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ;IAChE,EAAE,EAAE,CAAC,CAAC;CACP;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ;IACrE,GAAG,EAAE,CAAC,CAAC;CACR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc2NoZW1hL3R5cGVzL3ZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmltaXRpdmVWYWx1ZSB9IGZyb20gJy4vZmllbGRzJztcblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbiA9XG4gIHwgVkFsbFxuICB8IFZTdHJpbmdcbiAgfCBWQm9vbGVhblxuICB8IFZOdW1lcmljPG51bWJlcj5cbiAgfCBWTnVtZXJpYzxiaWdpbnQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFdoZW4ge1xuICBwYXRoOiBzdHJpbmc7XG4gIHZhbHVlOiBQcmltaXRpdmVWYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWR2VuZXJpYyB7XG4gIGVycm9yPzogc3RyaW5nO1xuICB3aGVuPzogV2hlbjtcbn1cblxuLy8gdmFsaWRhdG9ycyBmb3IgYWxsIHR5cGVzXG5leHBvcnQgdHlwZSBWQWxsID0gVlJlcXVpcmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZSZXF1aXJlZCBleHRlbmRzIFZHZW5lcmljIHtcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG59XG5cbi8vIHN0cmluZyB2YWxpZGF0b3JzXG5leHBvcnQgdHlwZSBWU3RyaW5nID0gVkFsbCB8IFZSZWdleCB8IFZDaG9pY2VzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZSZWdleCBleHRlbmRzIFZHZW5lcmljIHtcbiAgcmVnZXg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWQ2hvaWNlcyBleHRlbmRzIFZHZW5lcmljIHtcbiAgY2hvaWNlczogc3RyaW5nW107XG59XG5cbi8vIGJvb2xlYW4gdmFsaWRhdG9yc1xuZXhwb3J0IHR5cGUgVkJvb2xlYW4gPSBWQWxsO1xuXG4vLyBudW1lcmljIHZhbGlkYXRvcnNcbmV4cG9ydCB0eXBlIFZOdW1lcmljPFQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID1cbiAgfCBWQWxsXG4gIHwgVkdyZWF0ZXI8VD5cbiAgfCBWR3JlYXRlckVxdWFsPFQ+XG4gIHwgVkxlc3M8VD5cbiAgfCBWTGVzc0VxdWFsPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFZHcmVhdGVyPFQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+IGV4dGVuZHMgVkdlbmVyaWMge1xuICBndDogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWR3JlYXRlckVxdWFsPFQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+IGV4dGVuZHMgVkdlbmVyaWMge1xuICBndGU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVkxlc3M8VCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gZXh0ZW5kcyBWR2VuZXJpYyB7XG4gIGx0OiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZMZXNzRXF1YWw8VCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gZXh0ZW5kcyBWR2VuZXJpYyB7XG4gIGx0ZTogVDtcbn1cbiJdfQ==
|