@sitecore-content-sdk/content 2.2.1 → 2.3.0-beta.atoms.20260721120640
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/atoms.d.ts +1 -0
- package/dist/cjs/atoms/design-library-bridge/constants.js +18 -0
- package/dist/cjs/atoms/design-library-bridge/events.js +88 -0
- package/dist/cjs/atoms/design-library-bridge/index.js +18 -0
- package/dist/cjs/atoms/index.js +8 -0
- package/dist/cjs/atoms/types.js +2 -0
- package/dist/cjs/client/sitecore-client.js +6 -1
- package/dist/cjs/config/define-config.js +55 -86
- package/dist/cjs/config/index.js +1 -4
- package/dist/cjs/editing/models.js +2 -0
- package/dist/cjs/form/form.js +2 -2
- package/dist/cjs/layout/index.js +0 -15
- package/dist/cjs/site/index.js +1 -2
- package/dist/cjs/site/utils.js +0 -34
- package/dist/cjs/tools/index.js +1 -3
- package/dist/cjs/tools/templating/components.js +3 -13
- package/dist/cjs/tools/templating/index.js +1 -4
- package/dist/esm/atoms/design-library-bridge/constants.js +15 -0
- package/dist/esm/atoms/design-library-bridge/events.js +80 -0
- package/dist/esm/atoms/design-library-bridge/index.js +2 -0
- package/dist/esm/atoms/index.js +1 -0
- package/dist/esm/atoms/types.js +1 -0
- package/dist/esm/client/sitecore-client.js +6 -1
- package/dist/esm/config/define-config.js +56 -86
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/editing/models.js +2 -0
- package/dist/esm/form/form.js +2 -2
- package/dist/esm/layout/index.js +0 -1
- package/dist/esm/site/index.js +1 -1
- package/dist/esm/site/utils.js +0 -33
- package/dist/esm/tools/index.js +1 -1
- package/dist/esm/tools/templating/components.js +2 -11
- package/dist/esm/tools/templating/index.js +0 -1
- package/package.json +38 -34
- package/types/atoms/design-library-bridge/constants.d.ts +16 -0
- package/types/atoms/design-library-bridge/constants.d.ts.map +1 -0
- package/types/atoms/design-library-bridge/events.d.ts +41 -0
- package/types/atoms/design-library-bridge/events.d.ts.map +1 -0
- package/types/atoms/design-library-bridge/index.d.ts +3 -0
- package/types/atoms/design-library-bridge/index.d.ts.map +1 -0
- package/types/atoms/design-library-bridge/types.d.ts +63 -0
- package/types/atoms/design-library-bridge/types.d.ts.map +1 -0
- package/types/atoms/index.d.ts +3 -0
- package/types/atoms/index.d.ts.map +1 -0
- package/types/atoms/types.d.ts +68 -0
- package/types/atoms/types.d.ts.map +1 -0
- package/types/client/edge-proxy.d.ts.map +1 -1
- package/types/client/sitecore-client.d.ts +4 -0
- package/types/client/sitecore-client.d.ts.map +1 -1
- package/types/config/define-config.d.ts +2 -17
- package/types/config/define-config.d.ts.map +1 -1
- package/types/config/index.d.ts +1 -1
- package/types/config/index.d.ts.map +1 -1
- package/types/config/models.d.ts +17 -1
- package/types/config/models.d.ts.map +1 -1
- package/types/editing/models.d.ts +3 -1
- package/types/editing/models.d.ts.map +1 -1
- package/types/form/form.d.ts +1 -1
- package/types/form/form.d.ts.map +1 -1
- package/types/layout/content-styles.d.ts.map +1 -1
- package/types/layout/index.d.ts +0 -1
- package/types/layout/index.d.ts.map +1 -1
- package/types/layout/rewrite-edge-host.d.ts.map +1 -1
- package/types/layout/themes.d.ts.map +1 -1
- package/types/site/index.d.ts +1 -1
- package/types/site/index.d.ts.map +1 -1
- package/types/site/utils.d.ts +0 -11
- package/types/site/utils.d.ts.map +1 -1
- package/types/tools/index.d.ts +1 -1
- package/types/tools/index.d.ts.map +1 -1
- package/types/tools/templating/components.d.ts +2 -8
- package/types/tools/templating/components.d.ts.map +1 -1
- package/types/tools/templating/index.d.ts +0 -1
- package/types/tools/templating/index.d.ts.map +1 -1
- package/dist/cjs/tools/templating/utils.js +0 -167
- package/dist/esm/tools/templating/utils.js +0 -159
- package/types/layout/field-types.d.ts +0 -75
- package/types/layout/field-types.d.ts.map +0 -1
- package/types/tools/templating/utils.d.ts +0 -44
- package/types/tools/templating/utils.d.ts.map +0 -1
- /package/dist/cjs/{layout/field-types.js → atoms/design-library-bridge/types.js} +0 -0
- /package/dist/esm/{layout/field-types.js → atoms/design-library-bridge/types.js} +0 -0
package/atoms.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types/atoms/index';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DESIGN_LIBRARY_ATOMS_ERROR_EVENT_NAME = exports.DESIGN_LIBRARY_ATOMS_CATALOG_EVENT_NAME = exports.DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Event name for component preview updates from design library
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME = 'component:atoms:preview';
|
|
9
|
+
/**
|
|
10
|
+
* Event name for the atoms catalog registration (replaces legacy `atom:registry`).
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
exports.DESIGN_LIBRARY_ATOMS_CATALOG_EVENT_NAME = 'atoms:catalog';
|
|
14
|
+
/**
|
|
15
|
+
* Event to send to design library when rendering atoms error occurs
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
exports.DESIGN_LIBRARY_ATOMS_ERROR_EVENT_NAME = 'atoms:error';
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addComponentPropsUpdateHandler = exports.addDocumentUpdateHandler = exports.sendAtomsErrorEvent = void 0;
|
|
4
|
+
exports.getDesignLibraryAtomsCatalogEvent = getDesignLibraryAtomsCatalogEvent;
|
|
5
|
+
exports.getDesignLibraryAtomsErrorEvent = getDesignLibraryAtomsErrorEvent;
|
|
6
|
+
const core_1 = require("@sitecore-content-sdk/core");
|
|
7
|
+
const design_library_1 = require("../../editing/design-library");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const { ERROR_MESSAGES } = core_1.constants;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a DesignLibraryAtomsCatalogEvent with the given catalog payload.
|
|
12
|
+
* @param {AtomsCatalogPayload} payload - serialized catalog data
|
|
13
|
+
* @returns {DesignLibraryAtomsCatalogEvent} the event ready to be posted to Design Studio
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
function getDesignLibraryAtomsCatalogEvent(payload) {
|
|
17
|
+
return {
|
|
18
|
+
name: constants_1.DESIGN_LIBRARY_ATOMS_CATALOG_EVENT_NAME,
|
|
19
|
+
message: payload,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Generates a DesignLibraryAtomsErrorEvent depending on the type of error with the given error.
|
|
24
|
+
* @param {unknown} error - The error to be sent.
|
|
25
|
+
* @param {DesignLibraryAtomsError} type - The type of error.
|
|
26
|
+
* @returns An object representing the DesignLibraryAtomsErrorEvent.
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
function getDesignLibraryAtomsErrorEvent(error, type) {
|
|
30
|
+
return {
|
|
31
|
+
name: constants_1.DESIGN_LIBRARY_ATOMS_ERROR_EVENT_NAME,
|
|
32
|
+
message: { error, type },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sends a design library atoms error event to the design library
|
|
37
|
+
* @param {unknown} error - The error object or message to be sent.
|
|
38
|
+
* @param {DesignLibraryAtomsError} type - The type of error, as defined in DesignLibraryAtomsError.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
const sendAtomsErrorEvent = (error, type) => {
|
|
42
|
+
const errorEvent = getDesignLibraryAtomsErrorEvent(error, type);
|
|
43
|
+
console.error(`Component Library: sending error event. ${ERROR_MESSAGES.CONTACT_SUPPORT}`, errorEvent);
|
|
44
|
+
if (typeof window !== 'undefined') {
|
|
45
|
+
const target = window.parent && window.parent !== window ? window.parent : window;
|
|
46
|
+
target.postMessage(errorEvent, '*');
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.sendAtomsErrorEvent = sendAtomsErrorEvent;
|
|
50
|
+
/**
|
|
51
|
+
* Adds a handler for atom document update events from the design library.
|
|
52
|
+
* @param {(updatedRootComponent: Document) => void} callback - The callback to be invoked when a document update event is received.
|
|
53
|
+
* @returns A function to unsubscribe from the atom document update events.
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
const addDocumentUpdateHandler = (callback) => {
|
|
57
|
+
const handler = (e) => {
|
|
58
|
+
if (!(0, design_library_1.validateEvent)(e, constants_1.DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
console.debug('Component Library atoms: message received', e.data);
|
|
62
|
+
callback(e.data.document);
|
|
63
|
+
};
|
|
64
|
+
window.addEventListener('message', handler);
|
|
65
|
+
const unsubscribe = () => {
|
|
66
|
+
window.removeEventListener('message', handler);
|
|
67
|
+
};
|
|
68
|
+
return unsubscribe;
|
|
69
|
+
};
|
|
70
|
+
exports.addDocumentUpdateHandler = addDocumentUpdateHandler;
|
|
71
|
+
/**
|
|
72
|
+
* Adds a handler for component props (fields and params) updates from the design library.
|
|
73
|
+
* Listens for 'component:update' events and invokes the callback with the updated fields and params.
|
|
74
|
+
* @param {Function} callback - Called when a 'component:update' message is received.
|
|
75
|
+
* @returns A function to unsubscribe from the event.
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
const addComponentPropsUpdateHandler = (callback) => {
|
|
79
|
+
const handler = (e) => {
|
|
80
|
+
if (!(0, design_library_1.validateEvent)(e, 'component:update'))
|
|
81
|
+
return;
|
|
82
|
+
const details = e.data.details;
|
|
83
|
+
callback(details === null || details === void 0 ? void 0 : details.fields, details === null || details === void 0 ? void 0 : details.params);
|
|
84
|
+
};
|
|
85
|
+
window.addEventListener('message', handler);
|
|
86
|
+
return () => window.removeEventListener('message', handler);
|
|
87
|
+
};
|
|
88
|
+
exports.addComponentPropsUpdateHandler = addComponentPropsUpdateHandler;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./events"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addComponentPropsUpdateHandler = exports.addDocumentUpdateHandler = exports.sendAtomsErrorEvent = exports.getDesignLibraryAtomsCatalogEvent = void 0;
|
|
4
|
+
var design_library_bridge_1 = require("./design-library-bridge");
|
|
5
|
+
Object.defineProperty(exports, "getDesignLibraryAtomsCatalogEvent", { enumerable: true, get: function () { return design_library_bridge_1.getDesignLibraryAtomsCatalogEvent; } });
|
|
6
|
+
Object.defineProperty(exports, "sendAtomsErrorEvent", { enumerable: true, get: function () { return design_library_bridge_1.sendAtomsErrorEvent; } });
|
|
7
|
+
Object.defineProperty(exports, "addDocumentUpdateHandler", { enumerable: true, get: function () { return design_library_bridge_1.addDocumentUpdateHandler; } });
|
|
8
|
+
Object.defineProperty(exports, "addComponentPropsUpdateHandler", { enumerable: true, get: function () { return design_library_bridge_1.addComponentPropsUpdateHandler; } });
|
|
@@ -382,7 +382,7 @@ class SitecoreClient {
|
|
|
382
382
|
isPreview: false,
|
|
383
383
|
isEditing: false,
|
|
384
384
|
isDesignLibrary: false,
|
|
385
|
-
designLibrary: { isVariantGeneration: false },
|
|
385
|
+
designLibrary: { isVariantGeneration: false, isLowCode: false },
|
|
386
386
|
};
|
|
387
387
|
switch (mode) {
|
|
388
388
|
case layout_1.LayoutServicePageState.Normal:
|
|
@@ -401,6 +401,11 @@ class SitecoreClient {
|
|
|
401
401
|
pageMode.isDesignLibrary = true;
|
|
402
402
|
pageMode.isEditing = true;
|
|
403
403
|
break;
|
|
404
|
+
case editing_1.DesignLibraryMode.LowCode:
|
|
405
|
+
pageMode.isDesignLibrary = true;
|
|
406
|
+
pageMode.designLibrary.isLowCode = true;
|
|
407
|
+
pageMode.isEditing = true;
|
|
408
|
+
break;
|
|
404
409
|
default:
|
|
405
410
|
break;
|
|
406
411
|
}
|
|
@@ -1,100 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defineConfig = exports.getFallbackConfig =
|
|
3
|
+
exports.defineConfig = exports.getFallbackConfig = void 0;
|
|
4
4
|
exports.deepMerge = deepMerge;
|
|
5
5
|
const core_1 = require("@sitecore-content-sdk/core");
|
|
6
6
|
const tools_1 = require("@sitecore-content-sdk/core/tools");
|
|
7
7
|
const config_cli_1 = require("../config-cli");
|
|
8
8
|
const { ERROR_MESSAGES } = core_1.constants;
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* and framework-specific define-config wrappers.
|
|
13
|
-
* @param {Record<string, string | undefined>} env - String key/value map using the same names as Node / Sitecore CLI env vars
|
|
14
|
-
* @returns {SitecoreConfig} default config before merging `sitecore.config` overrides
|
|
15
|
-
* @internal
|
|
10
|
+
* Provides default initial values for SitecoreConfig
|
|
11
|
+
* @returns default config
|
|
16
12
|
*/
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
clientContextId: env.SITECORE_EDGE_CLIENT_CONTEXT_ID || env.CSDK_PUBLIC_SITECORE_EDGE_CONTEXT_ID || '',
|
|
24
|
-
edgeUrl: (0, tools_1.resolveEdgeUrl)(rawEdgeUrl),
|
|
25
|
-
},
|
|
26
|
-
local: {
|
|
27
|
-
apiKey: env.SITECORE_API_KEY ||
|
|
28
|
-
env.CSDK_PUBLIC_SITECORE_API_KEY ||
|
|
29
|
-
env.NEXT_PUBLIC_SITECORE_API_KEY ||
|
|
30
|
-
'',
|
|
31
|
-
apiHost: env.SITECORE_API_HOST ||
|
|
32
|
-
env.CSDK_PUBLIC_SITECORE_API_HOST ||
|
|
33
|
-
env.NEXT_PUBLIC_SITECORE_API_HOST ||
|
|
34
|
-
'',
|
|
35
|
-
path: '/sitecore/api/graph/edge',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
editingSecret: env.SITECORE_EDITING_SECRET || 'editing-secret-missing',
|
|
39
|
-
retries: {
|
|
40
|
-
count: 3,
|
|
41
|
-
retryStrategy: new core_1.DefaultRetryStrategy({
|
|
42
|
-
statusCodes: [429, 502, 503, 504, 520, 521, 522, 523, 524],
|
|
43
|
-
}),
|
|
13
|
+
const getFallbackConfig = () => ({
|
|
14
|
+
api: {
|
|
15
|
+
edge: {
|
|
16
|
+
contextId: process.env.SITECORE_EDGE_CONTEXT_ID || '',
|
|
17
|
+
clientContextId: '',
|
|
18
|
+
edgeUrl: (0, tools_1.resolveEdgeUrl)(),
|
|
44
19
|
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
20
|
+
local: {
|
|
21
|
+
apiKey: process.env.SITECORE_API_KEY || process.env.NEXT_PUBLIC_SITECORE_API_KEY || '',
|
|
22
|
+
apiHost: process.env.SITECORE_API_HOST || process.env.NEXT_PUBLIC_SITECORE_API_HOST || '',
|
|
23
|
+
path: '/sitecore/api/graph/edge',
|
|
48
24
|
},
|
|
49
|
-
|
|
25
|
+
},
|
|
26
|
+
editingSecret: process.env.SITECORE_EDITING_SECRET || 'editing-secret-missing',
|
|
27
|
+
retries: {
|
|
28
|
+
count: 3,
|
|
29
|
+
retryStrategy: new core_1.DefaultRetryStrategy({
|
|
30
|
+
statusCodes: [429, 502, 503, 504, 520, 521, 522, 523, 524],
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
redirects: {
|
|
34
|
+
enabled: process.env.NODE_ENV !== 'development',
|
|
35
|
+
locales: ['en'],
|
|
36
|
+
},
|
|
37
|
+
multisite: {
|
|
38
|
+
enabled: true,
|
|
39
|
+
useCookieResolution: () => false,
|
|
40
|
+
},
|
|
41
|
+
personalize: {
|
|
42
|
+
enabled: process.env.NODE_ENV !== 'development',
|
|
43
|
+
edgeTimeout: parseInt(process.env.PERSONALIZE_MIDDLEWARE_EDGE_TIMEOUT, 10) || 400,
|
|
44
|
+
cdpTimeout: parseInt(process.env.PERSONALIZE_MIDDLEWARE_CDP_TIMEOUT, 10) || 400,
|
|
45
|
+
scope: '',
|
|
46
|
+
channel: 'WEB',
|
|
47
|
+
currency: 'USD',
|
|
48
|
+
},
|
|
49
|
+
defaultSite: '',
|
|
50
|
+
defaultLanguage: 'en',
|
|
51
|
+
layout: {
|
|
52
|
+
formatLayoutQuery: null,
|
|
53
|
+
},
|
|
54
|
+
dictionary: {
|
|
55
|
+
caching: {
|
|
50
56
|
enabled: true,
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
personalize: {
|
|
54
|
-
enabled: env.NODE_ENV !== 'development',
|
|
55
|
-
edgeTimeout: parseInt(env.PERSONALIZE_MIDDLEWARE_EDGE_TIMEOUT || '', 10) || 400,
|
|
56
|
-
cdpTimeout: parseInt(env.PERSONALIZE_MIDDLEWARE_CDP_TIMEOUT || '', 10) || 400,
|
|
57
|
-
scope: env.SITECORE_PERSONALIZE_SCOPE ||
|
|
58
|
-
env.CSDK_PUBLIC_PERSONALIZE_SCOPE ||
|
|
59
|
-
env.NEXT_PUBLIC_PERSONALIZE_SCOPE ||
|
|
60
|
-
'',
|
|
61
|
-
channel: 'WEB',
|
|
62
|
-
currency: 'USD',
|
|
63
|
-
},
|
|
64
|
-
defaultSite: env.SITECORE_DEFAULT_SITE ||
|
|
65
|
-
env.CSDK_PUBLIC_SITECORE_DEFAULT_SITE ||
|
|
66
|
-
env.CSDK_PUBLIC_DEFAULT_SITE ||
|
|
67
|
-
'',
|
|
68
|
-
defaultLanguage: env.SITECORE_DEFAULT_LANGUAGE || env.CSDK_PUBLIC_DEFAULT_LANGUAGE || 'en',
|
|
69
|
-
layout: {
|
|
70
|
-
formatLayoutQuery: null,
|
|
71
|
-
},
|
|
72
|
-
dictionary: {
|
|
73
|
-
caching: {
|
|
74
|
-
enabled: true,
|
|
75
|
-
timeout: 60,
|
|
76
|
-
},
|
|
57
|
+
timeout: 60,
|
|
77
58
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
};
|
|
82
|
-
exports.buildFallbackConfig = buildFallbackConfig;
|
|
83
|
-
/**
|
|
84
|
-
* Provides default initial values for SitecoreConfig from `process.env`
|
|
85
|
-
* TODO: remove in favor of buildFallbackConfig
|
|
86
|
-
* @returns default config
|
|
87
|
-
* @internal
|
|
88
|
-
*/
|
|
89
|
-
const getFallbackConfig = () => {
|
|
90
|
-
return (0, exports.buildFallbackConfig)(process.env);
|
|
91
|
-
};
|
|
59
|
+
},
|
|
60
|
+
rewriteMediaUrls: false,
|
|
61
|
+
disableCodeGeneration: false,
|
|
62
|
+
});
|
|
92
63
|
exports.getFallbackConfig = getFallbackConfig;
|
|
93
64
|
/**
|
|
94
65
|
* Deep merge utility that skips undefined or empty string values in the override.
|
|
95
66
|
* @param {T} base base value
|
|
96
67
|
* @param {DeepPartial<T>} [override] override value
|
|
97
|
-
* @internal
|
|
98
68
|
*/
|
|
99
69
|
function deepMerge(base, override) {
|
|
100
70
|
if (!override)
|
|
@@ -137,7 +107,9 @@ const resolveConfig = (base, override) => {
|
|
|
137
107
|
result.personalize.edgeTimeout = base.personalize.edgeTimeout;
|
|
138
108
|
}
|
|
139
109
|
// Resolve edge URL at config level so consumers use the resolved value directly
|
|
140
|
-
result.api.edge.edgeUrl =
|
|
110
|
+
result.api.edge.edgeUrl = result.api.edge.edgeUrl
|
|
111
|
+
? (0, tools_1.resolveEdgeUrl)(result.api.edge.edgeUrl)
|
|
112
|
+
: (0, tools_1.resolveEdgeUrl)();
|
|
141
113
|
return result;
|
|
142
114
|
};
|
|
143
115
|
const validateApiConfiguration = (config) => {
|
|
@@ -210,15 +182,12 @@ const createConfigProxy = (config) => {
|
|
|
210
182
|
/**
|
|
211
183
|
* Accepts a SitecoreConfigInput object and returns full sitecore configuration
|
|
212
184
|
* @param {SitecoreConfigInput} config override values to be written over default config settings
|
|
213
|
-
* @param {Record<string, string | undefined>} [env] optional env-like record to source default config values from; defaults to `process.env` when not provided
|
|
214
185
|
* @returns {SitecoreConfig} full sitecore configuration to use in application
|
|
215
186
|
* @public
|
|
216
187
|
*/
|
|
217
|
-
const defineConfig = (config
|
|
218
|
-
const
|
|
219
|
-
const
|
|
220
|
-
const resolvedConfig = resolveConfig(fallback, config);
|
|
221
|
-
const isCLI = (runtimeEnv === null || runtimeEnv === void 0 ? void 0 : runtimeEnv[config_cli_1.SITECORE_CLI_MODE_ENV_VAR]) === 'true';
|
|
188
|
+
const defineConfig = (config) => {
|
|
189
|
+
const resolvedConfig = resolveConfig((0, exports.getFallbackConfig)(), config);
|
|
190
|
+
const isCLI = process.env[config_cli_1.SITECORE_CLI_MODE_ENV_VAR] === 'true';
|
|
222
191
|
// At `build time`, we create a proxy for the config object to validate the config by
|
|
223
192
|
// accessing the literal paths instead of validating the whole object at once.
|
|
224
193
|
// At `runtime` all the config should be validated to fail fast in case of invalid configuration.
|
package/dist/cjs/config/index.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.defineConfig = exports.ComponentTemplateType = void 0;
|
|
4
4
|
var models_1 = require("./models");
|
|
5
5
|
Object.defineProperty(exports, "ComponentTemplateType", { enumerable: true, get: function () { return models_1.ComponentTemplateType; } });
|
|
6
6
|
var define_config_1 = require("./define-config");
|
|
7
|
-
Object.defineProperty(exports, "buildFallbackConfig", { enumerable: true, get: function () { return define_config_1.buildFallbackConfig; } });
|
|
8
7
|
Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return define_config_1.defineConfig; } });
|
|
9
|
-
Object.defineProperty(exports, "getFallbackConfig", { enumerable: true, get: function () { return define_config_1.getFallbackConfig; } });
|
|
10
|
-
Object.defineProperty(exports, "deepMerge", { enumerable: true, get: function () { return define_config_1.deepMerge; } });
|
|
@@ -33,6 +33,8 @@ var DesignLibraryMode;
|
|
|
33
33
|
DesignLibraryMode["Normal"] = "library";
|
|
34
34
|
/** Metadata mode */
|
|
35
35
|
DesignLibraryMode["Metadata"] = "library-metadata";
|
|
36
|
+
/** Low code mode */
|
|
37
|
+
DesignLibraryMode["LowCode"] = "library-low-code";
|
|
36
38
|
})(DesignLibraryMode || (exports.DesignLibraryMode = DesignLibraryMode = {}));
|
|
37
39
|
/**
|
|
38
40
|
* Variant generation mode for Design Library
|
package/dist/cjs/form/form.js
CHANGED
|
@@ -71,13 +71,13 @@ exports.executeScriptElements = executeScriptElements;
|
|
|
71
71
|
* @param {string} [componentId] - The unique identifier of the component
|
|
72
72
|
* @internal
|
|
73
73
|
*/
|
|
74
|
-
const subscribeToFormSubmitEvent = (formElement, componentId
|
|
74
|
+
const subscribeToFormSubmitEvent = (formElement, componentId) => {
|
|
75
75
|
formElement.addEventListener('form:engage', ((e) => {
|
|
76
76
|
const { formId, name } = e.detail;
|
|
77
77
|
if (formId && name) {
|
|
78
78
|
debug_1.default.form('Sending form event', formId, name);
|
|
79
79
|
(0, events_1.form)(formId, name, (componentId === null || componentId === void 0 ? void 0 : componentId.replace(/-/g, '')) || '');
|
|
80
80
|
}
|
|
81
|
-
})
|
|
81
|
+
}));
|
|
82
82
|
};
|
|
83
83
|
exports.subscribeToFormSubmitEvent = subscribeToFormSubmitEvent;
|
package/dist/cjs/layout/index.js
CHANGED
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
3
|
exports.applyMediaUrlRewrite = exports.getDefaultMediaUrlTransformer = exports.containsDefaultEdgeHost = exports.rewriteEdgeHostInResponse = exports.getDesignLibraryStylesheetLinks = exports.GRAPHQL_LAYOUT_QUERY_NAME = exports.LayoutService = exports.getContentStylesheetLink = exports.EMPTY_DATE_FIELD_VALUE = exports.getDynamicPlaceholderPattern = exports.isDynamicPlaceholder = exports.isFieldValueEmpty = exports.getChildPlaceholder = exports.getRenderingParamString = exports.getFieldValue = exports.EDITING_COMPONENT_ID = exports.EDITING_COMPONENT_PLACEHOLDER = exports.RenderingType = exports.EditMode = exports.LayoutServicePageState = void 0;
|
|
18
4
|
// layout
|
|
@@ -42,4 +28,3 @@ Object.defineProperty(exports, "rewriteEdgeHostInResponse", { enumerable: true,
|
|
|
42
28
|
Object.defineProperty(exports, "containsDefaultEdgeHost", { enumerable: true, get: function () { return rewrite_edge_host_1.containsDefaultEdgeHost; } });
|
|
43
29
|
Object.defineProperty(exports, "getDefaultMediaUrlTransformer", { enumerable: true, get: function () { return rewrite_edge_host_1.getDefaultMediaUrlTransformer; } });
|
|
44
30
|
Object.defineProperty(exports, "applyMediaUrlRewrite", { enumerable: true, get: function () { return rewrite_edge_host_1.applyMediaUrlRewrite; } });
|
|
45
|
-
__exportStar(require("./field-types"), exports);
|
package/dist/cjs/site/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SiteResolver = exports.
|
|
3
|
+
exports.SiteResolver = exports.SITE_KEY = exports.SITE_PREFIX = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.SitePathService = exports.SiteInfoService = exports.ErrorPagesService = exports.SitemapXmlService = exports.RedirectsService = exports.REDIRECT_TYPE_SERVER_TRANSFER = exports.REDIRECT_TYPE_302 = exports.REDIRECT_TYPE_301 = exports.RobotsService = void 0;
|
|
4
4
|
var robots_service_1 = require("./robots-service");
|
|
5
5
|
Object.defineProperty(exports, "RobotsService", { enumerable: true, get: function () { return robots_service_1.RobotsService; } });
|
|
6
6
|
var redirects_service_1 = require("./redirects-service");
|
|
@@ -22,6 +22,5 @@ Object.defineProperty(exports, "getSiteRewriteData", { enumerable: true, get: fu
|
|
|
22
22
|
Object.defineProperty(exports, "normalizeSiteRewrite", { enumerable: true, get: function () { return utils_1.normalizeSiteRewrite; } });
|
|
23
23
|
Object.defineProperty(exports, "SITE_PREFIX", { enumerable: true, get: function () { return utils_1.SITE_PREFIX; } });
|
|
24
24
|
Object.defineProperty(exports, "SITE_KEY", { enumerable: true, get: function () { return utils_1.SITE_KEY; } });
|
|
25
|
-
Object.defineProperty(exports, "getHostnameFromHostHeader", { enumerable: true, get: function () { return utils_1.getHostnameFromHostHeader; } });
|
|
26
25
|
var site_resolver_1 = require("./site-resolver");
|
|
27
26
|
Object.defineProperty(exports, "SiteResolver", { enumerable: true, get: function () { return site_resolver_1.SiteResolver; } });
|
package/dist/cjs/site/utils.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SITE_KEY = exports.SITE_PREFIX = void 0;
|
|
4
|
-
exports.getHostnameFromHostHeader = getHostnameFromHostHeader;
|
|
5
4
|
exports.getSiteRewrite = getSiteRewrite;
|
|
6
5
|
exports.getSiteRewriteData = getSiteRewriteData;
|
|
7
6
|
exports.normalizeSiteRewrite = normalizeSiteRewrite;
|
|
@@ -15,39 +14,6 @@ exports.SITE_PREFIX = '_site_';
|
|
|
15
14
|
* @public
|
|
16
15
|
*/
|
|
17
16
|
exports.SITE_KEY = 'sc_site';
|
|
18
|
-
/**
|
|
19
|
-
* Hostname from a `Host` or `x-forwarded-host` value, without port.
|
|
20
|
-
* - `[::1]:3000` → `::1`
|
|
21
|
-
* - `127.0.0.1:3000` → `127.0.0.1`
|
|
22
|
-
* - `example.com:443` → `example.com`
|
|
23
|
-
* - `::1` → `::1` (does not treat `:1` as a port)
|
|
24
|
-
* @param {string} host - Raw header value
|
|
25
|
-
* @returns {string} The hostname
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
function getHostnameFromHostHeader(host) {
|
|
29
|
-
const trimmed = host.trim();
|
|
30
|
-
// Bracketed IPv6: "[...]:port" or "[...]"
|
|
31
|
-
if (trimmed.startsWith('[')) {
|
|
32
|
-
const end = trimmed.indexOf(']');
|
|
33
|
-
if (end !== -1) {
|
|
34
|
-
return trimmed.slice(1, end).toLowerCase();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
// Unbracketed IPv6 (e.g. ::1, 2001:db8::1) — never strip on last ":digits"
|
|
38
|
-
if (trimmed.includes('::')) {
|
|
39
|
-
return trimmed.toLowerCase();
|
|
40
|
-
}
|
|
41
|
-
// IPv4 or DNS name with ":port" (port = decimal digits only)
|
|
42
|
-
const lastColon = trimmed.lastIndexOf(':');
|
|
43
|
-
if (lastColon > 0) {
|
|
44
|
-
const after = trimmed.slice(lastColon + 1);
|
|
45
|
-
if (/^\d+$/.test(after)) {
|
|
46
|
-
return trimmed.slice(0, lastColon).toLowerCase();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return trimmed.toLowerCase();
|
|
50
|
-
}
|
|
51
17
|
/**
|
|
52
18
|
* Get a site rewrite path for given pathname
|
|
53
19
|
* @param {string} pathname the pathname
|
package/dist/cjs/tools/index.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.filterComponentsByType = exports.getComponentSpecUrl = exports.getComponentSpec = void 0;
|
|
4
4
|
var component_generation_1 = require("./codegen/component-generation");
|
|
5
5
|
Object.defineProperty(exports, "getComponentSpec", { enumerable: true, get: function () { return component_generation_1.getComponentSpec; } });
|
|
6
6
|
Object.defineProperty(exports, "getComponentSpecUrl", { enumerable: true, get: function () { return component_generation_1.getComponentSpecUrl; } });
|
|
7
7
|
var templating_1 = require("./templating");
|
|
8
8
|
Object.defineProperty(exports, "filterComponentsByType", { enumerable: true, get: function () { return templating_1.filterComponentsByType; } });
|
|
9
|
-
Object.defineProperty(exports, "prepareComponentsForMap", { enumerable: true, get: function () { return templating_1.prepareComponentsForMap; } });
|
|
10
|
-
Object.defineProperty(exports, "buildComponentMapContent", { enumerable: true, get: function () { return templating_1.buildComponentMapContent; } });
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.componentUnitMocks = exports.getComponentList = void 0;
|
|
37
37
|
exports.filterComponentsByType = filterComponentsByType;
|
|
38
38
|
const glob = __importStar(require("glob"));
|
|
39
39
|
/**
|
|
@@ -50,16 +50,6 @@ exports.componentUnitMocks = {
|
|
|
50
50
|
};
|
|
51
51
|
const componentNamePattern = /^[\/]*(.+[\/\\])*(.+)\.[jt]sx?$/;
|
|
52
52
|
const componentPathPattern = /^([\/]*.+[\/\\].+)\..+$/;
|
|
53
|
-
/**
|
|
54
|
-
* Converts string to PascalCase.
|
|
55
|
-
* @param {string} name - kebab-case, snake_case, dot.notation, camelCase, or PascalCase string (e.g. `my-component`, `my_component`, `my.component`, `myComponent`)
|
|
56
|
-
* @returns {string} PascalCase string (e.g. `MyComponent`)
|
|
57
|
-
*/
|
|
58
|
-
const toPascalCase = (name) => name
|
|
59
|
-
.split(/[-_]/)
|
|
60
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
61
|
-
.join('');
|
|
62
|
-
exports.toPascalCase = toPascalCase;
|
|
63
53
|
/**
|
|
64
54
|
* Get list of components from @var path
|
|
65
55
|
* Returns a list of components in the following format:
|
|
@@ -85,8 +75,8 @@ function _getComponentList(paths, exclude, includeVariants) {
|
|
|
85
75
|
return {
|
|
86
76
|
filePath,
|
|
87
77
|
importPath: filePath.match(componentPathPattern)[1].replace(/\\/g, '/'), // use forward slashes for consistency
|
|
88
|
-
componentName:
|
|
89
|
-
moduleName:
|
|
78
|
+
componentName: name,
|
|
79
|
+
moduleName: name.replace(/[^\w]+/g, ''),
|
|
90
80
|
};
|
|
91
81
|
}));
|
|
92
82
|
}, []);
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.filterComponentsByType = exports.getComponentList = void 0;
|
|
4
4
|
var components_1 = require("./components");
|
|
5
5
|
Object.defineProperty(exports, "getComponentList", { enumerable: true, get: function () { return components_1.getComponentList; } });
|
|
6
6
|
Object.defineProperty(exports, "filterComponentsByType", { enumerable: true, get: function () { return components_1.filterComponentsByType; } });
|
|
7
|
-
var utils_1 = require("./utils");
|
|
8
|
-
Object.defineProperty(exports, "prepareComponentsForMap", { enumerable: true, get: function () { return utils_1.prepareComponentsForMap; } });
|
|
9
|
-
Object.defineProperty(exports, "buildComponentMapContent", { enumerable: true, get: function () { return utils_1.buildComponentMapContent; } });
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event name for component preview updates from design library
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export const DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME = 'component:atoms:preview';
|
|
6
|
+
/**
|
|
7
|
+
* Event name for the atoms catalog registration (replaces legacy `atom:registry`).
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export const DESIGN_LIBRARY_ATOMS_CATALOG_EVENT_NAME = 'atoms:catalog';
|
|
11
|
+
/**
|
|
12
|
+
* Event to send to design library when rendering atoms error occurs
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export const DESIGN_LIBRARY_ATOMS_ERROR_EVENT_NAME = 'atoms:error';
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { constants } from '@sitecore-content-sdk/core';
|
|
2
|
+
import { validateEvent } from '../../editing/design-library';
|
|
3
|
+
import { DESIGN_LIBRARY_ATOMS_CATALOG_EVENT_NAME, DESIGN_LIBRARY_ATOMS_ERROR_EVENT_NAME, DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME, } from './constants';
|
|
4
|
+
const { ERROR_MESSAGES } = constants;
|
|
5
|
+
/**
|
|
6
|
+
* Creates a DesignLibraryAtomsCatalogEvent with the given catalog payload.
|
|
7
|
+
* @param {AtomsCatalogPayload} payload - serialized catalog data
|
|
8
|
+
* @returns {DesignLibraryAtomsCatalogEvent} the event ready to be posted to Design Studio
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export function getDesignLibraryAtomsCatalogEvent(payload) {
|
|
12
|
+
return {
|
|
13
|
+
name: DESIGN_LIBRARY_ATOMS_CATALOG_EVENT_NAME,
|
|
14
|
+
message: payload,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generates a DesignLibraryAtomsErrorEvent depending on the type of error with the given error.
|
|
19
|
+
* @param {unknown} error - The error to be sent.
|
|
20
|
+
* @param {DesignLibraryAtomsError} type - The type of error.
|
|
21
|
+
* @returns An object representing the DesignLibraryAtomsErrorEvent.
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export function getDesignLibraryAtomsErrorEvent(error, type) {
|
|
25
|
+
return {
|
|
26
|
+
name: DESIGN_LIBRARY_ATOMS_ERROR_EVENT_NAME,
|
|
27
|
+
message: { error, type },
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sends a design library atoms error event to the design library
|
|
32
|
+
* @param {unknown} error - The error object or message to be sent.
|
|
33
|
+
* @param {DesignLibraryAtomsError} type - The type of error, as defined in DesignLibraryAtomsError.
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
export const sendAtomsErrorEvent = (error, type) => {
|
|
37
|
+
const errorEvent = getDesignLibraryAtomsErrorEvent(error, type);
|
|
38
|
+
console.error(`Component Library: sending error event. ${ERROR_MESSAGES.CONTACT_SUPPORT}`, errorEvent);
|
|
39
|
+
if (typeof window !== 'undefined') {
|
|
40
|
+
const target = window.parent && window.parent !== window ? window.parent : window;
|
|
41
|
+
target.postMessage(errorEvent, '*');
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Adds a handler for atom document update events from the design library.
|
|
46
|
+
* @param {(updatedRootComponent: Document) => void} callback - The callback to be invoked when a document update event is received.
|
|
47
|
+
* @returns A function to unsubscribe from the atom document update events.
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
export const addDocumentUpdateHandler = (callback) => {
|
|
51
|
+
const handler = (e) => {
|
|
52
|
+
if (!validateEvent(e, DESIGN_LIBRARY_COMPONENT_PREVIEW_EVENT_NAME)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
console.debug('Component Library atoms: message received', e.data);
|
|
56
|
+
callback(e.data.document);
|
|
57
|
+
};
|
|
58
|
+
window.addEventListener('message', handler);
|
|
59
|
+
const unsubscribe = () => {
|
|
60
|
+
window.removeEventListener('message', handler);
|
|
61
|
+
};
|
|
62
|
+
return unsubscribe;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Adds a handler for component props (fields and params) updates from the design library.
|
|
66
|
+
* Listens for 'component:update' events and invokes the callback with the updated fields and params.
|
|
67
|
+
* @param {Function} callback - Called when a 'component:update' message is received.
|
|
68
|
+
* @returns A function to unsubscribe from the event.
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export const addComponentPropsUpdateHandler = (callback) => {
|
|
72
|
+
const handler = (e) => {
|
|
73
|
+
if (!validateEvent(e, 'component:update'))
|
|
74
|
+
return;
|
|
75
|
+
const details = e.data.details;
|
|
76
|
+
callback(details === null || details === void 0 ? void 0 : details.fields, details === null || details === void 0 ? void 0 : details.params);
|
|
77
|
+
};
|
|
78
|
+
window.addEventListener('message', handler);
|
|
79
|
+
return () => window.removeEventListener('message', handler);
|
|
80
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getDesignLibraryAtomsCatalogEvent, sendAtomsErrorEvent, addDocumentUpdateHandler, addComponentPropsUpdateHandler, } from './design-library-bridge';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|