@squiz/dx-json-schema-lib 1.3.4-alpha.2 → 1.5.1-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- 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":";;AACA,2EAIqC;AAErC,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,MAAM,aAAa,GAAiC;QAClD,sBAAsB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC,CAAC;QACF,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC;KACH,CAAC;IAEF,MAAM,kBAAkB,GAAmB;QACzC,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;YACxC;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,aAAa;gBAC3B,aAAa,EAAE,OAAO;gBACtB,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;aACnD;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC1C;gBACE,IAAI,EAAE,cAAc;gBACpB,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,aAAa;gBAC3B,aAAa,EAAE,OAAO;aACvB;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B;KACF,CAAC;IAEF,MAAM,sBAAsB,GAAmB;QAC7C,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;YACxC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;YAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;YACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;SAC7B;KACF,CAAC;IAEF,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,MAAM,IAAA,gDAAoB,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAE7E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAiC;IACpD,sBAAsB,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACF,CAAC;AACF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,eAAe;iBACvB;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,GAAG;oBACR,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,sBAAsB,EAAE,aAAa,EAAE,OAAO,EAAE;wBACxD,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE;qBACjD;iBACF;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;gBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;gBACxC;oBACE,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,GAAG;oBACR,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE;wBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;qBACvC;iBACF;aACF;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aACzC;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qEAAqE,EAAE,CAAC;SAChH,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE;YACnE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,iBAAiB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBAC5C,gBAAgB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;aAC5C;YACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC;SAChD,CAAC;QACF,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,iBAAiB,EAAE;gBACjB;oBACE,IAAI,EAAE,cAAc;oBACpB,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;iBACvB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,mBAAmB;iBAC3B;aACF;YACD,gBAAgB,EAAE;gBAChB;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,gBAAgB,EAAE,QAAQ;oBAC1B,YAAY,EAAE,aAAa;oBAC3B,aAAa,EAAE,OAAO;oBACtB,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBACnD;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,GAAG;YACX,iBAAiB,EAAE;gBACjB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE;aAC7C;YACD,gBAAgB,EAAE;gBAChB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,wEAAwE,EAAE;aAClG;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qDAAyB,EAAC,QAAQ,EAAE,UAAU,EAAE;YACnE,GAAG,eAAe;YAClB,sBAAsB,EAAE,GAAG,EAAE;gBAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
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 {
|