@squiz/dx-json-schema-lib 1.3.4-alpha.2 → 1.5.1-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. package/CHANGELOG.md +17 -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/package.json +4 -3
  15. package/src/JsonValidationService.ts +3 -3
  16. package/src/formatted-text/v1/resolveFormattedTextNodes.spec.ts +246 -0
  17. package/src/formatted-text/v1/resolveFormattedTextNodes.ts +96 -0
  18. package/src/index.ts +1 -1
  19. package/tsconfig.tsbuildinfo +1 -1
  20. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.d.ts +0 -8
  21. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.js +0 -21
  22. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.js.map +0 -1
  23. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.js +0 -52
  24. package/lib/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.js.map +0 -1
  25. package/src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.ts +0 -58
  26. package/src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.ts +0 -36
package/CHANGELOG.md CHANGED
@@ -3,7 +3,23 @@
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.0](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.5.1-alpha.0) (2023-01-24)
7
+
8
+ **Note:** Version bump only for package @squiz/dx-json-schema-lib
9
+
10
+
11
+
12
+
13
+
14
+ # [1.5.0](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.5.0) (2023-01-20)
15
+
16
+ **Note:** Version bump only for package @squiz/dx-json-schema-lib
17
+
18
+
19
+
20
+
21
+
22
+ # [1.4.0](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.3.3...v1.4.0) (2023-01-20)
7
23
 
8
24
  **Note:** Version bump only for package @squiz/dx-json-schema-lib
9
25
 
@@ -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":";;;;;;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,EAAE,aAAa,CAAC,CAAC;AAE9C,QAAA,oBAAoB,GAAG,IAAI,2BAAK,CAC3C;IACE,GAAG,aAAa;IAEhB,UAAU,CAAC,MAAM,EAAE,UAAU;QAC3B,MAAM,cAAc,GAAG,mCAAa,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAA4C,CAAC;QAC/G,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,cAAc,CAAC;SACvB;QACD,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,EAAE;YAC3C,OAAO,QAAQ,CAAC,UAAU,CAAC;SAC5B;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAC9F,OAAO;gBACL,GAAG,MAAM;gBACT,GAAG,QAAQ,CAAC,UAAU;gBACtB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,MAAM,CAAC,4BAAa,CAAC,IAAe,CAAC;aACrG,CAAC;SACH;aAAM;YACL,OAAO,cAAc,CAAC;SACvB;IACH,CAAC;CACF,EACD,qCAAsB,CACvB,CAAC;AACF,4BAAoB,CAAC,eAAe,CAAC,sDAAsD,EAAE,kCAAmB,CAAC,CAAC;AAElH,MAAM,QAAQ,GAAG,IAAI,6BAAO,CAAC,iBAAE,EAAE,aAAa,CAAC,CAAC;AAEhD,QAAQ,CAAC,eAAe,CAAC,sDAAsD,EAAE,kCAAmB,CAAC,CAAC;AACtG,QAAQ,CAAC,eAAe,CAAC,8BAA8B,EAAE,4BAAoB,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3F,QAAQ,CAAC,eAAe,CAAC,wBAAwB,EAAE,+BAAgB,CAAC,CAAC;AACrE,QAAQ,CAAC,eAAe,CAAC,wCAAwC,EAAE,uBAAa,CAAC,CAAC;AAClF,QAAQ,CAAC,eAAe,CAAC,yCAAyC,EAAE,uBAAa,CAAC,CAAC;AAEtE,QAAA,mBAAmB,GAAG,IAAI,6BAAO,CAAC,qCAAsB,EAAE,aAAa,CAAC,CAAC;AACtF,2BAAmB,CAAC,eAAe,CAAC,sDAAsD,EAAE,kCAAmB,CAAC,CAAC;AAEjH,MAAa,qBAAqB;IAChC,gBAAgB,CAAC,QAAiB,EAAE,OAAa;QAC/C,QAAQ,OAAO,EAAE;YACf,KAAK,IAAI,CAAC,CAAC;gBACT,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;aACvD;YAED;gBACE,MAAM,IAAI,6CAAqB,CAAC,0BAA0B,CAAC,CAAC;SAC/D;IACH,CAAC;IACD,qBAAqB,CAAC,aAAyB;QAC7C,OAAO,IAAI,CAAC,uBAAuB,CAAC,2BAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,sBAAsB,CAAC,mBAA+B,EAAE,UAAmB;QACzE,MAAM,WAAW,GAAG,4BAAoB,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,4BAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,uBAAuB,CAAC,MAAmB;QACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,6CAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3E;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9BD,sDA8BC"}
@@ -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":"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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/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"}
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.0",
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": "4fc8b4120b11318a297e46ed39dc912d23f37e5f"
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 {
@@ -0,0 +1,246 @@
1
+ import { FormattedNodes } from './formattedText';
2
+ import {
3
+ HigherOrderFormattedNodesMap,
4
+ resolveFormattedText,
5
+ resolveFormattedTextNodes,
6
+ } from './resolveFormattedTextNodes';
7
+
8
+ describe('higherOrderFormattedTextToBaseFormattedText', () => {
9
+ const mockResolvers: HigherOrderFormattedNodesMap = {
10
+ 'link-to-matrix-asset': jest.fn((node) => {
11
+ return Promise.resolve({ type: 'text', value: `Link to asset ${node.matrixAssetId}` });
12
+ }),
13
+ 'matrix-image': jest.fn((node) => {
14
+ return Promise.resolve({ type: 'text', value: `Image ${node.matrixAssetId}` });
15
+ }),
16
+ };
17
+
18
+ const testFormattedNodes: FormattedNodes = {
19
+ tag: 'p',
20
+ type: 'tag',
21
+ children: [
22
+ { type: 'text', value: 'This is some ' },
23
+ {
24
+ type: 'link-to-matrix-asset',
25
+ matrixIdentifier: 'abc123',
26
+ matrixDomain: 'example.com',
27
+ matrixAssetId: '12345',
28
+ target: '_blank',
29
+ children: [{ type: 'text', value: 'linked text' }],
30
+ },
31
+ { type: 'text', value: ' with an image ' },
32
+ {
33
+ type: 'matrix-image',
34
+ matrixIdentifier: 'abc123',
35
+ matrixDomain: 'example.com',
36
+ matrixAssetId: '54321',
37
+ },
38
+ { type: 'text', value: '.' },
39
+ ],
40
+ };
41
+
42
+ const expectedFormattedNodes: FormattedNodes = {
43
+ tag: 'p',
44
+ type: 'tag',
45
+ children: [
46
+ { type: 'text', value: 'This is some ' },
47
+ { type: 'text', value: 'Link to asset 12345' },
48
+ { type: 'text', value: ' with an image ' },
49
+ { type: 'text', value: 'Image 54321' },
50
+ { type: 'text', value: '.' },
51
+ ],
52
+ };
53
+
54
+ it('should replace higher order nodes with their resolved counterparts', async () => {
55
+ const result = await resolveFormattedText(testFormattedNodes, mockResolvers);
56
+
57
+ expect(result).toEqual(expectedFormattedNodes);
58
+ });
59
+ });
60
+
61
+ const testResolverMap: HigherOrderFormattedNodesMap = {
62
+ 'link-to-matrix-asset': (node) => {
63
+ return Promise.resolve({ type: 'text', value: `Link to asset ${node.matrixAssetId}` });
64
+ },
65
+ 'matrix-image': (node) => {
66
+ return Promise.resolve({ type: 'text', value: `Image ${node.matrixAssetId}` });
67
+ },
68
+ };
69
+ describe('resolveFormattedNodes', () => {
70
+ it('should resolve all FormattedText items in an object', async () => {
71
+ const testSchema = {
72
+ type: 'object',
73
+ properties: {
74
+ normal: { type: 'string' },
75
+ number: { type: 'number' },
76
+ formattedText: { type: 'FormattedText' },
77
+ },
78
+ required: ['normal', 'number', 'formattedText'],
79
+ };
80
+ const testItem = {
81
+ normal: 'string',
82
+ number: 312,
83
+ formattedText: [
84
+ {
85
+ type: 'link-to-matrix-asset',
86
+ matrixIdentifier: 'abc123',
87
+ matrixDomain: 'example.com',
88
+ matrixAssetId: '12345',
89
+ target: '_blank',
90
+ children: [{ type: 'text', value: 'linked text' }],
91
+ },
92
+ {
93
+ type: 'matrix-image',
94
+ matrixIdentifier: 'abc123',
95
+ matrixDomain: 'example.com',
96
+ matrixAssetId: '54321',
97
+ },
98
+ {
99
+ type: 'text',
100
+ value: 'This is some ',
101
+ },
102
+ {
103
+ type: 'tag',
104
+ tag: 'p',
105
+ children: [
106
+ { type: 'link-to-matrix-asset', matrixAssetId: '12345' },
107
+ { type: 'matrix-image', matrixAssetId: '54321' },
108
+ ],
109
+ },
110
+ ],
111
+ };
112
+
113
+ const expectedItem = {
114
+ normal: 'string',
115
+ number: 312,
116
+ formattedText: [
117
+ { type: 'text', value: 'Link to asset 12345' },
118
+ { type: 'text', value: 'Image 54321' },
119
+ { type: 'text', value: 'This is some ' },
120
+ {
121
+ type: 'tag',
122
+ tag: 'p',
123
+ children: [
124
+ { type: 'text', value: 'Link to asset 12345' },
125
+ { type: 'text', value: 'Image 54321' },
126
+ ],
127
+ },
128
+ ],
129
+ };
130
+
131
+ const result = await resolveFormattedTextNodes(testItem, testSchema, testResolverMap);
132
+
133
+ expect(result).toEqual(expectedItem);
134
+ });
135
+
136
+ it('should resolve errors to a text node', async () => {
137
+ const testSchema = {
138
+ type: 'object',
139
+ properties: {
140
+ normal: { type: 'string' },
141
+ number: { type: 'number' },
142
+ formattedText: { type: 'FormattedText' },
143
+ },
144
+ required: ['normal', 'number', 'formattedText'],
145
+ };
146
+ const testItem = {
147
+ normal: 'string',
148
+ number: 312,
149
+ formattedText: [
150
+ {
151
+ type: 'link-to-matrix-asset',
152
+ matrixIdentifier: 'abc123',
153
+ matrixDomain: 'example.com',
154
+ matrixAssetId: '12345',
155
+ target: '_blank',
156
+ children: [{ type: 'text', value: 'linked text' }],
157
+ },
158
+ {
159
+ type: 'matrix-image',
160
+ matrixIdentifier: 'abc123',
161
+ matrixDomain: 'example.com',
162
+ matrixAssetId: '54321',
163
+ },
164
+ {
165
+ type: 'text',
166
+ value: 'This is some text',
167
+ },
168
+ ],
169
+ };
170
+
171
+ const expectedItem = {
172
+ normal: 'string',
173
+ number: 312,
174
+ formattedText: [{ type: 'text', value: 'Error resolving formatted text at #/formattedText: This is an error' }],
175
+ };
176
+
177
+ const result = await resolveFormattedTextNodes(testItem, testSchema, {
178
+ ...testResolverMap,
179
+ 'link-to-matrix-asset': () => {
180
+ return Promise.reject(new Error('This is an error'));
181
+ },
182
+ });
183
+
184
+ expect(result).toEqual(expectedItem);
185
+ });
186
+
187
+ it('should still resolve other nodes if one fails', async () => {
188
+ const testSchema = {
189
+ type: 'object',
190
+ properties: {
191
+ normal: { type: 'string' },
192
+ number: { type: 'number' },
193
+ goodFormattedText: { type: 'FormattedText' },
194
+ badFormattedText: { type: 'FormattedText' },
195
+ },
196
+ required: ['normal', 'number', 'formattedText'],
197
+ };
198
+ const testItem = {
199
+ normal: 'string',
200
+ number: 312,
201
+ goodFormattedText: [
202
+ {
203
+ type: 'matrix-image',
204
+ matrixIdentifier: 'abc123',
205
+ matrixDomain: 'example.com',
206
+ matrixAssetId: '54321',
207
+ },
208
+ {
209
+ type: 'text',
210
+ value: 'This is some text',
211
+ },
212
+ ],
213
+ badFormattedText: [
214
+ {
215
+ type: 'link-to-matrix-asset',
216
+ matrixIdentifier: 'abc123',
217
+ matrixDomain: 'example.com',
218
+ matrixAssetId: '12345',
219
+ target: '_blank',
220
+ children: [{ type: 'text', value: 'linked text' }],
221
+ },
222
+ ],
223
+ };
224
+
225
+ const expectedItem = {
226
+ normal: 'string',
227
+ number: 312,
228
+ goodFormattedText: [
229
+ { type: 'text', value: 'Image 54321' },
230
+ { type: 'text', value: 'This is some text' },
231
+ ],
232
+ badFormattedText: [
233
+ { type: 'text', value: 'Error resolving formatted text at #/badFormattedText: This is an error' },
234
+ ],
235
+ };
236
+
237
+ const result = await resolveFormattedTextNodes(testItem, testSchema, {
238
+ ...testResolverMap,
239
+ 'link-to-matrix-asset': () => {
240
+ return Promise.reject(new Error('This is an error'));
241
+ },
242
+ });
243
+
244
+ expect(result).toEqual(expectedItem);
245
+ });
246
+ });
@@ -0,0 +1,96 @@
1
+ import JSONQuery from '@sagold/json-query';
2
+ import { JSONSchema } from 'json-schema-library';
3
+ import { ContentSchemaSchema } from '../..';
4
+ import {
5
+ BaseFormattedNodes,
6
+ FormattedText,
7
+ FormattedTextTag,
8
+ HigherOrderFormattedNodes,
9
+ TextNode,
10
+ } from './formattedText';
11
+
12
+ export interface FormattedNodeWithChildren {
13
+ children: FormattedNode[];
14
+ }
15
+
16
+ type FormattedNode = { type: string };
17
+ type ResolutionOutput<T extends FormattedNode> = string | T;
18
+ type Resolver<Nodes extends FormattedNode, Output extends ResolutionOutput<FormattedNode>> = (
19
+ node: Nodes,
20
+ ) => Promise<Output>;
21
+ export type ResolverConfig<Nodes extends FormattedNode, Output extends ResolutionOutput<FormattedNode>> = {
22
+ [N in Nodes as N['type']]: Resolver<N, Output>;
23
+ } & { default?: Resolver<FormattedNode, Output> };
24
+
25
+ export type ResolvedChildNode<
26
+ DEFAULT_NODES extends FormattedNode,
27
+ CHILD_NODE extends ResolutionOutput<FormattedNode>,
28
+ > = DEFAULT_NODES extends {
29
+ children: any[];
30
+ }
31
+ ? Omit<DEFAULT_NODES, 'children'> & { children: CHILD_NODE[] }
32
+ : DEFAULT_NODES;
33
+
34
+ export type FullyResolvedNodes = ResolvedChildNode<TextNode | FormattedTextTag, string>;
35
+ export type BaseResolvedNodes = ResolvedChildNode<BaseFormattedNodes, BaseFormattedNodes>;
36
+ export type HigherOrderResolvedNodes = ResolvedChildNode<HigherOrderFormattedNodes, BaseResolvedNodes>;
37
+
38
+ export type HigherOrderFormattedNodesMap = ResolverConfig<HigherOrderResolvedNodes, BaseResolvedNodes>;
39
+ export type FullyResolvedNodesMap = ResolverConfig<FullyResolvedNodes, string>;
40
+
41
+ export async function resolveFormattedTextNodes<
42
+ O extends ResolutionOutput<FormattedNode>,
43
+ RC extends Partial<ResolverConfig<any, O>>,
44
+ >(contentItem: any, contentSchema: JSONSchema, resolvers: RC, { withJoin }: { withJoin?: string } = {}) {
45
+ const resolvedDataSetters: Promise<(newItem: typeof contentItem) => typeof contentItem>[] = [];
46
+ ContentSchemaSchema.each(
47
+ contentItem,
48
+ (schema, data, pointer) => {
49
+ if (schema.type === 'FormattedText') {
50
+ const formattedText = data as FormattedText;
51
+ const textResolvers = formattedText.map((t) => resolveFormattedText(t, resolvers));
52
+
53
+ const resolvedItem = Promise.all(textResolvers)
54
+ .catch((error) => {
55
+ return [{ type: 'text', value: 'Error resolving formatted text at ' + pointer + ': ' + error?.message }];
56
+ })
57
+ .then((resolvedData: unknown[]) => (newItem: typeof contentItem) => {
58
+ let joinedData: string | null = null;
59
+ if (resolvedData.every((d): d is string => typeof d === 'string') && typeof withJoin === 'string') {
60
+ joinedData = resolvedData.join(withJoin);
61
+ }
62
+ return JSONQuery.set(newItem, pointer, joinedData || resolvedData);
63
+ });
64
+
65
+ resolvedDataSetters.push(resolvedItem);
66
+ }
67
+ },
68
+ contentSchema,
69
+ );
70
+
71
+ for (const setResolvedData of await Promise.all(resolvedDataSetters)) {
72
+ contentItem = setResolvedData(contentItem);
73
+ }
74
+ return contentItem;
75
+ }
76
+
77
+ export async function resolveFormattedText<I extends FormattedNode, RC extends Partial<ResolverConfig<any, any>>>(
78
+ node: I,
79
+ resolvers: RC,
80
+ ): Promise<RC extends Partial<ResolverConfig<any, infer O>> ? O : unknown> {
81
+ if (shouldResolveChildren(node)) {
82
+ const updatedChildren = await Promise.all(node.children.map((child) => resolveFormattedText(child, resolvers)));
83
+
84
+ node = { ...node, children: updatedChildren };
85
+ }
86
+ const resolver = resolvers[node.type as keyof typeof resolvers] || resolvers['default'];
87
+ if (resolver) {
88
+ return await resolver(node);
89
+ }
90
+
91
+ return node as any;
92
+ }
93
+
94
+ function shouldResolveChildren<I extends FormattedNode>(node: I): node is I & { children: Array<I> } {
95
+ return !!node && typeof node == 'object' && 'children' in node && Array.isArray(node.children);
96
+ }
package/src/index.ts CHANGED
@@ -3,7 +3,7 @@ export * as MANIFEST_SCHEMAS from './manifest/v1/manifestSchemas';
3
3
 
4
4
  export * as FORMATTED_TEXT_MODELS from './formatted-text/v1/formattedTextModels';
5
5
  export * as FORMATTED_TEXT_SCHEMAS from './formatted-text/v1/formattedTextSchemas';
6
- export * from './formatted-text/v1/higherOrderFormattedTextToBaseFormattedText';
6
+ export * from './formatted-text/v1/resolveFormattedTextNodes';
7
7
 
8
8
  export * as SUB_SCHEMAS from './manifest/v1/subSchemas';
9
9
 
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.es2019.full.d.ts","./src/manifest/v1/DxComponentInputSchema.json","./src/manifest/v1/DxComponentIcons.json","./src/manifest/v1/DxContentMetaSchema.json","./src/manifest/v1/Draft-07.json","./src/formatted-text/v1/formattedText.json","./src/manifest/v1/v1.json","../../node_modules/ajv/lib/ajv.d.ts","../../node_modules/better-ajv-errors/typings.d.ts","./src/errors/SchemaValidationError.ts","../../node_modules/json-schema-library/dist/lib/step.d.ts","../../node_modules/json-schema-library/dist/lib/validate.d.ts","../../node_modules/json-schema-library/dist/lib/resolveOneOf.strict.d.ts","../../node_modules/json-schema-library/dist/lib/resolveRef.strict.d.ts","../../node_modules/json-schema-library/dist/lib/resolveAllOf.d.ts","../../node_modules/json-schema-library/dist/lib/resolveAnyOf.d.ts","../../node_modules/json-schema-library/dist/lib/getTemplate.d.ts","../../node_modules/json-schema-library/dist/lib/getChildSchemaSelection.d.ts","../../node_modules/json-schema-library/dist/lib/getSchema.d.ts","../../node_modules/json-schema-library/dist/lib/each.d.ts","../../node_modules/json-schema-library/dist/lib/isValid.d.ts","../../node_modules/json-schema-library/dist/lib/eachSchema.d.ts","../../node_modules/json-schema-library/dist/lib/createSchemaOf.d.ts","../../node_modules/json-schema-library/dist/lib/compile/index.d.ts","../../node_modules/json-schema-library/dist/lib/compileSchema.d.ts","../../node_modules/json-schema-library/dist/lib/addRemoteSchema.d.ts","../../node_modules/json-schema-library/dist/lib/draft/index.d.ts","../../node_modules/json-schema-library/dist/lib/types.d.ts","../../node_modules/json-schema-library/dist/lib/utils/createCustomError.d.ts","../../node_modules/json-schema-library/dist/lib/getTypeOf.d.ts","../../node_modules/json-schema-library/dist/lib/resolveOneOf.fuzzy.d.ts","../../node_modules/json-schema-library/dist/lib/resolveRef.merge.d.ts","../../node_modules/json-schema-library/dist/lib/jsoneditor/index.d.ts","../../node_modules/json-schema-library/dist/lib/SchemaService.d.ts","../../node_modules/json-schema-library/dist/lib/config/settings.d.ts","../../node_modules/json-schema-library/dist/lib/validateAsync.d.ts","../../node_modules/json-schema-library/dist/lib/utils/render.d.ts","../../node_modules/json-schema-library/dist/lib/draft04/index.d.ts","../../node_modules/json-schema-library/dist/lib/draft06/index.d.ts","../../node_modules/json-schema-library/dist/lib/draft07/index.d.ts","../../node_modules/json-schema-library/dist/index.d.ts","./src/manifest/v1/v1.ts","./src/manifest/v1/manifestModels.ts","./src/manifest/v1/manifestSchemas.ts","./src/formatted-text/v1/formattedText.ts","./src/formatted-text/v1/formattedTextModels.ts","./src/formatted-text/v1/formattedTextSchemas.ts","./src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.ts","./src/manifest/v1/subSchemas.ts","./src/index.ts","./src/JsonValidationService.ts","./src/manifest/v1/__test__/schemas/validComponent.json","./src/manifest/v1/__test__/schemas/validComponentJson.json","./src/JsonValidationService.spec.ts","./src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.ts","./src/manifest/v1/DxComponentInputSchema.spec.ts","./src/manifest/v1/v1.spec.ts","./src/manifest/v1/__test__/schemas/badFunctionInputComponent.json","./src/manifest/v1/__test__/schemas/badNestedFunctionInput.json","./src/manifest/v1/__test__/schemas/nonObjectFunctionInputComponent.json","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","d56d096f009561a724ce60f75390a3b45f05f268e719b6c99936b21746d967fd","977878c27e5b764f2ff69842219d51e56ef95393444052eb1c47bf5a45e9c528","9db857c42420a19dc73db374a06c552d9fa82873b9d5d46d66df83cca27640a2","561ca644d941d3e58cd59645efefbf845827c6cf647a6a4cf25ce7774fbd7864","7133de86c684c70e150f4ff6162bada29137a679cd74242b9a8f2e2f6f285728","ab06bafc061bf97a4d71582652fd255386dc73ad5a617f3df731e92608cb8a83","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","75cf4ad42e6028796dfc8602566e7a3893a8c7445484ae29fdb5d1ba41edeac3",{"version":"765a2f79715a6cb8ad9a68ba12c662d60478dc4c5a83ca5e7318fe49512c340a","signature":"9396896a411d8204d8046a81291dc0931e6f08d807c9a6a845ede90b39c2ffd8"},"4c7311cb9548d88b2d514d9882865cfeb91a86d8200763141434d12041e1266e","b8df1e322d33912c71404ccebd30fe19e7bf4761aa538482f9c352f596ff3791","b0c02f5265344f39ad399efb769d04adc61bd2d731a89546c6ac1dd13402882f","068d586667afde115e25440a009c19b6847570b40ac8aabfbc179fcbfe8bf506","39f4754191feee4a82ae8c6f358801d498826bc39782aa71ab8a22e0acd69bfb","93550869fe38dbbbbebd70566fb25d0f412e145eda5ef1e306555aab88f7e746","34ef5e31febc088ea29fff60b9ce63c6f93b427f16be96b5fc54fa2365efd4b4","509f89bbeb74491d210f6a1667a77476ef0065ae0a356039c695bcffac416085","099151d9a5269199a9056e0c237e11a0914bf4d1c5dfa74b047ad51dcfc29f2f","72454c6f36beaddf243a2300b8117c8cdcee40c7ded3ec1102294b281c638c0e","a16e63b2b46bb255554fd37add8635dba51bce4994418dc59e3fdc1cae1842f4","da3a35a812ff5951746e1951f8a15c412dcb38232b82609921b7b8339b72a2a1","24d86f36e3b15397f3d6de1e7a0418acb6a24b81d76a5d010b68bc3f9f39c335","c40fa1d33437d63704e9b6adcdeb777bc9f935c7fb99d8f9b1ef8da749d8c4f3","295c3d2ae8dc914f976382303561add84c237693303753a68c159d322a7c318a","a4f6e7947555e8404ee1a9a7da66f1c099b9c803797294960cdacae0b2d373f4","736ecb548e79b950e0cc025aaed5b7c9199b4a37b4fa44fdb136f12af52006bc","71ae34007e09dda0671692e094de88d52c8c5e61c22db466268d99494a121fe3","a1202f82dbd5d9810328ba5540dc679df111f08e2f8e65b6b0433095cc92247b","674e7039e020b9080b69081e0ed9da2bb28ad20e43bef57a19f74d3ad759369c","8c61f80006532ac74d63b31857b8a0805ca3525f251e948bcd353c4a06b3ce56","6aa51c3925b80dd867ffb433985ab02b84cec947c0ace5481dcfbaa5b327d85e","370c06384b4972e973a1bd4ca68ecfd5d3d4b5dd4c6779d72a05e3bdf3c883c1","7cd4af1e9de8de9f374e3aede01fed7f7b672a288e79f44ad5a6abfa039209f7","bfe0f62462a8931ec56b40ed78a624d610af7cfd0a5ad0f0e3c0a0c8829bf290","1271808fc3d34cbb76c4476245dfa00daa422ec0bb5a3a082af3f715b7a972bf","b084a929ac328c408701c387b1290eb0a8fb5836f62d11cbc590ccbcdb3c8663","7ec575d98458f81e00984975395311d4b6b05dbe0b94fb8ee6667bf1c19b9556","04f7fd3054a9f996ae2c16f3267975cc4772c57af534d67aa6803fc7e5d16378","1faef1a6c17f7568bb9a352f34cb984ba6a60b24e737f6bbb71afc852d83fdc7","3a1f387ba73588586704b6c30f708a78961d84c6b856a497f6d79fcba573d3c0",{"version":"8c8105bf4e3269488af88e0802133b022bfe023804eee578bd5630f4e47daa3e","signature":"ac3bb357cb869703dfc9d16f3baec86847175471109dcc1625376ffe723601e5"},"49845efff6f2735906a5dc8f6a8ea205118a7e7a0b04b5d1ab681b3c93709fd4",{"version":"04a5d44f26c4e61c59e8cd87a6fd183062aebec9de57b9c6072cd4422072dc3f","signature":"d8e1b7b74a6512d4e1c2c373b93d85f49e6b1627acf893e68289e40f93e5cf20"},{"version":"c0e7b228bfd9b52201d6542d691174f5e03c8960ab11887e80b42044e0309d68","signature":"96b610cbad396c4a27f75aa30f59dd7a00866cf63334677cda5ee875ef909ed5"},"3d281067e486b0d8cd6b37921b826fca714ead972a8d15b4fd284f109fe5d8a1",{"version":"eff6398eed90c632c579b19e3470bf3351311711883c59a17c2304b7e26887fb","signature":"a7aa17d3e62726a9643aad42d0e1e8ceb7d902942ad0658896c2c5db1f3b88bd"},{"version":"8f01a9776f8b982fbe75e3b4b5c35728b6ab7fd9b0cb2df9186cc105c618b5a1","signature":"09245c4eabaa6ecdb56fcf441c6bae4abaffb4d6aa54349ef3001049a7efc63f"},{"version":"99a4027658509893e27f4df342e83c5a9d821d6920e1ba8f0bf5fe914bcbd5a0","signature":"c93af3685f1f8db83cbbdcccf6870892da402271e4c81fb958098d5e5c10eef2"},{"version":"face79c871a94c9214cc94a6174b8306050b3518d078b4c69d54acce9accd7a8","signature":"3a5fb0a90f97a114372c32660562c25610eb4ca9f277b65997d4469044d37587"},{"version":"91f5585f11490d1f059a6d603a30ad66b1db1fe8d357aea0d72948d0c8019ddb","signature":"5763df6fc624d42bb70a1c02ae5f53c84b98b656253e537aeee6d5fcc3a728d8"},"644b80d1f9462cc7fd530312ecf8f52c50f906cc7bb5382bc47617ac6ae65183","68a1db1021b307ce7650b44e9a44cef40a6c120f6e714bf12f547ad50b6506b4",{"version":"72b065a0035a93cb87cc983e88c859b35eb295a0d40835bf4555d5a81736cf09","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"113d82639c7a13ae6f69ee3a3fe5c0f0dec6b85d216c6550da863e185ffb193e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e78ed970261a6de83ca2b38b1e35fb569591d926c44e06847d90c7fbfc5eb662","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fe0561937121eeabcc226031a5e636ce3e1b2d5930821ef848187dda10b5ec5c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"51ee820f71c328f7a7d11885397c8a90bf8221dc74da209cf6cc58130534539b","675c493f58a200ace97e3c52dcd9a5d6e2ae18bcc7f369bb67eef96f34aa3eeb","a03da7e60d55d09cbeeea4dd90ca137db53a95efe4553f2ae21e88b72db0dc1c","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3054ef91b855e005b9c4681399e9d64d2a7b07a22d539314d794f09e53b876a7","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8"],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[158],[108,158],[110,113,158],[53,158],[106,112,158],[110,158],[107,111,158],[58,59,60,65,67,72,73,74,75,76,77,78,79,80,81,82,83,84,85,158],[73,78,158],[72,73,158],[69,158],[73,158],[56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,158],[72,158],[109,158],[115,158],[118,158],[119,124,158],[120,130,131,138,147,157,158],[120,121,130,138,158],[122,158],[123,124,131,139,158],[124,147,154,158],[125,127,130,138,158],[126,158],[127,128,158],[129,130,158],[130,158],[130,131,132,147,157,158],[130,131,132,147,158],[133,138,147,157,158],[130,131,133,134,138,147,154,157,158],[133,135,147,154,157,158],[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164],[130,136,158],[137,157,158],[127,130,138,147,158],[139,158],[140,158],[118,141,158],[142,156,158,162],[143,158],[144,158],[130,145,158],[145,146,158,160],[130,147,148,149,158],[147,149,158],[147,148,158],[150,158],[151,158],[130,152,153,158],[152,153,158],[124,138,147,154,158],[155,158],[138,156,158],[119,133,144,157,158],[124,158],[147,158,159],[158,160],[158,161],[119,124,130,132,141,147,157,158,160,162],[147,158,163],[55,90,96,97,98,158],[47,48,49,50,51,52,55,86,95,158],[54,158],[90,158],[51,158],[90,93,158],[55,88,89,91,92,93,94,96,158],[55,96,158],[87,158],[52,158],[47,48,49,158],[55,96,132,140,158],[86],[54],[51],[90],[55,88,89,91,92,93,94,96],[52],[47,48,49]],"referencedMap":[[106,1],[109,2],[108,1],[114,3],[53,1],[54,4],[107,1],[113,5],[111,6],[112,7],[86,8],[79,9],[71,10],[69,10],[70,11],[80,1],[68,12],[72,13],[83,10],[84,10],[85,10],[65,10],[67,12],[63,10],[64,10],[62,10],[75,1],[66,10],[78,10],[60,10],[61,10],[76,10],[58,10],[77,12],[59,12],[56,10],[73,14],[74,12],[82,1],[57,10],[81,10],[110,15],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[46,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1],[115,16],[116,16],[118,17],[119,18],[120,19],[121,20],[122,21],[123,22],[124,23],[125,24],[126,25],[127,26],[128,26],[129,27],[130,28],[131,29],[132,30],[117,1],[164,1],[133,31],[134,32],[135,33],[165,34],[136,35],[137,36],[138,37],[139,38],[140,39],[141,40],[142,41],[143,42],[144,43],[145,44],[146,45],[147,46],[149,47],[148,48],[150,49],[151,50],[152,51],[153,52],[154,53],[155,54],[156,55],[157,56],[158,57],[159,58],[160,59],[161,60],[162,61],[163,62],[99,63],[96,64],[55,65],[51,1],[90,1],[91,66],[92,67],[100,68],[93,66],[95,69],[50,1],[48,1],[47,1],[101,70],[49,1],[103,1],[104,1],[105,1],[97,1],[98,1],[88,71],[89,72],[94,73],[52,1],[102,74],[87,1]],"exportedModulesMap":[[106,1],[109,2],[108,1],[114,3],[53,1],[54,4],[107,1],[113,5],[111,6],[112,7],[86,8],[79,9],[71,10],[69,10],[70,11],[80,1],[68,12],[72,13],[83,10],[84,10],[85,10],[65,10],[67,12],[63,10],[64,10],[62,10],[75,1],[66,10],[78,10],[60,10],[61,10],[76,10],[58,10],[77,12],[59,12],[56,10],[73,14],[74,12],[82,1],[57,10],[81,10],[110,15],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[46,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1],[115,16],[116,16],[118,17],[119,18],[120,19],[121,20],[122,21],[123,22],[124,23],[125,24],[126,25],[127,26],[128,26],[129,27],[130,28],[131,29],[132,30],[117,1],[164,1],[133,31],[134,32],[135,33],[165,34],[136,35],[137,36],[138,37],[139,38],[140,39],[141,40],[142,41],[143,42],[144,43],[145,44],[146,45],[147,46],[149,47],[148,48],[150,49],[151,50],[152,51],[153,52],[154,53],[155,54],[156,55],[157,56],[158,57],[159,58],[160,59],[161,60],[162,61],[163,62],[96,75],[55,76],[51,1],[91,66],[92,77],[93,78],[95,79],[50,1],[48,1],[47,1],[49,1],[103,1],[104,1],[105,1],[97,1],[98,1],[88,71],[89,80],[94,81],[52,1]],"semanticDiagnosticsPerFile":[106,109,108,114,53,54,107,113,111,112,86,79,71,69,70,80,68,72,83,84,85,65,67,63,64,62,75,66,78,60,61,76,58,77,59,56,73,74,82,57,81,110,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,46,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,117,164,133,134,135,165,136,137,138,139,140,141,142,143,144,145,146,147,149,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,99,96,55,51,90,91,92,100,93,95,50,48,47,101,49,103,104,105,97,98,88,89,94,52,102,87],"latestChangedDtsFile":"./lib/manifest/v1/v1.spec.d.ts"},"version":"4.9.3"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.es2019.full.d.ts","./src/manifest/v1/DxComponentInputSchema.json","./src/manifest/v1/DxComponentIcons.json","./src/manifest/v1/DxContentMetaSchema.json","./src/manifest/v1/Draft-07.json","./src/formatted-text/v1/formattedText.json","./src/manifest/v1/v1.json","../../node_modules/ajv/lib/ajv.d.ts","../../node_modules/better-ajv-errors/typings.d.ts","./src/errors/SchemaValidationError.ts","../../node_modules/json-schema-library/dist/lib/step.d.ts","../../node_modules/json-schema-library/dist/lib/validate.d.ts","../../node_modules/json-schema-library/dist/lib/resolveOneOf.strict.d.ts","../../node_modules/json-schema-library/dist/lib/resolveRef.strict.d.ts","../../node_modules/json-schema-library/dist/lib/resolveAllOf.d.ts","../../node_modules/json-schema-library/dist/lib/resolveAnyOf.d.ts","../../node_modules/json-schema-library/dist/lib/getTemplate.d.ts","../../node_modules/json-schema-library/dist/lib/getChildSchemaSelection.d.ts","../../node_modules/json-schema-library/dist/lib/getSchema.d.ts","../../node_modules/json-schema-library/dist/lib/each.d.ts","../../node_modules/json-schema-library/dist/lib/isValid.d.ts","../../node_modules/json-schema-library/dist/lib/eachSchema.d.ts","../../node_modules/json-schema-library/dist/lib/createSchemaOf.d.ts","../../node_modules/json-schema-library/dist/lib/compile/index.d.ts","../../node_modules/json-schema-library/dist/lib/compileSchema.d.ts","../../node_modules/json-schema-library/dist/lib/addRemoteSchema.d.ts","../../node_modules/json-schema-library/dist/lib/draft/index.d.ts","../../node_modules/json-schema-library/dist/lib/types.d.ts","../../node_modules/json-schema-library/dist/lib/utils/createCustomError.d.ts","../../node_modules/json-schema-library/dist/lib/getTypeOf.d.ts","../../node_modules/json-schema-library/dist/lib/resolveOneOf.fuzzy.d.ts","../../node_modules/json-schema-library/dist/lib/resolveRef.merge.d.ts","../../node_modules/json-schema-library/dist/lib/jsoneditor/index.d.ts","../../node_modules/json-schema-library/dist/lib/SchemaService.d.ts","../../node_modules/json-schema-library/dist/lib/config/settings.d.ts","../../node_modules/json-schema-library/dist/lib/validateAsync.d.ts","../../node_modules/json-schema-library/dist/lib/utils/render.d.ts","../../node_modules/json-schema-library/dist/lib/draft04/index.d.ts","../../node_modules/json-schema-library/dist/lib/draft06/index.d.ts","../../node_modules/json-schema-library/dist/lib/draft07/index.d.ts","../../node_modules/json-schema-library/dist/index.d.ts","./src/manifest/v1/v1.ts","./src/manifest/v1/manifestModels.ts","./src/manifest/v1/manifestSchemas.ts","./src/formatted-text/v1/formattedText.ts","./src/formatted-text/v1/formattedTextModels.ts","./src/formatted-text/v1/formattedTextSchemas.ts","../../node_modules/@sagold/json-query/dist/lib/types.d.ts","../../node_modules/@sagold/json-query/dist/lib/get.d.ts","../../node_modules/@sagold/json-query/dist/lib/set.d.ts","../../node_modules/@sagold/json-query/dist/lib/split.d.ts","../../node_modules/@sagold/json-query/dist/lib/remove.d.ts","../../node_modules/@sagold/json-query/dist/index.d.ts","./src/formatted-text/v1/resolveFormattedTextNodes.ts","./src/manifest/v1/subSchemas.ts","./src/index.ts","./src/JsonValidationService.ts","./src/manifest/v1/__test__/schemas/validComponent.json","./src/manifest/v1/__test__/schemas/validComponentJson.json","./src/JsonValidationService.spec.ts","./src/formatted-text/v1/resolveFormattedTextNodes.spec.ts","./src/manifest/v1/DxComponentInputSchema.spec.ts","./src/manifest/v1/v1.spec.ts","./src/manifest/v1/__test__/schemas/badFunctionInputComponent.json","./src/manifest/v1/__test__/schemas/badNestedFunctionInput.json","./src/manifest/v1/__test__/schemas/nonObjectFunctionInputComponent.json","../../node_modules/@jest/expect-utils/build/index.d.ts","../../node_modules/chalk/index.d.ts","../../node_modules/@sinclair/typebox/typebox.d.ts","../../node_modules/@jest/schemas/build/index.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/jest-matcher-utils/build/index.d.ts","../../node_modules/expect/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","d56d096f009561a724ce60f75390a3b45f05f268e719b6c99936b21746d967fd","977878c27e5b764f2ff69842219d51e56ef95393444052eb1c47bf5a45e9c528","9db857c42420a19dc73db374a06c552d9fa82873b9d5d46d66df83cca27640a2","561ca644d941d3e58cd59645efefbf845827c6cf647a6a4cf25ce7774fbd7864","7133de86c684c70e150f4ff6162bada29137a679cd74242b9a8f2e2f6f285728","ab06bafc061bf97a4d71582652fd255386dc73ad5a617f3df731e92608cb8a83","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","75cf4ad42e6028796dfc8602566e7a3893a8c7445484ae29fdb5d1ba41edeac3",{"version":"765a2f79715a6cb8ad9a68ba12c662d60478dc4c5a83ca5e7318fe49512c340a","signature":"9396896a411d8204d8046a81291dc0931e6f08d807c9a6a845ede90b39c2ffd8"},"4c7311cb9548d88b2d514d9882865cfeb91a86d8200763141434d12041e1266e","b8df1e322d33912c71404ccebd30fe19e7bf4761aa538482f9c352f596ff3791","b0c02f5265344f39ad399efb769d04adc61bd2d731a89546c6ac1dd13402882f","068d586667afde115e25440a009c19b6847570b40ac8aabfbc179fcbfe8bf506","39f4754191feee4a82ae8c6f358801d498826bc39782aa71ab8a22e0acd69bfb","93550869fe38dbbbbebd70566fb25d0f412e145eda5ef1e306555aab88f7e746","34ef5e31febc088ea29fff60b9ce63c6f93b427f16be96b5fc54fa2365efd4b4","509f89bbeb74491d210f6a1667a77476ef0065ae0a356039c695bcffac416085","099151d9a5269199a9056e0c237e11a0914bf4d1c5dfa74b047ad51dcfc29f2f","72454c6f36beaddf243a2300b8117c8cdcee40c7ded3ec1102294b281c638c0e","a16e63b2b46bb255554fd37add8635dba51bce4994418dc59e3fdc1cae1842f4","da3a35a812ff5951746e1951f8a15c412dcb38232b82609921b7b8339b72a2a1","24d86f36e3b15397f3d6de1e7a0418acb6a24b81d76a5d010b68bc3f9f39c335","c40fa1d33437d63704e9b6adcdeb777bc9f935c7fb99d8f9b1ef8da749d8c4f3","295c3d2ae8dc914f976382303561add84c237693303753a68c159d322a7c318a","a4f6e7947555e8404ee1a9a7da66f1c099b9c803797294960cdacae0b2d373f4","736ecb548e79b950e0cc025aaed5b7c9199b4a37b4fa44fdb136f12af52006bc","71ae34007e09dda0671692e094de88d52c8c5e61c22db466268d99494a121fe3","a1202f82dbd5d9810328ba5540dc679df111f08e2f8e65b6b0433095cc92247b","674e7039e020b9080b69081e0ed9da2bb28ad20e43bef57a19f74d3ad759369c","8c61f80006532ac74d63b31857b8a0805ca3525f251e948bcd353c4a06b3ce56","6aa51c3925b80dd867ffb433985ab02b84cec947c0ace5481dcfbaa5b327d85e","370c06384b4972e973a1bd4ca68ecfd5d3d4b5dd4c6779d72a05e3bdf3c883c1","7cd4af1e9de8de9f374e3aede01fed7f7b672a288e79f44ad5a6abfa039209f7","bfe0f62462a8931ec56b40ed78a624d610af7cfd0a5ad0f0e3c0a0c8829bf290","1271808fc3d34cbb76c4476245dfa00daa422ec0bb5a3a082af3f715b7a972bf","b084a929ac328c408701c387b1290eb0a8fb5836f62d11cbc590ccbcdb3c8663","7ec575d98458f81e00984975395311d4b6b05dbe0b94fb8ee6667bf1c19b9556","04f7fd3054a9f996ae2c16f3267975cc4772c57af534d67aa6803fc7e5d16378","1faef1a6c17f7568bb9a352f34cb984ba6a60b24e737f6bbb71afc852d83fdc7","3a1f387ba73588586704b6c30f708a78961d84c6b856a497f6d79fcba573d3c0",{"version":"8c8105bf4e3269488af88e0802133b022bfe023804eee578bd5630f4e47daa3e","signature":"ac3bb357cb869703dfc9d16f3baec86847175471109dcc1625376ffe723601e5"},"49845efff6f2735906a5dc8f6a8ea205118a7e7a0b04b5d1ab681b3c93709fd4",{"version":"04a5d44f26c4e61c59e8cd87a6fd183062aebec9de57b9c6072cd4422072dc3f","signature":"d8e1b7b74a6512d4e1c2c373b93d85f49e6b1627acf893e68289e40f93e5cf20"},{"version":"c0e7b228bfd9b52201d6542d691174f5e03c8960ab11887e80b42044e0309d68","signature":"96b610cbad396c4a27f75aa30f59dd7a00866cf63334677cda5ee875ef909ed5"},"3d281067e486b0d8cd6b37921b826fca714ead972a8d15b4fd284f109fe5d8a1",{"version":"eff6398eed90c632c579b19e3470bf3351311711883c59a17c2304b7e26887fb","signature":"a7aa17d3e62726a9643aad42d0e1e8ceb7d902942ad0658896c2c5db1f3b88bd"},"81d1122d5f0e0e696b0cf0f5a0a761799207dd8334c06b2bed1f7c1e780d2e5e","d3690166a3cce5ac54b3c7df2b38e3d7afaf0cb8f563854baf3b2cf66ed251c3","981a6e65d65c048573ad901529629f240dc3183836ac3be6a42d4e8acb0ed31f","88a181e2806d2be41026d8f6acfcbc88394131a2149cbc193dccf1851a5effb7","7d3c4f72bfed4e990a26359772bc2aa64be5aff812e2d94ddc39515739adc0ca","2712cd17f7d0a19f2cab0506fd79a40edaf7ea4a5fb41a6013aa8b9aec67cd9f",{"version":"55213d8aa38ec81a8807432a7abdda4f6b82b650d24e27f78c86186179285212","signature":"9df518e4cff799d1e36997b83953d848cb3a75fa16f868784e87fe51bd36f97f"},{"version":"99a4027658509893e27f4df342e83c5a9d821d6920e1ba8f0bf5fe914bcbd5a0","signature":"c93af3685f1f8db83cbbdcccf6870892da402271e4c81fb958098d5e5c10eef2"},{"version":"c30152e94636a85e4383aef45df0e803eecd92385c9b7018820f54f548b9ff76","signature":"14b0e08a0134d8cdcf249a678e3839d2b9e695a79151995255ed8f3e7a05c07d"},{"version":"e8104ecacb00248fbc45fcfc2020ce68884b0baba36a7a4840e58ad7f5b7c7d9","signature":"15202d90065bb465dcf78ba0a6f99d9b55ababf037df6034146e94667df6fbb6"},"644b80d1f9462cc7fd530312ecf8f52c50f906cc7bb5382bc47617ac6ae65183","68a1db1021b307ce7650b44e9a44cef40a6c120f6e714bf12f547ad50b6506b4",{"version":"72b065a0035a93cb87cc983e88c859b35eb295a0d40835bf4555d5a81736cf09","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"8952c9f298678b8709b33706c7a909450c2e4c83a350c1dc4f51749fcc95be20","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e78ed970261a6de83ca2b38b1e35fb569591d926c44e06847d90c7fbfc5eb662","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"fe0561937121eeabcc226031a5e636ce3e1b2d5930821ef848187dda10b5ec5c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"51ee820f71c328f7a7d11885397c8a90bf8221dc74da209cf6cc58130534539b","675c493f58a200ace97e3c52dcd9a5d6e2ae18bcc7f369bb67eef96f34aa3eeb","a03da7e60d55d09cbeeea4dd90ca137db53a95efe4553f2ae21e88b72db0dc1c","763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","3054ef91b855e005b9c4681399e9d64d2a7b07a22d539314d794f09e53b876a7","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true},"0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8"],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[164],[114,164],[93,94,95,96,97,164],[93,164],[116,119,164],[53,164],[112,118,164],[116,164],[113,117,164],[58,59,60,65,67,72,73,74,75,76,77,78,79,80,81,82,83,84,85,164],[73,78,164],[72,73,164],[69,164],[73,164],[56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,164],[72,164],[115,164],[121,164],[124,164],[125,130,164],[126,136,137,144,153,163,164],[126,127,136,144,164],[128,164],[129,130,137,145,164],[130,153,160,164],[131,133,136,144,164],[132,164],[133,134,164],[135,136,164],[136,164],[136,137,138,153,163,164],[136,137,138,153,164],[139,144,153,163,164],[136,137,139,140,144,153,160,163,164],[139,141,153,160,163,164],[121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[136,142,164],[143,163,164],[133,136,144,153,164],[145,164],[146,164],[124,147,164],[148,162,164,168],[149,164],[150,164],[136,151,164],[151,152,164,166],[136,153,154,155,164],[153,155,164],[153,154,164],[156,164],[157,164],[136,158,159,164],[158,159,164],[130,144,153,160,164],[161,164],[144,162,164],[125,139,150,163,164],[130,164],[153,164,165],[164,166],[164,167],[125,130,136,138,147,153,163,164,166,168],[153,164,169],[55,90,102,103,104,164],[47,48,49,50,51,52,55,86,101,164],[54,164],[90,164],[51,164],[90,99,164],[86,90,98,101,164],[55,88,89,91,92,99,100,102,164],[55,102,164],[87,164],[52,164],[47,48,49,164],[55,102,138,146,164],[86],[54],[51],[86,90],[55,88,89,91,92,99,100,102],[52],[47,48,49]],"referencedMap":[[112,1],[115,2],[98,3],[94,4],[97,1],[95,4],[96,1],[93,1],[114,1],[120,5],[53,1],[54,6],[113,1],[119,7],[117,8],[118,9],[86,10],[79,11],[71,12],[69,12],[70,13],[80,1],[68,14],[72,15],[83,12],[84,12],[85,12],[65,12],[67,14],[63,12],[64,12],[62,12],[75,1],[66,12],[78,12],[60,12],[61,12],[76,12],[58,12],[77,14],[59,14],[56,12],[73,16],[74,14],[82,1],[57,12],[81,12],[116,17],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[46,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1],[121,18],[122,18],[124,19],[125,20],[126,21],[127,22],[128,23],[129,24],[130,25],[131,26],[132,27],[133,28],[134,28],[135,29],[136,30],[137,31],[138,32],[123,1],[170,1],[139,33],[140,34],[141,35],[171,36],[142,37],[143,38],[144,39],[145,40],[146,41],[147,42],[148,43],[149,44],[150,45],[151,46],[152,47],[153,48],[155,49],[154,50],[156,51],[157,52],[158,53],[159,54],[160,55],[161,56],[162,57],[163,58],[164,59],[165,60],[166,61],[167,62],[168,63],[169,64],[105,65],[102,66],[55,67],[51,1],[90,1],[91,68],[92,69],[106,70],[99,71],[101,72],[50,1],[48,1],[47,1],[107,73],[49,1],[109,1],[110,1],[111,1],[103,1],[104,1],[88,74],[89,75],[100,76],[52,1],[108,77],[87,1]],"exportedModulesMap":[[112,1],[115,2],[98,3],[94,4],[97,1],[95,4],[96,1],[93,1],[114,1],[120,5],[53,1],[54,6],[113,1],[119,7],[117,8],[118,9],[86,10],[79,11],[71,12],[69,12],[70,13],[80,1],[68,14],[72,15],[83,12],[84,12],[85,12],[65,12],[67,14],[63,12],[64,12],[62,12],[75,1],[66,12],[78,12],[60,12],[61,12],[76,12],[58,12],[77,14],[59,14],[56,12],[73,16],[74,14],[82,1],[57,12],[81,12],[116,17],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[46,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[45,1],[11,1],[10,1],[121,18],[122,18],[124,19],[125,20],[126,21],[127,22],[128,23],[129,24],[130,25],[131,26],[132,27],[133,28],[134,28],[135,29],[136,30],[137,31],[138,32],[123,1],[170,1],[139,33],[140,34],[141,35],[171,36],[142,37],[143,38],[144,39],[145,40],[146,41],[147,42],[148,43],[149,44],[150,45],[151,46],[152,47],[153,48],[155,49],[154,50],[156,51],[157,52],[158,53],[159,54],[160,55],[161,56],[162,57],[163,58],[164,59],[165,60],[166,61],[167,62],[168,63],[169,64],[102,78],[55,79],[51,1],[91,68],[92,80],[99,81],[101,82],[50,1],[48,1],[47,1],[49,1],[109,1],[110,1],[111,1],[103,1],[104,1],[88,74],[89,83],[100,84],[52,1]],"semanticDiagnosticsPerFile":[112,115,98,94,97,95,96,93,114,120,53,54,113,119,117,118,86,79,71,69,70,80,68,72,83,84,85,65,67,63,64,62,75,66,78,60,61,76,58,77,59,56,73,74,82,57,81,116,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,46,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,121,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,123,170,139,140,141,171,142,143,144,145,146,147,148,149,150,151,152,153,155,154,156,157,158,159,160,161,162,163,164,165,166,167,168,169,105,102,55,51,90,91,92,106,99,101,50,48,47,107,49,109,110,111,103,104,88,89,100,52,108,87],"latestChangedDtsFile":"./lib/manifest/v1/v1.spec.d.ts"},"version":"4.9.4"}
@@ -1,8 +0,0 @@
1
- import { BaseFormattedNodes, FormattedNodes, HigherOrderFormattedNodes } from './formattedText';
2
- export interface FormattedNodeWithChildren {
3
- children: FormattedNodes[];
4
- }
5
- export type HigherOrderFormattedNodesMap = {
6
- [key in HigherOrderFormattedNodes['type']]: (node: HigherOrderFormattedNodes) => Promise<BaseFormattedNodes>;
7
- };
8
- export declare function higherOrderFormattedTextToBaseFormattedText(node: FormattedNodes, resolvers: HigherOrderFormattedNodesMap): Promise<FormattedNodes>;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.higherOrderFormattedTextToBaseFormattedText = void 0;
4
- async function higherOrderFormattedTextToBaseFormattedText(node, resolvers) {
5
- if (node.type in resolvers && nodeIsHigherOrder(node)) {
6
- return await resolvers[node.type](node);
7
- }
8
- if (hasChildren(node)) {
9
- const updatedChildren = await Promise.all(node.children.map((child) => higherOrderFormattedTextToBaseFormattedText(child, resolvers)));
10
- return { ...node, children: updatedChildren };
11
- }
12
- return node;
13
- }
14
- exports.higherOrderFormattedTextToBaseFormattedText = higherOrderFormattedTextToBaseFormattedText;
15
- function hasChildren(node) {
16
- return node && typeof node == 'object' && 'children' in node && Array.isArray(node.children);
17
- }
18
- function nodeIsHigherOrder(node) {
19
- return node.type === 'link-to-matrix-asset' || node.type === 'matrix-image';
20
- }
21
- //# sourceMappingURL=higherOrderFormattedTextToBaseFormattedText.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"higherOrderFormattedTextToBaseFormattedText.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.ts"],"names":[],"mappings":";;;AAUO,KAAK,UAAU,2CAA2C,CAC/D,IAAoB,EACpB,SAAuC;IAEvC,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;KACzC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,2CAA2C,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAC5F,CAAC;QAEF,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;KAC/C;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAjBD,kGAiBC;AAED,SAAS,WAAW,CAAC,IAAS;IAC5B,OAAO,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAoB;IAC7C,OAAO,IAAI,CAAC,IAAI,KAAK,sBAAsB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AAC9E,CAAC"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const higherOrderFormattedTextToBaseFormattedText_1 = require("./higherOrderFormattedTextToBaseFormattedText");
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, higherOrderFormattedTextToBaseFormattedText_1.higherOrderFormattedTextToBaseFormattedText)(testFormattedNodes, mockResolvers);
49
- expect(result).toEqual(expectedFormattedNodes);
50
- });
51
- });
52
- //# sourceMappingURL=higherOrderFormattedTextToBaseFormattedText.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"higherOrderFormattedTextToBaseFormattedText.spec.js","sourceRoot":"","sources":["../../../src/formatted-text/v1/higherOrderFormattedTextToBaseFormattedText.spec.ts"],"names":[],"mappings":";;AACA,+GAGuD;AAEvD,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,MAAM,aAAa,GAAiC;QAClD,sBAAsB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAA+B,EAAE,EAAE;YAClE,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,IAA+B,EAAE,EAAE;YAC1D,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,yFAA2C,EAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAEpG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,58 +0,0 @@
1
- import { FormattedNodes, HigherOrderFormattedNodes } from './formattedText';
2
- import {
3
- HigherOrderFormattedNodesMap,
4
- higherOrderFormattedTextToBaseFormattedText,
5
- } from './higherOrderFormattedTextToBaseFormattedText';
6
-
7
- describe('higherOrderFormattedTextToBaseFormattedText', () => {
8
- const mockResolvers: HigherOrderFormattedNodesMap = {
9
- 'link-to-matrix-asset': jest.fn((node: HigherOrderFormattedNodes) => {
10
- return Promise.resolve({ type: 'text', value: `Link to asset ${node.matrixAssetId}` });
11
- }),
12
- 'matrix-image': jest.fn((node: HigherOrderFormattedNodes) => {
13
- return Promise.resolve({ type: 'text', value: `Image ${node.matrixAssetId}` });
14
- }),
15
- };
16
-
17
- const testFormattedNodes: FormattedNodes = {
18
- tag: 'p',
19
- type: 'tag',
20
- children: [
21
- { type: 'text', value: 'This is some ' },
22
- {
23
- type: 'link-to-matrix-asset',
24
- matrixIdentifier: 'abc123',
25
- matrixDomain: 'example.com',
26
- matrixAssetId: '12345',
27
- target: '_blank',
28
- children: [{ type: 'text', value: 'linked text' }],
29
- },
30
- { type: 'text', value: ' with an image ' },
31
- {
32
- type: 'matrix-image',
33
- matrixIdentifier: 'abc123',
34
- matrixDomain: 'example.com',
35
- matrixAssetId: '54321',
36
- },
37
- { type: 'text', value: '.' },
38
- ],
39
- };
40
-
41
- const expectedFormattedNodes: FormattedNodes = {
42
- tag: 'p',
43
- type: 'tag',
44
- children: [
45
- { type: 'text', value: 'This is some ' },
46
- { type: 'text', value: 'Link to asset 12345' },
47
- { type: 'text', value: ' with an image ' },
48
- { type: 'text', value: 'Image 54321' },
49
- { type: 'text', value: '.' },
50
- ],
51
- };
52
-
53
- it('should replace higher order nodes with their resolved counterparts', async () => {
54
- const result = await higherOrderFormattedTextToBaseFormattedText(testFormattedNodes, mockResolvers);
55
-
56
- expect(result).toEqual(expectedFormattedNodes);
57
- });
58
- });
@@ -1,36 +0,0 @@
1
- import { BaseFormattedNodes, FormattedNodes, HigherOrderFormattedNodes } from './formattedText';
2
-
3
- export interface FormattedNodeWithChildren {
4
- children: FormattedNodes[];
5
- }
6
-
7
- export type HigherOrderFormattedNodesMap = {
8
- [key in HigherOrderFormattedNodes['type']]: (node: HigherOrderFormattedNodes) => Promise<BaseFormattedNodes>;
9
- };
10
-
11
- export async function higherOrderFormattedTextToBaseFormattedText(
12
- node: FormattedNodes,
13
- resolvers: HigherOrderFormattedNodesMap,
14
- ): Promise<FormattedNodes> {
15
- if (node.type in resolvers && nodeIsHigherOrder(node)) {
16
- return await resolvers[node.type](node);
17
- }
18
-
19
- if (hasChildren(node)) {
20
- const updatedChildren = await Promise.all(
21
- node.children.map((child) => higherOrderFormattedTextToBaseFormattedText(child, resolvers)),
22
- );
23
-
24
- return { ...node, children: updatedChildren };
25
- }
26
-
27
- return node;
28
- }
29
-
30
- function hasChildren(node: any): node is FormattedNodeWithChildren {
31
- return node && typeof node == 'object' && 'children' in node && Array.isArray(node.children);
32
- }
33
-
34
- function nodeIsHigherOrder(node: FormattedNodes): node is HigherOrderFormattedNodes {
35
- return node.type === 'link-to-matrix-asset' || node.type === 'matrix-image';
36
- }