@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
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeResolver = exports.ResolvableType = exports.PrimitiveType = void 0;
4
+ function PrimitiveType(jsonSchema) {
5
+ return jsonSchema;
6
+ }
7
+ exports.PrimitiveType = PrimitiveType;
8
+ function ResolvableType(jsonSchema) {
9
+ return jsonSchema;
10
+ }
11
+ exports.ResolvableType = ResolvableType;
12
+ /**
13
+ * A JSON Type Resolver class which stores the primitive and resolvable JSON Schema types and their resolvers
14
+ *
15
+ * No serious logic is required here. The class should only provide data access methods and type safety
16
+ */
17
+ class TypeResolver {
18
+ constructor(primitives, resolvables, resolvers) {
19
+ this.primitives = primitives;
20
+ this.resolvables = resolvables;
21
+ this.resolvers = resolvers;
22
+ for (const [primitiveKey, primitiveResolvers] of Object.entries(resolvers)) {
23
+ if (!(primitiveKey in primitives)) {
24
+ throw new Error('Resolver keys must match a primitive schema');
25
+ }
26
+ if (!Object.keys(primitiveResolvers).every((k) => k in resolvables)) {
27
+ throw new Error('Primitive resolvers keys must match a resolvable schema');
28
+ }
29
+ }
30
+ }
31
+ isPrimitiveType(type) {
32
+ return type in this.primitives;
33
+ }
34
+ isPrimitiveSchema(schema) {
35
+ return this.isPrimitiveType(schema.title);
36
+ }
37
+ isResolvableSchema(schema) {
38
+ return schema.title in this.resolvables;
39
+ }
40
+ getValidationSchemaForPrimitive(type) {
41
+ const primitiveSchema = this.primitives[type];
42
+ const validSchemas = [primitiveSchema, ...this.fetchResolvableSchemasForPrimitive(type)];
43
+ return {
44
+ oneOf: validSchemas,
45
+ };
46
+ }
47
+ *fetchResolvableSchemasForPrimitive(type) {
48
+ for (const resolverKey in this.resolvers[type]) {
49
+ yield this.resolvables[resolverKey];
50
+ }
51
+ }
52
+ tryGetResolver(primitiveSchema, resolvableSchema) {
53
+ var _a;
54
+ if (!(primitiveSchema.title in this.resolvers))
55
+ return;
56
+ // Sometimes typescript can be insanely annoying
57
+ return (_a = this.resolvers[primitiveSchema.title]) === null || _a === void 0 ? void 0 : _a[resolvableSchema.title];
58
+ }
59
+ }
60
+ exports.TypeResolver = TypeResolver;
61
+ //# sourceMappingURL=arbitraryTypeResolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arbitraryTypeResolution.js","sourceRoot":"","sources":["../../src/jsonTypeResolution/arbitraryTypeResolution.ts"],"names":[],"mappings":";;;AAiBA,SAAgB,aAAa,CAC3B,UAAuC;IAEvC,OAAO,UAAyC,CAAC;AACnD,CAAC;AAJD,sCAIC;AASD,SAAgB,cAAc,CAC5B,UAAuC;IAEvC,OAAO,UAA0C,CAAC;AACpD,CAAC;AAJD,wCAIC;AAKD;;;;GAIG;AACH,MAAa,YAAY;IACvB,YACU,UAAyC,EACzC,WAA0C,EAC3C,SAIN;QANO,eAAU,GAAV,UAAU,CAA+B;QACzC,gBAAW,GAAX,WAAW,CAA+B;QAC3C,cAAS,GAAT,SAAS,CAIf;QAED,KAAK,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAoC,EAAE;YAC7G,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE;gBACnE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;aAC5E;SACF;IACH,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,OAAO,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,MAAkB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,MAAkB;QACnC,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED,+BAA+B,CAAC,IAAkC;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzF,OAAO;YACL,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAEO,CAAC,kCAAkC,CAAC,IAAkC;QAC5E,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SACrC;IACH,CAAC;IAED,cAAc,CACZ,eAAmB,EACnB,gBAAoB;;QAEpB,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO;QACvD,gDAAgD;QAChD,OAAO,MAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,KAAoC,CAAS,0CAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjH,CAAC;CACF;AAvDD,oCAuDC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const arbitraryTypeResolution_1 = require("./arbitraryTypeResolution");
4
+ const defaultSchema = {
5
+ type: 'object',
6
+ properties: {
7
+ myProperty: {
8
+ type: 'string',
9
+ },
10
+ },
11
+ required: ['myProperty'],
12
+ };
13
+ function primitiveTypeFixture(title, schema = defaultSchema) {
14
+ return (0, arbitraryTypeResolution_1.PrimitiveType)({
15
+ ...schema,
16
+ title,
17
+ });
18
+ }
19
+ function resolvableTypeFixture(title, schema = defaultSchema) {
20
+ return (0, arbitraryTypeResolution_1.ResolvableType)({
21
+ ...schema,
22
+ title,
23
+ });
24
+ }
25
+ describe('getValidationSchemaForPrimitive', () => {
26
+ it('should return only the primitive schema when no resolvers are defined', () => {
27
+ const primitiveType = primitiveTypeFixture('MyPrimitive');
28
+ const resolvableType = resolvableTypeFixture('MyResolvable');
29
+ const resolver = new arbitraryTypeResolution_1.TypeResolver({
30
+ MyPrimitive: primitiveType,
31
+ }, {
32
+ MyResolvable: resolvableType,
33
+ }, {});
34
+ expect(resolver.getValidationSchemaForPrimitive('MyPrimitive')).toEqual({
35
+ oneOf: [primitiveType],
36
+ });
37
+ });
38
+ it('should return the primitive schema and the resolvable schema when a resolver is defined', () => {
39
+ const primitiveType = primitiveTypeFixture('MyPrimitive');
40
+ const resolvableType = resolvableTypeFixture('MyResolvable');
41
+ const resolver = new arbitraryTypeResolution_1.TypeResolver({
42
+ MyPrimitive: primitiveType,
43
+ }, {
44
+ MyResolvable: resolvableType,
45
+ }, {
46
+ MyPrimitive: {
47
+ MyResolvable: () => null,
48
+ },
49
+ });
50
+ expect(resolver.getValidationSchemaForPrimitive('MyPrimitive')).toEqual({
51
+ oneOf: [primitiveType, resolvableType],
52
+ });
53
+ });
54
+ it('should return the primitive schema and the resolvable schema when a resolver is defined for a different primitive', () => {
55
+ const primitiveType = primitiveTypeFixture('MyPrimitive');
56
+ const resolvableType = resolvableTypeFixture('MyResolvable');
57
+ const resolver = new arbitraryTypeResolution_1.TypeResolver({
58
+ MyPrimitive: primitiveType,
59
+ MyOtherPrimitive: primitiveTypeFixture('MyOtherPrimitive'),
60
+ }, {
61
+ MyResolvable: resolvableType,
62
+ }, {
63
+ MyOtherPrimitive: {
64
+ MyResolvable: () => null,
65
+ },
66
+ });
67
+ expect(resolver.getValidationSchemaForPrimitive('MyPrimitive')).toEqual({
68
+ oneOf: [primitiveType],
69
+ });
70
+ });
71
+ it('should error when resolver map contains a key not listed in resolver schemas', () => {
72
+ const primitiveType = primitiveTypeFixture('MyPrimitive');
73
+ const resolvableType = resolvableTypeFixture('MyResolvable');
74
+ expect(() => new arbitraryTypeResolution_1.TypeResolver({
75
+ MyPrimitive: primitiveType,
76
+ }, {
77
+ MyResolvable: resolvableType,
78
+ }, {
79
+ MyPrimitive: {
80
+ // @ts-expect-error - this is not a valid resolvable type
81
+ MyOtherResolvable: () => null,
82
+ },
83
+ })).toThrowError();
84
+ });
85
+ it('should error when resolver map contains a key not listed in primitive schemas', () => {
86
+ const primitiveType = primitiveTypeFixture('MyPrimitive');
87
+ const resolvableType = resolvableTypeFixture('MyResolvable');
88
+ expect(() => new arbitraryTypeResolution_1.TypeResolver({
89
+ MyPrimitive: primitiveType,
90
+ }, {
91
+ MyResolvable: resolvableType,
92
+ }, {
93
+ // @ts-expect-error - this is not a valid primitive type
94
+ MyOtherPrimitive: {
95
+ MyResolvable: () => null,
96
+ },
97
+ })).toThrowError();
98
+ });
99
+ });
100
+ //# sourceMappingURL=arbitraryTypeResolution.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arbitraryTypeResolution.spec.js","sourceRoot":"","sources":["../../src/jsonTypeResolution/arbitraryTypeResolution.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import * as PRIMITIVES from './primitiveTypes';
2
+ import * as RESOLVABLES from './resolvableTypes';
3
+ export type AllPrimitiveTypes = (typeof PRIMITIVES)[keyof typeof PRIMITIVES];
4
+ export declare const PrimitiveSchemas: {
5
+ SquizImage: import("json-schema-library").JSONSchema & {
6
+ title: "SquizImage";
7
+ } & {
8
+ __shape__: PRIMITIVES.SquizImageShape;
9
+ } & {
10
+ __type__: "primitive";
11
+ } & {
12
+ __witness__: import("json-schema-library").JSONSchema & {
13
+ title: "SquizImage";
14
+ } & {
15
+ __shape__: PRIMITIVES.SquizImageShape;
16
+ };
17
+ };
18
+ FormattedText: import("json-schema-library").JSONSchema & {
19
+ title: "FormattedText";
20
+ } & {
21
+ __shape__: import("../formatted-text/v1/formattedText").BaseFormattedNodes[];
22
+ } & {
23
+ __type__: "primitive";
24
+ } & {
25
+ __witness__: import("json-schema-library").JSONSchema & {
26
+ title: "FormattedText";
27
+ } & {
28
+ __shape__: import("../formatted-text/v1/formattedText").BaseFormattedNodes[];
29
+ };
30
+ };
31
+ };
32
+ export { PRIMITIVES };
33
+ export type AllResolvableTypes = (typeof RESOLVABLES)[keyof typeof RESOLVABLES];
34
+ export declare const ResolvableSchemas: {
35
+ MatrixImage: import("json-schema-library").JSONSchema & {
36
+ title: "MatrixImage";
37
+ } & {
38
+ __shape__: RESOLVABLES.MatrixImageShape;
39
+ } & {
40
+ __type__: "resolvable";
41
+ } & {
42
+ __witness__: import("json-schema-library").JSONSchema & {
43
+ title: "MatrixImage";
44
+ } & {
45
+ __shape__: RESOLVABLES.MatrixImageShape;
46
+ };
47
+ };
48
+ HigherOrderFormattedText: import("json-schema-library").JSONSchema & {
49
+ title: "HigherOrderFormattedText";
50
+ } & {
51
+ __shape__: import("../formatted-text/v1/formattedText").FormattedText;
52
+ } & {
53
+ __type__: "resolvable";
54
+ } & {
55
+ __witness__: import("json-schema-library").JSONSchema & {
56
+ title: "HigherOrderFormattedText";
57
+ } & {
58
+ __shape__: import("../formatted-text/v1/formattedText").FormattedText;
59
+ };
60
+ };
61
+ LowerOrderFormattedText: import("json-schema-library").JSONSchema & {
62
+ title: "LowerOrderFormattedText";
63
+ } & {
64
+ __shape__: import("../formatted-text/v1/formattedText").BaseFormattedNodes[];
65
+ } & {
66
+ __type__: "resolvable";
67
+ } & {
68
+ __witness__: import("json-schema-library").JSONSchema & {
69
+ title: "LowerOrderFormattedText";
70
+ } & {
71
+ __shape__: import("../formatted-text/v1/formattedText").BaseFormattedNodes[];
72
+ };
73
+ };
74
+ };
75
+ export { RESOLVABLES };
76
+ export { TypeResolver as JsonTypeResolver } from './arbitraryTypeResolution';
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.JsonTypeResolver = exports.RESOLVABLES = exports.ResolvableSchemas = exports.PRIMITIVES = exports.PrimitiveSchemas = void 0;
27
+ const PRIMITIVES = __importStar(require("./primitiveTypes"));
28
+ exports.PRIMITIVES = PRIMITIVES;
29
+ const RESOLVABLES = __importStar(require("./resolvableTypes"));
30
+ exports.RESOLVABLES = RESOLVABLES;
31
+ exports.PrimitiveSchemas = Object.fromEntries(Object.entries(PRIMITIVES).map(([_key, typeSchema]) => [typeSchema.title, typeSchema]));
32
+ exports.ResolvableSchemas = Object.fromEntries(Object.entries(RESOLVABLES).map(([_key, typeSchema]) => [typeSchema.title, typeSchema]));
33
+ var arbitraryTypeResolution_1 = require("./arbitraryTypeResolution");
34
+ Object.defineProperty(exports, "JsonTypeResolver", { enumerable: true, get: function () { return arbitraryTypeResolution_1.TypeResolver; } });
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jsonTypeResolution/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA+C;AAOtC,gCAAU;AANnB,+DAAiD;AAYxC,kCAAW;AATP,QAAA,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAChD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CACtC,CAAC;AAItC,QAAA,iBAAiB,GAAG,MAAM,CAAC,WAAW,CACjD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CACtC,CAAC;AAGpD,qEAA6E;AAApE,2HAAA,YAAY,OAAoB"}
@@ -0,0 +1,10 @@
1
+ import { BaseFormattedNodes } from '../formatted-text/v1/formattedText';
2
+ import { PrimitiveType } from './arbitraryTypeResolution';
3
+ export interface SquizImageShape {
4
+ src: string;
5
+ alt: string;
6
+ }
7
+ export declare const SquizImageType: PrimitiveType<"SquizImage", SquizImageShape>;
8
+ export type SquizImageType = typeof SquizImageType;
9
+ export declare const PrimitiveFormattedTextType: PrimitiveType<"FormattedText", BaseFormattedNodes[]>;
10
+ export type PrimitiveFormattedTextType = typeof PrimitiveFormattedTextType;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrimitiveFormattedTextType = exports.SquizImageType = void 0;
4
+ /* eslint-disable @typescript-eslint/no-namespace */
5
+ const __1 = require("..");
6
+ const arbitraryTypeResolution_1 = require("./arbitraryTypeResolution");
7
+ exports.SquizImageType = (0, arbitraryTypeResolution_1.PrimitiveType)({
8
+ title: 'SquizImage',
9
+ type: 'object',
10
+ properties: {
11
+ src: {
12
+ type: 'string',
13
+ },
14
+ alt: {
15
+ type: 'string',
16
+ },
17
+ },
18
+ required: ['src', 'alt'],
19
+ });
20
+ exports.PrimitiveFormattedTextType = (0, arbitraryTypeResolution_1.PrimitiveType)({
21
+ ...__1.FORMATTED_TEXT_SCHEMAS.v1,
22
+ items: {
23
+ $ref: '#/definitions/BaseFormattedNodes',
24
+ },
25
+ title: 'FormattedText',
26
+ });
27
+ //# sourceMappingURL=primitiveTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitiveTypes.js","sourceRoot":"","sources":["../../src/jsonTypeResolution/primitiveTypes.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACpD,0BAA4C;AAE5C,uEAA0D;AAM7C,QAAA,cAAc,GAAG,IAAA,uCAAa,EAAgC;IACzE,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;QACD,GAAG,EAAE;YACH,IAAI,EAAE,QAAQ;SACf;KACF;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB,CAAC,CAAC;AAGU,QAAA,0BAA0B,GAAG,IAAA,uCAAa,EAAwC;IAC7F,GAAG,0BAAsB,CAAC,EAAE;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,kCAAkC;KACzC;IACD,KAAK,EAAE,eAAe;CACvB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { BaseFormattedNodes, FormattedText } from '../formatted-text/v1/formattedText';
2
+ import { ResolvableType } from './arbitraryTypeResolution';
3
+ export interface MatrixImageShape {
4
+ assetId: string;
5
+ matrixIdentifier: string;
6
+ }
7
+ export declare const MatrixImageType: ResolvableType<"MatrixImage", MatrixImageShape>;
8
+ export type MatrixImageType = typeof MatrixImageType;
9
+ export declare const HigherOrderFormattedTextType: ResolvableType<"HigherOrderFormattedText", FormattedText>;
10
+ export type HigherOrderFormattedTextType = typeof HigherOrderFormattedTextType;
11
+ export declare const LowerOrderFormattedTextType: ResolvableType<"LowerOrderFormattedText", BaseFormattedNodes[]>;
12
+ export type LowerOrderFormattedTextType = typeof LowerOrderFormattedTextType;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LowerOrderFormattedTextType = exports.HigherOrderFormattedTextType = exports.MatrixImageType = void 0;
4
+ const __1 = require("..");
5
+ const arbitraryTypeResolution_1 = require("./arbitraryTypeResolution");
6
+ exports.MatrixImageType = (0, arbitraryTypeResolution_1.ResolvableType)({
7
+ title: 'MatrixImage',
8
+ type: 'object',
9
+ properties: {
10
+ assetId: {
11
+ type: 'string',
12
+ },
13
+ matrixIdentifier: {
14
+ type: 'string',
15
+ },
16
+ },
17
+ required: ['assetId', 'matrixIdentifier'],
18
+ });
19
+ exports.HigherOrderFormattedTextType = (0, arbitraryTypeResolution_1.ResolvableType)({
20
+ ...__1.FORMATTED_TEXT_SCHEMAS.v1,
21
+ title: 'HigherOrderFormattedText',
22
+ });
23
+ exports.LowerOrderFormattedTextType = (0, arbitraryTypeResolution_1.ResolvableType)({
24
+ ...__1.FORMATTED_TEXT_SCHEMAS.v1,
25
+ items: {
26
+ $ref: '#/definitions/BaseFormattedNodes',
27
+ },
28
+ title: 'LowerOrderFormattedText',
29
+ });
30
+ //# sourceMappingURL=resolvableTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvableTypes.js","sourceRoot":"","sources":["../../src/jsonTypeResolution/resolvableTypes.ts"],"names":[],"mappings":";;;AAAA,0BAA4C;AAE5C,uEAA2D;AAM9C,QAAA,eAAe,GAAG,IAAA,wCAAc,EAAkC;IAC7E,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;SACf;QACD,gBAAgB,EAAE;YAChB,IAAI,EAAE,QAAQ;SACf;KACF;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC;CAC1C,CAAC,CAAC;AAGU,QAAA,4BAA4B,GAAG,IAAA,wCAAc,EAA4C;IACpG,GAAG,0BAAsB,CAAC,EAAE;IAC5B,KAAK,EAAE,0BAA0B;CAClC,CAAC,CAAC;AAGU,QAAA,2BAA2B,GAAG,IAAA,wCAAc,EAAkD;IACzG,GAAG,0BAAsB,CAAC,EAAE;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,kCAAkC;KACzC;IACD,KAAK,EAAE,yBAAyB;CACjC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squiz/dx-json-schema-lib",
3
- "version": "1.12.0-alpha.46",
3
+ "version": "1.12.0-alpha.48",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -27,7 +27,8 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@sagold/json-query": "6.0.0",
30
- "json-schema-library": "7.4.5"
30
+ "json-schema-library": "7.4.5",
31
+ "ts-brand": "0.0.2"
31
32
  },
32
- "gitHead": "047173c3a5a8d33be8d9becf6af6d5575d7ce914"
33
+ "gitHead": "d0a4a127426d3bd50e04e7028f9efed57d66c71f"
33
34
  }