@squiz/dx-json-schema-lib 1.3.4-alpha.2 → 1.5.1-alpha.1
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/CHANGELOG.md +25 -1
- package/lib/JsonValidationService.d.ts +3 -1
- package/lib/JsonValidationService.js +10 -10
- package/lib/JsonValidationService.js.map +1 -1
- package/lib/formatted-text/v1/resolveFormattedTextNodes.d.ts +30 -0
- package/lib/formatted-text/v1/resolveFormattedTextNodes.js +50 -0
- package/lib/formatted-text/v1/resolveFormattedTextNodes.js.map +1 -0
- package/lib/formatted-text/v1/{higherOrderFormattedTextToBaseFormattedText.spec.d.ts → resolveFormattedTextNodes.spec.d.ts} +0 -0
- package/lib/formatted-text/v1/resolveFormattedTextNodes.spec.js +227 -0
- package/lib/formatted-text/v1/resolveFormattedTextNodes.spec.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/manifest/v1/v1.d.ts +1 -0
- package/lib/manifest/v1/v1.json +10 -0
- package/package.json +4 -3
- package/src/JsonValidationService.ts +3 -3
- package/src/formatted-text/v1/resolveFormattedTextNodes.spec.ts +246 -0
- package/src/formatted-text/v1/resolveFormattedTextNodes.ts +96 -0
- package/src/index.ts +1 -1
- package/src/manifest/v1/v1.json +10 -0
- package/src/manifest/v1/v1.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.d.ts +0 -8
- package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.js +0 -21
- package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.js.map +0 -1
- package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.js +0 -52
- package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.js.map +0 -1
- package/src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.ts +0 -58
- package/src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.ts +0 -36
package/CHANGELOG.md
CHANGED
@@ -3,7 +3,31 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
-
## [1.
|
6
|
+
## [1.5.1-alpha.1](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.5.1-alpha.1) (2023-01-24)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @squiz/dx-json-schema-lib
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## [1.5.1-alpha.0](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.5.1-alpha.0) (2023-01-24)
|
15
|
+
|
16
|
+
**Note:** Version bump only for package @squiz/dx-json-schema-lib
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
# [1.5.0](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.5.0) (2023-01-20)
|
23
|
+
|
24
|
+
**Note:** Version bump only for package @squiz/dx-json-schema-lib
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
# [1.4.0](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.4.0) (2023-01-20)
|
7
31
|
|
8
32
|
**Note:** Version bump only for package @squiz/dx-json-schema-lib
|
9
33
|
|
@@ -1,4 +1,6 @@
|
|
1
|
-
import { JSONSchema } from 'json-schema-library';
|
1
|
+
import { Draft07, JSONSchema, Draft } from 'json-schema-library';
|
2
|
+
export declare const ComponentInputSchema: Draft;
|
3
|
+
export declare const ContentSchemaSchema: Draft07;
|
2
4
|
export declare class JsonValidationService {
|
3
5
|
validateManifest(manifest: unknown, version: 'v1'): true;
|
4
6
|
validateContentSchema(contentSchema: JSONSchema): true;
|
@@ -3,7 +3,7 @@ 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 = void 0;
|
6
|
+
exports.JsonValidationService = exports.ContentSchemaSchema = exports.ComponentInputSchema = void 0;
|
7
7
|
const DxComponentInputSchema_json_1 = __importDefault(require("./manifest/v1/DxComponentInputSchema.json"));
|
8
8
|
const DxComponentIcons_json_1 = __importDefault(require("./manifest/v1/DxComponentIcons.json"));
|
9
9
|
const DxContentMetaSchema_json_1 = __importDefault(require("./manifest/v1/DxContentMetaSchema.json"));
|
@@ -54,8 +54,8 @@ const defaultConfig = {
|
|
54
54
|
},
|
55
55
|
},
|
56
56
|
};
|
57
|
-
const FTSchema = new json_schema_library_1.Draft07(formattedText_json_1.default);
|
58
|
-
|
57
|
+
const FTSchema = new json_schema_library_1.Draft07(formattedText_json_1.default, defaultConfig);
|
58
|
+
exports.ComponentInputSchema = new json_schema_library_1.Draft({
|
59
59
|
...defaultConfig,
|
60
60
|
resolveRef(schema, rootSchema) {
|
61
61
|
const resolvedSchema = json_schema_library_2.draft07Config.resolveRef(schema, rootSchema);
|
@@ -77,15 +77,15 @@ const ComponentInputSchema = new json_schema_library_1.Draft({
|
|
77
77
|
}
|
78
78
|
},
|
79
79
|
}, DxComponentInputSchema_json_1.default);
|
80
|
-
ComponentInputSchema.addRemoteSchema('DxComponentInputSchema.json/DxContentMetaSchema.json', DxContentMetaSchema_json_1.default);
|
80
|
+
exports.ComponentInputSchema.addRemoteSchema('DxComponentInputSchema.json/DxContentMetaSchema.json', DxContentMetaSchema_json_1.default);
|
81
81
|
const v1Schema = new json_schema_library_1.Draft07(v1_json_1.default, defaultConfig);
|
82
82
|
v1Schema.addRemoteSchema('DxComponentInputSchema.json/DxContentMetaSchema.json', DxContentMetaSchema_json_1.default);
|
83
|
-
v1Schema.addRemoteSchema('/DxComponentInputSchema.json', ComponentInputSchema.getSchema());
|
83
|
+
v1Schema.addRemoteSchema('/DxComponentInputSchema.json', exports.ComponentInputSchema.getSchema());
|
84
84
|
v1Schema.addRemoteSchema('/DxComponentIcons.json', DxComponentIcons_json_1.default);
|
85
85
|
v1Schema.addRemoteSchema('http://json-schema.org/draft-07/schema', Draft_07_json_1.default);
|
86
86
|
v1Schema.addRemoteSchema('http://json-schema.org/draft-07/schema#', Draft_07_json_1.default);
|
87
|
-
|
88
|
-
ContentSchemaSchema.addRemoteSchema('DxComponentInputSchema.json/DxContentMetaSchema.json', DxContentMetaSchema_json_1.default);
|
87
|
+
exports.ContentSchemaSchema = new json_schema_library_1.Draft07(DxComponentInputSchema_json_1.default, defaultConfig);
|
88
|
+
exports.ContentSchemaSchema.addRemoteSchema('DxComponentInputSchema.json/DxContentMetaSchema.json', DxContentMetaSchema_json_1.default);
|
89
89
|
class JsonValidationService {
|
90
90
|
validateManifest(manifest, version) {
|
91
91
|
switch (version) {
|
@@ -98,11 +98,11 @@ class JsonValidationService {
|
|
98
98
|
}
|
99
99
|
}
|
100
100
|
validateContentSchema(contentSchema) {
|
101
|
-
return this.processValidationResult(ContentSchemaSchema.validate(contentSchema));
|
101
|
+
return this.processValidationResult(exports.ContentSchemaSchema.validate(contentSchema));
|
102
102
|
}
|
103
103
|
validateComponentInput(functionInputSchema, inputValue) {
|
104
|
-
const inputSchema = ComponentInputSchema.compileSchema(functionInputSchema);
|
105
|
-
const errors = ComponentInputSchema.validate(inputValue, inputSchema);
|
104
|
+
const inputSchema = exports.ComponentInputSchema.compileSchema(functionInputSchema);
|
105
|
+
const errors = exports.ComponentInputSchema.validate(inputValue, inputSchema);
|
106
106
|
return this.processValidationResult(errors);
|
107
107
|
}
|
108
108
|
processValidationResult(errors) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":";;;;;;AAAA,4GAA+E;AAC/E,gGAAmE;AACnE,sGAAyE;AACzE,gFAAwD;AAExD,gGAAmE;AAEnE,oEAAuC;AACvC,0EAAuE;AACvE,6DAAyF;AAEzF,6DAAoD;AAGpD,MAAM,aAAa,GAAgB;IACjC,GAAG,mCAAa;IAChB,MAAM,EAAE;QACN,GAAG,mCAAa,CAAC,MAAM;QAEvB,SAAS,CAAC,IAAI;YACZ,IAAI,MAAM,GAAG,IAAI,CAAC;YAElB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACxC;qBAAM;oBACL,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC;iBAChF;aACF;YAED,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,0BAA0B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,qBAAqB,MAAM,IAAI;gBACjG,IAAI;aACL,CAAC;QACJ,CAAC;QAED,UAAU,CAAC,IAAI;YACb,IAAI,KAAK,GAAG,WAAW,IAAI,CAAC,KAAK,OAAO,CAAC;YAEzC,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;gBACjC,KAAK,GAAG,WAAW,CAAC;aACrB;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC7B,KAAK,GAAG,UAAU,CAAC;aACpB;YAED,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,GAAG,KAAK,MAAM,IAAI,CAAC,OAAO,8BAA8B;gBACjE,IAAI;aACL,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,IAAI,6BAAO,CAAC,4BAAa,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"JsonValidationService.js","sourceRoot":"","sources":["../src/JsonValidationService.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { JSONSchema } from 'json-schema-library';
|
2
|
+
import { BaseFormattedNodes, FormattedTextTag, HigherOrderFormattedNodes, TextNode } from './formattedText';
|
3
|
+
export interface FormattedNodeWithChildren {
|
4
|
+
children: FormattedNode[];
|
5
|
+
}
|
6
|
+
type FormattedNode = {
|
7
|
+
type: string;
|
8
|
+
};
|
9
|
+
type ResolutionOutput<T extends FormattedNode> = string | T;
|
10
|
+
type Resolver<Nodes extends FormattedNode, Output extends ResolutionOutput<FormattedNode>> = (node: Nodes) => Promise<Output>;
|
11
|
+
export type ResolverConfig<Nodes extends FormattedNode, Output extends ResolutionOutput<FormattedNode>> = {
|
12
|
+
[N in Nodes as N['type']]: Resolver<N, Output>;
|
13
|
+
} & {
|
14
|
+
default?: Resolver<FormattedNode, Output>;
|
15
|
+
};
|
16
|
+
export type ResolvedChildNode<DEFAULT_NODES extends FormattedNode, CHILD_NODE extends ResolutionOutput<FormattedNode>> = DEFAULT_NODES extends {
|
17
|
+
children: any[];
|
18
|
+
} ? Omit<DEFAULT_NODES, 'children'> & {
|
19
|
+
children: CHILD_NODE[];
|
20
|
+
} : DEFAULT_NODES;
|
21
|
+
export type FullyResolvedNodes = ResolvedChildNode<TextNode | FormattedTextTag, string>;
|
22
|
+
export type BaseResolvedNodes = ResolvedChildNode<BaseFormattedNodes, BaseFormattedNodes>;
|
23
|
+
export type HigherOrderResolvedNodes = ResolvedChildNode<HigherOrderFormattedNodes, BaseResolvedNodes>;
|
24
|
+
export type HigherOrderFormattedNodesMap = ResolverConfig<HigherOrderResolvedNodes, BaseResolvedNodes>;
|
25
|
+
export type FullyResolvedNodesMap = ResolverConfig<FullyResolvedNodes, string>;
|
26
|
+
export declare function resolveFormattedTextNodes<O extends ResolutionOutput<FormattedNode>, RC extends Partial<ResolverConfig<any, O>>>(contentItem: any, contentSchema: JSONSchema, resolvers: RC, { withJoin }?: {
|
27
|
+
withJoin?: string;
|
28
|
+
}): Promise<any>;
|
29
|
+
export declare function resolveFormattedText<I extends FormattedNode, RC extends Partial<ResolverConfig<any, any>>>(node: I, resolvers: RC): Promise<RC extends Partial<ResolverConfig<any, infer O>> ? O : unknown>;
|
30
|
+
export {};
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.resolveFormattedText = exports.resolveFormattedTextNodes = void 0;
|
7
|
+
const json_query_1 = __importDefault(require("@sagold/json-query"));
|
8
|
+
const __1 = require("../..");
|
9
|
+
async function resolveFormattedTextNodes(contentItem, contentSchema, resolvers, { withJoin } = {}) {
|
10
|
+
const resolvedDataSetters = [];
|
11
|
+
__1.ContentSchemaSchema.each(contentItem, (schema, data, pointer) => {
|
12
|
+
if (schema.type === 'FormattedText') {
|
13
|
+
const formattedText = data;
|
14
|
+
const textResolvers = formattedText.map((t) => resolveFormattedText(t, resolvers));
|
15
|
+
const resolvedItem = Promise.all(textResolvers)
|
16
|
+
.catch((error) => {
|
17
|
+
return [{ type: 'text', value: 'Error resolving formatted text at ' + pointer + ': ' + (error === null || error === void 0 ? void 0 : error.message) }];
|
18
|
+
})
|
19
|
+
.then((resolvedData) => (newItem) => {
|
20
|
+
let joinedData = null;
|
21
|
+
if (resolvedData.every((d) => typeof d === 'string') && typeof withJoin === 'string') {
|
22
|
+
joinedData = resolvedData.join(withJoin);
|
23
|
+
}
|
24
|
+
return json_query_1.default.set(newItem, pointer, joinedData || resolvedData);
|
25
|
+
});
|
26
|
+
resolvedDataSetters.push(resolvedItem);
|
27
|
+
}
|
28
|
+
}, contentSchema);
|
29
|
+
for (const setResolvedData of await Promise.all(resolvedDataSetters)) {
|
30
|
+
contentItem = setResolvedData(contentItem);
|
31
|
+
}
|
32
|
+
return contentItem;
|
33
|
+
}
|
34
|
+
exports.resolveFormattedTextNodes = resolveFormattedTextNodes;
|
35
|
+
async function resolveFormattedText(node, resolvers) {
|
36
|
+
if (shouldResolveChildren(node)) {
|
37
|
+
const updatedChildren = await Promise.all(node.children.map((child) => resolveFormattedText(child, resolvers)));
|
38
|
+
node = { ...node, children: updatedChildren };
|
39
|
+
}
|
40
|
+
const resolver = resolvers[node.type] || resolvers['default'];
|
41
|
+
if (resolver) {
|
42
|
+
return await resolver(node);
|
43
|
+
}
|
44
|
+
return node;
|
45
|
+
}
|
46
|
+
exports.resolveFormattedText = resolveFormattedText;
|
47
|
+
function shouldResolveChildren(node) {
|
48
|
+
return !!node && typeof node == 'object' && 'children' in node && Array.isArray(node.children);
|
49
|
+
}
|
50
|
+
//# sourceMappingURL=resolveFormattedTextNodes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolveFormattedTextNodes.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/resolveFormattedTextNodes.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2C;AAE3C,6BAA4C;AAsCrC,KAAK,UAAU,yBAAyB,CAG7C,WAAgB,EAAE,aAAyB,EAAE,SAAa,EAAE,EAAE,QAAQ,KAA4B,EAAE;IACpG,MAAM,mBAAmB,GAAmE,EAAE,CAAC;IAC/F,uBAAmB,CAAC,IAAI,CACtB,WAAW,EACX,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACxB,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;YACnC,MAAM,aAAa,GAAG,IAAqB,CAAC;YAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAEnF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;iBAC5C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,oCAAoC,GAAG,OAAO,GAAG,IAAI,IAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,EAAE,CAAC,CAAC;YAC3G,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,YAAuB,EAAE,EAAE,CAAC,CAAC,OAA2B,EAAE,EAAE;gBACjE,IAAI,UAAU,GAAkB,IAAI,CAAC;gBACrC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;oBACjG,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC1C;gBACD,OAAO,oBAAS,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,YAAY,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YAEL,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACxC;IACH,CAAC,EACD,aAAa,CACd,CAAC;IAEF,KAAK,MAAM,eAAe,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;QACpE,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;KAC5C;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAlCD,8DAkCC;AAEM,KAAK,UAAU,oBAAoB,CACxC,IAAO,EACP,SAAa;IAEb,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;QAC/B,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAEhH,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;KAC/C;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAA8B,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;IACxF,IAAI,QAAQ,EAAE;QACZ,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,OAAO,IAAW,CAAC;AACrB,CAAC;AAfD,oDAeC;AAED,SAAS,qBAAqB,CAA0B,IAAO;IAC7D,OAAO,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjG,CAAC"}
|
File without changes
|
@@ -0,0 +1,227 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const resolveFormattedTextNodes_1 = require("./resolveFormattedTextNodes");
|
4
|
+
describe('higherOrderFormattedTextToBaseFormattedText', () => {
|
5
|
+
const mockResolvers = {
|
6
|
+
'link-to-matrix-asset': jest.fn((node) => {
|
7
|
+
return Promise.resolve({ type: 'text', value: `Link to asset ${node.matrixAssetId}` });
|
8
|
+
}),
|
9
|
+
'matrix-image': jest.fn((node) => {
|
10
|
+
return Promise.resolve({ type: 'text', value: `Image ${node.matrixAssetId}` });
|
11
|
+
}),
|
12
|
+
};
|
13
|
+
const testFormattedNodes = {
|
14
|
+
tag: 'p',
|
15
|
+
type: 'tag',
|
16
|
+
children: [
|
17
|
+
{ type: 'text', value: 'This is some ' },
|
18
|
+
{
|
19
|
+
type: 'link-to-matrix-asset',
|
20
|
+
matrixIdentifier: 'abc123',
|
21
|
+
matrixDomain: 'example.com',
|
22
|
+
matrixAssetId: '12345',
|
23
|
+
target: '_blank',
|
24
|
+
children: [{ type: 'text', value: 'linked text' }],
|
25
|
+
},
|
26
|
+
{ type: 'text', value: ' with an image ' },
|
27
|
+
{
|
28
|
+
type: 'matrix-image',
|
29
|
+
matrixIdentifier: 'abc123',
|
30
|
+
matrixDomain: 'example.com',
|
31
|
+
matrixAssetId: '54321',
|
32
|
+
},
|
33
|
+
{ type: 'text', value: '.' },
|
34
|
+
],
|
35
|
+
};
|
36
|
+
const expectedFormattedNodes = {
|
37
|
+
tag: 'p',
|
38
|
+
type: 'tag',
|
39
|
+
children: [
|
40
|
+
{ type: 'text', value: 'This is some ' },
|
41
|
+
{ type: 'text', value: 'Link to asset 12345' },
|
42
|
+
{ type: 'text', value: ' with an image ' },
|
43
|
+
{ type: 'text', value: 'Image 54321' },
|
44
|
+
{ type: 'text', value: '.' },
|
45
|
+
],
|
46
|
+
};
|
47
|
+
it('should replace higher order nodes with their resolved counterparts', async () => {
|
48
|
+
const result = await (0, resolveFormattedTextNodes_1.resolveFormattedText)(testFormattedNodes, mockResolvers);
|
49
|
+
expect(result).toEqual(expectedFormattedNodes);
|
50
|
+
});
|
51
|
+
});
|
52
|
+
const testResolverMap = {
|
53
|
+
'link-to-matrix-asset': (node) => {
|
54
|
+
return Promise.resolve({ type: 'text', value: `Link to asset ${node.matrixAssetId}` });
|
55
|
+
},
|
56
|
+
'matrix-image': (node) => {
|
57
|
+
return Promise.resolve({ type: 'text', value: `Image ${node.matrixAssetId}` });
|
58
|
+
},
|
59
|
+
};
|
60
|
+
describe('resolveFormattedNodes', () => {
|
61
|
+
it('should resolve all FormattedText items in an object', async () => {
|
62
|
+
const testSchema = {
|
63
|
+
type: 'object',
|
64
|
+
properties: {
|
65
|
+
normal: { type: 'string' },
|
66
|
+
number: { type: 'number' },
|
67
|
+
formattedText: { type: 'FormattedText' },
|
68
|
+
},
|
69
|
+
required: ['normal', 'number', 'formattedText'],
|
70
|
+
};
|
71
|
+
const testItem = {
|
72
|
+
normal: 'string',
|
73
|
+
number: 312,
|
74
|
+
formattedText: [
|
75
|
+
{
|
76
|
+
type: 'link-to-matrix-asset',
|
77
|
+
matrixIdentifier: 'abc123',
|
78
|
+
matrixDomain: 'example.com',
|
79
|
+
matrixAssetId: '12345',
|
80
|
+
target: '_blank',
|
81
|
+
children: [{ type: 'text', value: 'linked text' }],
|
82
|
+
},
|
83
|
+
{
|
84
|
+
type: 'matrix-image',
|
85
|
+
matrixIdentifier: 'abc123',
|
86
|
+
matrixDomain: 'example.com',
|
87
|
+
matrixAssetId: '54321',
|
88
|
+
},
|
89
|
+
{
|
90
|
+
type: 'text',
|
91
|
+
value: 'This is some ',
|
92
|
+
},
|
93
|
+
{
|
94
|
+
type: 'tag',
|
95
|
+
tag: 'p',
|
96
|
+
children: [
|
97
|
+
{ type: 'link-to-matrix-asset', matrixAssetId: '12345' },
|
98
|
+
{ type: 'matrix-image', matrixAssetId: '54321' },
|
99
|
+
],
|
100
|
+
},
|
101
|
+
],
|
102
|
+
};
|
103
|
+
const expectedItem = {
|
104
|
+
normal: 'string',
|
105
|
+
number: 312,
|
106
|
+
formattedText: [
|
107
|
+
{ type: 'text', value: 'Link to asset 12345' },
|
108
|
+
{ type: 'text', value: 'Image 54321' },
|
109
|
+
{ type: 'text', value: 'This is some ' },
|
110
|
+
{
|
111
|
+
type: 'tag',
|
112
|
+
tag: 'p',
|
113
|
+
children: [
|
114
|
+
{ type: 'text', value: 'Link to asset 12345' },
|
115
|
+
{ type: 'text', value: 'Image 54321' },
|
116
|
+
],
|
117
|
+
},
|
118
|
+
],
|
119
|
+
};
|
120
|
+
const result = await (0, resolveFormattedTextNodes_1.resolveFormattedTextNodes)(testItem, testSchema, testResolverMap);
|
121
|
+
expect(result).toEqual(expectedItem);
|
122
|
+
});
|
123
|
+
it('should resolve errors to a text node', async () => {
|
124
|
+
const testSchema = {
|
125
|
+
type: 'object',
|
126
|
+
properties: {
|
127
|
+
normal: { type: 'string' },
|
128
|
+
number: { type: 'number' },
|
129
|
+
formattedText: { type: 'FormattedText' },
|
130
|
+
},
|
131
|
+
required: ['normal', 'number', 'formattedText'],
|
132
|
+
};
|
133
|
+
const testItem = {
|
134
|
+
normal: 'string',
|
135
|
+
number: 312,
|
136
|
+
formattedText: [
|
137
|
+
{
|
138
|
+
type: 'link-to-matrix-asset',
|
139
|
+
matrixIdentifier: 'abc123',
|
140
|
+
matrixDomain: 'example.com',
|
141
|
+
matrixAssetId: '12345',
|
142
|
+
target: '_blank',
|
143
|
+
children: [{ type: 'text', value: 'linked text' }],
|
144
|
+
},
|
145
|
+
{
|
146
|
+
type: 'matrix-image',
|
147
|
+
matrixIdentifier: 'abc123',
|
148
|
+
matrixDomain: 'example.com',
|
149
|
+
matrixAssetId: '54321',
|
150
|
+
},
|
151
|
+
{
|
152
|
+
type: 'text',
|
153
|
+
value: 'This is some text',
|
154
|
+
},
|
155
|
+
],
|
156
|
+
};
|
157
|
+
const expectedItem = {
|
158
|
+
normal: 'string',
|
159
|
+
number: 312,
|
160
|
+
formattedText: [{ type: 'text', value: 'Error resolving formatted text at #/formattedText: This is an error' }],
|
161
|
+
};
|
162
|
+
const result = await (0, resolveFormattedTextNodes_1.resolveFormattedTextNodes)(testItem, testSchema, {
|
163
|
+
...testResolverMap,
|
164
|
+
'link-to-matrix-asset': () => {
|
165
|
+
return Promise.reject(new Error('This is an error'));
|
166
|
+
},
|
167
|
+
});
|
168
|
+
expect(result).toEqual(expectedItem);
|
169
|
+
});
|
170
|
+
it('should still resolve other nodes if one fails', async () => {
|
171
|
+
const testSchema = {
|
172
|
+
type: 'object',
|
173
|
+
properties: {
|
174
|
+
normal: { type: 'string' },
|
175
|
+
number: { type: 'number' },
|
176
|
+
goodFormattedText: { type: 'FormattedText' },
|
177
|
+
badFormattedText: { type: 'FormattedText' },
|
178
|
+
},
|
179
|
+
required: ['normal', 'number', 'formattedText'],
|
180
|
+
};
|
181
|
+
const testItem = {
|
182
|
+
normal: 'string',
|
183
|
+
number: 312,
|
184
|
+
goodFormattedText: [
|
185
|
+
{
|
186
|
+
type: 'matrix-image',
|
187
|
+
matrixIdentifier: 'abc123',
|
188
|
+
matrixDomain: 'example.com',
|
189
|
+
matrixAssetId: '54321',
|
190
|
+
},
|
191
|
+
{
|
192
|
+
type: 'text',
|
193
|
+
value: 'This is some text',
|
194
|
+
},
|
195
|
+
],
|
196
|
+
badFormattedText: [
|
197
|
+
{
|
198
|
+
type: 'link-to-matrix-asset',
|
199
|
+
matrixIdentifier: 'abc123',
|
200
|
+
matrixDomain: 'example.com',
|
201
|
+
matrixAssetId: '12345',
|
202
|
+
target: '_blank',
|
203
|
+
children: [{ type: 'text', value: 'linked text' }],
|
204
|
+
},
|
205
|
+
],
|
206
|
+
};
|
207
|
+
const expectedItem = {
|
208
|
+
normal: 'string',
|
209
|
+
number: 312,
|
210
|
+
goodFormattedText: [
|
211
|
+
{ type: 'text', value: 'Image 54321' },
|
212
|
+
{ type: 'text', value: 'This is some text' },
|
213
|
+
],
|
214
|
+
badFormattedText: [
|
215
|
+
{ type: 'text', value: 'Error resolving formatted text at #/badFormattedText: This is an error' },
|
216
|
+
],
|
217
|
+
};
|
218
|
+
const result = await (0, resolveFormattedTextNodes_1.resolveFormattedTextNodes)(testItem, testSchema, {
|
219
|
+
...testResolverMap,
|
220
|
+
'link-to-matrix-asset': () => {
|
221
|
+
return Promise.reject(new Error('This is an error'));
|
222
|
+
},
|
223
|
+
});
|
224
|
+
expect(result).toEqual(expectedItem);
|
225
|
+
});
|
226
|
+
});
|
227
|
+
//# sourceMappingURL=resolveFormattedTextNodes.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"resolveFormattedTextNodes.spec.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/resolveFormattedTextNodes.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
@@ -2,7 +2,7 @@ export * as MANIFEST_MODELS from './manifest/v1/manifestModels';
|
|
2
2
|
export * as MANIFEST_SCHEMAS from './manifest/v1/manifestSchemas';
|
3
3
|
export * as FORMATTED_TEXT_MODELS from './formatted-text/v1/formattedTextModels';
|
4
4
|
export * as FORMATTED_TEXT_SCHEMAS from './formatted-text/v1/formattedTextSchemas';
|
5
|
-
export * from './formatted-text/v1/
|
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';
|
package/lib/index.js
CHANGED
@@ -31,7 +31,7 @@ exports.MANIFEST_MODELS = __importStar(require("./manifest/v1/manifestModels"));
|
|
31
31
|
exports.MANIFEST_SCHEMAS = __importStar(require("./manifest/v1/manifestSchemas"));
|
32
32
|
exports.FORMATTED_TEXT_MODELS = __importStar(require("./formatted-text/v1/formattedTextModels"));
|
33
33
|
exports.FORMATTED_TEXT_SCHEMAS = __importStar(require("./formatted-text/v1/formattedTextSchemas"));
|
34
|
-
__exportStar(require("./formatted-text/v1/
|
34
|
+
__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);
|
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,
|
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"}
|
package/lib/manifest/v1/v1.d.ts
CHANGED
@@ -314,6 +314,7 @@ export interface JsFile {
|
|
314
314
|
filepath: string;
|
315
315
|
defer?: boolean;
|
316
316
|
async?: boolean;
|
317
|
+
module?: 'module' | 'text/javascript';
|
317
318
|
integrity?: string;
|
318
319
|
crossorigin?: 'anonymous' | 'use-credentials';
|
319
320
|
referrerpolicy?: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
|
package/lib/manifest/v1/v1.json
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@squiz/dx-json-schema-lib",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.5.1-alpha.1",
|
4
4
|
"description": "",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"scripts": {
|
@@ -26,13 +26,14 @@
|
|
26
26
|
"ts-jest": "28.0.8",
|
27
27
|
"ts-loader": "9.3.1",
|
28
28
|
"ts-node": "10.9.1",
|
29
|
-
"typescript": "4.9.
|
29
|
+
"typescript": "4.9.4"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
+
"@sagold/json-query": "6.0.0",
|
32
33
|
"ajv": "8.11.2",
|
33
34
|
"ajv-formats": "2.1.1",
|
34
35
|
"better-ajv-errors": "1.2.0",
|
35
36
|
"json-schema-library": "7.4.4"
|
36
37
|
},
|
37
|
-
"gitHead": "
|
38
|
+
"gitHead": "c13280d14eb309774d081880dcd4d062e39d7c40"
|
38
39
|
}
|
@@ -60,9 +60,9 @@ const defaultConfig: DraftConfig = {
|
|
60
60
|
},
|
61
61
|
};
|
62
62
|
|
63
|
-
const FTSchema = new Draft07(FormattedText);
|
63
|
+
const FTSchema = new Draft07(FormattedText, defaultConfig);
|
64
64
|
|
65
|
-
const ComponentInputSchema = new Draft(
|
65
|
+
export const ComponentInputSchema = new Draft(
|
66
66
|
{
|
67
67
|
...defaultConfig,
|
68
68
|
|
@@ -96,7 +96,7 @@ v1Schema.addRemoteSchema('/DxComponentIcons.json', DxComponentIcons);
|
|
96
96
|
v1Schema.addRemoteSchema('http://json-schema.org/draft-07/schema', Draft07Schema);
|
97
97
|
v1Schema.addRemoteSchema('http://json-schema.org/draft-07/schema#', Draft07Schema);
|
98
98
|
|
99
|
-
const ContentSchemaSchema = new Draft07(DxComponentInputSchema, defaultConfig);
|
99
|
+
export const ContentSchemaSchema = new Draft07(DxComponentInputSchema, defaultConfig);
|
100
100
|
ContentSchemaSchema.addRemoteSchema('DxComponentInputSchema.json/DxContentMetaSchema.json', DxContentMetaSchema);
|
101
101
|
|
102
102
|
export class JsonValidationService {
|