@squiz/dx-json-schema-lib 1.79.0 → 1.80.1
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/CHANGELOG.md +12 -0
- package/jest.config.ts +13 -2
- package/lib/JsonSchemaService.d.ts +34 -0
- package/lib/JsonSchemaService.js +140 -0
- package/lib/JsonSchemaService.js.map +1 -0
- package/lib/JsonSchemaService.spec.d.ts +1 -0
- package/lib/JsonSchemaService.spec.js +1807 -0
- package/lib/JsonSchemaService.spec.js.map +1 -0
- package/lib/JsonValidationService.d.ts +11 -33
- package/lib/JsonValidationService.js +43 -194
- package/lib/JsonValidationService.js.map +1 -1
- package/lib/JsonValidationService.spec.js +19 -1800
- package/lib/JsonValidationService.spec.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/jsonTypeResolution/TypeResolver.d.ts +4 -2
- package/lib/jsonTypeResolution/TypeResolver.js +0 -3
- package/lib/jsonTypeResolution/TypeResolver.js.map +1 -1
- package/lib/jsonTypeResolution/TypeResolver.spec.js +10 -0
- package/lib/jsonTypeResolution/TypeResolver.spec.js.map +1 -1
- package/lib/manifest/v1/DxComponentInputSchema.spec.js +18 -0
- package/lib/manifest/v1/DxComponentInputSchema.spec.js.map +1 -1
- package/lib/manifest/v1/DxContentMetaSchema.json +24 -32
- package/lib/manifest/v1/JobV1.d.ts +23 -18
- package/lib/manifest/v1/__test__/schemas/invalidUiMetadata.json +31 -0
- package/lib/manifest/v1/v1.d.ts +23 -18
- package/lib/manifest/v1/v1.spec.js +3 -66
- package/lib/manifest/v1/v1.spec.js.map +1 -1
- package/lib/primitiveTypes/SquizImage.d.ts +2 -1
- package/lib/primitiveTypes/SquizImage.js.map +1 -1
- package/lib/processValidationResult.d.ts +2 -0
- package/lib/processValidationResult.js +24 -0
- package/lib/processValidationResult.js.map +1 -0
- package/lib/validators/customKeywordValidators.d.ts +2 -0
- package/lib/validators/customKeywordValidators.js +47 -0
- package/lib/validators/customKeywordValidators.js.map +1 -0
- package/lib/validators/customKeywordValidators.spec.d.ts +1 -0
- package/lib/validators/customKeywordValidators.spec.js +100 -0
- package/lib/validators/customKeywordValidators.spec.js.map +1 -0
- package/package.json +2 -5
- package/src/JsonSchemaService.spec.ts +2198 -0
- package/src/JsonSchemaService.ts +159 -0
- package/src/JsonValidationService.spec.ts +26 -2195
- package/src/JsonValidationService.ts +64 -226
- package/src/index.ts +1 -0
- package/src/jsonTypeResolution/TypeResolver.spec.ts +12 -0
- package/src/jsonTypeResolution/TypeResolver.ts +5 -5
- package/src/manifest/v1/DxComponentInputSchema.spec.ts +21 -0
- package/src/manifest/v1/DxContentMetaSchema.json +24 -32
- package/src/manifest/v1/JobV1.ts +23 -23
- package/src/manifest/v1/__test__/schemas/invalidUiMetadata.json +31 -0
- package/src/manifest/v1/v1.spec.ts +3 -73
- package/src/manifest/v1/v1.ts +23 -23
- package/src/primitiveTypes/SquizImage.ts +2 -1
- package/src/processValidationResult.ts +20 -0
- package/src/validators/customKeywordValidators.spec.ts +171 -0
- package/src/validators/customKeywordValidators.ts +53 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
package/jest.config.ts
CHANGED
@@ -1,14 +1,25 @@
|
|
1
1
|
import type { Config } from 'jest';
|
2
2
|
|
3
3
|
import { config as configFunc } from 'dotenv';
|
4
|
+
import { defaultConfig } from '../../jest.config';
|
4
5
|
configFunc();
|
5
6
|
|
6
7
|
// Sync object
|
7
8
|
const config: Config = {
|
8
|
-
|
9
|
+
...defaultConfig,
|
9
10
|
testTimeout: 60_000,
|
10
11
|
testEnvironment: 'node',
|
11
|
-
|
12
|
+
clearMocks: false,
|
13
|
+
resetMocks: false,
|
14
|
+
resetModules: false,
|
15
|
+
coverageThreshold: {
|
16
|
+
global: {
|
17
|
+
branches: 80,
|
18
|
+
functions: 90,
|
19
|
+
lines: 90,
|
20
|
+
statements: 90,
|
21
|
+
},
|
22
|
+
},
|
12
23
|
testPathIgnorePatterns: [
|
13
24
|
'<rootDir>/lib/',
|
14
25
|
'<rootDir>/cdk.out/',
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { Input } from '@sagold/json-query';
|
2
|
+
import { JSONSchema, Draft } from '@squiz/json-schema-library';
|
3
|
+
import { AnyPrimitiveType, AnyResolvableType, ResolverContext, TypeResolver } from './jsonTypeResolution/TypeResolver';
|
4
|
+
export declare const ComponentInputMetaSchema: MetaSchemaInput;
|
5
|
+
export declare const RenderInputMetaSchema: MetaSchemaInput;
|
6
|
+
export declare const ManifestV1MetaSchema: MetaSchemaInput;
|
7
|
+
export declare const JobV1MetaSchema: MetaSchemaInput;
|
8
|
+
interface MetaSchemaInput {
|
9
|
+
root: JSONSchema;
|
10
|
+
remotes?: Record<string, JSONSchema>;
|
11
|
+
}
|
12
|
+
/**
|
13
|
+
* A service that can be used to validate and resolve JSON against a schema.
|
14
|
+
*/
|
15
|
+
export declare class JSONSchemaService<P extends AnyPrimitiveType, R extends AnyResolvableType> {
|
16
|
+
private typeResolver;
|
17
|
+
schema: Draft;
|
18
|
+
constructor(typeResolver: TypeResolver<P, R>, metaSchema: MetaSchemaInput);
|
19
|
+
private doResolveRef;
|
20
|
+
/**
|
21
|
+
* Validate an input value against a specified schema
|
22
|
+
* @throws {SchemaValidationError} if the input is invalid
|
23
|
+
* @returns true if the input is valid
|
24
|
+
*/
|
25
|
+
validateInput(input: unknown, inputSchema?: JSONSchema): true | never;
|
26
|
+
/**
|
27
|
+
* Resolve an input object by replacing all resolvable shapes with their resolved values
|
28
|
+
* @param input any input object which matches the input schema
|
29
|
+
* @param inputSchema a JSONSchema which provides type information about the input object
|
30
|
+
* @returns the input object with all resolvable shapes resolved
|
31
|
+
*/
|
32
|
+
resolveInput(input: Input, inputSchema: JSONSchema, ctx?: ResolverContext): Promise<Input>;
|
33
|
+
}
|
34
|
+
export {};
|
@@ -0,0 +1,140 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.JSONSchemaService = exports.JobV1MetaSchema = exports.ManifestV1MetaSchema = exports.RenderInputMetaSchema = exports.ComponentInputMetaSchema = void 0;
|
7
|
+
const json_query_1 = __importDefault(require("@sagold/json-query"));
|
8
|
+
const DxComponentInputSchema_json_1 = __importDefault(require("./manifest/v1/DxComponentInputSchema.json"));
|
9
|
+
const DxComponentIcons_json_1 = __importDefault(require("./manifest/v1/DxComponentIcons.json"));
|
10
|
+
const DxContentMetaSchema_json_1 = __importDefault(require("./manifest/v1/DxContentMetaSchema.json"));
|
11
|
+
const MatrixAssetSchema_json_1 = __importDefault(require("./manifest/v1/MatrixAssetSchema.json"));
|
12
|
+
const Draft_07_json_1 = __importDefault(require("./manifest/v1/Draft-07.json"));
|
13
|
+
const JobV1_json_1 = __importDefault(require("./manifest/v1/JobV1.json"));
|
14
|
+
const v1_json_1 = __importDefault(require("./manifest/v1/v1.json"));
|
15
|
+
const json_schema_library_1 = require("@squiz/json-schema-library");
|
16
|
+
const json_schema_library_2 = require("@squiz/json-schema-library");
|
17
|
+
const JsonResolutionError_1 = require("./errors/JsonResolutionError");
|
18
|
+
const processValidationResult_1 = require("./processValidationResult");
|
19
|
+
const _1 = require(".");
|
20
|
+
exports.ComponentInputMetaSchema = {
|
21
|
+
root: DxComponentInputSchema_json_1.default,
|
22
|
+
remotes: {
|
23
|
+
'DxComponentInputSchema.json/DxContentMetaSchema.json': DxContentMetaSchema_json_1.default,
|
24
|
+
},
|
25
|
+
};
|
26
|
+
exports.RenderInputMetaSchema = {
|
27
|
+
root: Draft_07_json_1.default,
|
28
|
+
};
|
29
|
+
exports.ManifestV1MetaSchema = {
|
30
|
+
root: v1_json_1.default,
|
31
|
+
remotes: {
|
32
|
+
'DxComponentInputSchema.json/DxContentMetaSchema.json': DxContentMetaSchema_json_1.default,
|
33
|
+
'/DxComponentInputSchema.json': DxComponentInputSchema_json_1.default,
|
34
|
+
'/DxComponentIcons.json': DxComponentIcons_json_1.default,
|
35
|
+
'/MatrixAssetSchema.json': MatrixAssetSchema_json_1.default,
|
36
|
+
'http://json-schema.org/draft-07/schema': Draft_07_json_1.default,
|
37
|
+
'http://json-schema.org/draft-07/schema#': Draft_07_json_1.default,
|
38
|
+
},
|
39
|
+
};
|
40
|
+
exports.JobV1MetaSchema = {
|
41
|
+
root: JobV1_json_1.default,
|
42
|
+
remotes: {
|
43
|
+
'DxComponentInputSchema.json/DxContentMetaSchema.json': DxContentMetaSchema_json_1.default,
|
44
|
+
'/DxComponentInputSchema.json': DxComponentInputSchema_json_1.default,
|
45
|
+
'http://json-schema.org/draft-07/schema': Draft_07_json_1.default,
|
46
|
+
'http://json-schema.org/draft-07/schema#': Draft_07_json_1.default,
|
47
|
+
},
|
48
|
+
};
|
49
|
+
/**
|
50
|
+
* A service that can be used to validate and resolve JSON against a schema.
|
51
|
+
*/
|
52
|
+
class JSONSchemaService {
|
53
|
+
constructor(typeResolver, metaSchema) {
|
54
|
+
this.typeResolver = typeResolver;
|
55
|
+
this.schema = new json_schema_library_1.Draft({
|
56
|
+
..._1.defaultConfig,
|
57
|
+
resolveRef: (schema, rootSchema) => this.doResolveRef(schema, rootSchema),
|
58
|
+
validate: (core, data, schema, pointer) => _1.defaultConfig.validate(core, data, schema, pointer),
|
59
|
+
resolveOneOf: (core, data, schema, pointer) => _1.defaultConfig.resolveOneOf(core, data, schema, pointer),
|
60
|
+
}, metaSchema.root);
|
61
|
+
for (const [key, value] of Object.entries(metaSchema.remotes || {})) {
|
62
|
+
this.schema.addRemoteSchema(key, value);
|
63
|
+
}
|
64
|
+
for (const schema of this.typeResolver.validationSchemaDefinitions) {
|
65
|
+
// Please find a better way of doing this.
|
66
|
+
this.schema.addRemoteSchema(`/${schema.title}.json`, schema);
|
67
|
+
this.schema.addRemoteSchema(`#/${schema.title}.json`, schema);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
doResolveRef(schema, rootSchema) {
|
71
|
+
const initialRef = json_schema_library_2.draft07Config.resolveRef(schema, rootSchema);
|
72
|
+
if (!initialRef)
|
73
|
+
return initialRef;
|
74
|
+
if (!this.typeResolver.isPrimitiveType(initialRef.type))
|
75
|
+
return initialRef;
|
76
|
+
const validationSchemas = this.typeResolver.getValidationSchemaForPrimitive(initialRef.type);
|
77
|
+
// All validation schemas are pre-compiled as remote schemas and are referenced below
|
78
|
+
const fullValidationSchema = {
|
79
|
+
oneOf: validationSchemas.map((schema) => ({ $ref: `${schema.title}.json` })),
|
80
|
+
};
|
81
|
+
return this.schema.compileSchema(fullValidationSchema);
|
82
|
+
}
|
83
|
+
/**
|
84
|
+
* Validate an input value against a specified schema
|
85
|
+
* @throws {SchemaValidationError} if the input is invalid
|
86
|
+
* @returns true if the input is valid
|
87
|
+
*/
|
88
|
+
validateInput(input, inputSchema = this.schema.rootSchema) {
|
89
|
+
inputSchema = this.schema.compileSchema(inputSchema);
|
90
|
+
const errors = this.schema.validate(input, inputSchema);
|
91
|
+
return (0, processValidationResult_1.processValidationResult)(errors);
|
92
|
+
}
|
93
|
+
/**
|
94
|
+
* Resolve an input object by replacing all resolvable shapes with their resolved values
|
95
|
+
* @param input any input object which matches the input schema
|
96
|
+
* @param inputSchema a JSONSchema which provides type information about the input object
|
97
|
+
* @returns the input object with all resolvable shapes resolved
|
98
|
+
*/
|
99
|
+
async resolveInput(input, inputSchema, ctx = {}) {
|
100
|
+
const setters = [];
|
101
|
+
this.schema.each(input, async (schema, value, pointer) => {
|
102
|
+
// Bug in library for Array item schemas which won't resolve the oneOf schema
|
103
|
+
if (Array.isArray(schema === null || schema === void 0 ? void 0 : schema.oneOf)) {
|
104
|
+
const oldSchema = schema;
|
105
|
+
schema = this.schema.resolveOneOf(value, schema);
|
106
|
+
schema.oneOfSchema = oldSchema;
|
107
|
+
}
|
108
|
+
if (!this.typeResolver.isResolvableSchema(schema))
|
109
|
+
return;
|
110
|
+
// If its a resolvable schema, it should exist in a oneOf array with other schemas
|
111
|
+
// Including a primitive schema
|
112
|
+
const allPossibleSchemaTitles = schema.oneOfSchema.oneOf.map((o) => o.$ref.replace('.json', ''));
|
113
|
+
const primitiveSchema = allPossibleSchemaTitles.find((title) => this.typeResolver.isPrimitiveType(title));
|
114
|
+
if (!primitiveSchema)
|
115
|
+
return;
|
116
|
+
const resolver = this.typeResolver.tryGetResolver(primitiveSchema, schema);
|
117
|
+
if (!resolver)
|
118
|
+
return;
|
119
|
+
const setResolvedData = Promise.resolve()
|
120
|
+
.then(() => resolver(value, ctx))
|
121
|
+
.then((resolvedData) => (item) => json_query_1.default.set(item, pointer, resolvedData, 'replace'))
|
122
|
+
.catch((e) => Promise.reject(new JsonResolutionError_1.JsonResolutionError(e, pointer, value)));
|
123
|
+
setters.push(setResolvedData);
|
124
|
+
}, inputSchema);
|
125
|
+
const potentialResolutionErrors = [];
|
126
|
+
for (const resolveResult of await Promise.allSettled(setters)) {
|
127
|
+
if (resolveResult.status === 'rejected') {
|
128
|
+
potentialResolutionErrors.push(resolveResult.reason);
|
129
|
+
continue;
|
130
|
+
}
|
131
|
+
input = resolveResult.value(input);
|
132
|
+
}
|
133
|
+
if (potentialResolutionErrors.length) {
|
134
|
+
throw new Error(`Error(s) occurred when resolving JSON:\n${potentialResolutionErrors.join('\n')}`);
|
135
|
+
}
|
136
|
+
return input;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
exports.JSONSchemaService = JSONSchemaService;
|
140
|
+
//# sourceMappingURL=JsonSchemaService.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"JsonSchemaService.js","sourceRoot":"","sources":["../src/JsonSchemaService.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|