@salesforce/lds-adapters-experience-model 1.428.0-dev2 → 1.428.0-dev20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ import { serializeStructuredKey, ingestShape, deepFreeze, buildNetworkSnapshotCa
8
8
 
9
9
  const { hasOwnProperty: ObjectPrototypeHasOwnProperty } = Object.prototype;
10
10
  const { keys: ObjectKeys$1, create: ObjectCreate$1 } = Object;
11
+ const { stringify: JSONStringify$1 } = JSON;
11
12
  const { isArray: ArrayIsArray$1 } = Array;
12
13
  /**
13
14
  * Validates an adapter config is well-formed.
@@ -48,6 +49,61 @@ const snapshotRefreshOptions = {
48
49
  },
49
50
  }
50
51
  };
52
+ /**
53
+ * A deterministic JSON stringify implementation. Heavily adapted from https://github.com/epoberezkin/fast-json-stable-stringify.
54
+ * This is needed because insertion order for JSON.stringify(object) affects output:
55
+ * JSON.stringify({a: 1, b: 2})
56
+ * "{"a":1,"b":2}"
57
+ * JSON.stringify({b: 2, a: 1})
58
+ * "{"b":2,"a":1}"
59
+ * @param data Data to be JSON-stringified.
60
+ * @returns JSON.stringified value with consistent ordering of keys.
61
+ */
62
+ function stableJSONStringify(node) {
63
+ // This is for Date values.
64
+ if (node && node.toJSON && typeof node.toJSON === 'function') {
65
+ // eslint-disable-next-line no-param-reassign
66
+ node = node.toJSON();
67
+ }
68
+ if (node === undefined) {
69
+ return;
70
+ }
71
+ if (typeof node === 'number') {
72
+ return isFinite(node) ? '' + node : 'null';
73
+ }
74
+ if (typeof node !== 'object') {
75
+ return JSONStringify$1(node);
76
+ }
77
+ let i;
78
+ let out;
79
+ if (ArrayIsArray$1(node)) {
80
+ out = '[';
81
+ for (i = 0; i < node.length; i++) {
82
+ if (i) {
83
+ out += ',';
84
+ }
85
+ out += stableJSONStringify(node[i]) || 'null';
86
+ }
87
+ return out + ']';
88
+ }
89
+ if (node === null) {
90
+ return 'null';
91
+ }
92
+ const keys = ObjectKeys$1(node).sort();
93
+ out = '';
94
+ for (i = 0; i < keys.length; i++) {
95
+ const key = keys[i];
96
+ const value = stableJSONStringify(node[key]);
97
+ if (!value) {
98
+ continue;
99
+ }
100
+ if (out) {
101
+ out += ',';
102
+ }
103
+ out += JSONStringify$1(key) + ':' + value;
104
+ }
105
+ return '{' + out + '}';
106
+ }
51
107
  function generateParamConfigMetadata(name, required, resourceType, typeCheckShape, isArrayShape = false, coerceFn) {
52
108
  return {
53
109
  name,
@@ -1720,6 +1776,22 @@ function validate$8(obj, path = 'ExperienceModelDesignConfigInputRepresentation'
1720
1776
  return new TypeError('Expected "boolean" but received "' + typeof obj_actionConfig + '" (at "' + path_actionConfig + '")');
1721
1777
  }
1722
1778
  }
1779
+ if (obj.designConfigJson !== undefined) {
1780
+ const obj_designConfigJson = obj.designConfigJson;
1781
+ const path_designConfigJson = path + '.designConfigJson';
1782
+ if (typeof obj_designConfigJson !== 'object' || ArrayIsArray(obj_designConfigJson) || obj_designConfigJson === null) {
1783
+ return new TypeError('Expected "object" but received "' + typeof obj_designConfigJson + '" (at "' + path_designConfigJson + '")');
1784
+ }
1785
+ const obj_designConfigJson_keys = ObjectKeys(obj_designConfigJson);
1786
+ for (let i = 0; i < obj_designConfigJson_keys.length; i++) {
1787
+ const key = obj_designConfigJson_keys[i];
1788
+ const obj_designConfigJson_prop = obj_designConfigJson[key];
1789
+ const path_designConfigJson_prop = path_designConfigJson + '["' + key + '"]';
1790
+ if (obj_designConfigJson_prop === undefined) {
1791
+ return new TypeError('Expected "defined" but received "' + typeof obj_designConfigJson_prop + '" (at "' + path_designConfigJson_prop + '")');
1792
+ }
1793
+ }
1794
+ }
1723
1795
  if (obj.forceDefaultGeneration !== undefined) {
1724
1796
  const obj_forceDefaultGeneration = obj.forceDefaultGeneration;
1725
1797
  const path_forceDefaultGeneration = path + '.forceDefaultGeneration';
@@ -1778,6 +1850,22 @@ function validate$7(obj, path = 'ExperienceModelRenditionConfigInputRepresentati
1778
1850
  return new TypeError('Expected "integer" but received "' + typeof obj_maxViewDepth + '" (at "' + path_maxViewDepth + '")');
1779
1851
  }
1780
1852
  }
1853
+ if (obj.renditionConfigJson !== undefined) {
1854
+ const obj_renditionConfigJson = obj.renditionConfigJson;
1855
+ const path_renditionConfigJson = path + '.renditionConfigJson';
1856
+ if (typeof obj_renditionConfigJson !== 'object' || ArrayIsArray(obj_renditionConfigJson) || obj_renditionConfigJson === null) {
1857
+ return new TypeError('Expected "object" but received "' + typeof obj_renditionConfigJson + '" (at "' + path_renditionConfigJson + '")');
1858
+ }
1859
+ const obj_renditionConfigJson_keys = ObjectKeys(obj_renditionConfigJson);
1860
+ for (let i = 0; i < obj_renditionConfigJson_keys.length; i++) {
1861
+ const key = obj_renditionConfigJson_keys[i];
1862
+ const obj_renditionConfigJson_prop = obj_renditionConfigJson[key];
1863
+ const path_renditionConfigJson_prop = path_renditionConfigJson + '["' + key + '"]';
1864
+ if (obj_renditionConfigJson_prop === undefined) {
1865
+ return new TypeError('Expected "defined" but received "' + typeof obj_renditionConfigJson_prop + '" (at "' + path_renditionConfigJson_prop + '")');
1866
+ }
1867
+ }
1868
+ }
1781
1869
  if (obj.subViewDefinitions !== undefined) {
1782
1870
  const obj_subViewDefinitions = obj.subViewDefinitions;
1783
1871
  const path_subViewDefinitions = path + '.subViewDefinitions';
@@ -1832,6 +1920,22 @@ function validate$5(obj, path = 'ExperienceModelSchemaConfigInputRepresentation'
1832
1920
  return new TypeError(message);
1833
1921
  }
1834
1922
  }
1923
+ if (obj.schema !== undefined) {
1924
+ const obj_schema = obj.schema;
1925
+ const path_schema = path + '.schema';
1926
+ if (typeof obj_schema !== 'object' || ArrayIsArray(obj_schema) || obj_schema === null) {
1927
+ return new TypeError('Expected "object" but received "' + typeof obj_schema + '" (at "' + path_schema + '")');
1928
+ }
1929
+ const obj_schema_keys = ObjectKeys(obj_schema);
1930
+ for (let i = 0; i < obj_schema_keys.length; i++) {
1931
+ const key = obj_schema_keys[i];
1932
+ const obj_schema_prop = obj_schema[key];
1933
+ const path_schema_prop = path_schema + '["' + key + '"]';
1934
+ if (obj_schema_prop === undefined) {
1935
+ return new TypeError('Expected "defined" but received "' + typeof obj_schema_prop + '" (at "' + path_schema_prop + '")');
1936
+ }
1937
+ }
1938
+ }
1835
1939
  if (obj.subSchemaDefinitions !== undefined) {
1836
1940
  const obj_subSchemaDefinitions = obj.subSchemaDefinitions;
1837
1941
  const path_subSchemaDefinitions = path + '.subSchemaDefinitions';
@@ -1839,6 +1943,13 @@ function validate$5(obj, path = 'ExperienceModelSchemaConfigInputRepresentation'
1839
1943
  return new TypeError('Expected "boolean" but received "' + typeof obj_subSchemaDefinitions + '" (at "' + path_subSchemaDefinitions + '")');
1840
1944
  }
1841
1945
  }
1946
+ if (obj.type !== undefined) {
1947
+ const obj_type = obj.type;
1948
+ const path_type = path + '.type';
1949
+ if (typeof obj_type !== 'string') {
1950
+ return new TypeError('Expected "string" but received "' + typeof obj_type + '" (at "' + path_type + '")');
1951
+ }
1952
+ }
1842
1953
  })();
1843
1954
  return v_error === undefined ? null : v_error;
1844
1955
  }
@@ -2096,7 +2207,7 @@ function select(luvio, params) {
2096
2207
  return select$1();
2097
2208
  }
2098
2209
  function keyBuilder$1(luvio, params) {
2099
- return keyPrefix + '::ExperienceModelTypesCollectionRepresentation:(' + 'language:' + params.body.language + '::' + '[' + params.body.typeConfigs.map(element => { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5; return 'typeConfigs.descriptor:' + element.descriptor + '::' + (((_a = element.designConfig) === null || _a === void 0 ? void 0 : _a.target) === undefined ? 'typeConfigs.designConfig.target' : 'typeConfigs.designConfig.target:' + ((_b = element.designConfig) === null || _b === void 0 ? void 0 : _b.target)) + '::' + (((_c = element.designConfig) === null || _c === void 0 ? void 0 : _c.subViewDefinitions) === undefined ? 'typeConfigs.designConfig.subViewDefinitions' : 'typeConfigs.designConfig.subViewDefinitions:' + ((_d = element.designConfig) === null || _d === void 0 ? void 0 : _d.subViewDefinitions)) + '::' + (((_e = element.designConfig) === null || _e === void 0 ? void 0 : _e.maxViewDepth) === undefined ? 'typeConfigs.designConfig.maxViewDepth' : 'typeConfigs.designConfig.maxViewDepth:' + ((_f = element.designConfig) === null || _f === void 0 ? void 0 : _f.maxViewDepth)) + '::' + (((_g = element.designConfig) === null || _g === void 0 ? void 0 : _g.actionConfig) === undefined ? 'typeConfigs.designConfig.actionConfig' : 'typeConfigs.designConfig.actionConfig:' + ((_h = element.designConfig) === null || _h === void 0 ? void 0 : _h.actionConfig)) + '::' + (((_j = element.designConfig) === null || _j === void 0 ? void 0 : _j.forceDefaultGeneration) === undefined ? 'typeConfigs.designConfig.forceDefaultGeneration' : 'typeConfigs.designConfig.forceDefaultGeneration:' + ((_k = element.designConfig) === null || _k === void 0 ? void 0 : _k.forceDefaultGeneration)) + '::' + (((_l = element.renditionConfig) === null || _l === void 0 ? void 0 : _l.target) === undefined ? 'typeConfigs.renditionConfig.target' : 'typeConfigs.renditionConfig.target:' + ((_m = element.renditionConfig) === null || _m === void 0 ? void 0 : _m.target)) + '::' + (((_o = element.renditionConfig) === null || _o === void 0 ? void 0 : _o.subViewDefinitions) === undefined ? 'typeConfigs.renditionConfig.subViewDefinitions' : 'typeConfigs.renditionConfig.subViewDefinitions:' + ((_p = element.renditionConfig) === null || _p === void 0 ? void 0 : _p.subViewDefinitions)) + '::' + (((_q = element.renditionConfig) === null || _q === void 0 ? void 0 : _q.maxViewDepth) === undefined ? 'typeConfigs.renditionConfig.maxViewDepth' : 'typeConfigs.renditionConfig.maxViewDepth:' + ((_r = element.renditionConfig) === null || _r === void 0 ? void 0 : _r.maxViewDepth)) + '::' + (((_s = element.renditionConfig) === null || _s === void 0 ? void 0 : _s.actionConfig) === undefined ? 'typeConfigs.renditionConfig.actionConfig' : 'typeConfigs.renditionConfig.actionConfig:' + ((_t = element.renditionConfig) === null || _t === void 0 ? void 0 : _t.actionConfig)) + '::' + (((_u = element.renditionConfig) === null || _u === void 0 ? void 0 : _u.forceDefaultGeneration) === undefined ? 'typeConfigs.renditionConfig.forceDefaultGeneration' : 'typeConfigs.renditionConfig.forceDefaultGeneration:' + ((_v = element.renditionConfig) === null || _v === void 0 ? void 0 : _v.forceDefaultGeneration)) + '::' + (((_x = (_w = element.schemaConfig) === null || _w === void 0 ? void 0 : _w.filterConfig) === null || _x === void 0 ? void 0 : _x.propertyNames) === undefined ? 'typeConfigs.schemaConfig.filterConfig.propertyNames' : 'typeConfigs.schemaConfig.filterConfig.propertyNames:' + ((_z = (_y = element.schemaConfig) === null || _y === void 0 ? void 0 : _y.filterConfig) === null || _z === void 0 ? void 0 : _z.propertyNames)) + '::' + (((_0 = element.schemaConfig) === null || _0 === void 0 ? void 0 : _0.subSchemaDefinitions) === undefined ? 'typeConfigs.schemaConfig.subSchemaDefinitions' : 'typeConfigs.schemaConfig.subSchemaDefinitions:' + ((_1 = element.schemaConfig) === null || _1 === void 0 ? void 0 : _1.subSchemaDefinitions)) + '::' + (((_2 = element.sourceDescriptor) === null || _2 === void 0 ? void 0 : _2.descriptor) === undefined ? 'typeConfigs.sourceDescriptor.descriptor' : 'typeConfigs.sourceDescriptor.descriptor:' + ((_3 = element.sourceDescriptor) === null || _3 === void 0 ? void 0 : _3.descriptor)) + '::' + (((_4 = element.sourceDescriptor) === null || _4 === void 0 ? void 0 : _4.propertyName) === undefined ? 'typeConfigs.sourceDescriptor.propertyName' : 'typeConfigs.sourceDescriptor.propertyName:' + ((_5 = element.sourceDescriptor) === null || _5 === void 0 ? void 0 : _5.propertyName)); }).join(',') + ']' + ')';
2210
+ return keyPrefix + '::ExperienceModelTypesCollectionRepresentation:(' + 'language:' + params.body.language + '::' + '[' + params.body.typeConfigs.map(element => { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10; return 'typeConfigs.descriptor:' + element.descriptor + '::' + (((_a = element.designConfig) === null || _a === void 0 ? void 0 : _a.target) === undefined ? 'typeConfigs.designConfig.target' : 'typeConfigs.designConfig.target:' + ((_b = element.designConfig) === null || _b === void 0 ? void 0 : _b.target)) + '::' + (((_c = element.designConfig) === null || _c === void 0 ? void 0 : _c.subViewDefinitions) === undefined ? 'typeConfigs.designConfig.subViewDefinitions' : 'typeConfigs.designConfig.subViewDefinitions:' + ((_d = element.designConfig) === null || _d === void 0 ? void 0 : _d.subViewDefinitions)) + '::' + (((_e = element.designConfig) === null || _e === void 0 ? void 0 : _e.maxViewDepth) === undefined ? 'typeConfigs.designConfig.maxViewDepth' : 'typeConfigs.designConfig.maxViewDepth:' + ((_f = element.designConfig) === null || _f === void 0 ? void 0 : _f.maxViewDepth)) + '::' + (((_g = element.designConfig) === null || _g === void 0 ? void 0 : _g.actionConfig) === undefined ? 'typeConfigs.designConfig.actionConfig' : 'typeConfigs.designConfig.actionConfig:' + ((_h = element.designConfig) === null || _h === void 0 ? void 0 : _h.actionConfig)) + '::' + (((_j = element.designConfig) === null || _j === void 0 ? void 0 : _j.forceDefaultGeneration) === undefined ? 'typeConfigs.designConfig.forceDefaultGeneration' : 'typeConfigs.designConfig.forceDefaultGeneration:' + ((_k = element.designConfig) === null || _k === void 0 ? void 0 : _k.forceDefaultGeneration)) + '::' + stableJSONStringify((_l = element.designConfig) === null || _l === void 0 ? void 0 : _l.designConfigJson) + '::' + (((_m = element.renditionConfig) === null || _m === void 0 ? void 0 : _m.target) === undefined ? 'typeConfigs.renditionConfig.target' : 'typeConfigs.renditionConfig.target:' + ((_o = element.renditionConfig) === null || _o === void 0 ? void 0 : _o.target)) + '::' + (((_p = element.renditionConfig) === null || _p === void 0 ? void 0 : _p.subViewDefinitions) === undefined ? 'typeConfigs.renditionConfig.subViewDefinitions' : 'typeConfigs.renditionConfig.subViewDefinitions:' + ((_q = element.renditionConfig) === null || _q === void 0 ? void 0 : _q.subViewDefinitions)) + '::' + (((_r = element.renditionConfig) === null || _r === void 0 ? void 0 : _r.maxViewDepth) === undefined ? 'typeConfigs.renditionConfig.maxViewDepth' : 'typeConfigs.renditionConfig.maxViewDepth:' + ((_s = element.renditionConfig) === null || _s === void 0 ? void 0 : _s.maxViewDepth)) + '::' + (((_t = element.renditionConfig) === null || _t === void 0 ? void 0 : _t.actionConfig) === undefined ? 'typeConfigs.renditionConfig.actionConfig' : 'typeConfigs.renditionConfig.actionConfig:' + ((_u = element.renditionConfig) === null || _u === void 0 ? void 0 : _u.actionConfig)) + '::' + (((_v = element.renditionConfig) === null || _v === void 0 ? void 0 : _v.forceDefaultGeneration) === undefined ? 'typeConfigs.renditionConfig.forceDefaultGeneration' : 'typeConfigs.renditionConfig.forceDefaultGeneration:' + ((_w = element.renditionConfig) === null || _w === void 0 ? void 0 : _w.forceDefaultGeneration)) + '::' + stableJSONStringify((_x = element.renditionConfig) === null || _x === void 0 ? void 0 : _x.renditionConfigJson) + '::' + (((_z = (_y = element.schemaConfig) === null || _y === void 0 ? void 0 : _y.filterConfig) === null || _z === void 0 ? void 0 : _z.propertyNames) === undefined ? 'typeConfigs.schemaConfig.filterConfig.propertyNames' : 'typeConfigs.schemaConfig.filterConfig.propertyNames:' + ((_1 = (_0 = element.schemaConfig) === null || _0 === void 0 ? void 0 : _0.filterConfig) === null || _1 === void 0 ? void 0 : _1.propertyNames)) + '::' + (((_2 = element.schemaConfig) === null || _2 === void 0 ? void 0 : _2.type) === undefined ? 'typeConfigs.schemaConfig.type' : 'typeConfigs.schemaConfig.type:' + ((_3 = element.schemaConfig) === null || _3 === void 0 ? void 0 : _3.type)) + '::' + stableJSONStringify((_4 = element.schemaConfig) === null || _4 === void 0 ? void 0 : _4.schema) + '::' + (((_5 = element.schemaConfig) === null || _5 === void 0 ? void 0 : _5.subSchemaDefinitions) === undefined ? 'typeConfigs.schemaConfig.subSchemaDefinitions' : 'typeConfigs.schemaConfig.subSchemaDefinitions:' + ((_6 = element.schemaConfig) === null || _6 === void 0 ? void 0 : _6.subSchemaDefinitions)) + '::' + (((_7 = element.sourceDescriptor) === null || _7 === void 0 ? void 0 : _7.descriptor) === undefined ? 'typeConfigs.sourceDescriptor.descriptor' : 'typeConfigs.sourceDescriptor.descriptor:' + ((_8 = element.sourceDescriptor) === null || _8 === void 0 ? void 0 : _8.descriptor)) + '::' + (((_9 = element.sourceDescriptor) === null || _9 === void 0 ? void 0 : _9.propertyName) === undefined ? 'typeConfigs.sourceDescriptor.propertyName' : 'typeConfigs.sourceDescriptor.propertyName:' + ((_10 = element.sourceDescriptor) === null || _10 === void 0 ? void 0 : _10.propertyName)); }).join(',') + ']' + ')';
2100
2211
  }
2101
2212
  function getResponseCacheKeys(storeKeyMap, luvio, resourceParams, response) {
2102
2213
  getTypeCacheKeys(storeKeyMap, luvio, response, () => keyBuilder$1(luvio, resourceParams));
@@ -1,5 +1,5 @@
1
1
  import { IngestPath as $64$luvio_engine_IngestPath, Luvio as $64$luvio_engine_Luvio, Store as $64$luvio_engine_Store, FragmentSelection as $64$luvio_engine_FragmentSelection, ResourceIngest as $64$luvio_engine_ResourceIngest, DurableStoreKeyMetadataMap as $64$luvio_engine_DurableStoreKeyMetadataMap, NormalizedKeyMetadata as $64$luvio_engine_NormalizedKeyMetadata } from '@luvio/engine';
2
- export declare const VERSION = "816663a21fe79a4b651c7677067a181f";
2
+ export declare const VERSION = "cc2a12c358470b01d118693941cfdec7";
3
3
  export declare function validate(obj: any, path?: string): TypeError | null;
4
4
  export declare const RepresentationType: string;
5
5
  export declare function normalize(input: ExperienceModelDesignConfigInputRepresentation, existing: ExperienceModelDesignConfigInputRepresentationNormalized, path: $64$luvio_engine_IngestPath, luvio: $64$luvio_engine_Luvio, store: $64$luvio_engine_Store, timestamp: number): ExperienceModelDesignConfigInputRepresentationNormalized;
@@ -16,6 +16,10 @@ export declare function getTypeCacheKeys(rootKeySet: $64$luvio_engine_DurableSto
16
16
  export interface ExperienceModelDesignConfigInputRepresentationNormalized {
17
17
  /** Boolean property if actions should be included */
18
18
  actionConfig?: boolean;
19
+ /** Editor JSON body for transient registration */
20
+ designConfigJson?: {
21
+ [key: string]: unknown;
22
+ };
19
23
  /** Boolean property for force default generation */
20
24
  forceDefaultGeneration?: boolean;
21
25
  /** Integer property for specifying maximum depth of sub-view definition decomposition */
@@ -33,6 +37,9 @@ export interface ExperienceModelDesignConfigInputRepresentationNormalized {
33
37
  */
34
38
  export interface ExperienceModelDesignConfigInputRepresentation {
35
39
  actionConfig?: boolean;
40
+ designConfigJson?: {
41
+ [key: string]: unknown;
42
+ };
36
43
  forceDefaultGeneration?: boolean;
37
44
  maxViewDepth?: number;
38
45
  subViewDefinitions?: boolean;
@@ -1,5 +1,5 @@
1
1
  import { IngestPath as $64$luvio_engine_IngestPath, Luvio as $64$luvio_engine_Luvio, Store as $64$luvio_engine_Store, FragmentSelection as $64$luvio_engine_FragmentSelection, ResourceIngest as $64$luvio_engine_ResourceIngest, DurableStoreKeyMetadataMap as $64$luvio_engine_DurableStoreKeyMetadataMap, NormalizedKeyMetadata as $64$luvio_engine_NormalizedKeyMetadata } from '@luvio/engine';
2
- export declare const VERSION = "104a78dd2ba4df5481e93ec6a51af42c";
2
+ export declare const VERSION = "72ac70ec20dd10cb107f973a5dab7929";
3
3
  export declare function validate(obj: any, path?: string): TypeError | null;
4
4
  export declare const RepresentationType: string;
5
5
  export declare function normalize(input: ExperienceModelRenditionConfigInputRepresentation, existing: ExperienceModelRenditionConfigInputRepresentationNormalized, path: $64$luvio_engine_IngestPath, luvio: $64$luvio_engine_Luvio, store: $64$luvio_engine_Store, timestamp: number): ExperienceModelRenditionConfigInputRepresentationNormalized;
@@ -20,6 +20,10 @@ export interface ExperienceModelRenditionConfigInputRepresentationNormalized {
20
20
  forceDefaultGeneration?: boolean;
21
21
  /** Integer property for specifying maximum depth of sub-view definition decomposition */
22
22
  maxViewDepth?: number;
23
+ /** Renderer JSON body for transient registration */
24
+ renditionConfigJson?: {
25
+ [key: string]: unknown;
26
+ };
23
27
  /** Boolean property if sub-view should be included */
24
28
  subViewDefinitions?: boolean;
25
29
  /** A rendition configuration target. To fetch all the types that have the rendition configuration for a particular target. */
@@ -35,6 +39,9 @@ export interface ExperienceModelRenditionConfigInputRepresentation {
35
39
  actionConfig?: boolean;
36
40
  forceDefaultGeneration?: boolean;
37
41
  maxViewDepth?: number;
42
+ renditionConfigJson?: {
43
+ [key: string]: unknown;
44
+ };
38
45
  subViewDefinitions?: boolean;
39
46
  target?: string;
40
47
  }
@@ -1,6 +1,6 @@
1
1
  import { ExperienceModelFilterConfigInputRepresentation as ExperienceModelFilterConfigInputRepresentation_ExperienceModelFilterConfigInputRepresentation } from './ExperienceModelFilterConfigInputRepresentation';
2
2
  import { IngestPath as $64$luvio_engine_IngestPath, Luvio as $64$luvio_engine_Luvio, Store as $64$luvio_engine_Store, FragmentSelection as $64$luvio_engine_FragmentSelection, ResourceIngest as $64$luvio_engine_ResourceIngest, DurableStoreKeyMetadataMap as $64$luvio_engine_DurableStoreKeyMetadataMap, NormalizedKeyMetadata as $64$luvio_engine_NormalizedKeyMetadata } from '@luvio/engine';
3
- export declare const VERSION = "778e400ab1efc3dd0ccd9f38bcdd8865";
3
+ export declare const VERSION = "e17fb3a897ead0164b0bf860933a84ab";
4
4
  export declare function validate(obj: any, path?: string): TypeError | null;
5
5
  export declare const RepresentationType: string;
6
6
  export declare function normalize(input: ExperienceModelSchemaConfigInputRepresentation, existing: ExperienceModelSchemaConfigInputRepresentationNormalized, path: $64$luvio_engine_IngestPath, luvio: $64$luvio_engine_Luvio, store: $64$luvio_engine_Store, timestamp: number): ExperienceModelSchemaConfigInputRepresentationNormalized;
@@ -16,8 +16,14 @@ export declare function getTypeCacheKeys(rootKeySet: $64$luvio_engine_DurableSto
16
16
  */
17
17
  export interface ExperienceModelSchemaConfigInputRepresentationNormalized {
18
18
  filterConfig?: ExperienceModelFilterConfigInputRepresentation_ExperienceModelFilterConfigInputRepresentation;
19
+ /** Raw schema JSON for transient type registration (INTERNAL USE ONLY) */
20
+ schema?: {
21
+ [key: string]: unknown;
22
+ };
19
23
  /** Boolean property if sub-schema should be included */
20
24
  subSchemaDefinitions?: boolean;
25
+ /** Type of schema JSON being provided (INTERNAL USE ONLY) */
26
+ type?: string;
21
27
  }
22
28
  /**
23
29
  * Input Representation for Experience Model type schema configuration
@@ -27,5 +33,9 @@ export interface ExperienceModelSchemaConfigInputRepresentationNormalized {
27
33
  */
28
34
  export interface ExperienceModelSchemaConfigInputRepresentation {
29
35
  filterConfig?: ExperienceModelFilterConfigInputRepresentation_ExperienceModelFilterConfigInputRepresentation;
36
+ schema?: {
37
+ [key: string]: unknown;
38
+ };
30
39
  subSchemaDefinitions?: boolean;
40
+ type?: string;
31
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lds-adapters-experience-model",
3
- "version": "1.428.0-dev2",
3
+ "version": "1.428.0-dev20",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "description": "APIs to read and query all the 'types' in the Unified Experience Model",
6
6
  "main": "dist/es/es2018/experience-model.js",
@@ -44,11 +44,11 @@
44
44
  "test:unit": "jest"
45
45
  },
46
46
  "dependencies": {
47
- "@salesforce/lds-bindings": "^1.428.0-dev2"
47
+ "@salesforce/lds-bindings": "^1.428.0-dev20"
48
48
  },
49
49
  "devDependencies": {
50
- "@salesforce/lds-compiler-plugins": "^1.428.0-dev2",
51
- "@salesforce/lds-karma": "^1.428.0-dev2"
50
+ "@salesforce/lds-compiler-plugins": "^1.428.0-dev20",
51
+ "@salesforce/lds-karma": "^1.428.0-dev20"
52
52
  },
53
53
  "nx": {
54
54
  "targets": {
package/sfdc/index.js CHANGED
@@ -18,6 +18,7 @@ import { serializeStructuredKey, ingestShape, deepFreeze, buildNetworkSnapshotCa
18
18
 
19
19
  const { hasOwnProperty: ObjectPrototypeHasOwnProperty } = Object.prototype;
20
20
  const { keys: ObjectKeys$1, create: ObjectCreate$1 } = Object;
21
+ const { stringify: JSONStringify$1 } = JSON;
21
22
  const { isArray: ArrayIsArray$1 } = Array;
22
23
  /**
23
24
  * Validates an adapter config is well-formed.
@@ -58,6 +59,61 @@ const snapshotRefreshOptions = {
58
59
  },
59
60
  }
60
61
  };
62
+ /**
63
+ * A deterministic JSON stringify implementation. Heavily adapted from https://github.com/epoberezkin/fast-json-stable-stringify.
64
+ * This is needed because insertion order for JSON.stringify(object) affects output:
65
+ * JSON.stringify({a: 1, b: 2})
66
+ * "{"a":1,"b":2}"
67
+ * JSON.stringify({b: 2, a: 1})
68
+ * "{"b":2,"a":1}"
69
+ * @param data Data to be JSON-stringified.
70
+ * @returns JSON.stringified value with consistent ordering of keys.
71
+ */
72
+ function stableJSONStringify(node) {
73
+ // This is for Date values.
74
+ if (node && node.toJSON && typeof node.toJSON === 'function') {
75
+ // eslint-disable-next-line no-param-reassign
76
+ node = node.toJSON();
77
+ }
78
+ if (node === undefined) {
79
+ return;
80
+ }
81
+ if (typeof node === 'number') {
82
+ return isFinite(node) ? '' + node : 'null';
83
+ }
84
+ if (typeof node !== 'object') {
85
+ return JSONStringify$1(node);
86
+ }
87
+ let i;
88
+ let out;
89
+ if (ArrayIsArray$1(node)) {
90
+ out = '[';
91
+ for (i = 0; i < node.length; i++) {
92
+ if (i) {
93
+ out += ',';
94
+ }
95
+ out += stableJSONStringify(node[i]) || 'null';
96
+ }
97
+ return out + ']';
98
+ }
99
+ if (node === null) {
100
+ return 'null';
101
+ }
102
+ const keys = ObjectKeys$1(node).sort();
103
+ out = '';
104
+ for (i = 0; i < keys.length; i++) {
105
+ const key = keys[i];
106
+ const value = stableJSONStringify(node[key]);
107
+ if (!value) {
108
+ continue;
109
+ }
110
+ if (out) {
111
+ out += ',';
112
+ }
113
+ out += JSONStringify$1(key) + ':' + value;
114
+ }
115
+ return '{' + out + '}';
116
+ }
61
117
  function generateParamConfigMetadata(name, required, resourceType, typeCheckShape, isArrayShape = false, coerceFn) {
62
118
  return {
63
119
  name,
@@ -1730,6 +1786,22 @@ function validate$8(obj, path = 'ExperienceModelDesignConfigInputRepresentation'
1730
1786
  return new TypeError('Expected "boolean" but received "' + typeof obj_actionConfig + '" (at "' + path_actionConfig + '")');
1731
1787
  }
1732
1788
  }
1789
+ if (obj.designConfigJson !== undefined) {
1790
+ const obj_designConfigJson = obj.designConfigJson;
1791
+ const path_designConfigJson = path + '.designConfigJson';
1792
+ if (typeof obj_designConfigJson !== 'object' || ArrayIsArray(obj_designConfigJson) || obj_designConfigJson === null) {
1793
+ return new TypeError('Expected "object" but received "' + typeof obj_designConfigJson + '" (at "' + path_designConfigJson + '")');
1794
+ }
1795
+ const obj_designConfigJson_keys = ObjectKeys(obj_designConfigJson);
1796
+ for (let i = 0; i < obj_designConfigJson_keys.length; i++) {
1797
+ const key = obj_designConfigJson_keys[i];
1798
+ const obj_designConfigJson_prop = obj_designConfigJson[key];
1799
+ const path_designConfigJson_prop = path_designConfigJson + '["' + key + '"]';
1800
+ if (obj_designConfigJson_prop === undefined) {
1801
+ return new TypeError('Expected "defined" but received "' + typeof obj_designConfigJson_prop + '" (at "' + path_designConfigJson_prop + '")');
1802
+ }
1803
+ }
1804
+ }
1733
1805
  if (obj.forceDefaultGeneration !== undefined) {
1734
1806
  const obj_forceDefaultGeneration = obj.forceDefaultGeneration;
1735
1807
  const path_forceDefaultGeneration = path + '.forceDefaultGeneration';
@@ -1788,6 +1860,22 @@ function validate$7(obj, path = 'ExperienceModelRenditionConfigInputRepresentati
1788
1860
  return new TypeError('Expected "integer" but received "' + typeof obj_maxViewDepth + '" (at "' + path_maxViewDepth + '")');
1789
1861
  }
1790
1862
  }
1863
+ if (obj.renditionConfigJson !== undefined) {
1864
+ const obj_renditionConfigJson = obj.renditionConfigJson;
1865
+ const path_renditionConfigJson = path + '.renditionConfigJson';
1866
+ if (typeof obj_renditionConfigJson !== 'object' || ArrayIsArray(obj_renditionConfigJson) || obj_renditionConfigJson === null) {
1867
+ return new TypeError('Expected "object" but received "' + typeof obj_renditionConfigJson + '" (at "' + path_renditionConfigJson + '")');
1868
+ }
1869
+ const obj_renditionConfigJson_keys = ObjectKeys(obj_renditionConfigJson);
1870
+ for (let i = 0; i < obj_renditionConfigJson_keys.length; i++) {
1871
+ const key = obj_renditionConfigJson_keys[i];
1872
+ const obj_renditionConfigJson_prop = obj_renditionConfigJson[key];
1873
+ const path_renditionConfigJson_prop = path_renditionConfigJson + '["' + key + '"]';
1874
+ if (obj_renditionConfigJson_prop === undefined) {
1875
+ return new TypeError('Expected "defined" but received "' + typeof obj_renditionConfigJson_prop + '" (at "' + path_renditionConfigJson_prop + '")');
1876
+ }
1877
+ }
1878
+ }
1791
1879
  if (obj.subViewDefinitions !== undefined) {
1792
1880
  const obj_subViewDefinitions = obj.subViewDefinitions;
1793
1881
  const path_subViewDefinitions = path + '.subViewDefinitions';
@@ -1842,6 +1930,22 @@ function validate$5(obj, path = 'ExperienceModelSchemaConfigInputRepresentation'
1842
1930
  return new TypeError(message);
1843
1931
  }
1844
1932
  }
1933
+ if (obj.schema !== undefined) {
1934
+ const obj_schema = obj.schema;
1935
+ const path_schema = path + '.schema';
1936
+ if (typeof obj_schema !== 'object' || ArrayIsArray(obj_schema) || obj_schema === null) {
1937
+ return new TypeError('Expected "object" but received "' + typeof obj_schema + '" (at "' + path_schema + '")');
1938
+ }
1939
+ const obj_schema_keys = ObjectKeys(obj_schema);
1940
+ for (let i = 0; i < obj_schema_keys.length; i++) {
1941
+ const key = obj_schema_keys[i];
1942
+ const obj_schema_prop = obj_schema[key];
1943
+ const path_schema_prop = path_schema + '["' + key + '"]';
1944
+ if (obj_schema_prop === undefined) {
1945
+ return new TypeError('Expected "defined" but received "' + typeof obj_schema_prop + '" (at "' + path_schema_prop + '")');
1946
+ }
1947
+ }
1948
+ }
1845
1949
  if (obj.subSchemaDefinitions !== undefined) {
1846
1950
  const obj_subSchemaDefinitions = obj.subSchemaDefinitions;
1847
1951
  const path_subSchemaDefinitions = path + '.subSchemaDefinitions';
@@ -1849,6 +1953,13 @@ function validate$5(obj, path = 'ExperienceModelSchemaConfigInputRepresentation'
1849
1953
  return new TypeError('Expected "boolean" but received "' + typeof obj_subSchemaDefinitions + '" (at "' + path_subSchemaDefinitions + '")');
1850
1954
  }
1851
1955
  }
1956
+ if (obj.type !== undefined) {
1957
+ const obj_type = obj.type;
1958
+ const path_type = path + '.type';
1959
+ if (typeof obj_type !== 'string') {
1960
+ return new TypeError('Expected "string" but received "' + typeof obj_type + '" (at "' + path_type + '")');
1961
+ }
1962
+ }
1852
1963
  })();
1853
1964
  return v_error === undefined ? null : v_error;
1854
1965
  }
@@ -2106,7 +2217,7 @@ function select(luvio, params) {
2106
2217
  return select$1();
2107
2218
  }
2108
2219
  function keyBuilder$1(luvio, params) {
2109
- return keyPrefix + '::ExperienceModelTypesCollectionRepresentation:(' + 'language:' + params.body.language + '::' + '[' + params.body.typeConfigs.map(element => 'typeConfigs.descriptor:' + element.descriptor + '::' + (element.designConfig?.target === undefined ? 'typeConfigs.designConfig.target' : 'typeConfigs.designConfig.target:' + element.designConfig?.target) + '::' + (element.designConfig?.subViewDefinitions === undefined ? 'typeConfigs.designConfig.subViewDefinitions' : 'typeConfigs.designConfig.subViewDefinitions:' + element.designConfig?.subViewDefinitions) + '::' + (element.designConfig?.maxViewDepth === undefined ? 'typeConfigs.designConfig.maxViewDepth' : 'typeConfigs.designConfig.maxViewDepth:' + element.designConfig?.maxViewDepth) + '::' + (element.designConfig?.actionConfig === undefined ? 'typeConfigs.designConfig.actionConfig' : 'typeConfigs.designConfig.actionConfig:' + element.designConfig?.actionConfig) + '::' + (element.designConfig?.forceDefaultGeneration === undefined ? 'typeConfigs.designConfig.forceDefaultGeneration' : 'typeConfigs.designConfig.forceDefaultGeneration:' + element.designConfig?.forceDefaultGeneration) + '::' + (element.renditionConfig?.target === undefined ? 'typeConfigs.renditionConfig.target' : 'typeConfigs.renditionConfig.target:' + element.renditionConfig?.target) + '::' + (element.renditionConfig?.subViewDefinitions === undefined ? 'typeConfigs.renditionConfig.subViewDefinitions' : 'typeConfigs.renditionConfig.subViewDefinitions:' + element.renditionConfig?.subViewDefinitions) + '::' + (element.renditionConfig?.maxViewDepth === undefined ? 'typeConfigs.renditionConfig.maxViewDepth' : 'typeConfigs.renditionConfig.maxViewDepth:' + element.renditionConfig?.maxViewDepth) + '::' + (element.renditionConfig?.actionConfig === undefined ? 'typeConfigs.renditionConfig.actionConfig' : 'typeConfigs.renditionConfig.actionConfig:' + element.renditionConfig?.actionConfig) + '::' + (element.renditionConfig?.forceDefaultGeneration === undefined ? 'typeConfigs.renditionConfig.forceDefaultGeneration' : 'typeConfigs.renditionConfig.forceDefaultGeneration:' + element.renditionConfig?.forceDefaultGeneration) + '::' + (element.schemaConfig?.filterConfig?.propertyNames === undefined ? 'typeConfigs.schemaConfig.filterConfig.propertyNames' : 'typeConfigs.schemaConfig.filterConfig.propertyNames:' + element.schemaConfig?.filterConfig?.propertyNames) + '::' + (element.schemaConfig?.subSchemaDefinitions === undefined ? 'typeConfigs.schemaConfig.subSchemaDefinitions' : 'typeConfigs.schemaConfig.subSchemaDefinitions:' + element.schemaConfig?.subSchemaDefinitions) + '::' + (element.sourceDescriptor?.descriptor === undefined ? 'typeConfigs.sourceDescriptor.descriptor' : 'typeConfigs.sourceDescriptor.descriptor:' + element.sourceDescriptor?.descriptor) + '::' + (element.sourceDescriptor?.propertyName === undefined ? 'typeConfigs.sourceDescriptor.propertyName' : 'typeConfigs.sourceDescriptor.propertyName:' + element.sourceDescriptor?.propertyName)).join(',') + ']' + ')';
2220
+ return keyPrefix + '::ExperienceModelTypesCollectionRepresentation:(' + 'language:' + params.body.language + '::' + '[' + params.body.typeConfigs.map(element => 'typeConfigs.descriptor:' + element.descriptor + '::' + (element.designConfig?.target === undefined ? 'typeConfigs.designConfig.target' : 'typeConfigs.designConfig.target:' + element.designConfig?.target) + '::' + (element.designConfig?.subViewDefinitions === undefined ? 'typeConfigs.designConfig.subViewDefinitions' : 'typeConfigs.designConfig.subViewDefinitions:' + element.designConfig?.subViewDefinitions) + '::' + (element.designConfig?.maxViewDepth === undefined ? 'typeConfigs.designConfig.maxViewDepth' : 'typeConfigs.designConfig.maxViewDepth:' + element.designConfig?.maxViewDepth) + '::' + (element.designConfig?.actionConfig === undefined ? 'typeConfigs.designConfig.actionConfig' : 'typeConfigs.designConfig.actionConfig:' + element.designConfig?.actionConfig) + '::' + (element.designConfig?.forceDefaultGeneration === undefined ? 'typeConfigs.designConfig.forceDefaultGeneration' : 'typeConfigs.designConfig.forceDefaultGeneration:' + element.designConfig?.forceDefaultGeneration) + '::' + stableJSONStringify(element.designConfig?.designConfigJson) + '::' + (element.renditionConfig?.target === undefined ? 'typeConfigs.renditionConfig.target' : 'typeConfigs.renditionConfig.target:' + element.renditionConfig?.target) + '::' + (element.renditionConfig?.subViewDefinitions === undefined ? 'typeConfigs.renditionConfig.subViewDefinitions' : 'typeConfigs.renditionConfig.subViewDefinitions:' + element.renditionConfig?.subViewDefinitions) + '::' + (element.renditionConfig?.maxViewDepth === undefined ? 'typeConfigs.renditionConfig.maxViewDepth' : 'typeConfigs.renditionConfig.maxViewDepth:' + element.renditionConfig?.maxViewDepth) + '::' + (element.renditionConfig?.actionConfig === undefined ? 'typeConfigs.renditionConfig.actionConfig' : 'typeConfigs.renditionConfig.actionConfig:' + element.renditionConfig?.actionConfig) + '::' + (element.renditionConfig?.forceDefaultGeneration === undefined ? 'typeConfigs.renditionConfig.forceDefaultGeneration' : 'typeConfigs.renditionConfig.forceDefaultGeneration:' + element.renditionConfig?.forceDefaultGeneration) + '::' + stableJSONStringify(element.renditionConfig?.renditionConfigJson) + '::' + (element.schemaConfig?.filterConfig?.propertyNames === undefined ? 'typeConfigs.schemaConfig.filterConfig.propertyNames' : 'typeConfigs.schemaConfig.filterConfig.propertyNames:' + element.schemaConfig?.filterConfig?.propertyNames) + '::' + (element.schemaConfig?.type === undefined ? 'typeConfigs.schemaConfig.type' : 'typeConfigs.schemaConfig.type:' + element.schemaConfig?.type) + '::' + stableJSONStringify(element.schemaConfig?.schema) + '::' + (element.schemaConfig?.subSchemaDefinitions === undefined ? 'typeConfigs.schemaConfig.subSchemaDefinitions' : 'typeConfigs.schemaConfig.subSchemaDefinitions:' + element.schemaConfig?.subSchemaDefinitions) + '::' + (element.sourceDescriptor?.descriptor === undefined ? 'typeConfigs.sourceDescriptor.descriptor' : 'typeConfigs.sourceDescriptor.descriptor:' + element.sourceDescriptor?.descriptor) + '::' + (element.sourceDescriptor?.propertyName === undefined ? 'typeConfigs.sourceDescriptor.propertyName' : 'typeConfigs.sourceDescriptor.propertyName:' + element.sourceDescriptor?.propertyName)).join(',') + ']' + ')';
2110
2221
  }
2111
2222
  function getResponseCacheKeys(storeKeyMap, luvio, resourceParams, response) {
2112
2223
  getTypeCacheKeys(storeKeyMap, luvio, response, () => keyBuilder$1(luvio, resourceParams));
@@ -2341,4 +2452,4 @@ withDefaultLuvio((luvio) => {
2341
2452
  });
2342
2453
 
2343
2454
  export { getBlockType, getBlockType_imperative, getBlockTypes, getBlockTypes_imperative, getContentType, getContentType_imperative, getContentTypes, getContentTypes_imperative, getPropertyType, getPropertyType_imperative, getPropertyTypes, getPropertyTypes_imperative, getTypes, getTypes_imperative };
2344
- // version: 1.428.0-dev2-2d5e0a6e5f
2455
+ // version: 1.428.0-dev20-d72ac06681
package/src/raml/api.raml CHANGED
@@ -421,6 +421,20 @@ types:
421
421
  description: Filter configuration for schema
422
422
  type: ExperienceModelFilterConfigInputRepresentation
423
423
  required: false # TODO waiting on W-8253396
424
+ type:
425
+ description: Type of schema JSON being provided (INTERNAL USE ONLY)
426
+ type: string
427
+ required: false
428
+ enum:
429
+ - AgentScriptJson
430
+ - TypeSchemaJson
431
+ schema:
432
+ description: Raw schema JSON for transient type registration (INTERNAL USE ONLY)
433
+ type: object
434
+ required: false
435
+ properties:
436
+ //:
437
+ type: any
424
438
  subSchemaDefinitions:
425
439
  description: Boolean property if sub-schema should be included
426
440
  type: boolean
@@ -472,6 +486,13 @@ types:
472
486
  description: Boolean property for force default generation
473
487
  type: boolean
474
488
  required: false # TODO waiting on W-8253396
489
+ renditionConfigJson:
490
+ description: Renderer JSON body for transient registration
491
+ type: object
492
+ required: false
493
+ properties:
494
+ //:
495
+ type: any
475
496
  ExperienceModelDesignConfigInputRepresentation:
476
497
  type: object
477
498
  description: Input Representation for Experience Model type design configuration
@@ -506,6 +527,13 @@ types:
506
527
  description: Boolean property for force default generation
507
528
  type: boolean
508
529
  required: false # TODO waiting on W-8253396
530
+ designConfigJson:
531
+ description: Editor JSON body for transient registration
532
+ type: object
533
+ required: false
534
+ properties:
535
+ //:
536
+ type: any
509
537
  ExperienceModelFilterConfigInputRepresentation:
510
538
  type: object
511
539
  description: Input Representation for Experience Model type Filter configuration
@@ -55,10 +55,18 @@ types:
55
55
  {
56
56
  "descriptor": "copilotActionOutput/exp_builder__backgroundImage",
57
57
  "schemaConfig": {
58
- "subSchemaDefinitions": true
58
+ "subSchemaDefinitions": true,
59
+ "type": "TypeSchemaJson",
60
+ "schema": {
61
+ "$schema": "https://example.com/schema"
62
+ }
59
63
  },
60
- "designConfig": {},
61
- "renditionConfig": {}
64
+ "designConfig": {
65
+ "designConfigJson": {}
66
+ },
67
+ "renditionConfig": {
68
+ "renditionConfigJson": {}
69
+ }
62
70
  }
63
71
  ]
64
72
  }