@squiz/dx-json-schema-lib 1.12.0-alpha.45 → 1.12.0-alpha.47

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/.npm/_logs/{2023-02-24T01_18_37_698Z-debug-0.log → 2023-02-24T04_47_40_972Z-debug-0.log} +10 -10
  2. package/lib/JsonValidationService.d.ts +33 -0
  3. package/lib/JsonValidationService.js +101 -1
  4. package/lib/JsonValidationService.js.map +1 -1
  5. package/lib/JsonValidationService.spec.js +168 -0
  6. package/lib/JsonValidationService.spec.js.map +1 -1
  7. package/lib/errors/JsonResolutionError.d.ts +5 -0
  8. package/lib/errors/JsonResolutionError.js +12 -0
  9. package/lib/errors/JsonResolutionError.js.map +1 -0
  10. package/lib/index.d.ts +2 -0
  11. package/lib/index.js +2 -0
  12. package/lib/index.js.map +1 -1
  13. package/lib/jsonTypeResolution/arbitraryTypeResolution.d.ts +61 -0
  14. package/lib/jsonTypeResolution/arbitraryTypeResolution.js +61 -0
  15. package/lib/jsonTypeResolution/arbitraryTypeResolution.js.map +1 -0
  16. package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.d.ts +1 -0
  17. package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.js +100 -0
  18. package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.js.map +1 -0
  19. package/lib/jsonTypeResolution/index.d.ts +76 -0
  20. package/lib/jsonTypeResolution/index.js +35 -0
  21. package/lib/jsonTypeResolution/index.js.map +1 -0
  22. package/lib/jsonTypeResolution/primitiveTypes.d.ts +10 -0
  23. package/lib/jsonTypeResolution/primitiveTypes.js +27 -0
  24. package/lib/jsonTypeResolution/primitiveTypes.js.map +1 -0
  25. package/lib/jsonTypeResolution/resolvableTypes.d.ts +12 -0
  26. package/lib/jsonTypeResolution/resolvableTypes.js +30 -0
  27. package/lib/jsonTypeResolution/resolvableTypes.js.map +1 -0
  28. package/package.json +4 -3
  29. package/src/JsonValidationService.spec.ts +280 -1
  30. package/src/JsonValidationService.ts +127 -1
  31. package/src/errors/JsonResolutionError.ts +5 -0
  32. package/src/index.ts +3 -0
  33. package/src/jsonTypeResolution/arbitraryTypeResolution.spec.ts +134 -0
  34. package/src/jsonTypeResolution/arbitraryTypeResolution.ts +100 -0
  35. package/src/jsonTypeResolution/index.ts +16 -0
  36. package/src/jsonTypeResolution/primitiveTypes.ts +32 -0
  37. package/src/jsonTypeResolution/resolvableTypes.ts +37 -0
  38. package/tsconfig.tsbuildinfo +1 -1
@@ -9,17 +9,17 @@
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
12
- 11 timing config:load:project Completed in 23ms
12
+ 11 timing config:load:project Completed in 24ms
13
13
  12 timing config:load:file:/root/.npmrc Completed in 1ms
14
14
  13 timing config:load:user Completed in 1ms
15
15
  14 timing config:load:file:/usr/local/etc/npmrc Completed in 0ms
16
- 15 timing config:load:global Completed in 0ms
16
+ 15 timing config:load:global Completed in 1ms
17
17
  16 timing config:load:validate Completed in 1ms
18
- 17 timing config:load:credentials Completed in 1ms
18
+ 17 timing config:load:credentials Completed in 2ms
19
19
  18 timing config:load:setEnvs Completed in 1ms
20
- 19 timing config:load Completed in 34ms
21
- 20 timing npm:load:configload Completed in 34ms
22
- 21 timing npm:load:mkdirpcache Completed in 2ms
20
+ 19 timing config:load Completed in 36ms
21
+ 20 timing npm:load:configload Completed in 36ms
22
+ 21 timing npm:load:mkdirpcache Completed in 37ms
23
23
  22 timing npm:load:mkdirplogs Completed in 1ms
24
24
  23 verbose title npm run compile
25
25
  24 verbose argv "run" "compile" "--"
@@ -27,13 +27,13 @@
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-24T01_18_37_698Z-debug-0.log
30
+ 29 verbose logfile /builds/developer-experience/cmp/packages/dx-json-schema-lib/.npm/_logs/2023-02-24T04_47_40_972Z-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 49ms
34
+ 33 timing npm:load Completed in 86ms
35
35
  34 silly logfile done cleaning log files
36
- 35 timing command:run Completed in 10394ms
36
+ 35 timing command:run Completed in 9166ms
37
37
  36 verbose exit 0
38
- 37 timing npm Completed in 10452ms
38
+ 37 timing npm Completed in 9261ms
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":"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"}
1
+ {"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":"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"}
@@ -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":";;;;;AAAA,mEAAgE;AAChE,0EAAuE;AAEvE,6GAA+E;AAC/E,qHAAuF;AAGvF,wDAAwD;AACxD,SAAS,wCAAwC,CAAC,QAAkB,EAAE,SAAmB,EAAE,OAAe;IACxG,IAAI,KAAK,GAAiB,IAAI,CAAC;IAE/B,IAAI;QACF,QAAQ,EAAE,CAAC;KACZ;IAAC,OAAO,CAAM,EAAE;QACf,KAAK,GAAG,CAAC,CAAC;KACX;IAED,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,qBAAqB,GAA0B,IAAI,6CAAqB,EAAE,CAAC;IAEjF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,iCAAiB,EAAE,IAAI,CAAC,CAAC;YAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,6BAAa,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,eAAe,GAAG,EAAE,GAAG,6BAAa,EAAE,CAAC;YAE7C,OAAQ,eAAuB,CAAC,IAAI,CAAC;YAErC,wCAAwC,CACtC,GAAG,EAAE;gBACH,qBAAqB,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAChE,CAAC,EACD,6CAAqB,EACrB,uEAAuE,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,wCAAwC,CACtC,GAAG,EAAE;gBACH,qBAAqB,CAAC,gBAAgB,CAAC,6BAAa,EAAE,iBAAwB,CAAC,CAAC;YAClF,CAAC,EACD,6CAAqB,EACrB,6CAA6C,CAC9C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,QAAQ;gBAEd,UAAU,EAAE;oBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC/B;gBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB,CAAC;YACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8GAA8G,EAAE,GAAG,EAAE;YACtH,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,QAAQ;gBAEd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBAEd,UAAU,EAAE;4BACV,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACpC;qBACF;iBACF;gBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB,CAAC;YACF,wCAAwC,CACtC,GAAG,EAAE;gBACH,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC7D,CAAC,EACD,6CAAqB,EACrB,2FAA2F,CAC5F,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;YAC3G,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,OAAO;gBAEb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC/B;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB;aACF,CAAC;YACF,wCAAwC,CACtC,GAAG,EAAE;gBACH,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC7D,CAAC,EACD,6CAAqB,EACrB,gGAAgG,CACjG,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kGAAkG,EAAE,GAAG,EAAE;YAC1G,MAAM,aAAa,GAAG;gBACpB,IAAI,EAAE,QAAQ;gBAEd,UAAU,EAAE;oBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC/B;aACF,CAAC;YACF,wCAAwC,CACtC,GAAG,EAAE;gBACH,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC7D,CAAC,EACD,6CAAqB,EACrB,uEAAuE,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACnC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;gBACxC,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;qBAC3C;oBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBAEF,MAAM,CACJ,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;oBAChE,UAAU,EAAE,eAAe;iBAC5B,CAAC,CACH,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEhB,MAAM,CACJ,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;oBAChE,UAAU,EAAE,GAAG;iBAChB,CAAC,CACH,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;gBACzE,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE;4BACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;4BACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;4BAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;4BAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;yBAC7B;qBACF;iBACF,CAAC;gBACF,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE;qBAClD;oBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBAEF,MAAM,CACJ,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;oBAChE,UAAU,EAAE,aAAa;iBAC1B,CAAC,CACH,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEhB,MAAM,CACJ,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE;oBAChE,UAAU,EAAE,OAAO;iBACpB,CAAC,CACH,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;gBACvD,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACtC;oBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBAEF,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE;4BACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;4BACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;4BAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;4BAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;yBAC7B;qBACF;iBACF,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,aAAa;iBAC1B,CAAC;gBAEF,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtG,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;gBAChF,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACtC;oBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,GAAG;iBAChB,CAAC;gBACF,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,EACD,6CAAqB,EACrB,wFAAwF,CACzF,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;gBACpF,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACtC;oBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE;wBACV,SAAS,EAAE,IAAI;qBAChB;iBACF,CAAC;gBACF,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,EACD,6CAAqB,EACrB,oGAAoG,CACrG,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;gBACpG,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACtC;oBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE;4BACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;4BACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;4BAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;4BAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAU,EAAE;4BACnC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;yBAC7B;qBACF;iBACF,CAAC;gBAEF,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,aAAa;iBAC1B,CAAC;gBACF,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,EACD,6CAAqB,EACrB,uEAAuE,CACxE,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACrD,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAC7C;iBACF,CAAC;gBAEF,MAAM,MAAM,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,GAAG,EAAE;4BACH,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;yBACjC;qBACF;iBACF,CAAC;gBACF,MAAM,KAAK,GAAG;oBACZ,GAAG,EAAE,CAAC,aAAa,CAAC;iBACrB,CAAC;gBAEF,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oGAAoG,EAAE,GAAG,EAAE;gBAC5G,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAC7C;iBACF,CAAC;gBAEF,MAAM,UAAU,GAAQ;oBACtB,UAAU,EAAE,aAAa;oBACzB,IAAI,EAAE;wBACJ,GAAG,EAAE;4BACH;gCACE,IAAI,EAAE,aAAa;gCACnB,kBAAkB,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;6BACpE;yBACF;qBACF;iBACF,CAAC;gBAEF,MAAM,mBAAmB,GAAG;oBAC1B,IAAI,EAAE,QAAQ;oBAEd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;wBACrC,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,GAAG,EAAE;oCACH,IAAI,EAAE,OAAO;oCACb,KAAK,EAAE;wCACL,IAAI,EAAE,QAAQ;wCACd,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC;wCACxC,UAAU,EAAE;4CACV,IAAI,EAAE,eAAe;4CACrB,kBAAkB,EAAE;gDAClB,IAAI,EAAE,OAAO;gDACb,KAAK,EAAE;oDACL,IAAI,EAAE,eAAe;iDACtB;6CACF;yCACF;qCACF;iCACF;6BACF;4BACD,QAAQ,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACF;oBAED,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;iBAC/B,CAAC;gBAEF,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,EACD,6CAAqB,EACrB,qHAAqH,CACtH,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;gBAC/E,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAC7C;iBACF,CAAC;gBAEF,MAAM,MAAM,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;qBACpD;oBACD,WAAW,EAAE;wBACX,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACzC;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,KAAK,GAAG;oBACZ,UAAU,EAAE,aAAa;iBAC1B,CAAC;gBAEF,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;gBAC5F,MAAM,MAAM,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;qBACpD;oBACD,WAAW,EAAE;wBACX,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBACzC;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,KAAK,GAAG;oBACZ,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;iBAC5B,CAAC;gBAEF,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC,EACD,6CAAqB,EACrB,8FAA8F,CAC/F,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;gBACzF,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAC7C;iBACF,CAAC;gBAEF,MAAM,MAAM,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,UAAU,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE;qBACpD;oBACD,WAAW,EAAE;wBACX,aAAa,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE;wBACvD,cAAc,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;qBAC1C;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,KAAK,GAAG;oBACZ,UAAU,EAAE,aAAa;iBAC1B,CAAC;gBAEF,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;gBAC3F,MAAM,aAAa,GAAkB;oBACnC;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,KAAK;wBACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAC7C;iBACF,CAAC;gBAEF,MAAM,MAAM,GAAG;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACtB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;yBAChC;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB,CAAC;gBACF,MAAM,KAAK,GAAG;oBACZ,UAAU,EAAE,aAAa;iBAC1B,CAAC;gBAEF,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC/B,MAAM,mBAAmB,GAAG;gBAC1B,IAAI,EAAE,QAAQ;gBAEd,UAAU,EAAE;oBACV,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC/B;gBAED,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB,CAAC;YAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;gBACnD,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,GAAG;iBAChB,CAAC;gBACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAC7F,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACrE,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,KAAK;iBAClB,CAAC;gBACF,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,EACD,6CAAqB,EACrB,yFAAyF,CAC1F,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;gBACnF,MAAM,UAAU,GAAG,EAAE,CAAC;gBACtB,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,EACD,6CAAqB,EACrB,2EAA2E,CAC5E,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6GAA6G,EAAE,GAAG,EAAE;gBACrH,wCAAwC,CACtC,GAAG,EAAE;oBACH,qBAAqB,CAAC,sBAAsB,CAC1C,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EACvG,EAAE,IAAI,EAAE,GAAG,EAAE,CACd,CAAC;gBACJ,CAAC,EACD,6CAAqB,EACrB,mGAAmG,CACpG,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,gBAAgB;YAChB,EAAE,CAAC,IAAI,CAAC,8EAA8E,EAAE,GAAG,EAAE;gBAC3F,MAAM,UAAU,GAAG;oBACjB,UAAU,EAAE,GAAG;oBACf,YAAY,EAAE,GAAG;iBAClB,CAAC;gBACF,MAAM,CAAC,GAAG,EAAE;oBACV,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC,kCAAkC,EAAE,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;iBACtC;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB,CAAC;YACF,MAAM,KAAK,GAAG;gBACZ,UAAU,EAAE,OAAO;aACpB,CAAC;YAEF,MAAM,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8FAA8F,EAAE,GAAG,EAAE;YACtG,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;iBACtC;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB,CAAC;YACF,MAAM,KAAK,GAAG;gBACZ,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aAC/C,CAAC;YAEF,wCAAwC,CACtC,GAAG,EAAE;gBACH,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC,EACD,6CAAqB,EACrB,8FAA8F,CAC/F,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC7F,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACzB;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;wBAClB,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;wBAC5C,IAAI,EAAE;4BACJ,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;6BAChC;4BACD,QAAQ,EAAE,CAAC,MAAM,CAAC;yBACnB;wBACD,IAAI,EAAE;4BACJ,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;6BAC1D;4BACD,QAAQ,EAAE,CAAC,MAAM,CAAC;yBACnB;qBACF;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB,CAAC;YACF,MAAM,KAAK,GAAG;gBACZ,UAAU,EAAE;oBACV,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,OAAO;iBACd;aACF,CAAC;YAEF,MAAM,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/E,MAAM,UAAU,GAAG;gBACjB,UAAU,EAAE;oBACV,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC;iBAClC;aACF,CAAC;YACF,MAAM,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"JsonValidationService.spec.js","sourceRoot":"","sources":["../src/JsonValidationService.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class JsonResolutionError extends Error {
2
+ pointer: string;
3
+ value: any;
4
+ constructor(error: Error, pointer: string, value: any);
5
+ }
@@ -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 {};