@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.
Files changed (30) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/JsonValidationService.d.ts +3 -1
  3. package/lib/JsonValidationService.js +10 -10
  4. package/lib/JsonValidationService.js.map +1 -1
  5. package/lib/formatted-text/v1/resolveFormattedTextNodes.d.ts +30 -0
  6. package/lib/formatted-text/v1/resolveFormattedTextNodes.js +50 -0
  7. package/lib/formatted-text/v1/resolveFormattedTextNodes.js.map +1 -0
  8. package/lib/formatted-text/v1/{higherOrderFormattedTextToBaseFormattedText.spec.d.ts → resolveFormattedTextNodes.spec.d.ts} +0 -0
  9. package/lib/formatted-text/v1/resolveFormattedTextNodes.spec.js +227 -0
  10. package/lib/formatted-text/v1/resolveFormattedTextNodes.spec.js.map +1 -0
  11. package/lib/index.d.ts +1 -1
  12. package/lib/index.js +1 -1
  13. package/lib/index.js.map +1 -1
  14. package/lib/manifest/v1/v1.d.ts +1 -0
  15. package/lib/manifest/v1/v1.json +10 -0
  16. package/package.json +4 -3
  17. package/src/JsonValidationService.ts +3 -3
  18. package/src/formatted-text/v1/resolveFormattedTextNodes.spec.ts +246 -0
  19. package/src/formatted-text/v1/resolveFormattedTextNodes.ts +96 -0
  20. package/src/index.ts +1 -1
  21. package/src/manifest/v1/v1.json +10 -0
  22. package/src/manifest/v1/v1.ts +1 -0
  23. package/tsconfig.tsbuildinfo +1 -1
  24. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.d.ts +0 -8
  25. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.js +0 -21
  26. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.js.map +0 -1
  27. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.js +0 -52
  28. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.js.map +0 -1
  29. package/src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.ts +0 -58
  30. 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.3.4-alpha.2](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.2...v1.3.4-alpha.2) (2023-01-17)
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
- const ComponentInputSchema = new json_schema_library_1.Draft({
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
- const ContentSchemaSchema = new json_schema_library_1.Draft07(DxComponentInputSchema_json_1.default, defaultConfig);
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":"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"}
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"}
@@ -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/higherOrderFormattedTextToBaseFormattedText';
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/higherOrderFormattedTextToBaseFormattedText"), exports);
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,kGAAgF;AAEhF,wEAAwD;AAExD,0DAAwC;AACxC,iEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAAgE;AAChE,kFAAkE;AAElE,iGAAiF;AACjF,mGAAmF;AACnF,gFAA8D;AAE9D,wEAAwD;AAExD,0DAAwC;AACxC,iEAA+C"}
@@ -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';
@@ -123,6 +123,16 @@
123
123
  "async": {
124
124
  "type": "boolean"
125
125
  },
126
+ "module": {
127
+ "oneOf": [
128
+ {
129
+ "const": "module"
130
+ },
131
+ {
132
+ "const": "text/javascript"
133
+ }
134
+ ]
135
+ },
126
136
  "integrity": {
127
137
  "type": "string"
128
138
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squiz/dx-json-schema-lib",
3
- "version": "1.3.4-alpha.2",
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.3"
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": "4f9e34a5a5c1bd225abc38a430fb8483acb594c6"
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 {