@squiz/dx-json-schema-lib 1.12.0-alpha.46 → 1.12.0-alpha.48
Sign up to get free protection for your applications and to get access to all the features.
- package/.npm/_logs/{2023-02-24T01_14_03_380Z-debug-0.log → 2023-02-24T06_22_01_362Z-debug-0.log} +12 -12
- package/lib/JsonValidationService.d.ts +33 -0
- package/lib/JsonValidationService.js +101 -1
- package/lib/JsonValidationService.js.map +1 -1
- package/lib/JsonValidationService.spec.js +168 -0
- package/lib/JsonValidationService.spec.js.map +1 -1
- package/lib/errors/JsonResolutionError.d.ts +5 -0
- package/lib/errors/JsonResolutionError.js +12 -0
- package/lib/errors/JsonResolutionError.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/jsonTypeResolution/arbitraryTypeResolution.d.ts +61 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.js +61 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.js.map +1 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.d.ts +1 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.js +100 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.js.map +1 -0
- package/lib/jsonTypeResolution/index.d.ts +76 -0
- package/lib/jsonTypeResolution/index.js +35 -0
- package/lib/jsonTypeResolution/index.js.map +1 -0
- package/lib/jsonTypeResolution/primitiveTypes.d.ts +10 -0
- package/lib/jsonTypeResolution/primitiveTypes.js +27 -0
- package/lib/jsonTypeResolution/primitiveTypes.js.map +1 -0
- package/lib/jsonTypeResolution/resolvableTypes.d.ts +12 -0
- package/lib/jsonTypeResolution/resolvableTypes.js +30 -0
- package/lib/jsonTypeResolution/resolvableTypes.js.map +1 -0
- package/package.json +4 -3
- package/src/JsonValidationService.spec.ts +280 -1
- package/src/JsonValidationService.ts +127 -1
- package/src/errors/JsonResolutionError.ts +5 -0
- package/src/index.ts +3 -0
- package/src/jsonTypeResolution/arbitraryTypeResolution.spec.ts +134 -0
- package/src/jsonTypeResolution/arbitraryTypeResolution.ts +100 -0
- package/src/jsonTypeResolution/index.ts +16 -0
- package/src/jsonTypeResolution/primitiveTypes.ts +32 -0
- package/src/jsonTypeResolution/resolvableTypes.ts +37 -0
- package/tsconfig.tsbuildinfo +1 -1
package/.npm/_logs/{2023-02-24T01_14_03_380Z-debug-0.log → 2023-02-24T06_22_01_362Z-debug-0.log}
RENAMED
@@ -1,17 +1,17 @@
|
|
1
1
|
0 verbose cli /usr/local/bin/node /usr/local/bin/npm
|
2
2
|
1 info using npm@8.19.3
|
3
3
|
2 info using node@v16.19.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
6
|
5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 1ms
|
7
7
|
6 timing config:load:builtin Completed in 1ms
|
8
|
-
7 timing config:load:cli Completed in
|
9
|
-
8 timing config:load:env Completed in
|
8
|
+
7 timing config:load:cli Completed in 2ms
|
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
|
12
|
-
11 timing config:load:project Completed in
|
12
|
+
11 timing config:load:project Completed in 25ms
|
13
13
|
12 timing config:load:file:/root/.npmrc Completed in 1ms
|
14
|
-
13 timing config:load:user Completed in
|
14
|
+
13 timing config:load:user Completed in 2ms
|
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:validate Completed in 1ms
|
@@ -19,21 +19,21 @@
|
|
19
19
|
18 timing config:load:setEnvs Completed in 1ms
|
20
20
|
19 timing config:load Completed in 36ms
|
21
21
|
20 timing npm:load:configload Completed in 36ms
|
22
|
-
21 timing npm:load:mkdirpcache Completed in
|
23
|
-
22 timing npm:load:mkdirplogs Completed in
|
22
|
+
21 timing npm:load:mkdirpcache Completed in 2ms
|
23
|
+
22 timing npm:load:mkdirplogs Completed in 0ms
|
24
24
|
23 verbose title npm run compile
|
25
25
|
24 verbose argv "run" "compile" "--"
|
26
|
-
25 timing npm:load:setTitle Completed in
|
26
|
+
25 timing npm:load:setTitle Completed in 2ms
|
27
27
|
26 timing config:load:flatten Completed in 4ms
|
28
28
|
27 timing npm:load:display Completed in 5ms
|
29
29
|
28 verbose logfile logs-max:10 dir:/builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs
|
30
|
-
29 verbose logfile /builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-02-
|
30
|
+
29 verbose logfile /builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-02-24T06_22_01_362Z-debug-0.log
|
31
31
|
30 timing npm:load:logFile Completed in 4ms
|
32
32
|
31 timing npm:load:timers Completed in 0ms
|
33
33
|
32 timing npm:load:configScope Completed in 0ms
|
34
|
-
33 timing npm:load Completed in
|
34
|
+
33 timing npm:load Completed in 50ms
|
35
35
|
34 silly logfile done cleaning log files
|
36
|
-
35 timing command:run Completed in
|
36
|
+
35 timing command:run Completed in 8204ms
|
37
37
|
36 verbose exit 0
|
38
|
-
37 timing npm Completed in
|
38
|
+
37 timing npm Completed in 8262ms
|
39
39
|
38 info ok
|
@@ -1,6 +1,38 @@
|
|
1
|
+
import { Input } from '@sagold/json-query';
|
1
2
|
import { JSONSchema, Draft } from 'json-schema-library';
|
3
|
+
import { AnyPrimitiveType, AnyResolvableType, TypeResolver } from './jsonTypeResolution/arbitraryTypeResolution';
|
2
4
|
export declare const ComponentInputSchema: Draft;
|
3
5
|
export declare const RenderInputSchema: Draft;
|
6
|
+
export declare const ComponentInputMetaSchema: MetaSchemaInput;
|
7
|
+
export declare const RenderInputMetaSchema: MetaSchemaInput;
|
8
|
+
export declare const ManifestV1MetaSchema: MetaSchemaInput;
|
9
|
+
interface MetaSchemaInput {
|
10
|
+
root: JSONSchema;
|
11
|
+
remotes?: Record<string, JSONSchema>;
|
12
|
+
}
|
13
|
+
/**
|
14
|
+
* A service that can be used to validate and resolve JSON against a schema.
|
15
|
+
*/
|
16
|
+
export declare class JSONSchemaService<P extends AnyPrimitiveType, R extends AnyResolvableType> {
|
17
|
+
private typeResolver;
|
18
|
+
schema: Draft;
|
19
|
+
constructor(typeResolver: TypeResolver<P, R>, metaSchema: MetaSchemaInput);
|
20
|
+
private doResolveRef;
|
21
|
+
/**
|
22
|
+
* Validate an input value against a specified schema
|
23
|
+
* @throws {SchemaValidationError} if the input is invalid
|
24
|
+
* @returns true if the input is valid
|
25
|
+
*/
|
26
|
+
validateInput(input: unknown, inputSchema?: JSONSchema): true | never;
|
27
|
+
private processValidationResult;
|
28
|
+
/**
|
29
|
+
* Resolve an input object by replacing all resolvable shapes with their resolved values
|
30
|
+
* @param input any input object which matches the input schema
|
31
|
+
* @param inputSchema a JSONSchema which provides type information about the input object
|
32
|
+
* @returns the input object with all resolvable shapes resolved
|
33
|
+
*/
|
34
|
+
resolveInput(input: Input, inputSchema: JSONSchema): Promise<Input>;
|
35
|
+
}
|
4
36
|
export declare class JsonValidationService {
|
5
37
|
validateManifest(manifest: unknown, version: 'v1'): true;
|
6
38
|
validateContentSchema(contentSchema: JSONSchema): true;
|
@@ -8,3 +40,4 @@ export declare class JsonValidationService {
|
|
8
40
|
validateRenderInput(functionInputSchema: JSONSchema, inputValue: unknown): true;
|
9
41
|
private processValidationResult;
|
10
42
|
}
|
43
|
+
export {};
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.JsonValidationService = exports.RenderInputSchema = exports.ComponentInputSchema = void 0;
|
6
|
+
exports.JsonValidationService = exports.JSONSchemaService = exports.ManifestV1MetaSchema = exports.RenderInputMetaSchema = exports.ComponentInputMetaSchema = exports.RenderInputSchema = exports.ComponentInputSchema = void 0;
|
7
|
+
const json_query_1 = __importDefault(require("@sagold/json-query"));
|
7
8
|
const DxComponentInputSchema_json_1 = __importDefault(require("./manifest/v1/DxComponentInputSchema.json"));
|
8
9
|
const DxComponentIcons_json_1 = __importDefault(require("./manifest/v1/DxComponentIcons.json"));
|
9
10
|
const DxContentMetaSchema_json_1 = __importDefault(require("./manifest/v1/DxContentMetaSchema.json"));
|
@@ -13,6 +14,7 @@ const v1_json_1 = __importDefault(require("./manifest/v1/v1.json"));
|
|
13
14
|
const SchemaValidationError_1 = require("./errors/SchemaValidationError");
|
14
15
|
const json_schema_library_1 = require("json-schema-library");
|
15
16
|
const json_schema_library_2 = require("json-schema-library");
|
17
|
+
const JsonResolutionError_1 = require("./errors/JsonResolutionError");
|
16
18
|
const defaultConfig = {
|
17
19
|
...json_schema_library_2.draft07Config,
|
18
20
|
errors: {
|
@@ -105,6 +107,104 @@ v1Schema.addRemoteSchema('/DxComponentInputSchema.json', exports.ComponentInputS
|
|
105
107
|
v1Schema.addRemoteSchema('/DxComponentIcons.json', DxComponentIcons_json_1.default);
|
106
108
|
v1Schema.addRemoteSchema('http://json-schema.org/draft-07/schema', Draft_07_json_1.default);
|
107
109
|
v1Schema.addRemoteSchema('http://json-schema.org/draft-07/schema#', Draft_07_json_1.default);
|
110
|
+
exports.ComponentInputMetaSchema = {
|
111
|
+
root: DxComponentInputSchema_json_1.default,
|
112
|
+
remotes: {
|
113
|
+
'DxComponentInputSchema.json/DxContentMetaSchema.json': DxContentMetaSchema_json_1.default,
|
114
|
+
},
|
115
|
+
};
|
116
|
+
exports.RenderInputMetaSchema = {
|
117
|
+
root: Draft_07_json_1.default,
|
118
|
+
};
|
119
|
+
exports.ManifestV1MetaSchema = {
|
120
|
+
root: v1_json_1.default,
|
121
|
+
remotes: {
|
122
|
+
'DxComponentInputSchema.json/DxContentMetaSchema.json': DxContentMetaSchema_json_1.default,
|
123
|
+
'/DxComponentInputSchema.json': DxComponentInputSchema_json_1.default,
|
124
|
+
'/DxComponentIcons.json': DxComponentIcons_json_1.default,
|
125
|
+
'http://json-schema.org/draft-07/schema': Draft_07_json_1.default,
|
126
|
+
'http://json-schema.org/draft-07/schema#': Draft_07_json_1.default,
|
127
|
+
},
|
128
|
+
};
|
129
|
+
/**
|
130
|
+
* A service that can be used to validate and resolve JSON against a schema.
|
131
|
+
*/
|
132
|
+
class JSONSchemaService {
|
133
|
+
constructor(typeResolver, metaSchema) {
|
134
|
+
this.typeResolver = typeResolver;
|
135
|
+
this.schema = new json_schema_library_1.Draft({
|
136
|
+
...defaultConfig,
|
137
|
+
resolveRef: (schema, rootSchema) => this.doResolveRef(schema, rootSchema),
|
138
|
+
}, metaSchema.root);
|
139
|
+
for (const [key, value] of Object.entries(metaSchema.remotes || {})) {
|
140
|
+
this.schema.addRemoteSchema(key, value);
|
141
|
+
}
|
142
|
+
}
|
143
|
+
doResolveRef(schema, rootSchema) {
|
144
|
+
const initialRef = json_schema_library_2.draft07Config.resolveRef(schema, rootSchema);
|
145
|
+
if (!initialRef)
|
146
|
+
return initialRef;
|
147
|
+
if (!this.typeResolver.isPrimitiveType(initialRef.type))
|
148
|
+
return initialRef;
|
149
|
+
return this.typeResolver.getValidationSchemaForPrimitive(initialRef.type);
|
150
|
+
}
|
151
|
+
/**
|
152
|
+
* Validate an input value against a specified schema
|
153
|
+
* @throws {SchemaValidationError} if the input is invalid
|
154
|
+
* @returns true if the input is valid
|
155
|
+
*/
|
156
|
+
validateInput(input, inputSchema = this.schema.rootSchema) {
|
157
|
+
inputSchema = this.schema.compileSchema(inputSchema);
|
158
|
+
const errors = this.schema.validate(input, inputSchema);
|
159
|
+
return this.processValidationResult(errors);
|
160
|
+
}
|
161
|
+
processValidationResult(errors) {
|
162
|
+
if (errors.length > 0) {
|
163
|
+
throw new SchemaValidationError_1.SchemaValidationError(errors.map((a) => a.message).join(',\n'));
|
164
|
+
}
|
165
|
+
return true;
|
166
|
+
}
|
167
|
+
/**
|
168
|
+
* Resolve an input object by replacing all resolvable shapes with their resolved values
|
169
|
+
* @param input any input object which matches the input schema
|
170
|
+
* @param inputSchema a JSONSchema which provides type information about the input object
|
171
|
+
* @returns the input object with all resolvable shapes resolved
|
172
|
+
*/
|
173
|
+
async resolveInput(input, inputSchema) {
|
174
|
+
const setters = [];
|
175
|
+
this.schema.each(input, (schema, value, pointer) => {
|
176
|
+
// First we check for if value is a resolvable shape
|
177
|
+
if (!this.typeResolver.isResolvableSchema(schema))
|
178
|
+
return;
|
179
|
+
// If its a resolvable schema, it should exist in a oneOf array with other schemas
|
180
|
+
// Including a primitive schema
|
181
|
+
const allPossibleSchemas = schema.oneOfSchema.oneOf;
|
182
|
+
if ((0, json_schema_library_1.isJSONError)(allPossibleSchemas))
|
183
|
+
return;
|
184
|
+
const primitiveSchema = allPossibleSchemas.find((schema) => this.typeResolver.isPrimitiveSchema(schema));
|
185
|
+
if (!primitiveSchema)
|
186
|
+
return;
|
187
|
+
const resolver = this.typeResolver.tryGetResolver(primitiveSchema, schema);
|
188
|
+
if (!resolver)
|
189
|
+
return;
|
190
|
+
const setResolvedData = Promise.resolve()
|
191
|
+
.then(() => resolver(value))
|
192
|
+
.then((resolvedData) => (item) => json_query_1.default.set(item, pointer, resolvedData))
|
193
|
+
.catch((e) => Promise.reject(new JsonResolutionError_1.JsonResolutionError(e, pointer, value)));
|
194
|
+
setters.push(setResolvedData);
|
195
|
+
}, inputSchema);
|
196
|
+
const potentialResolutionErrors = [];
|
197
|
+
for (const resolveResult of await Promise.allSettled(setters)) {
|
198
|
+
if (resolveResult.status === 'rejected') {
|
199
|
+
potentialResolutionErrors.push(resolveResult.reason);
|
200
|
+
continue;
|
201
|
+
}
|
202
|
+
input = resolveResult.value(input);
|
203
|
+
}
|
204
|
+
return input;
|
205
|
+
}
|
206
|
+
}
|
207
|
+
exports.JSONSchemaService = JSONSchemaService;
|
108
208
|
class JsonValidationService {
|
109
209
|
validateManifest(manifest, version) {
|
110
210
|
switch (version) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":";;;;;;AAAA,4GAA+E;AAC/E,gGAAmE;AACnE,sGAAyE;AACzE,gFAAwD;AAExD,gGAAmE;AAEnE,oEAAuC;AACvC,0EAAuE;AACvE,
|
1
|
+
{"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAsD;AAEtD,4GAA+E;AAC/E,gGAAmE;AACnE,sGAAyE;AACzE,gFAAwD;AAExD,gGAAmE;AAEnE,oEAAuC;AACvC,0EAAuE;AACvE,6DAAsG;AAEtG,6DAAoD;AAGpD,sEAAmE;AAEnE,MAAM,aAAa,GAAgB;IACjC,GAAG,mCAAa;IAChB,MAAM,EAAE;QACN,GAAG,mCAAa,CAAC,MAAM;QAEvB,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,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,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;SAC1E,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;IACH,CAAC;IAEO,YAAY,CAAC,MAAkB,EAAE,UAAsB;QAC7D,MAAM,UAAU,GAAG,mCAAa,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEhE,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,OAAO,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5E,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,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,uBAAuB,CAAC,MAAmB;QACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,6CAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAC,KAAY,EAAE,WAAuB;QAC7D,MAAM,OAAO,GAA4C,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,EACL,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,oDAAoD;YACpD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC1D,kFAAkF;YAClF,+BAA+B;YAC/B,MAAM,kBAAkB,GAAsB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;YACvE,IAAI,IAAA,iCAAW,EAAC,kBAAkB,CAAC;gBAAE,OAAO;YAE5C,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAe,EAAE,CACtE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAC5C,CAAC;YACF,IAAI,CAAC,eAAe;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC3E,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE;iBACtC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC3B,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,oBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;iBAC1F,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,yCAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC,EACD,WAAW,CACZ,CAAC;QAEF,MAAM,yBAAyB,GAAG,EAAE,CAAC;QACrC,KAAK,MAAM,aAAa,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC7D,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE;gBACvC,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrD,SAAS;aACV;YAED,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA1FD,8CA0FC;AAED,MAAa,qBAAqB;IAChC,gBAAgB,CAAC,QAAiB,EAAE,OAAa;QAC/C,QAAQ,OAAO,EAAE;YACf,KAAK,IAAI,CAAC,CAAC;gBACT,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;aACvD;YAED;gBACE,MAAM,IAAI,6CAAqB,CAAC,0BAA0B,CAAC,CAAC;SAC/D;IACH,CAAC;IACD,qBAAqB,CAAC,aAAyB;QAC7C,OAAO,IAAI,CAAC,uBAAuB,CAAC,4BAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,sBAAsB,CAAC,mBAA+B,EAAE,UAAmB;QACzE,MAAM,WAAW,GAAG,4BAAoB,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,4BAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,mBAAmB,CAAC,mBAA+B,EAAE,UAAmB;QACtE,MAAM,WAAW,GAAG,yBAAiB,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,yBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,uBAAuB,CAAC,MAAmB;QACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,6CAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApCD,sDAoCC"}
|
@@ -7,6 +7,7 @@ const JsonValidationService_1 = require("./JsonValidationService");
|
|
7
7
|
const SchemaValidationError_1 = require("./errors/SchemaValidationError");
|
8
8
|
const validComponent_json_1 = __importDefault(require("./manifest/v1/__test__/schemas/validComponent.json"));
|
9
9
|
const validComponentJson_json_1 = __importDefault(require("./manifest/v1/__test__/schemas/validComponentJson.json"));
|
10
|
+
const arbitraryTypeResolution_1 = require("./jsonTypeResolution/arbitraryTypeResolution");
|
10
11
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
11
12
|
function expectToThrowErrorMatchingTypeAndMessage(received, errorType, message) {
|
12
13
|
let error = null;
|
@@ -512,4 +513,171 @@ describe('JsonValidationService', () => {
|
|
512
513
|
});
|
513
514
|
});
|
514
515
|
});
|
516
|
+
const defaultSchema = {
|
517
|
+
type: 'object',
|
518
|
+
properties: {
|
519
|
+
myProperty: {
|
520
|
+
type: 'string',
|
521
|
+
},
|
522
|
+
},
|
523
|
+
required: ['myProperty'],
|
524
|
+
};
|
525
|
+
function primitiveTypeFixture(title, schema = defaultSchema) {
|
526
|
+
return (0, arbitraryTypeResolution_1.PrimitiveType)({
|
527
|
+
...schema,
|
528
|
+
title,
|
529
|
+
});
|
530
|
+
}
|
531
|
+
function resolvableTypeFixture(title, schema = defaultSchema) {
|
532
|
+
return (0, arbitraryTypeResolution_1.ResolvableType)({
|
533
|
+
...schema,
|
534
|
+
title,
|
535
|
+
});
|
536
|
+
}
|
537
|
+
describe('JsonSchemaService', () => {
|
538
|
+
describe('validateInput', () => {
|
539
|
+
it.each([String('123'), Number(123), [123]])('should validate any primitive type with its resolvable type %s', (propertyValue) => {
|
540
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
541
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
542
|
+
MyPrimitive: primitiveSchema,
|
543
|
+
}, {
|
544
|
+
MyResolvableNumber: resolvableTypeFixture('MyResolvableNumber', { type: 'number' }),
|
545
|
+
MyResolvableArray: resolvableTypeFixture('MyResolvableArray', { type: 'array' }),
|
546
|
+
}, {
|
547
|
+
MyPrimitive: {
|
548
|
+
MyResolvableNumber: (value) => value.toString(),
|
549
|
+
MyResolvableArray: (value) => value.join(''),
|
550
|
+
},
|
551
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
552
|
+
expect(jsonSchemaService.validateInput({ myProperty: propertyValue }, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } })).toEqual(true);
|
553
|
+
});
|
554
|
+
it('should error when a primitive type is provided a value that cannot be resolved by its resolvable types', () => {
|
555
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
556
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
557
|
+
MyPrimitive: primitiveSchema,
|
558
|
+
}, {
|
559
|
+
MyResolvableNumber: resolvableTypeFixture('MyResolvableNumber', { type: 'number' }),
|
560
|
+
MyResolvableArray: resolvableTypeFixture('MyResolvableArray', { type: 'array' }),
|
561
|
+
}, {
|
562
|
+
MyPrimitive: {
|
563
|
+
MyResolvableNumber: (value) => value.toString(),
|
564
|
+
MyResolvableArray: (value) => value.join(''),
|
565
|
+
},
|
566
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
567
|
+
expect(() => {
|
568
|
+
jsonSchemaService.validateInput({ myProperty: true }, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } });
|
569
|
+
}).toThrowError();
|
570
|
+
});
|
571
|
+
it.each([String('123'), Number(123), [123]])('should validate a primitive type when defined as a ref with resolvable value %s', (propertyValue) => {
|
572
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
573
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
574
|
+
MyPrimitive: primitiveSchema,
|
575
|
+
}, {
|
576
|
+
MyResolvableNumber: resolvableTypeFixture('MyResolvableNumber', { type: 'number' }),
|
577
|
+
MyResolvableArray: resolvableTypeFixture('MyResolvableArray', { type: 'array' }),
|
578
|
+
}, {
|
579
|
+
MyPrimitive: {
|
580
|
+
MyResolvableNumber: (value) => value.toString(),
|
581
|
+
MyResolvableArray: (value) => value.join(''),
|
582
|
+
},
|
583
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
584
|
+
expect(jsonSchemaService.validateInput({ myProperty: propertyValue }, {
|
585
|
+
type: 'object',
|
586
|
+
properties: { myProperty: { $ref: '#/definitions/Ref' } },
|
587
|
+
definitions: { Ref: { type: 'MyPrimitive' } },
|
588
|
+
})).toEqual(true);
|
589
|
+
});
|
590
|
+
it('should not validate on a primitive type against a resolvable type when a resolver is not defined', () => {
|
591
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
592
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
593
|
+
MyPrimitive: primitiveSchema,
|
594
|
+
}, {
|
595
|
+
MyResolvableNumber: resolvableTypeFixture('MyResolvableNumber', { type: 'number' }),
|
596
|
+
MyResolvableArray: resolvableTypeFixture('MyResolvableArray', { type: 'array' }),
|
597
|
+
}, {
|
598
|
+
MyPrimitive: {
|
599
|
+
MyResolvableNumber: (value) => value.toString(),
|
600
|
+
},
|
601
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
602
|
+
expect(() => {
|
603
|
+
jsonSchemaService.validateInput({ myProperty: [123] }, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } });
|
604
|
+
}).toThrowError();
|
605
|
+
});
|
606
|
+
it('should validate a primitive type against similar but different resolvable types', () => {
|
607
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
608
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
609
|
+
MyPrimitive: primitiveSchema,
|
610
|
+
}, {
|
611
|
+
MyResolvableSrcNumber: resolvableTypeFixture('MyResolvableSrcNumber', {
|
612
|
+
type: 'object',
|
613
|
+
properties: {
|
614
|
+
src: { type: 'number' },
|
615
|
+
},
|
616
|
+
}),
|
617
|
+
MyResolvableSrcString: resolvableTypeFixture('MyResolvableSrcString', {
|
618
|
+
type: 'object',
|
619
|
+
properties: {
|
620
|
+
src: { type: 'string' },
|
621
|
+
},
|
622
|
+
}),
|
623
|
+
}, {
|
624
|
+
MyPrimitive: {
|
625
|
+
MyResolvableSrcNumber: (value) => value.src.toString(),
|
626
|
+
MyResolvableSrcString: (value) => value.src,
|
627
|
+
},
|
628
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
629
|
+
expect(jsonSchemaService.validateInput({
|
630
|
+
myProperty: {
|
631
|
+
src: 123,
|
632
|
+
},
|
633
|
+
}, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } })).toEqual(true);
|
634
|
+
expect(jsonSchemaService.validateInput({
|
635
|
+
myProperty: {
|
636
|
+
src: '123',
|
637
|
+
},
|
638
|
+
}, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } })).toEqual(true);
|
639
|
+
});
|
640
|
+
});
|
641
|
+
describe('resolveInput', () => {
|
642
|
+
it.each([String('123'), Number(123), [123]])('should resolve a primitive type from its resolvable type %s', async (resolvableValue) => {
|
643
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
644
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
645
|
+
MyPrimitive: primitiveSchema,
|
646
|
+
}, {
|
647
|
+
MyResolvableNumber: resolvableTypeFixture('MyResolvableNumber', { type: 'number' }),
|
648
|
+
MyResolvableArray: resolvableTypeFixture('MyResolvableArray', { type: 'array' }),
|
649
|
+
}, {
|
650
|
+
MyPrimitive: {
|
651
|
+
MyResolvableNumber: (value) => value.toString(),
|
652
|
+
MyResolvableArray: (value) => value.join(''),
|
653
|
+
},
|
654
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
655
|
+
await expect(jsonSchemaService.resolveInput({ myProperty: resolvableValue }, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } })).resolves.toEqual({ myProperty: '123' });
|
656
|
+
});
|
657
|
+
it.each([
|
658
|
+
[{ src: 'MyString' }, 'MyString'],
|
659
|
+
[{ src: 1132 }, '1132'],
|
660
|
+
])('should resolve a resolvable type %s against the correct resolver to %s', async (resolvableValue, output) => {
|
661
|
+
const primitiveSchema = primitiveTypeFixture('MyPrimitive', { type: 'string' });
|
662
|
+
const jsonSchemaService = new JsonValidationService_1.JSONSchemaService(new arbitraryTypeResolution_1.TypeResolver({
|
663
|
+
MyPrimitive: primitiveSchema,
|
664
|
+
}, {
|
665
|
+
MyResolvableSrcString: resolvableTypeFixture('MyResolvableSrcString', {
|
666
|
+
type: 'object',
|
667
|
+
properties: { src: { type: 'string' } },
|
668
|
+
}),
|
669
|
+
MyResolvableSrcNumber: resolvableTypeFixture('MyResolvableSrcNumber', {
|
670
|
+
type: 'object',
|
671
|
+
properties: { src: { type: 'number' } },
|
672
|
+
}),
|
673
|
+
}, {
|
674
|
+
MyPrimitive: {
|
675
|
+
MyResolvableSrcNumber: (value) => value.src.toString(),
|
676
|
+
MyResolvableSrcString: (value) => value.src,
|
677
|
+
},
|
678
|
+
}), JsonValidationService_1.ComponentInputMetaSchema);
|
679
|
+
await expect(jsonSchemaService.resolveInput({ myProperty: resolvableValue }, { type: 'object', properties: { myProperty: { type: 'MyPrimitive' } } })).resolves.toEqual({ myProperty: output });
|
680
|
+
});
|
681
|
+
});
|
682
|
+
});
|
515
683
|
//# sourceMappingURL=JsonValidationService.spec.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"JsonValidationService.spec.js","sourceRoot":"","sources":["../src/JsonValidationService.spec.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"JsonValidationService.spec.js","sourceRoot":"","sources":["../src/JsonValidationService.spec.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.JsonResolutionError = void 0;
|
4
|
+
class JsonResolutionError extends Error {
|
5
|
+
constructor(error, pointer, value) {
|
6
|
+
super(`Error resolving JSON at ${pointer}: ${error.message}`);
|
7
|
+
this.pointer = pointer;
|
8
|
+
this.value = value;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
exports.JsonResolutionError = JsonResolutionError;
|
12
|
+
//# sourceMappingURL=JsonResolutionError.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"JsonResolutionError.js","sourceRoot":"","sources":["../../src/errors/JsonResolutionError.ts"],"names":[],"mappings":";;;AAAA,MAAa,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,KAAY,EAAS,OAAe,EAAS,KAAU;QACjE,KAAK,CAAC,2BAA2B,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAD/B,YAAO,GAAP,OAAO,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAK;IAEnE,CAAC;CACF;AAJD,kDAIC"}
|
package/lib/index.d.ts
CHANGED
@@ -6,3 +6,5 @@ export * from './formatted-text/v1/resolveFormattedTextNodes';
|
|
6
6
|
export * as SUB_SCHEMAS from './manifest/v1/subSchemas';
|
7
7
|
export * from './JsonValidationService';
|
8
8
|
export * from './errors/SchemaValidationError';
|
9
|
+
export * from './errors/JsonResolutionError';
|
10
|
+
export * from './jsonTypeResolution';
|
package/lib/index.js
CHANGED
@@ -35,4 +35,6 @@ __exportStar(require("./formatted-text/v1/resolveFormattedTextNodes"), exports);
|
|
35
35
|
exports.SUB_SCHEMAS = __importStar(require("./manifest/v1/subSchemas"));
|
36
36
|
__exportStar(require("./JsonValidationService"), exports);
|
37
37
|
__exportStar(require("./errors/SchemaValidationError"), exports);
|
38
|
+
__exportStar(require("./errors/JsonResolutionError"), exports);
|
39
|
+
__exportStar(require("./jsonTypeResolution"), exports);
|
38
40
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAAgE;AAChE,kFAAkE;AAElE,iGAAiF;AACjF,mGAAmF;AACnF,gFAA8D;AAE9D,wEAAwD;AAExD,0DAAwC;AACxC,iEAA+C"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAAgE;AAChE,kFAAkE;AAElE,iGAAiF;AACjF,mGAAmF;AACnF,gFAA8D;AAE9D,wEAAwD;AAExD,0DAAwC;AACxC,iEAA+C;AAC/C,+DAA6C;AAE7C,uDAAqC"}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import type { JSONSchema } from 'json-schema-library';
|
2
|
+
import * as t from 'ts-brand';
|
3
|
+
type MaybePromise<T> = T | Promise<T>;
|
4
|
+
type JsonResolutionSchema<TITLE extends string> = JSONSchema & {
|
5
|
+
title: TITLE;
|
6
|
+
};
|
7
|
+
/**
|
8
|
+
* This type allows the TypeScript type to be encoded onto the JSON schema object
|
9
|
+
*/
|
10
|
+
type SchemaWithShape<TITLE extends string, SHAPE> = JsonResolutionSchema<TITLE> & {
|
11
|
+
__shape__: SHAPE;
|
12
|
+
};
|
13
|
+
/**
|
14
|
+
* A JSON schema which represents a primitive type which can be a resolve target
|
15
|
+
*
|
16
|
+
* The brand ensures that TypeScript can differentiate between a primitive type and a resolvable type
|
17
|
+
*/
|
18
|
+
export type PrimitiveType<TITLE extends string, SHAPE> = t.Brand<SchemaWithShape<TITLE, SHAPE>, 'primitive'>;
|
19
|
+
export declare function PrimitiveType<SHAPE, TITLE extends string>(jsonSchema: JsonResolutionSchema<TITLE>): PrimitiveType<TITLE, SHAPE>;
|
20
|
+
export type AnyPrimitiveType = PrimitiveType<string, any>;
|
21
|
+
/**
|
22
|
+
* A JSON schema which represents a type which can be resolved into a primitive type
|
23
|
+
*
|
24
|
+
* The brand ensures that TypeScript can differentiate between a primitive type and a resolvable type
|
25
|
+
*/
|
26
|
+
export type ResolvableType<TITLE extends string, SHAPE> = t.Brand<SchemaWithShape<TITLE, SHAPE>, 'resolvable'>;
|
27
|
+
export declare function ResolvableType<SHAPE, TITLE extends string>(jsonSchema: JsonResolutionSchema<TITLE>): ResolvableType<TITLE, SHAPE>;
|
28
|
+
export type AnyResolvableType = ResolvableType<string, any>;
|
29
|
+
type Resolver<INPUT, OUTPUT> = (input: INPUT) => MaybePromise<OUTPUT>;
|
30
|
+
/**
|
31
|
+
* A JSON Type Resolver class which stores the primitive and resolvable JSON Schema types and their resolvers
|
32
|
+
*
|
33
|
+
* No serious logic is required here. The class should only provide data access methods and type safety
|
34
|
+
*/
|
35
|
+
export declare class TypeResolver<P extends AnyPrimitiveType, R extends AnyResolvableType> {
|
36
|
+
private primitives;
|
37
|
+
private resolvables;
|
38
|
+
resolvers: {
|
39
|
+
[PT in P as PT['title']]?: {
|
40
|
+
[RT in R as RT['title']]?: Resolver<RT['__shape__'], PT['__shape__']>;
|
41
|
+
};
|
42
|
+
};
|
43
|
+
constructor(primitives: {
|
44
|
+
[K in P as P['title']]: K;
|
45
|
+
}, resolvables: {
|
46
|
+
[K in R as R['title']]: K;
|
47
|
+
}, resolvers: {
|
48
|
+
[PT in P as PT['title']]?: {
|
49
|
+
[RT in R as RT['title']]?: Resolver<RT['__shape__'], PT['__shape__']>;
|
50
|
+
};
|
51
|
+
});
|
52
|
+
isPrimitiveType(type: string): type is P['title'];
|
53
|
+
isPrimitiveSchema(schema: JSONSchema): schema is P;
|
54
|
+
isResolvableSchema(schema: JSONSchema): schema is R;
|
55
|
+
getValidationSchemaForPrimitive(type: keyof typeof this.primitives): {
|
56
|
+
oneOf: ({ [K in P as P["title"]]: K; }[P["title"]] | { [K_1 in R as R["title"]]: K_1; }[Extract<keyof { [PT in P as PT["title"]]?: { [RT in R as RT["title"]]?: Resolver<RT["__shape__"], PT["__shape__"]> | undefined; } | undefined; }[P["title"]], string>])[];
|
57
|
+
};
|
58
|
+
private fetchResolvableSchemasForPrimitive;
|
59
|
+
tryGetResolver<PS extends P, RS extends R>(primitiveSchema: PS, resolvableSchema: RS): Resolver<RS['__shape__'], PS['__shape__']> | undefined;
|
60
|
+
}
|
61
|
+
export {};
|