@squiz/dx-json-schema-lib 1.33.1-alpha.4 → 1.33.1-alpha.5
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/.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', () => {
|