@sitecore-content-sdk/core 2.1.3 → 2.2.0-beta.atoms.20260824102129
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/dist/cjs/atoms-css-compiler-registry.js +48 -0
- package/dist/cjs/constants.js +10 -0
- package/dist/cjs/graphql-request-client.js +3 -4
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/tools/resolve-edge-url.js +4 -10
- package/dist/esm/atoms-css-compiler-registry.js +43 -0
- package/dist/esm/constants.js +10 -0
- package/dist/esm/graphql-request-client.js +3 -4
- package/dist/esm/index.js +1 -0
- package/dist/esm/tools/resolve-edge-url.js +4 -10
- package/package.json +7 -7
- package/types/atoms-css-compiler-registry.d.ts +42 -0
- package/types/atoms-css-compiler-registry.d.ts.map +1 -0
- package/types/constants.d.ts +10 -0
- package/types/constants.d.ts.map +1 -1
- package/types/graphql-request-client.d.ts +1 -1
- package/types/graphql-request-client.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/tools/resolve-edge-url.d.ts.map +1 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Registry for the atoms CSS compiler function.
|
|
4
|
+
*
|
|
5
|
+
* This module is intentionally free of React and any UI-framework dependencies
|
|
6
|
+
* so it can be safely imported in server-only contexts such as
|
|
7
|
+
* Next.js `instrumentation.ts`, Server Actions, and RSC.
|
|
8
|
+
*
|
|
9
|
+
* A plain module-level variable is used here. This works reliably because
|
|
10
|
+
* `@sitecore-content-sdk/core` must be listed in the Next.js application's
|
|
11
|
+
* `serverExternalPackages`. That tells Next.js to load it as a native Node.js
|
|
12
|
+
* module rather than bundling it, so all imports across instrumentation code
|
|
13
|
+
* and Server Actions resolve to the same cached module instance.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.setAtomsCssCompiler = setAtomsCssCompiler;
|
|
17
|
+
exports.getAtomsCssCompiler = getAtomsCssCompiler;
|
|
18
|
+
exports.__resetAtomsCssCompiler = __resetAtomsCssCompiler;
|
|
19
|
+
let _compiler = null;
|
|
20
|
+
/**
|
|
21
|
+
* Registers the CSS compiler used by `StudioComponentServerWrapper` (production)
|
|
22
|
+
* and `compileCssForDocumentAction` (editing) to generate CSS for class names
|
|
23
|
+
* that exist only in runtime MMS Document JSON.
|
|
24
|
+
*
|
|
25
|
+
* Call this in `instrumentation.ts` before the server handles any requests.
|
|
26
|
+
* For Tailwind apps, prefer `registerTailwindCssCompiler` from
|
|
27
|
+
* `@sitecore-content-sdk/nextjs/instrumentation`.
|
|
28
|
+
* @param {AtomsCssCompiler} fn - Async function that accepts class tokens and returns compiled CSS.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
function setAtomsCssCompiler(fn) {
|
|
32
|
+
_compiler = fn;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the currently registered CSS compiler, or `null` if none has been set.
|
|
36
|
+
* @returns {AtomsCssCompiler | null} The registered compiler, or `null`.
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
function getAtomsCssCompiler() {
|
|
40
|
+
return _compiler;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Clears the registered CSS compiler. Intended for tests only.
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
function __resetAtomsCssCompiler() {
|
|
47
|
+
_compiler = null;
|
|
48
|
+
}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -47,6 +47,9 @@ exports.ERROR_MESSAGES = {
|
|
|
47
47
|
IV_005: '[IV-005] Incorrect value for "expiryDate". Format the value according to ISO 8601.',
|
|
48
48
|
IV_006: (maxAttributes) => `[IV-006] "extensionData" supports maximum ${maxAttributes} attributes. Reduce the number of attributes.`,
|
|
49
49
|
IV_007: (siteName) => `[IV-007] Site "${siteName}" does not exist or site item tree is missing.`,
|
|
50
|
+
IV_008: (lockSide, currentSide) => `[IV-008] Catalog version mismatch: lock file has ${lockSide}, current is ${currentSide}.`,
|
|
51
|
+
IV_009: (name, lockSide, currentSide) => `[IV-009] Atom "${name}" version mismatch: lock file has ${lockSide}, current is ${currentSide}.`,
|
|
52
|
+
IV_010: (name) => `[IV-010] Atom "${name}" schema has changed.`,
|
|
50
53
|
/** IE errors are related to incorrect execution */
|
|
51
54
|
IE_001: (pluginName, dependency) => `[IE-001] "${pluginName}" also requires "${dependency}". Add the missing dependency.`,
|
|
52
55
|
IE_002: '[IE-002] SDK not initialized. You must first initialize the SDK using "initContentSdk()".',
|
|
@@ -55,6 +58,8 @@ exports.ERROR_MESSAGES = {
|
|
|
55
58
|
IE_005: '[IE-005] Unable to set the "sc_cid" cookie because the client ID could not be retrieved from the server. Make sure to set the correct values for "contextId" and "siteName". If the issue persists, try again later or use try-catch blocks to handle this error.',
|
|
56
59
|
IE_006: '[IE-006] Unable to set the "sc_cid_personalize" cookie because the visitor ID could not be retrieved from the server. Make sure to set the correct values for "contextId" and "siteName". If the issue persists, try again later or use try-catch blocks to handle this error.',
|
|
57
60
|
IE_007: (hostName) => `[IE-007] Could not resolve site for host "${hostName}".`,
|
|
61
|
+
IE_008: '[IE-008] Lock file validation failed:',
|
|
62
|
+
IE_009: '[IE-009] Atom validation failed. See issues above. You see this error because `breakOnError` is enabled in your CLI config.',
|
|
58
63
|
/** MV errors are related to missing values */
|
|
59
64
|
MV_001: '[MV-001] "contextId" is required.',
|
|
60
65
|
MV_002: '[MV-002] "siteName" is required.',
|
|
@@ -65,6 +70,11 @@ exports.ERROR_MESSAGES = {
|
|
|
65
70
|
MV_007: '[MV-007] Provide either "contextId" or both "apiHost" and "apiKey".',
|
|
66
71
|
MV_008: '[MV-008] Verify that sitecore.config is properly imported and correctly referenced.',
|
|
67
72
|
MV_009: '[MV-009] "language" is required.',
|
|
73
|
+
MV_010: (modulePath) => `[MV-010] Atoms module not found at ${modulePath}.{ts,tsx}. Ensure your atoms are defined in src/atoms/index.{ts,tsx} and export a catalog.`,
|
|
74
|
+
MV_011: (modulePath) => `[MV-011] Atoms module at ${modulePath} does not export "catalog". Export the result of defineAtomsCatalog as "catalog".`,
|
|
75
|
+
MV_012: '[MV-012] Lock file not found. Run `sitecore-tools project atoms update` to generate it.',
|
|
76
|
+
MV_013: (name) => `[MV-013] Atom "${name}" is in the lock file but not found in current definitions.`,
|
|
77
|
+
MV_014: (name) => `[MV-014] Atom "${name}" is new and not in the lock file. Run \`sitecore-tools project atoms update\` to add it.`,
|
|
68
78
|
/** Generic follow-up when the user should contact support */
|
|
69
79
|
CONTACT_SUPPORT: 'If the issue persists, please contact Sitecore Support.',
|
|
70
80
|
};
|
|
@@ -31,7 +31,7 @@ class GraphQLRequestClient {
|
|
|
31
31
|
* @param {GraphQLRequestClientConfig} [clientConfig] GraphQL request client configuration.
|
|
32
32
|
*/
|
|
33
33
|
constructor(endpoint, clientConfig = {}) {
|
|
34
|
-
var _a
|
|
34
|
+
var _a;
|
|
35
35
|
this.endpoint = endpoint;
|
|
36
36
|
this.headers = {};
|
|
37
37
|
if (clientConfig.apiKey) {
|
|
@@ -47,7 +47,7 @@ class GraphQLRequestClient {
|
|
|
47
47
|
try {
|
|
48
48
|
hasHostname = Boolean(new URL(endpoint).hostname);
|
|
49
49
|
}
|
|
50
|
-
catch (
|
|
50
|
+
catch (_b) {
|
|
51
51
|
// invalid URL
|
|
52
52
|
}
|
|
53
53
|
if (!endpoint || !hasHostname) {
|
|
@@ -60,8 +60,7 @@ class GraphQLRequestClient {
|
|
|
60
60
|
new retries_1.DefaultRetryStrategy({ statusCodes: [429, 502, 503, 504, 520, 521, 522, 523, 524] });
|
|
61
61
|
this.client = new graphql_request_1.GraphQLClient(endpoint, {
|
|
62
62
|
headers: this.headers,
|
|
63
|
-
|
|
64
|
-
fetch: (_b = clientConfig.fetch) !== null && _b !== void 0 ? _b : ((input, init) => globalThis.fetch(input, init)),
|
|
63
|
+
fetch: clientConfig.fetch,
|
|
65
64
|
});
|
|
66
65
|
this.debug = clientConfig.debugger || debug_1.default.http;
|
|
67
66
|
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.constants = exports.NativeDataFetcher = exports.ClientError = exports.MemoryCacheClient = exports.DefaultRetryStrategy = exports.GraphQLRequestClient = exports.isNamespaceEnabled = exports.debugModule = exports.debugNamespace = exports.enableDebug = exports.debug = void 0;
|
|
42
|
+
exports.getAtomsCssCompiler = exports.setAtomsCssCompiler = exports.constants = exports.NativeDataFetcher = exports.ClientError = exports.MemoryCacheClient = exports.DefaultRetryStrategy = exports.GraphQLRequestClient = exports.isNamespaceEnabled = exports.debugModule = exports.debugNamespace = exports.enableDebug = exports.debug = void 0;
|
|
43
43
|
const constants = __importStar(require("./constants"));
|
|
44
44
|
exports.constants = constants;
|
|
45
45
|
var debug_1 = require("./debug");
|
|
@@ -59,3 +59,6 @@ Object.defineProperty(exports, "ClientError", { enumerable: true, get: function
|
|
|
59
59
|
var native_fetcher_1 = require("./native-fetcher");
|
|
60
60
|
Object.defineProperty(exports, "NativeDataFetcher", { enumerable: true, get: function () { return native_fetcher_1.NativeDataFetcher; } });
|
|
61
61
|
__exportStar(require("./initialization"), exports);
|
|
62
|
+
var atoms_css_compiler_registry_1 = require("./atoms-css-compiler-registry");
|
|
63
|
+
Object.defineProperty(exports, "setAtomsCssCompiler", { enumerable: true, get: function () { return atoms_css_compiler_registry_1.setAtomsCssCompiler; } });
|
|
64
|
+
Object.defineProperty(exports, "getAtomsCssCompiler", { enumerable: true, get: function () { return atoms_css_compiler_registry_1.getAtomsCssCompiler; } });
|
|
@@ -46,9 +46,8 @@ function resolveEdgeUrl(edgeUrl) {
|
|
|
46
46
|
if (explicit) {
|
|
47
47
|
return (0, normalize_url_1.normalizeUrl)(explicit);
|
|
48
48
|
}
|
|
49
|
-
const runtimeEnv = typeof process !== 'undefined' ? process.env : {};
|
|
50
49
|
// Check for custom hostname env var
|
|
51
|
-
const hostnameEnvVar = (0, normalize_env_value_1.normalizeEnvValue)(
|
|
50
|
+
const hostnameEnvVar = (0, normalize_env_value_1.normalizeEnvValue)(process.env[exports.SITECORE_EDGE_PLATFORM_HOSTNAME_ENV]);
|
|
52
51
|
if (hostnameEnvVar) {
|
|
53
52
|
return normalizeHostnameToUrl(hostnameEnvVar);
|
|
54
53
|
}
|
|
@@ -63,14 +62,9 @@ function resolveEdgeUrl(edgeUrl) {
|
|
|
63
62
|
* @public
|
|
64
63
|
*/
|
|
65
64
|
function resolveExperienceEdgeUrl() {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return normalizeHostnameToUrl(hostnameEnvVar);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
console.warn('Attempted to read SITECORE_EXPERIENCE_EDGE_HOSTNAME_ENV from process.env, but process is undefined');
|
|
65
|
+
const hostnameEnvVar = (0, normalize_env_value_1.normalizeEnvValue)(process.env[exports.SITECORE_EXPERIENCE_EDGE_HOSTNAME_ENV]);
|
|
66
|
+
if (hostnameEnvVar) {
|
|
67
|
+
return normalizeHostnameToUrl(hostnameEnvVar);
|
|
74
68
|
}
|
|
75
69
|
return constants_1.SITECORE_EXPERIENCE_EDGE_URL_DEFAULT;
|
|
76
70
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry for the atoms CSS compiler function.
|
|
3
|
+
*
|
|
4
|
+
* This module is intentionally free of React and any UI-framework dependencies
|
|
5
|
+
* so it can be safely imported in server-only contexts such as
|
|
6
|
+
* Next.js `instrumentation.ts`, Server Actions, and RSC.
|
|
7
|
+
*
|
|
8
|
+
* A plain module-level variable is used here. This works reliably because
|
|
9
|
+
* `@sitecore-content-sdk/core` must be listed in the Next.js application's
|
|
10
|
+
* `serverExternalPackages`. That tells Next.js to load it as a native Node.js
|
|
11
|
+
* module rather than bundling it, so all imports across instrumentation code
|
|
12
|
+
* and Server Actions resolve to the same cached module instance.
|
|
13
|
+
*/
|
|
14
|
+
let _compiler = null;
|
|
15
|
+
/**
|
|
16
|
+
* Registers the CSS compiler used by `StudioComponentServerWrapper` (production)
|
|
17
|
+
* and `compileCssForDocumentAction` (editing) to generate CSS for class names
|
|
18
|
+
* that exist only in runtime MMS Document JSON.
|
|
19
|
+
*
|
|
20
|
+
* Call this in `instrumentation.ts` before the server handles any requests.
|
|
21
|
+
* For Tailwind apps, prefer `registerTailwindCssCompiler` from
|
|
22
|
+
* `@sitecore-content-sdk/nextjs/instrumentation`.
|
|
23
|
+
* @param {AtomsCssCompiler} fn - Async function that accepts class tokens and returns compiled CSS.
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export function setAtomsCssCompiler(fn) {
|
|
27
|
+
_compiler = fn;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns the currently registered CSS compiler, or `null` if none has been set.
|
|
31
|
+
* @returns {AtomsCssCompiler | null} The registered compiler, or `null`.
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
export function getAtomsCssCompiler() {
|
|
35
|
+
return _compiler;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Clears the registered CSS compiler. Intended for tests only.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export function __resetAtomsCssCompiler() {
|
|
42
|
+
_compiler = null;
|
|
43
|
+
}
|
package/dist/esm/constants.js
CHANGED
|
@@ -44,6 +44,9 @@ export const ERROR_MESSAGES = {
|
|
|
44
44
|
IV_005: '[IV-005] Incorrect value for "expiryDate". Format the value according to ISO 8601.',
|
|
45
45
|
IV_006: (maxAttributes) => `[IV-006] "extensionData" supports maximum ${maxAttributes} attributes. Reduce the number of attributes.`,
|
|
46
46
|
IV_007: (siteName) => `[IV-007] Site "${siteName}" does not exist or site item tree is missing.`,
|
|
47
|
+
IV_008: (lockSide, currentSide) => `[IV-008] Catalog version mismatch: lock file has ${lockSide}, current is ${currentSide}.`,
|
|
48
|
+
IV_009: (name, lockSide, currentSide) => `[IV-009] Atom "${name}" version mismatch: lock file has ${lockSide}, current is ${currentSide}.`,
|
|
49
|
+
IV_010: (name) => `[IV-010] Atom "${name}" schema has changed.`,
|
|
47
50
|
/** IE errors are related to incorrect execution */
|
|
48
51
|
IE_001: (pluginName, dependency) => `[IE-001] "${pluginName}" also requires "${dependency}". Add the missing dependency.`,
|
|
49
52
|
IE_002: '[IE-002] SDK not initialized. You must first initialize the SDK using "initContentSdk()".',
|
|
@@ -52,6 +55,8 @@ export const ERROR_MESSAGES = {
|
|
|
52
55
|
IE_005: '[IE-005] Unable to set the "sc_cid" cookie because the client ID could not be retrieved from the server. Make sure to set the correct values for "contextId" and "siteName". If the issue persists, try again later or use try-catch blocks to handle this error.',
|
|
53
56
|
IE_006: '[IE-006] Unable to set the "sc_cid_personalize" cookie because the visitor ID could not be retrieved from the server. Make sure to set the correct values for "contextId" and "siteName". If the issue persists, try again later or use try-catch blocks to handle this error.',
|
|
54
57
|
IE_007: (hostName) => `[IE-007] Could not resolve site for host "${hostName}".`,
|
|
58
|
+
IE_008: '[IE-008] Lock file validation failed:',
|
|
59
|
+
IE_009: '[IE-009] Atom validation failed. See issues above. You see this error because `breakOnError` is enabled in your CLI config.',
|
|
55
60
|
/** MV errors are related to missing values */
|
|
56
61
|
MV_001: '[MV-001] "contextId" is required.',
|
|
57
62
|
MV_002: '[MV-002] "siteName" is required.',
|
|
@@ -62,6 +67,11 @@ export const ERROR_MESSAGES = {
|
|
|
62
67
|
MV_007: '[MV-007] Provide either "contextId" or both "apiHost" and "apiKey".',
|
|
63
68
|
MV_008: '[MV-008] Verify that sitecore.config is properly imported and correctly referenced.',
|
|
64
69
|
MV_009: '[MV-009] "language" is required.',
|
|
70
|
+
MV_010: (modulePath) => `[MV-010] Atoms module not found at ${modulePath}.{ts,tsx}. Ensure your atoms are defined in src/atoms/index.{ts,tsx} and export a catalog.`,
|
|
71
|
+
MV_011: (modulePath) => `[MV-011] Atoms module at ${modulePath} does not export "catalog". Export the result of defineAtomsCatalog as "catalog".`,
|
|
72
|
+
MV_012: '[MV-012] Lock file not found. Run `sitecore-tools project atoms update` to generate it.',
|
|
73
|
+
MV_013: (name) => `[MV-013] Atom "${name}" is in the lock file but not found in current definitions.`,
|
|
74
|
+
MV_014: (name) => `[MV-014] Atom "${name}" is new and not in the lock file. Run \`sitecore-tools project atoms update\` to add it.`,
|
|
65
75
|
/** Generic follow-up when the user should contact support */
|
|
66
76
|
CONTACT_SUPPORT: 'If the issue persists, please contact Sitecore Support.',
|
|
67
77
|
};
|
|
@@ -25,7 +25,7 @@ export class GraphQLRequestClient {
|
|
|
25
25
|
* @param {GraphQLRequestClientConfig} [clientConfig] GraphQL request client configuration.
|
|
26
26
|
*/
|
|
27
27
|
constructor(endpoint, clientConfig = {}) {
|
|
28
|
-
var _a
|
|
28
|
+
var _a;
|
|
29
29
|
this.endpoint = endpoint;
|
|
30
30
|
this.headers = {};
|
|
31
31
|
if (clientConfig.apiKey) {
|
|
@@ -41,7 +41,7 @@ export class GraphQLRequestClient {
|
|
|
41
41
|
try {
|
|
42
42
|
hasHostname = Boolean(new URL(endpoint).hostname);
|
|
43
43
|
}
|
|
44
|
-
catch (
|
|
44
|
+
catch (_b) {
|
|
45
45
|
// invalid URL
|
|
46
46
|
}
|
|
47
47
|
if (!endpoint || !hasHostname) {
|
|
@@ -54,8 +54,7 @@ export class GraphQLRequestClient {
|
|
|
54
54
|
new DefaultRetryStrategy({ statusCodes: [429, 502, 503, 504, 520, 521, 522, 523, 524] });
|
|
55
55
|
this.client = new Client(endpoint, {
|
|
56
56
|
headers: this.headers,
|
|
57
|
-
|
|
58
|
-
fetch: (_b = clientConfig.fetch) !== null && _b !== void 0 ? _b : ((input, init) => globalThis.fetch(input, init)),
|
|
57
|
+
fetch: clientConfig.fetch,
|
|
59
58
|
});
|
|
60
59
|
this.debug = clientConfig.debugger || debuggers.http;
|
|
61
60
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -40,9 +40,8 @@ export function resolveEdgeUrl(edgeUrl) {
|
|
|
40
40
|
if (explicit) {
|
|
41
41
|
return normalizeUrl(explicit);
|
|
42
42
|
}
|
|
43
|
-
const runtimeEnv = typeof process !== 'undefined' ? process.env : {};
|
|
44
43
|
// Check for custom hostname env var
|
|
45
|
-
const hostnameEnvVar = normalizeEnvValue(
|
|
44
|
+
const hostnameEnvVar = normalizeEnvValue(process.env[SITECORE_EDGE_PLATFORM_HOSTNAME_ENV]);
|
|
46
45
|
if (hostnameEnvVar) {
|
|
47
46
|
return normalizeHostnameToUrl(hostnameEnvVar);
|
|
48
47
|
}
|
|
@@ -57,14 +56,9 @@ export function resolveEdgeUrl(edgeUrl) {
|
|
|
57
56
|
* @public
|
|
58
57
|
*/
|
|
59
58
|
export function resolveExperienceEdgeUrl() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return normalizeHostnameToUrl(hostnameEnvVar);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
console.warn('Attempted to read SITECORE_EXPERIENCE_EDGE_HOSTNAME_ENV from process.env, but process is undefined');
|
|
59
|
+
const hostnameEnvVar = normalizeEnvValue(process.env[SITECORE_EXPERIENCE_EDGE_HOSTNAME_ENV]);
|
|
60
|
+
if (hostnameEnvVar) {
|
|
61
|
+
return normalizeHostnameToUrl(hostnameEnvVar);
|
|
68
62
|
}
|
|
69
63
|
return SITECORE_EXPERIENCE_EDGE_URL_DEFAULT;
|
|
70
64
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-content-sdk/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0-beta.atoms.20260824102129",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -80,19 +80,19 @@
|
|
|
80
80
|
],
|
|
81
81
|
"exports": {
|
|
82
82
|
".": {
|
|
83
|
-
"types": "./types/index.d.ts",
|
|
84
83
|
"import": "./dist/esm/index.js",
|
|
85
|
-
"require": "./dist/cjs/index.js"
|
|
84
|
+
"require": "./dist/cjs/index.js",
|
|
85
|
+
"types": "./types/index.d.ts"
|
|
86
86
|
},
|
|
87
87
|
"./tools": {
|
|
88
|
-
"types": "./types/tools/index.d.ts",
|
|
89
88
|
"import": "./dist/esm/tools/index.js",
|
|
90
|
-
"require": "./dist/cjs/tools/index.js"
|
|
89
|
+
"require": "./dist/cjs/tools/index.js",
|
|
90
|
+
"types": "./types/tools/index.d.ts"
|
|
91
91
|
},
|
|
92
92
|
"./node-tools": {
|
|
93
|
-
"types": "./types/tools/index-node.d.ts",
|
|
94
93
|
"import": "./dist/esm/tools/index-node.js",
|
|
95
|
-
"require": "./dist/cjs/tools/index-node.js"
|
|
94
|
+
"require": "./dist/cjs/tools/index-node.js",
|
|
95
|
+
"types": "./types/tools/index-node.d.ts"
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry for the atoms CSS compiler function.
|
|
3
|
+
*
|
|
4
|
+
* This module is intentionally free of React and any UI-framework dependencies
|
|
5
|
+
* so it can be safely imported in server-only contexts such as
|
|
6
|
+
* Next.js `instrumentation.ts`, Server Actions, and RSC.
|
|
7
|
+
*
|
|
8
|
+
* A plain module-level variable is used here. This works reliably because
|
|
9
|
+
* `@sitecore-content-sdk/core` must be listed in the Next.js application's
|
|
10
|
+
* `serverExternalPackages`. That tells Next.js to load it as a native Node.js
|
|
11
|
+
* module rather than bundling it, so all imports across instrumentation code
|
|
12
|
+
* and Server Actions resolve to the same cached module instance.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Async function that accepts CSS class tokens and returns compiled CSS.
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export type AtomsCssCompiler = (classes: string[]) => Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* Registers the CSS compiler used by `StudioComponentServerWrapper` (production)
|
|
21
|
+
* and `compileCssForDocumentAction` (editing) to generate CSS for class names
|
|
22
|
+
* that exist only in runtime MMS Document JSON.
|
|
23
|
+
*
|
|
24
|
+
* Call this in `instrumentation.ts` before the server handles any requests.
|
|
25
|
+
* For Tailwind apps, prefer `registerTailwindCssCompiler` from
|
|
26
|
+
* `@sitecore-content-sdk/nextjs/instrumentation`.
|
|
27
|
+
* @param {AtomsCssCompiler} fn - Async function that accepts class tokens and returns compiled CSS.
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export declare function setAtomsCssCompiler(fn: AtomsCssCompiler): void;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the currently registered CSS compiler, or `null` if none has been set.
|
|
33
|
+
* @returns {AtomsCssCompiler | null} The registered compiler, or `null`.
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export declare function getAtomsCssCompiler(): AtomsCssCompiler | null;
|
|
37
|
+
/**
|
|
38
|
+
* Clears the registered CSS compiler. Intended for tests only.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export declare function __resetAtomsCssCompiler(): void;
|
|
42
|
+
//# sourceMappingURL=atoms-css-compiler-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atoms-css-compiler-registry.d.ts","sourceRoot":"","sources":["../src/atoms-css-compiler-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAItE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
|
package/types/constants.d.ts
CHANGED
|
@@ -43,6 +43,9 @@ export declare const ERROR_MESSAGES: {
|
|
|
43
43
|
readonly IV_005: "[IV-005] Incorrect value for \"expiryDate\". Format the value according to ISO 8601.";
|
|
44
44
|
readonly IV_006: (maxAttributes: number) => string;
|
|
45
45
|
readonly IV_007: (siteName: string) => string;
|
|
46
|
+
readonly IV_008: (lockSide: string, currentSide: string) => string;
|
|
47
|
+
readonly IV_009: (name: string, lockSide: string, currentSide: string) => string;
|
|
48
|
+
readonly IV_010: (name: string) => string;
|
|
46
49
|
/** IE errors are related to incorrect execution */
|
|
47
50
|
readonly IE_001: (pluginName: string, dependency: string) => string;
|
|
48
51
|
readonly IE_002: "[IE-002] SDK not initialized. You must first initialize the SDK using \"initContentSdk()\".";
|
|
@@ -51,6 +54,8 @@ export declare const ERROR_MESSAGES: {
|
|
|
51
54
|
readonly IE_005: "[IE-005] Unable to set the \"sc_cid\" cookie because the client ID could not be retrieved from the server. Make sure to set the correct values for \"contextId\" and \"siteName\". If the issue persists, try again later or use try-catch blocks to handle this error.";
|
|
52
55
|
readonly IE_006: "[IE-006] Unable to set the \"sc_cid_personalize\" cookie because the visitor ID could not be retrieved from the server. Make sure to set the correct values for \"contextId\" and \"siteName\". If the issue persists, try again later or use try-catch blocks to handle this error.";
|
|
53
56
|
readonly IE_007: (hostName: string) => string;
|
|
57
|
+
readonly IE_008: "[IE-008] Lock file validation failed:";
|
|
58
|
+
readonly IE_009: "[IE-009] Atom validation failed. See issues above. You see this error because `breakOnError` is enabled in your CLI config.";
|
|
54
59
|
/** MV errors are related to missing values */
|
|
55
60
|
readonly MV_001: "[MV-001] \"contextId\" is required.";
|
|
56
61
|
readonly MV_002: "[MV-002] \"siteName\" is required.";
|
|
@@ -61,6 +66,11 @@ export declare const ERROR_MESSAGES: {
|
|
|
61
66
|
readonly MV_007: "[MV-007] Provide either \"contextId\" or both \"apiHost\" and \"apiKey\".";
|
|
62
67
|
readonly MV_008: "[MV-008] Verify that sitecore.config is properly imported and correctly referenced.";
|
|
63
68
|
readonly MV_009: "[MV-009] \"language\" is required.";
|
|
69
|
+
readonly MV_010: (modulePath: string) => string;
|
|
70
|
+
readonly MV_011: (modulePath: string) => string;
|
|
71
|
+
readonly MV_012: "[MV-012] Lock file not found. Run `sitecore-tools project atoms update` to generate it.";
|
|
72
|
+
readonly MV_013: (name: string) => string;
|
|
73
|
+
readonly MV_014: (name: string) => string;
|
|
64
74
|
/** Generic follow-up when the user should contact support */
|
|
65
75
|
readonly CONTACT_SUPPORT: "If the issue persists, please contact Sitecore Support.";
|
|
66
76
|
};
|
package/types/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,2CAA2C,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,kCAAkC,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAC;AAC5E;;;GAGG;AACH,eAAO,MAAM,8BAA8B,iCAAiC,CAAC;AAC7E;;;GAGG;AACH,eAAO,MAAM,8BAA8B,kDAAkD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,iFAAiF;;;;;;qCAOzD,MAAM;gCAEX,MAAM;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,2CAA2C,CAAC;AAE3F;;;;GAIG;AACH,eAAO,MAAM,oCAAoC,kCAAkC,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,MAAM,yCAAyC,CAAC;AAC7D;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAC;AAC5E;;;GAGG;AACH,eAAO,MAAM,8BAA8B,iCAAiC,CAAC;AAC7E;;;GAGG;AACH,eAAO,MAAM,8BAA8B,kDAAkD,CAAC;AAE9F;;;GAGG;AACH,eAAO,MAAM,cAAc;IACzB,iFAAiF;;;;;;qCAOzD,MAAM;gCAEX,MAAM;gCAEN,MAAM,eAAe,MAAM;4BAE/B,MAAM,YAAY,MAAM,eAAe,MAAM;4BAE7C,MAAM;IAErB,mDAAmD;kCAC9B,MAAM,cAAc,MAAM;;;kCAK1B,MAAM;;;gCAMR,MAAM;;;IAKzB,8CAA8C;;;;;gCAK3B,MAAM;;;;;kCAMJ,MAAM;kCAEN,MAAM;;4BAGZ,MAAM;4BAEN,MAAM;IAGrB,6DAA6D;;CAErD,CAAC"}
|
|
@@ -40,7 +40,7 @@ export type GraphQLRequestClientConfig = {
|
|
|
40
40
|
*/
|
|
41
41
|
debugger?: Debugger;
|
|
42
42
|
/**
|
|
43
|
-
* Override fetch method.
|
|
43
|
+
* Override fetch method. Uses 'graphql-request' library default otherwise ('cross-fetch').
|
|
44
44
|
*/
|
|
45
45
|
fetch?: typeof fetch;
|
|
46
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-request-client.d.ts","sourceRoot":"","sources":["../src/graphql-request-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAkB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGlF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,MAAM,GAAG,YAAY,EAC5B,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EACtC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,yBAAyB,CAAC;AAElF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,GAAG,WAAW,CAAC,KAC9D,oBAAoB,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,0BAA0B,CAAC;AAE/B;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAc5C,OAAO,CAAC,QAAQ;IAb5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAgB;IAErC;;;;OAIG;gBACiB,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,0BAA+B;
|
|
1
|
+
{"version":3,"file":"graphql-request-client.d.ts","sourceRoot":"","sources":["../src/graphql-request-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAkB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGlF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,OAAO,CAAC,CAAC,EACP,KAAK,EAAE,MAAM,GAAG,YAAY,EAC5B,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EACtC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,yBAAyB,CAAC;AAElF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,CAAC,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,GAAG,WAAW,CAAC,KAC9D,oBAAoB,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,iCAAiC,GAAG;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,0BAA0B,CAAC;AAE/B;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAc5C,OAAO,CAAC,QAAQ;IAb5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAgB;IAErC;;;;OAIG;gBACiB,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAE,0BAA+B;IAmCnF;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,EACzB,QAAQ,EACR,GAAG,aAAa,EACjB,EAAE,iCAAiC,GAAG,2BAA2B;IAKlE;;;;OAIG;IACG,OAAO,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,GAAG,YAAY,EAC5B,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EACtC,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC;CAoDd"}
|
package/types/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ export { NativeDataFetcher, NativeDataFetcherConfig, NativeDataFetcherError, Nat
|
|
|
8
8
|
export { RetryStrategy, GenericGraphQLClientError, FetchOptions } from './models';
|
|
9
9
|
export { constants };
|
|
10
10
|
export * from './initialization';
|
|
11
|
+
export { setAtomsCssCompiler, getAtomsCssCompiler, type AtomsCssCompiler, } from './atoms-css-compiler-registry';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,OAAO,IAAI,KAAK,EAChB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EACL,OAAO,IAAI,KAAK,EAChB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-edge-url.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-edge-url.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,oCAAoC,CAAC;AAErF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,sCAAsC,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"resolve-edge-url.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-edge-url.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,oCAAoC,CAAC;AAErF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,sCAAsC,CAAC;AAEzF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvD;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAQjD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD"}
|