@squiz/dx-json-schema-lib 1.33.1-alpha.4 → 1.33.1-alpha.5
Sign up to get free protection for your applications and to get access to all the features.
- package/.npm/_logs/{2023-05-12T02_45_11_782Z-debug-0.log → 2023-05-12T05_00_21_808Z-debug-0.log} +11 -11
- package/lib/JsonValidationService.d.ts +0 -2
- package/lib/JsonValidationService.js +40 -29
- package/lib/JsonValidationService.js.map +1 -1
- package/lib/JsonValidationService.spec.js +262 -16
- package/lib/JsonValidationService.spec.js.map +1 -1
- package/lib/validators/customFormatValidators.js +5 -1
- package/lib/validators/customFormatValidators.js.map +1 -1
- package/lib/validators/utils/getValidationDataForMatrixUri.d.ts +8 -0
- package/lib/validators/utils/getValidationDataForMatrixUri.js +51 -0
- package/lib/validators/utils/getValidationDataForMatrixUri.js.map +1 -0
- package/lib/validators/utils/getValidationDataForMatrixUri.spec.d.ts +1 -0
- package/lib/validators/utils/getValidationDataForMatrixUri.spec.js +91 -0
- package/lib/validators/utils/getValidationDataForMatrixUri.spec.js.map +1 -0
- package/package.json +2 -2
- package/src/JsonValidationService.spec.ts +280 -7
- package/src/JsonValidationService.ts +43 -29
- package/src/validators/customFormatValidators.ts +8 -1
- package/src/validators/utils/getValidationDataForMatrixUri.spec.ts +92 -0
- package/src/validators/utils/getValidationDataForMatrixUri.ts +55 -0
- package/tsconfig.tsbuildinfo +1 -1
package/.npm/_logs/{2023-05-12T02_45_11_782Z-debug-0.log → 2023-05-12T05_00_21_808Z-debug-0.log}
RENAMED
@@ -1,11 +1,11 @@
|
|
1
1
|
0 verbose cli /usr/local/bin/node /usr/local/bin/npm
|
2
2
|
1 info using npm@9.5.0
|
3
3
|
2 info using node@v18.15.0
|
4
|
-
3 timing npm:load:whichnode Completed in
|
4
|
+
3 timing npm:load:whichnode Completed in 1ms
|
5
5
|
4 timing config:load:defaults Completed in 2ms
|
6
|
-
5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in
|
7
|
-
6 timing config:load:builtin Completed in
|
8
|
-
7 timing config:load:cli Completed in
|
6
|
+
5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 0ms
|
7
|
+
6 timing config:load:builtin Completed in 0ms
|
8
|
+
7 timing config:load:cli Completed in 3ms
|
9
9
|
8 timing config:load:env Completed in 1ms
|
10
10
|
9 info found workspace root at /builds/developer-experience/cmp
|
11
11
|
10 timing config:load:file:/builds/developer-experience/cmp/.npmrc Completed in 0ms
|
@@ -15,8 +15,8 @@
|
|
15
15
|
14 timing config:load:file:/usr/local/etc/npmrc Completed in 0ms
|
16
16
|
15 timing config:load:global Completed in 0ms
|
17
17
|
16 timing config:load:setEnvs Completed in 1ms
|
18
|
-
17 timing config:load Completed in
|
19
|
-
18 timing npm:load:configload Completed in
|
18
|
+
17 timing config:load Completed in 31ms
|
19
|
+
18 timing npm:load:configload Completed in 31ms
|
20
20
|
19 timing npm:load:mkdirpcache Completed in 1ms
|
21
21
|
20 timing npm:load:mkdirplogs Completed in 0ms
|
22
22
|
21 verbose title npm run compile
|
@@ -24,14 +24,14 @@
|
|
24
24
|
23 timing npm:load:setTitle Completed in 1ms
|
25
25
|
24 timing config:load:flatten Completed in 4ms
|
26
26
|
25 timing npm:load:display Completed in 6ms
|
27
|
-
26 verbose logfile logs-max:10 dir:/builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-05-
|
28
|
-
27 verbose logfile /builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-05-
|
27
|
+
26 verbose logfile logs-max:10 dir:/builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-05-12T05_00_21_808Z-
|
28
|
+
27 verbose logfile /builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-05-12T05_00_21_808Z-debug-0.log
|
29
29
|
28 timing npm:load:logFile Completed in 4ms
|
30
30
|
29 timing npm:load:timers Completed in 0ms
|
31
31
|
30 timing npm:load:configScope Completed in 0ms
|
32
|
-
31 timing npm:load Completed in
|
32
|
+
31 timing npm:load Completed in 45ms
|
33
33
|
32 silly logfile done cleaning log files
|
34
|
-
33 timing command:run Completed in
|
34
|
+
33 timing command:run Completed in 7108ms
|
35
35
|
34 verbose exit 0
|
36
|
-
35 timing npm Completed in
|
36
|
+
35 timing npm Completed in 7166ms
|
37
37
|
36 info ok
|
@@ -24,7 +24,6 @@ export declare class JSONSchemaService<P extends AnyPrimitiveType, R extends Any
|
|
24
24
|
* @returns true if the input is valid
|
25
25
|
*/
|
26
26
|
validateInput(input: unknown, inputSchema?: JSONSchema): true | never;
|
27
|
-
private processValidationResult;
|
28
27
|
/**
|
29
28
|
* Resolve an input object by replacing all resolvable shapes with their resolved values
|
30
29
|
* @param input any input object which matches the input schema
|
@@ -38,6 +37,5 @@ export declare class JsonValidationService {
|
|
38
37
|
validateContentSchema(contentSchema: JSONSchema): true;
|
39
38
|
validateComponentInput(functionInputSchema: JSONSchema, inputValue: unknown): true;
|
40
39
|
validateRenderInput(functionInputSchema: JSONSchema, inputValue: unknown): true;
|
41
|
-
private processValidationResult;
|
42
40
|
}
|
43
41
|
export {};
|
@@ -60,6 +60,23 @@ const defaultConfig = {
|
|
60
60
|
data,
|
61
61
|
};
|
62
62
|
},
|
63
|
+
typeError(data) {
|
64
|
+
let value = `${data.value}`;
|
65
|
+
if (data.received == 'object') {
|
66
|
+
value = `Object ${JSON.stringify(data.value)}`;
|
67
|
+
}
|
68
|
+
if (data.received == 'array') {
|
69
|
+
value = `Array ${JSON.stringify(data.value)}`;
|
70
|
+
}
|
71
|
+
const expected = JSON.stringify(data.expected).replace(/"/g, '`');
|
72
|
+
return {
|
73
|
+
type: 'error',
|
74
|
+
name: 'TypeError',
|
75
|
+
code: 'type-error',
|
76
|
+
message: `Expected \`${value}\` (${data.received}) in \`${data.pointer}\` to be of type ${expected}`,
|
77
|
+
data,
|
78
|
+
};
|
79
|
+
},
|
63
80
|
},
|
64
81
|
};
|
65
82
|
const FTSchema = new json_schema_library_1.Draft07(formattedText_json_1.default, defaultConfig);
|
@@ -176,13 +193,7 @@ class JSONSchemaService {
|
|
176
193
|
validateInput(input, inputSchema = this.schema.rootSchema) {
|
177
194
|
inputSchema = this.schema.compileSchema(inputSchema);
|
178
195
|
const errors = this.schema.validate(input, inputSchema);
|
179
|
-
return
|
180
|
-
}
|
181
|
-
processValidationResult(errors) {
|
182
|
-
if (errors.length > 0) {
|
183
|
-
throw new SchemaValidationError_1.SchemaValidationError(errors.map((a) => a.message).join(',\n'));
|
184
|
-
}
|
185
|
-
return true;
|
196
|
+
return processValidationResult(errors);
|
186
197
|
}
|
187
198
|
/**
|
188
199
|
* Resolve an input object by replacing all resolvable shapes with their resolved values
|
@@ -231,43 +242,43 @@ class JsonValidationService {
|
|
231
242
|
switch (version) {
|
232
243
|
case 'v1': {
|
233
244
|
const validationResult = v1Schema.validate(manifest);
|
234
|
-
return
|
245
|
+
return processValidationResult(validationResult);
|
235
246
|
}
|
236
247
|
default:
|
237
248
|
throw new SchemaValidationError_1.SchemaValidationError('Invalid manifest version');
|
238
249
|
}
|
239
250
|
}
|
240
251
|
validateContentSchema(contentSchema) {
|
241
|
-
return
|
252
|
+
return processValidationResult(exports.ComponentInputSchema.validate(contentSchema));
|
242
253
|
}
|
243
254
|
validateComponentInput(functionInputSchema, inputValue) {
|
244
255
|
const inputSchema = exports.ComponentInputSchema.compileSchema(functionInputSchema);
|
245
256
|
const errors = exports.ComponentInputSchema.validate(inputValue, inputSchema);
|
246
|
-
return
|
257
|
+
return processValidationResult(errors);
|
247
258
|
}
|
248
259
|
validateRenderInput(functionInputSchema, inputValue) {
|
249
260
|
const inputSchema = exports.RenderInputSchema.compileSchema(functionInputSchema);
|
250
261
|
const errors = exports.RenderInputSchema.validate(inputValue, inputSchema);
|
251
|
-
return
|
252
|
-
}
|
253
|
-
processValidationResult(errors) {
|
254
|
-
if (errors.length > 0) {
|
255
|
-
const ValidationDataMap = errors.reduce((acc, error) => {
|
256
|
-
var _a;
|
257
|
-
const pointer = (_a = error === null || error === void 0 ? void 0 : error.data) === null || _a === void 0 ? void 0 : _a.pointer;
|
258
|
-
const validationData = {
|
259
|
-
message: error.message,
|
260
|
-
data: error.data,
|
261
|
-
};
|
262
|
-
Object.keys(acc).includes(pointer) && Array.isArray(acc[pointer])
|
263
|
-
? acc[pointer].push(validationData)
|
264
|
-
: (acc[pointer] = [validationData]);
|
265
|
-
return acc;
|
266
|
-
}, {});
|
267
|
-
throw new SchemaValidationError_1.SchemaValidationError(errors.map((a) => a.message).join(',\n'), undefined, ValidationDataMap);
|
268
|
-
}
|
269
|
-
return true;
|
262
|
+
return processValidationResult(errors);
|
270
263
|
}
|
271
264
|
}
|
272
265
|
exports.JsonValidationService = JsonValidationService;
|
266
|
+
function processValidationResult(errors) {
|
267
|
+
if (errors.length > 0) {
|
268
|
+
const ValidationDataMap = errors.reduce((acc, error) => {
|
269
|
+
var _a;
|
270
|
+
const pointer = (_a = error === null || error === void 0 ? void 0 : error.data) === null || _a === void 0 ? void 0 : _a.pointer;
|
271
|
+
const validationData = {
|
272
|
+
message: error.message,
|
273
|
+
data: error.data,
|
274
|
+
};
|
275
|
+
Object.keys(acc).includes(pointer) && Array.isArray(acc[pointer])
|
276
|
+
? acc[pointer].push(validationData)
|
277
|
+
: (acc[pointer] = [validationData]);
|
278
|
+
return acc;
|
279
|
+
}, {});
|
280
|
+
throw new SchemaValidationError_1.SchemaValidationError(errors.map((a) => a.message).join(',\n'), undefined, ValidationDataMap);
|
281
|
+
}
|
282
|
+
return true;
|
283
|
+
}
|
273
284
|
//# sourceMappingURL=JsonValidationService.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsD;AAEtD,4GAA+E;AAC/E,gGAAmE;AACnE,sGAAyE;AACzE,kGAAqE;AAErE,gFAAwD;AAExD,gGAAmE;AAEnE,oEAAuC;AACvC,0EAA0G;AAC1G,oEAAgG;AAEhG,oEAA2D;AAE3D,gFAA6E;AAE7E,sEAAmE;AAEnE,MAAM,aAAa,GAAgB;IACjC,GAAG,mCAAa;IAChB,cAAc,EAAE;QACd,GAAG,mCAAa,CAAC,cAAc;QAC/B,GAAG,+CAAsB;KAC1B;IACD,MAAM,EAAE;QACN,GAAG,mCAAa,CAAC,MAAM;QACvB,SAAS,CAAC,IAAI;YACZ,IAAI,MAAM,GAAG,IAAI,CAAC;YAElB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACxC;qBAAM;oBACL,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC;iBAChF;aACF;YAED,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,0BAA0B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,qBAAqB,MAAM,IAAI;gBACjG,IAAI;aACL,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,IAAI;YACb,IAAI,KAAK,GAAG,WAAW,IAAI,CAAC,KAAK,OAAO,CAAC;YAEzC,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;gBACjC,KAAK,GAAG,WAAW,CAAC;aACrB;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC7B,KAAK,GAAG,UAAU,CAAC;aACpB;YAED,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,GAAG,KAAK,MAAM,IAAI,CAAC,OAAO,8BAA8B;gBACjE,IAAI;aACL,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,IAAI,6BAAO,CAAC,4BAAa,EAAE,aAAa,CAAC,CAAC;AAE9C,QAAA,oBAAoB,GAAG,IAAI,2BAAK,CAC3C;IACE,GAAG,aAAa;IAEhB,UAAU,CAAC,MAAM,EAAE,UAAU;QAC3B,MAAM,cAAc,GAAG,mCAAa,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAA4C,CAAC;QAC/G,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,cAAc,CAAC;SACvB;QAED,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,EAAE;YAC3C,OAAO,QAAQ,CAAC,UAAU,CAAC;SAC5B;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAC9F,OAAO;gBACL,GAAG,MAAM;gBACT,GAAG,QAAQ,CAAC,UAAU;gBACtB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC,4BAAa,CAAC,IAAe,CAAC;aACrG,CAAC;SACH;aAAM;YACL,OAAO,cAAc,CAAC;SACvB;IACH,CAAC;CACF,EACD,qCAAsB,CACvB,CAAC;AACF,4BAAoB,CAAC,eAAe,CAAC,sDAAsD,EAAE,kCAAmB,CAAC,CAAC;AAErG,QAAA,iBAAiB,GAAG,IAAI,2BAAK,CAAC;IACzC,GAAG,aAAa;IAChB,UAAU,CAAC,MAAM,EAAE,UAAU;QAC3B,MAAM,cAAc,GAAG,mCAAa,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAA4C,CAAC;QAC/G,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,cAAc,CAAC;SACvB;QAED,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,EAAE;YAC3C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAC3B;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAC9F,OAAO;gBACL,GAAG,MAAM;gBACT,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;aAChF,CAAC;SACH;aAAM;YACL,OAAO,cAAc,CAAC;SACvB;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,IAAI,6BAAO,CAAC,iBAAE,EAAE,aAAa,CAAC,CAAC;AAEhD,QAAQ,CAAC,eAAe,CAAC,sDAAsD,EAAE,kCAAmB,CAAC,CAAC;AACtG,QAAQ,CAAC,eAAe,CAAC,8BAA8B,EAAE,4BAAoB,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3F,QAAQ,CAAC,eAAe,CAAC,wBAAwB,EAAE,+BAAgB,CAAC,CAAC;AACrE,QAAQ,CAAC,eAAe,CAAC,yBAAyB,EAAE,gCAAiB,CAAC,CAAC;AACvE,QAAQ,CAAC,eAAe,CAAC,wCAAwC,EAAE,uBAAa,CAAC,CAAC;AAClF,QAAQ,CAAC,eAAe,CAAC,yCAAyC,EAAE,uBAAa,CAAC,CAAC;AAEtE,QAAA,wBAAwB,GAAoB;IACvD,IAAI,EAAE,qCAAsB;IAC5B,OAAO,EAAE;QACP,sDAAsD,EAAE,kCAAmB;KAC5E;CACF,CAAC;AAEW,QAAA,qBAAqB,GAAoB;IACpD,IAAI,EAAE,uBAAa;CACpB,CAAC;AAEW,QAAA,oBAAoB,GAAoB;IACnD,IAAI,EAAE,iBAAE;IACR,OAAO,EAAE;QACP,sDAAsD,EAAE,kCAAmB;QAC3E,8BAA8B,EAAE,qCAAsB;QACtD,wBAAwB,EAAE,+BAAgB;QAC1C,yBAAyB,EAAE,gCAAiB;QAC5C,wCAAwC,EAAE,uBAAa;QACvD,yCAAyC,EAAE,uBAAa;KACzD;CACF,CAAC;AAMF;;GAEG;AACH,MAAa,iBAAiB;IAE5B,YAAoB,YAAgC,EAAE,UAA2B;QAA7D,iBAAY,GAAZ,YAAY,CAAoB;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,2BAAK,CACrB;YACE,GAAG,aAAa;YAChB,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;YACzE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;YAC9F,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;SACvG,EACD,UAAU,CAAC,IAAI,CAChB,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;YACnE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACzC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE;YAClE,0CAA0C;YAC1C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,KAAK,OAAO,EAAE,MAAoB,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,KAAK,OAAO,EAAE,MAAoB,CAAC,CAAC;SAC7E;IACH,CAAC;IAEO,YAAY,CAAC,MAAkB,EAAE,UAAsB;QAC7D,MAAM,UAAU,GAAG,mCAAa,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU;YAAE,OAAO,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,UAAU,CAAC;QAE3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7F,qFAAqF;QACrF,MAAM,oBAAoB,GAAG;YAC3B,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;SAC7E,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,KAAc,EAAE,cAA0B,IAAI,CAAC,MAAM,CAAC,UAAU;QACnF,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACxD,OAAO,
|
1
|
+
{"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":"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"}
|
@@ -106,12 +106,25 @@ describe('JsonValidationService', () => {
|
|
106
106
|
})).toEqual(true);
|
107
107
|
});
|
108
108
|
it('should throw error for invalid matrix-asset-uri format', () => {
|
109
|
-
const invalidMatrixAssetUri = 'not-valid://canary
|
109
|
+
const invalidMatrixAssetUri = 'not-valid://canary uat matrix.squiz.cloud//abc123';
|
110
110
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
111
111
|
jsonValidationService.validateRenderInput(functionInputSchema, {
|
112
112
|
'matrix-asset': invalidMatrixAssetUri,
|
113
113
|
});
|
114
|
-
}, SchemaValidationError_1.SchemaValidationError, `failed validation:
|
114
|
+
}, SchemaValidationError_1.SchemaValidationError, `failed validation: matrix asset uri "not-valid://canary uat matrix.squiz.cloud//abc123" isn't a valid matrix asset uri`, {
|
115
|
+
assetId: {
|
116
|
+
data: { expected: /^\d+(?::.+)?$/, received: '/abc123' },
|
117
|
+
message: 'Matrix Asset Id has invalid format, must match /^d+(?::.+)?$/',
|
118
|
+
},
|
119
|
+
identifier: {
|
120
|
+
data: { expected: /^[a-zA-Z0-9.-]+$/, received: 'canary uat matrix.squiz.cloud' },
|
121
|
+
message: 'Matrix Identifier has invalid format, must match /^[a-zA-Z0-9.-]+$/',
|
122
|
+
},
|
123
|
+
scheme: {
|
124
|
+
data: { expected: 'matrix-asset', received: 'not-valid' },
|
125
|
+
message: 'Uri scheme is invalid, must match "matrix-asset"',
|
126
|
+
},
|
127
|
+
});
|
115
128
|
});
|
116
129
|
it('should throw error for invalid matrix-asset-uri type number', () => {
|
117
130
|
const invalidMatrixAssetUri = 1234;
|
@@ -134,7 +147,20 @@ describe('JsonValidationService', () => {
|
|
134
147
|
jsonValidationService.validateRenderInput(functionInputSchema, {
|
135
148
|
'matrix-asset': invalidMatrixAssetUri,
|
136
149
|
});
|
137
|
-
}, SchemaValidationError_1.SchemaValidationError, `failed validation:
|
150
|
+
}, SchemaValidationError_1.SchemaValidationError, `failed validation: matrix asset uri "matrix://" isn't a valid matrix asset uri`, {
|
151
|
+
assetId: {
|
152
|
+
data: { expected: /^\d+(?::.+)?$/, received: '' },
|
153
|
+
message: 'Matrix Asset Id has invalid format, must match /^d+(?::.+)?$/',
|
154
|
+
},
|
155
|
+
identifier: {
|
156
|
+
data: { expected: /^[a-zA-Z0-9.-]+$/, received: '' },
|
157
|
+
message: 'Matrix Identifier has invalid format, must match /^[a-zA-Z0-9.-]+$/',
|
158
|
+
},
|
159
|
+
scheme: {
|
160
|
+
data: { expected: 'matrix-asset', received: 'matrix' },
|
161
|
+
message: 'Uri scheme is invalid, must match "matrix-asset"',
|
162
|
+
},
|
163
|
+
});
|
138
164
|
});
|
139
165
|
});
|
140
166
|
it('should validate a property with type FormattedText as string', () => {
|
@@ -164,10 +190,10 @@ describe('JsonValidationService', () => {
|
|
164
190
|
};
|
165
191
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
166
192
|
jsonValidationService.validateRenderInput(schema, value);
|
167
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Expected `[
|
193
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Expected `Array [{"type":"text","value":"hello"}]` (array) in `#/my-input` to be of type `string`', {
|
168
194
|
'#/my-input': [
|
169
195
|
{
|
170
|
-
message: 'Expected `[
|
196
|
+
message: 'Expected `Array [{"type":"text","value":"hello"}]` (array) in `#/my-input` to be of type `string`',
|
171
197
|
data: {
|
172
198
|
received: 'array',
|
173
199
|
expected: 'string',
|
@@ -276,7 +302,14 @@ describe('JsonSchemaService', () => {
|
|
276
302
|
};
|
277
303
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
278
304
|
jsonSchemaService.validateInput(contentSchema);
|
279
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: The required property `required` is missing at `#/properties/my-input`'
|
305
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: The required property `required` is missing at `#/properties/my-input`', {
|
306
|
+
'#/properties/my-input': [
|
307
|
+
{
|
308
|
+
data: { key: 'required', pointer: '#/properties/my-input' },
|
309
|
+
message: 'The required property `required` is missing at `#/properties/my-input`',
|
310
|
+
},
|
311
|
+
],
|
312
|
+
});
|
280
313
|
});
|
281
314
|
it('should throw a SchemaValidationError for an invalid content schema, top level type must be object', () => {
|
282
315
|
const contentSchema = {
|
@@ -291,7 +324,14 @@ describe('JsonSchemaService', () => {
|
|
291
324
|
};
|
292
325
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
293
326
|
jsonSchemaService.validateInput(contentSchema);
|
294
|
-
}, SchemaValidationError_1.SchemaValidationError, `failed validation: Expected value at \`#/type\` to be \`object\`, but value given is \`array
|
327
|
+
}, SchemaValidationError_1.SchemaValidationError, `failed validation: Expected value at \`#/type\` to be \`object\`, but value given is \`array\``, {
|
328
|
+
'#/type': [
|
329
|
+
{
|
330
|
+
data: { expected: 'object', pointer: '#/type', value: 'array' },
|
331
|
+
message: 'Expected value at `#/type` to be `object`, but value given is `array`',
|
332
|
+
},
|
333
|
+
],
|
334
|
+
});
|
295
335
|
});
|
296
336
|
it('should throw a SchemaValidationError for an invalid content schema missing the required property', () => {
|
297
337
|
const contentSchema = {
|
@@ -302,7 +342,73 @@ describe('JsonSchemaService', () => {
|
|
302
342
|
};
|
303
343
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
304
344
|
jsonSchemaService.validateInput(contentSchema);
|
305
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: The required property `required` is missing at `#`'
|
345
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: The required property `required` is missing at `#`', {
|
346
|
+
'#': [
|
347
|
+
{ data: { key: 'required', pointer: '#' }, message: 'The required property `required` is missing at `#`' },
|
348
|
+
],
|
349
|
+
});
|
350
|
+
});
|
351
|
+
});
|
352
|
+
describe('SquizImage input', () => {
|
353
|
+
it('should validate a squizImage input', () => {
|
354
|
+
const schema = {
|
355
|
+
type: 'object',
|
356
|
+
properties: {
|
357
|
+
image: {
|
358
|
+
type: 'SquizImage',
|
359
|
+
},
|
360
|
+
},
|
361
|
+
};
|
362
|
+
const value = {
|
363
|
+
name: 'My Image',
|
364
|
+
alt: 'My Image that did not load',
|
365
|
+
caption: 'This above is a loaded image',
|
366
|
+
imageVariations: {
|
367
|
+
original: {
|
368
|
+
url: 'https://picsum.photos/200/300',
|
369
|
+
width: 100,
|
370
|
+
height: 100,
|
371
|
+
byteSize: 1000,
|
372
|
+
mimeType: 'image/jpeg',
|
373
|
+
aspectRatio: '1:1',
|
374
|
+
sha1Hash: '1234567890abcdef1234567890abcdef12345678',
|
375
|
+
},
|
376
|
+
},
|
377
|
+
};
|
378
|
+
expect(jsonSchemaService.validateInput(value, schema)).toEqual(true);
|
379
|
+
});
|
380
|
+
it('should error if SquizImage type is missing required properties', async () => {
|
381
|
+
const schema = {
|
382
|
+
type: 'object',
|
383
|
+
properties: {
|
384
|
+
myProp: {
|
385
|
+
type: 'SquizImage',
|
386
|
+
},
|
387
|
+
},
|
388
|
+
};
|
389
|
+
const value = {
|
390
|
+
// @ts-expect-error - missing required properties
|
391
|
+
myProp: {
|
392
|
+
alt: 'alt',
|
393
|
+
caption: 'caption',
|
394
|
+
name: 'name',
|
395
|
+
},
|
396
|
+
};
|
397
|
+
expectToThrowErrorMatchingTypeAndMessage(() => {
|
398
|
+
jsonSchemaService.validateInput(value, schema);
|
399
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Expected `Object {"alt":"alt","caption":"caption","name":"name"}` (object) in `#/myProp` to be of type `SquizImage`', {
|
400
|
+
'#/myProp': [
|
401
|
+
{
|
402
|
+
data: {
|
403
|
+
expected: 'SquizImage',
|
404
|
+
pointer: '#/myProp',
|
405
|
+
received: 'object',
|
406
|
+
value: { alt: 'alt', caption: 'caption', name: 'name' },
|
407
|
+
},
|
408
|
+
message: 'Expected `Object {"alt":"alt","caption":"caption","name":"name"}` (object) in `#/myProp` to be of type `SquizImage`',
|
409
|
+
},
|
410
|
+
],
|
411
|
+
});
|
306
412
|
});
|
307
413
|
});
|
308
414
|
describe('FormattedText input', () => {
|
@@ -386,7 +492,27 @@ describe('JsonSchemaService', () => {
|
|
386
492
|
};
|
387
493
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
388
494
|
jsonSchemaService.validateInput(inputValue, functionInputSchema);
|
389
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `123` in `#/my-input` does not match any given oneof schema'
|
495
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `123` in `#/my-input` does not match any given oneof schema', {
|
496
|
+
'#/my-input': [
|
497
|
+
{
|
498
|
+
data: {
|
499
|
+
errors: [
|
500
|
+
{
|
501
|
+
code: 'type-error',
|
502
|
+
data: { expected: 'array', pointer: '#/my-input', received: 'number', value: 123 },
|
503
|
+
message: 'Expected `123` (number) in `#/my-input` to be of type `array`',
|
504
|
+
name: 'TypeError',
|
505
|
+
type: 'error',
|
506
|
+
},
|
507
|
+
],
|
508
|
+
oneOf: [{ $ref: 'FormattedText.json' }],
|
509
|
+
pointer: '#/my-input',
|
510
|
+
value: '123',
|
511
|
+
},
|
512
|
+
message: 'Value `123` in `#/my-input` does not match any given oneof schema',
|
513
|
+
},
|
514
|
+
],
|
515
|
+
});
|
390
516
|
});
|
391
517
|
it('should throw an error if the FormattedText input is invalid formatted text', () => {
|
392
518
|
const functionInputSchema = {
|
@@ -403,7 +529,27 @@ describe('JsonSchemaService', () => {
|
|
403
529
|
};
|
404
530
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
405
531
|
jsonSchemaService.validateInput(inputValue, functionInputSchema);
|
406
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `{"something":"aa"}` in `#/my-input` does not match any given oneof schema'
|
532
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `{"something":"aa"}` in `#/my-input` does not match any given oneof schema', {
|
533
|
+
'#/my-input': [
|
534
|
+
{
|
535
|
+
data: {
|
536
|
+
errors: [
|
537
|
+
{
|
538
|
+
code: 'type-error',
|
539
|
+
data: { expected: 'array', pointer: '#/my-input', received: 'object', value: { something: 'aa' } },
|
540
|
+
message: 'Expected `Object {"something":"aa"}` (object) in `#/my-input` to be of type `array`',
|
541
|
+
name: 'TypeError',
|
542
|
+
type: 'error',
|
543
|
+
},
|
544
|
+
],
|
545
|
+
oneOf: [{ $ref: 'FormattedText.json' }],
|
546
|
+
pointer: '#/my-input',
|
547
|
+
value: '{"something":"aa"}',
|
548
|
+
},
|
549
|
+
message: 'Value `{"something":"aa"}` in `#/my-input` does not match any given oneof schema',
|
550
|
+
},
|
551
|
+
],
|
552
|
+
});
|
407
553
|
});
|
408
554
|
it('should throw an error if the FormattedText input is invalid formatted text (deeply nested)', () => {
|
409
555
|
const functionInputSchema = {
|
@@ -431,7 +577,44 @@ describe('JsonSchemaService', () => {
|
|
431
577
|
};
|
432
578
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
433
579
|
jsonSchemaService.validateInput(inputValue, functionInputSchema);
|
434
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `[{"tag":"p","type":"tag","children":[{"type":"text","value":"This is some "},{"type":"text","value":"Link to asset 12345"},{"type":"text","value":" with an image "},{"type":"text","value":123},{"type":"text","value":"."}]}]` in `#/my-input` does not match any given oneof schema'
|
580
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `[{"tag":"p","type":"tag","children":[{"type":"text","value":"This is some "},{"type":"text","value":"Link to asset 12345"},{"type":"text","value":" with an image "},{"type":"text","value":123},{"type":"text","value":"."}]}]` in `#/my-input` does not match any given oneof schema', {
|
581
|
+
'#/my-input': [
|
582
|
+
{
|
583
|
+
data: {
|
584
|
+
errors: [
|
585
|
+
{
|
586
|
+
code: 'any-of-error',
|
587
|
+
data: {
|
588
|
+
anyOf: [
|
589
|
+
{ $ref: '#/definitions/HigherOrderFormattedNodes' },
|
590
|
+
{ $ref: '#/definitions/BaseFormattedNodes' },
|
591
|
+
],
|
592
|
+
pointer: '#/my-input/0',
|
593
|
+
value: {
|
594
|
+
children: [
|
595
|
+
{ type: 'text', value: 'This is some ' },
|
596
|
+
{ type: 'text', value: 'Link to asset 12345' },
|
597
|
+
{ type: 'text', value: ' with an image ' },
|
598
|
+
{ type: 'text', value: 123 },
|
599
|
+
{ type: 'text', value: '.' },
|
600
|
+
],
|
601
|
+
tag: 'p',
|
602
|
+
type: 'tag',
|
603
|
+
},
|
604
|
+
},
|
605
|
+
message: 'Object at `#/my-input/0` does not match any schema',
|
606
|
+
name: 'AnyOfError',
|
607
|
+
type: 'error',
|
608
|
+
},
|
609
|
+
],
|
610
|
+
oneOf: [{ $ref: 'FormattedText.json' }],
|
611
|
+
pointer: '#/my-input',
|
612
|
+
value: '[{"tag":"p","type":"tag","children":[{"type":"text","value":"This is some "},{"type":"text","value":"Link to asset 12345"},{"type":"text","value":" with an image "},{"type":"text","value":123},{"type":"text","value":"."}]}]',
|
613
|
+
},
|
614
|
+
message: 'Value `[{"tag":"p","type":"tag","children":[{"type":"text","value":"This is some "},{"type":"text","value":"Link to asset 12345"},{"type":"text","value":" with an image "},{"type":"text","value":123},{"type":"text","value":"."}]}]` in `#/my-input` does not match any given oneof schema',
|
615
|
+
},
|
616
|
+
],
|
617
|
+
});
|
435
618
|
});
|
436
619
|
it('should validate an array of formatted texts', () => {
|
437
620
|
const formattedText = [
|
@@ -505,7 +688,32 @@ describe('JsonSchemaService', () => {
|
|
505
688
|
};
|
506
689
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
507
690
|
jsonSchemaService.validateInput(inputValue, functionInputSchema);
|
508
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `{"bad":"data"}` in `#/deep/arr/0/formattedTextArray/2` does not match any given oneof schema'
|
691
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `{"bad":"data"}` in `#/deep/arr/0/formattedTextArray/2` does not match any given oneof schema', {
|
692
|
+
'#/deep/arr/0/formattedTextArray/2': [
|
693
|
+
{
|
694
|
+
data: {
|
695
|
+
errors: [
|
696
|
+
{
|
697
|
+
code: 'type-error',
|
698
|
+
data: {
|
699
|
+
expected: 'array',
|
700
|
+
pointer: '#/deep/arr/0/formattedTextArray/2',
|
701
|
+
received: 'object',
|
702
|
+
value: { bad: 'data' },
|
703
|
+
},
|
704
|
+
message: 'Expected `Object {"bad":"data"}` (object) in `#/deep/arr/0/formattedTextArray/2` to be of type `array`',
|
705
|
+
name: 'TypeError',
|
706
|
+
type: 'error',
|
707
|
+
},
|
708
|
+
],
|
709
|
+
oneOf: [{ $ref: 'FormattedText.json' }],
|
710
|
+
pointer: '#/deep/arr/0/formattedTextArray/2',
|
711
|
+
value: '{"bad":"data"}',
|
712
|
+
},
|
713
|
+
message: 'Value `{"bad":"data"}` in `#/deep/arr/0/formattedTextArray/2` does not match any given oneof schema',
|
714
|
+
},
|
715
|
+
],
|
716
|
+
});
|
509
717
|
});
|
510
718
|
it('should validate a FormattedText value when the schema is a $ref', async () => {
|
511
719
|
const formattedText = [
|
@@ -546,7 +754,27 @@ describe('JsonSchemaService', () => {
|
|
546
754
|
};
|
547
755
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
548
756
|
jsonSchemaService.validateInput(value, schema);
|
549
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `{"bad":"data"}` in `#/my-input` does not match any given oneof schema'
|
757
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Value `{"bad":"data"}` in `#/my-input` does not match any given oneof schema', {
|
758
|
+
'#/my-input': [
|
759
|
+
{
|
760
|
+
data: {
|
761
|
+
errors: [
|
762
|
+
{
|
763
|
+
code: 'type-error',
|
764
|
+
data: { expected: 'array', pointer: '#/my-input', received: 'object', value: { bad: 'data' } },
|
765
|
+
message: 'Expected `Object {"bad":"data"}` (object) in `#/my-input` to be of type `array`',
|
766
|
+
name: 'TypeError',
|
767
|
+
type: 'error',
|
768
|
+
},
|
769
|
+
],
|
770
|
+
oneOf: [{ $ref: 'FormattedText.json' }],
|
771
|
+
pointer: '#/my-input',
|
772
|
+
value: '{"bad":"data"}',
|
773
|
+
},
|
774
|
+
message: 'Value `{"bad":"data"}` in `#/my-input` does not match any given oneof schema',
|
775
|
+
},
|
776
|
+
],
|
777
|
+
});
|
550
778
|
});
|
551
779
|
it('should validate a FormattedText value when the schema is a $ref to a $ref', async () => {
|
552
780
|
const formattedText = [
|
@@ -618,18 +846,36 @@ describe('JsonSchemaService', () => {
|
|
618
846
|
};
|
619
847
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
620
848
|
jsonSchemaService.validateInput(inputValue, functionInputSchema);
|
621
|
-
}, SchemaValidationError_1.SchemaValidationError, `failed validation: Expected \`123\` (string) in \`#/my-input\` to be of type \`number
|
849
|
+
}, SchemaValidationError_1.SchemaValidationError, `failed validation: Expected \`123\` (string) in \`#/my-input\` to be of type \`number\``, {
|
850
|
+
'#/my-input': [
|
851
|
+
{
|
852
|
+
data: { expected: 'number', pointer: '#/my-input', received: 'string', value: '123' },
|
853
|
+
message: 'Expected `123` (string) in `#/my-input` to be of type `number`',
|
854
|
+
},
|
855
|
+
],
|
856
|
+
});
|
622
857
|
});
|
623
858
|
it('should throw a SchemaValidationError for invalid input missing properties', () => {
|
624
859
|
const inputValue = {};
|
625
860
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
626
861
|
jsonSchemaService.validateInput(inputValue, functionInputSchema);
|
627
|
-
}, SchemaValidationError_1.SchemaValidationError, `failed validation: The required property \`my-input\` is missing at
|
862
|
+
}, SchemaValidationError_1.SchemaValidationError, `failed validation: The required property \`my-input\` is missing at \`#\``, {
|
863
|
+
'#': [
|
864
|
+
{ data: { key: 'my-input', pointer: '#' }, message: 'The required property `my-input` is missing at `#`' },
|
865
|
+
],
|
866
|
+
});
|
628
867
|
});
|
629
868
|
it('should throw a SchemaValidationError with a truncated enum value list if there are more than 5 enum options', () => {
|
630
869
|
expectToThrowErrorMatchingTypeAndMessage(() => {
|
631
870
|
jsonSchemaService.validateInput({ enum: 'z' }, { type: 'object', properties: { enum: { type: 'string', enum: ['a', 'b', 'c', 'd', 'e', 'f', 'g'] } } });
|
632
|
-
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Expected given value `z` in #/enum` to be one of `[a, b, c, d, e, ... 2 more]`'
|
871
|
+
}, SchemaValidationError_1.SchemaValidationError, 'failed validation: Expected given value `z` in #/enum` to be one of `[a, b, c, d, e, ... 2 more]`', {
|
872
|
+
'#/enum': [
|
873
|
+
{
|
874
|
+
data: { pointer: '#/enum', value: 'z', values: ['a', 'b', 'c', 'd', 'e', 'f', 'g'] },
|
875
|
+
message: 'Expected given value `z` in #/enum` to be one of `[a, b, c, d, e, ... 2 more]`',
|
876
|
+
},
|
877
|
+
],
|
878
|
+
});
|
633
879
|
});
|
634
880
|
// TODO DEVX-658
|
635
881
|
it.skip('should throw a SchemaValidationError for invalid input additional properties', () => {
|