@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.
- package/.npm/_logs/{2023-02-24T01_14_03_380Z-debug-0.log → 2023-02-24T06_22_01_362Z-debug-0.log} +12 -12
- package/lib/JsonValidationService.d.ts +33 -0
- package/lib/JsonValidationService.js +101 -1
- package/lib/JsonValidationService.js.map +1 -1
- package/lib/JsonValidationService.spec.js +168 -0
- package/lib/JsonValidationService.spec.js.map +1 -1
- package/lib/errors/JsonResolutionError.d.ts +5 -0
- package/lib/errors/JsonResolutionError.js +12 -0
- package/lib/errors/JsonResolutionError.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/jsonTypeResolution/arbitraryTypeResolution.d.ts +61 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.js +61 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.js.map +1 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.d.ts +1 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.js +100 -0
- package/lib/jsonTypeResolution/arbitraryTypeResolution.spec.js.map +1 -0
- package/lib/jsonTypeResolution/index.d.ts +76 -0
- package/lib/jsonTypeResolution/index.js +35 -0
- package/lib/jsonTypeResolution/index.js.map +1 -0
- package/lib/jsonTypeResolution/primitiveTypes.d.ts +10 -0
- package/lib/jsonTypeResolution/primitiveTypes.js +27 -0
- package/lib/jsonTypeResolution/primitiveTypes.js.map +1 -0
- package/lib/jsonTypeResolution/resolvableTypes.d.ts +12 -0
- package/lib/jsonTypeResolution/resolvableTypes.js +30 -0
- package/lib/jsonTypeResolution/resolvableTypes.js.map +1 -0
- package/package.json +4 -3
- package/src/JsonValidationService.spec.ts +280 -1
- package/src/JsonValidationService.ts +127 -1
- package/src/errors/JsonResolutionError.ts +5 -0
- package/src/index.ts +3 -0
- package/src/jsonTypeResolution/arbitraryTypeResolution.spec.ts +134 -0
- package/src/jsonTypeResolution/arbitraryTypeResolution.ts +100 -0
- package/src/jsonTypeResolution/index.ts +16 -0
- package/src/jsonTypeResolution/primitiveTypes.ts +32 -0
- package/src/jsonTypeResolution/resolvableTypes.ts +37 -0
- package/tsconfig.tsbuildinfo +1 -1
@@ -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 @@
|
|
1
|
+
export {};
|
@@ -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.
|
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": "
|
33
|
+
"gitHead": "d0a4a127426d3bd50e04e7028f9efed57d66c71f"
|
33
34
|
}
|