@squiz/dx-json-schema-lib 1.12.0-alpha.46 → 1.12.0-alpha.48

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.
Files changed (38) hide show
  1. package/.npm/_logs/{2023-02-24T01_14_03_380Z-debug-0.log → 2023-02-24T06_22_01_362Z-debug-0.log} +12 -12
  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
@@ -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 0ms
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 1ms
9
- 8 timing config:load:env Completed in 2ms
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 24ms
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 1ms
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 1ms
23
- 22 timing npm:load:mkdirplogs Completed in 1ms
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 1ms
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-24T01_14_03_380Z-debug-0.log
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 48ms
34
+ 33 timing npm:load Completed in 50ms
35
35
  34 silly logfile done cleaning log files
36
- 35 timing command:run Completed in 7441ms
36
+ 35 timing command:run Completed in 8204ms
37
37
  36 verbose exit 0
38
- 37 timing npm Completed in 7498ms
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":"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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":"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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,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 {};