@sitecore-content-sdk/core 1.3.0-canary.9 → 1.4.0-canary.2
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/README.md +7 -7
- package/dist/cjs/cache-client.js +55 -54
- package/dist/cjs/client/constants.js +7 -7
- package/dist/cjs/client/edge-proxy.js +24 -22
- package/dist/cjs/client/index.js +15 -15
- package/dist/cjs/client/models.js +2 -2
- package/dist/cjs/client/sitecore-client.js +421 -419
- package/dist/cjs/client/utils.js +47 -46
- package/dist/cjs/config/define-config.js +194 -193
- package/dist/cjs/config/index.js +7 -7
- package/dist/cjs/config/models.js +12 -11
- package/dist/cjs/config-cli/define-cli-config.js +23 -22
- package/dist/cjs/config-cli/index.js +7 -7
- package/dist/cjs/config-cli/models.js +8 -7
- package/dist/cjs/constants.js +49 -17
- package/dist/cjs/debug.js +48 -46
- package/dist/cjs/editing/codegen/index.js +14 -9
- package/dist/cjs/editing/codegen/preview.js +277 -193
- package/dist/cjs/editing/component-layout-service.js +62 -61
- package/dist/cjs/editing/design-library.js +183 -126
- package/dist/cjs/editing/editing-service.js +75 -74
- package/dist/cjs/editing/index.js +33 -27
- package/dist/cjs/editing/metadata.js +42 -42
- package/dist/cjs/editing/models.js +44 -38
- package/dist/cjs/editing/utils.js +108 -90
- package/dist/cjs/form/form.js +81 -78
- package/dist/cjs/form/index.js +7 -7
- package/dist/cjs/graphql-request-client.js +108 -107
- package/dist/cjs/i18n/dictionary-service.js +122 -121
- package/dist/cjs/i18n/index.js +7 -7
- package/dist/cjs/i18n/utils.js +16 -15
- package/dist/cjs/index.js +60 -60
- package/dist/cjs/layout/content-styles.js +72 -71
- package/dist/cjs/layout/index.js +24 -24
- package/dist/cjs/layout/layout-service.js +62 -57
- package/dist/cjs/layout/models.js +39 -34
- package/dist/cjs/layout/themes.js +76 -75
- package/dist/cjs/layout/utils.js +117 -110
- package/dist/cjs/media/index.js +38 -38
- package/dist/cjs/media/media-api.js +100 -96
- package/dist/cjs/models.js +2 -2
- package/dist/cjs/native-fetcher.js +194 -179
- package/dist/cjs/personalize/index.js +15 -15
- package/dist/cjs/personalize/layout-personalizer.js +98 -97
- package/dist/cjs/personalize/personalize-service.js +98 -94
- package/dist/cjs/personalize/utils.js +143 -136
- package/dist/cjs/retries.js +43 -42
- package/dist/cjs/site/error-pages-service.js +65 -64
- package/dist/cjs/site/index.js +26 -26
- package/dist/cjs/site/models.js +2 -2
- package/dist/cjs/site/redirects-service.js +94 -81
- package/dist/cjs/site/robots-service.js +66 -65
- package/dist/cjs/site/site-resolver.js +73 -72
- package/dist/cjs/site/siteinfo-service.js +84 -80
- package/dist/cjs/site/sitemap-xml-service.js +84 -83
- package/dist/cjs/site/sitepath-service.js +165 -164
- package/dist/cjs/site/utils.js +55 -47
- package/dist/cjs/sitecore-service-base.js +36 -36
- package/dist/cjs/tools/auth/flow.js +65 -64
- package/dist/cjs/tools/auth/index.js +5 -5
- package/dist/cjs/tools/auth/models.js +2 -2
- package/dist/cjs/tools/auth/tenant-store.js +38 -38
- package/dist/cjs/tools/codegen/component-generation.js +52 -50
- package/dist/cjs/tools/codegen/extract-files.js +105 -107
- package/dist/cjs/tools/codegen/import-map.js +401 -349
- package/dist/cjs/tools/codegen/utils.js +418 -418
- package/dist/cjs/tools/generate-map.js +2 -2
- package/dist/cjs/tools/generateMetadata.js +36 -35
- package/dist/cjs/tools/generateSites.js +59 -58
- package/dist/cjs/tools/index.js +75 -73
- package/dist/cjs/tools/scaffold.js +60 -59
- package/dist/cjs/tools/templating/components.js +96 -266
- package/dist/cjs/tools/templating/index.js +11 -14
- package/dist/cjs/tools/templating/plugins.js +80 -78
- package/dist/cjs/tools/templating/utils.js +67 -66
- package/dist/cjs/utils/ensurePath.js +20 -20
- package/dist/cjs/utils/env.js +28 -27
- package/dist/cjs/utils/globalCache.js +55 -0
- package/dist/cjs/utils/index.js +26 -21
- package/dist/cjs/utils/is-server.js +11 -10
- package/dist/cjs/utils/normalize-url.js +5 -5
- package/dist/cjs/utils/timeout-promise.js +31 -31
- package/dist/cjs/utils/utils.js +254 -229
- package/dist/esm/cache-client.js +51 -50
- package/dist/esm/client/constants.js +4 -4
- package/dist/esm/client/edge-proxy.js +19 -17
- package/dist/esm/client/index.js +5 -5
- package/dist/esm/client/models.js +1 -1
- package/dist/esm/client/sitecore-client.js +414 -412
- package/dist/esm/client/utils.js +43 -42
- package/dist/esm/config/define-config.js +188 -187
- package/dist/esm/config/index.js +2 -2
- package/dist/esm/config/models.js +9 -8
- package/dist/esm/config-cli/define-cli-config.js +19 -18
- package/dist/esm/config-cli/index.js +2 -2
- package/dist/esm/config-cli/models.js +5 -4
- package/dist/esm/constants.js +46 -14
- package/dist/esm/debug.js +41 -39
- package/dist/esm/editing/codegen/index.js +1 -1
- package/dist/esm/editing/codegen/preview.js +263 -185
- package/dist/esm/editing/component-layout-service.js +55 -54
- package/dist/esm/editing/design-library.js +171 -117
- package/dist/esm/editing/editing-service.js +68 -67
- package/dist/esm/editing/index.js +6 -5
- package/dist/esm/editing/metadata.js +39 -39
- package/dist/esm/editing/models.js +41 -35
- package/dist/esm/editing/utils.js +98 -80
- package/dist/esm/form/form.js +72 -69
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/graphql-request-client.js +101 -100
- package/dist/esm/i18n/dictionary-service.js +115 -114
- package/dist/esm/i18n/index.js +2 -2
- package/dist/esm/i18n/utils.js +13 -12
- package/dist/esm/index.js +13 -13
- package/dist/esm/layout/content-styles.js +64 -63
- package/dist/esm/layout/index.js +6 -6
- package/dist/esm/layout/layout-service.js +55 -50
- package/dist/esm/layout/models.js +36 -31
- package/dist/esm/layout/themes.js +71 -70
- package/dist/esm/layout/utils.js +109 -102
- package/dist/esm/media/index.js +2 -2
- package/dist/esm/media/media-api.js +90 -86
- package/dist/esm/models.js +1 -1
- package/dist/esm/native-fetcher.js +187 -172
- package/dist/esm/personalize/index.js +3 -3
- package/dist/esm/personalize/layout-personalizer.js +93 -92
- package/dist/esm/personalize/personalize-service.js +91 -87
- package/dist/esm/personalize/utils.js +135 -128
- package/dist/esm/retries.js +39 -38
- package/dist/esm/site/error-pages-service.js +58 -57
- package/dist/esm/site/index.js +8 -8
- package/dist/esm/site/models.js +1 -1
- package/dist/esm/site/redirects-service.js +87 -74
- package/dist/esm/site/robots-service.js +59 -58
- package/dist/esm/site/site-resolver.js +69 -68
- package/dist/esm/site/siteinfo-service.js +77 -73
- package/dist/esm/site/sitemap-xml-service.js +77 -76
- package/dist/esm/site/sitepath-service.js +157 -156
- package/dist/esm/site/utils.js +49 -41
- package/dist/esm/sitecore-service-base.js +29 -29
- package/dist/esm/tools/auth/flow.js +62 -61
- package/dist/esm/tools/auth/index.js +1 -1
- package/dist/esm/tools/auth/models.js +1 -1
- package/dist/esm/tools/auth/tenant-store.js +35 -35
- package/dist/esm/tools/codegen/component-generation.js +44 -42
- package/dist/esm/tools/codegen/extract-files.js +99 -101
- package/dist/esm/tools/codegen/import-map.js +358 -306
- package/dist/esm/tools/codegen/utils.js +373 -373
- package/dist/esm/tools/generate-map.js +1 -1
- package/dist/esm/tools/generateMetadata.js +29 -28
- package/dist/esm/tools/generateSites.js +52 -51
- package/dist/esm/tools/index.js +28 -27
- package/dist/esm/tools/scaffold.js +52 -51
- package/dist/esm/tools/templating/components.js +59 -223
- package/dist/esm/tools/templating/index.js +3 -3
- package/dist/esm/tools/templating/plugins.js +72 -70
- package/dist/esm/tools/templating/utils.js +59 -58
- package/dist/esm/utils/ensurePath.js +13 -13
- package/dist/esm/utils/env.js +24 -23
- package/dist/esm/utils/globalCache.js +49 -0
- package/dist/esm/utils/index.js +4 -3
- package/dist/esm/utils/is-server.js +9 -8
- package/dist/esm/utils/normalize-url.js +1 -1
- package/dist/esm/utils/timeout-promise.js +28 -28
- package/dist/esm/utils/utils.js +238 -213
- package/package.json +73 -5
- package/types/cache-client.d.ts +68 -64
- package/types/cache-client.d.ts.map +1 -0
- package/types/client/constants.d.ts +5 -4
- package/types/client/constants.d.ts.map +1 -0
- package/types/client/edge-proxy.d.ts +18 -15
- package/types/client/edge-proxy.d.ts.map +1 -0
- package/types/client/index.d.ts +8 -7
- package/types/client/index.d.ts.map +1 -0
- package/types/client/models.d.ts +21 -19
- package/types/client/models.d.ts.map +1 -0
- package/types/client/sitecore-client.d.ts +338 -327
- package/types/client/sitecore-client.d.ts.map +1 -0
- package/types/client/utils.d.ts +15 -9
- package/types/client/utils.d.ts.map +1 -0
- package/types/config/define-config.d.ts +20 -18
- package/types/config/define-config.d.ts.map +1 -0
- package/types/config/index.d.ts +3 -2
- package/types/config/index.d.ts.map +1 -0
- package/types/config/models.d.ts +287 -268
- package/types/config/models.d.ts.map +1 -0
- package/types/config-cli/define-cli-config.d.ts +9 -7
- package/types/config-cli/define-cli-config.d.ts.map +1 -0
- package/types/config-cli/index.d.ts +3 -2
- package/types/config-cli/index.d.ts.map +1 -0
- package/types/config-cli/models.d.ts +6 -4
- package/types/config-cli/models.d.ts.map +1 -0
- package/types/constants.d.ts +44 -11
- package/types/constants.d.ts.map +1 -0
- package/types/debug.d.ts +35 -28
- package/types/debug.d.ts.map +1 -0
- package/types/editing/codegen/index.d.ts +2 -1
- package/types/editing/codegen/index.d.ts.map +1 -0
- package/types/editing/codegen/preview.d.ts +256 -195
- package/types/editing/codegen/preview.d.ts.map +1 -0
- package/types/editing/component-layout-service.d.ts +84 -80
- package/types/editing/component-layout-service.d.ts.map +1 -0
- package/types/editing/design-library.d.ts +111 -63
- package/types/editing/design-library.d.ts.map +1 -0
- package/types/editing/editing-service.d.ts +72 -62
- package/types/editing/editing-service.d.ts.map +1 -0
- package/types/editing/index.d.ts +7 -6
- package/types/editing/index.d.ts.map +1 -0
- package/types/editing/metadata.d.ts +8 -7
- package/types/editing/metadata.d.ts.map +1 -0
- package/types/editing/models.d.ts +103 -92
- package/types/editing/models.d.ts.map +1 -0
- package/types/editing/utils.d.ts +91 -74
- package/types/editing/utils.d.ts.map +1 -0
- package/types/form/form.d.ts +25 -21
- package/types/form/form.d.ts.map +1 -0
- package/types/form/index.d.ts +2 -1
- package/types/form/index.d.ts.map +1 -0
- package/types/graphql-request-client.d.ts +112 -105
- package/types/graphql-request-client.d.ts.map +1 -0
- package/types/i18n/dictionary-service.d.ts +135 -131
- package/types/i18n/dictionary-service.d.ts.map +1 -0
- package/types/i18n/index.d.ts +3 -2
- package/types/i18n/index.d.ts.map +1 -0
- package/types/i18n/utils.d.ts +9 -7
- package/types/i18n/utils.d.ts.map +1 -0
- package/types/index.d.ts +13 -12
- package/types/index.d.ts.map +1 -0
- package/types/layout/content-styles.d.ts +20 -18
- package/types/layout/content-styles.d.ts.map +1 -0
- package/types/layout/index.d.ts +6 -5
- package/types/layout/index.d.ts.map +1 -0
- package/types/layout/layout-service.d.ts +45 -35
- package/types/layout/layout-service.d.ts.map +1 -0
- package/types/layout/models.d.ts +174 -151
- package/types/layout/models.d.ts.map +1 -0
- package/types/layout/themes.d.ts +13 -11
- package/types/layout/themes.d.ts.map +1 -0
- package/types/layout/utils.d.ts +56 -41
- package/types/layout/utils.d.ts.map +1 -0
- package/types/media/index.d.ts +3 -2
- package/types/media/index.d.ts.map +1 -0
- package/types/media/media-api.d.ts +60 -55
- package/types/media/media-api.d.ts.map +1 -0
- package/types/models.d.ts +94 -84
- package/types/models.d.ts.map +1 -0
- package/types/native-fetcher.d.ts +124 -114
- package/types/native-fetcher.d.ts.map +1 -0
- package/types/personalize/index.d.ts +4 -3
- package/types/personalize/index.d.ts.map +1 -0
- package/types/personalize/layout-personalizer.d.ts +29 -27
- package/types/personalize/layout-personalizer.d.ts.map +1 -0
- package/types/personalize/personalize-service.d.ts +90 -80
- package/types/personalize/personalize-service.d.ts.map +1 -0
- package/types/personalize/utils.d.ts +78 -69
- package/types/personalize/utils.d.ts.map +1 -0
- package/types/retries.d.ts +26 -24
- package/types/retries.d.ts.map +1 -0
- package/types/site/error-pages-service.d.ts +64 -57
- package/types/site/error-pages-service.d.ts.map +1 -0
- package/types/site/index.d.ts +10 -9
- package/types/site/index.d.ts.map +1 -0
- package/types/site/models.d.ts +23 -18
- package/types/site/models.d.ts.map +1 -0
- package/types/site/redirects-service.d.ts +92 -69
- package/types/site/redirects-service.d.ts.map +1 -0
- package/types/site/robots-service.d.ts +57 -50
- package/types/site/robots-service.d.ts.map +1 -0
- package/types/site/site-resolver.d.ts +28 -26
- package/types/site/site-resolver.d.ts.map +1 -0
- package/types/site/siteinfo-service.d.ts +65 -52
- package/types/site/siteinfo-service.d.ts.map +1 -0
- package/types/site/sitemap-xml-service.d.ts +63 -56
- package/types/site/sitemap-xml-service.d.ts.map +1 -0
- package/types/site/sitepath-service.d.ts +137 -134
- package/types/site/sitepath-service.d.ts.map +1 -0
- package/types/site/utils.d.ts +41 -28
- package/types/site/utils.d.ts.map +1 -0
- package/types/sitecore-service-base.d.ts +31 -30
- package/types/sitecore-service-base.d.ts.map +1 -0
- package/types/tools/auth/flow.d.ts +29 -27
- package/types/tools/auth/flow.d.ts.map +1 -0
- package/types/tools/auth/index.d.ts +2 -1
- package/types/tools/auth/index.d.ts.map +1 -0
- package/types/tools/auth/models.d.ts +35 -33
- package/types/tools/auth/models.d.ts.map +1 -0
- package/types/tools/auth/tenant-store.d.ts +12 -11
- package/types/tools/auth/tenant-store.d.ts.map +1 -0
- package/types/tools/codegen/component-generation.d.ts +50 -47
- package/types/tools/codegen/component-generation.d.ts.map +1 -0
- package/types/tools/codegen/extract-files.d.ts +24 -22
- package/types/tools/codegen/extract-files.d.ts.map +1 -0
- package/types/tools/codegen/import-map.d.ts +103 -70
- package/types/tools/codegen/import-map.d.ts.map +1 -0
- package/types/tools/codegen/utils.d.ts +76 -75
- package/types/tools/codegen/utils.d.ts.map +1 -0
- package/types/tools/generate-map.d.ts +36 -26
- package/types/tools/generate-map.d.ts.map +1 -0
- package/types/tools/generateMetadata.d.ts +24 -22
- package/types/tools/generateMetadata.d.ts.map +1 -0
- package/types/tools/generateSites.d.ts +25 -22
- package/types/tools/generateSites.d.ts.map +1 -0
- package/types/tools/index.d.ts +22 -20
- package/types/tools/index.d.ts.map +1 -0
- package/types/tools/scaffold.d.ts +27 -25
- package/types/tools/scaffold.d.ts.map +1 -0
- package/types/tools/templating/components.d.ts +104 -103
- package/types/tools/templating/components.d.ts.map +1 -0
- package/types/tools/templating/index.d.ts +4 -3
- package/types/tools/templating/index.d.ts.map +1 -0
- package/types/tools/templating/plugins.d.ts +71 -67
- package/types/tools/templating/plugins.d.ts.map +1 -0
- package/types/tools/templating/utils.d.ts +42 -40
- package/types/tools/templating/utils.d.ts.map +1 -0
- package/types/utils/ensurePath.d.ts +7 -6
- package/types/utils/ensurePath.d.ts.map +1 -0
- package/types/utils/env.d.ts +9 -7
- package/types/utils/env.d.ts.map +1 -0
- package/types/utils/globalCache.d.ts +37 -0
- package/types/utils/globalCache.d.ts.map +1 -0
- package/types/utils/index.d.ts +5 -3
- package/types/utils/index.d.ts.map +1 -0
- package/types/utils/is-server.d.ts +8 -6
- package/types/utils/is-server.d.ts.map +1 -0
- package/types/utils/normalize-url.d.ts +2 -1
- package/types/utils/normalize-url.d.ts.map +1 -0
- package/types/utils/timeout-promise.d.ts +18 -17
- package/types/utils/timeout-promise.d.ts.map +1 -0
- package/types/utils/utils.d.ts +104 -79
- package/types/utils/utils.d.ts.map +1 -0
- package/client.js +0 -1
- package/codegen.js +0 -1
- package/config-cli.js +0 -1
- package/config.js +0 -1
- package/editing.js +0 -1
- package/i18n.js +0 -1
- package/layout.js +0 -1
- package/media.js +0 -1
- package/personalize.js +0 -1
- package/site.js +0 -1
- package/tools.js +0 -1
- package/utils.js +0 -1
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
-
import { CLAIMS } from './../../constants';
|
|
3
|
-
/**
|
|
4
|
-
* Decodes a JWT without verifying its signature.
|
|
5
|
-
* @param {string} token - The access token string.
|
|
6
|
-
* @returns Decoded payload object or null if invalid.
|
|
7
|
-
*/
|
|
8
|
-
export let decodeJwtPayload = _decodeJwtPayload;
|
|
9
|
-
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
10
|
-
// https://sinonjs.org/how-to/typescript-swc/
|
|
11
|
-
// This, plus the `_` names make the exports writable for sinon
|
|
12
|
-
export const unitMocks = {
|
|
13
|
-
set decodeJwtPayload(mockImplementation) {
|
|
14
|
-
decodeJwtPayload = mockImplementation;
|
|
15
|
-
},
|
|
16
|
-
get decodeJwtPayload() {
|
|
17
|
-
return _decodeJwtPayload;
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
function _decodeJwtPayload(token) {
|
|
21
|
-
try {
|
|
22
|
-
const base64Payload = token.split('.')[1];
|
|
23
|
-
const payload = Buffer.from(base64Payload, 'base64').toString('utf-8');
|
|
24
|
-
const decoded = JSON.parse(payload);
|
|
25
|
-
return {
|
|
26
|
-
tokenTenantId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_id`],
|
|
27
|
-
tokenOrgId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/org_id`],
|
|
28
|
-
tokenTenantName: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_name`],
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
console.error('\n Failed to decode access token:', error.message);
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
1
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
+
import { CLAIMS } from './../../constants';
|
|
3
|
+
/**
|
|
4
|
+
* Decodes a JWT without verifying its signature.
|
|
5
|
+
* @param {string} token - The access token string.
|
|
6
|
+
* @returns Decoded payload object or null if invalid.
|
|
7
|
+
*/
|
|
8
|
+
export let decodeJwtPayload = _decodeJwtPayload;
|
|
9
|
+
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
10
|
+
// https://sinonjs.org/how-to/typescript-swc/
|
|
11
|
+
// This, plus the `_` names make the exports writable for sinon
|
|
12
|
+
export const unitMocks = {
|
|
13
|
+
set decodeJwtPayload(mockImplementation) {
|
|
14
|
+
decodeJwtPayload = mockImplementation;
|
|
15
|
+
},
|
|
16
|
+
get decodeJwtPayload() {
|
|
17
|
+
return _decodeJwtPayload;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
function _decodeJwtPayload(token) {
|
|
21
|
+
try {
|
|
22
|
+
const base64Payload = token.split('.')[1];
|
|
23
|
+
const payload = Buffer.from(base64Payload, 'base64').toString('utf-8');
|
|
24
|
+
const decoded = JSON.parse(payload);
|
|
25
|
+
return {
|
|
26
|
+
tokenTenantId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_id`],
|
|
27
|
+
tokenOrgId: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/org_id`],
|
|
28
|
+
tokenTenantName: decoded === null || decoded === void 0 ? void 0 : decoded[`${CLAIMS}/tenant_name`],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error('\n Failed to decode access token:', error.message);
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1,42 +1,44 @@
|
|
|
1
|
-
import { SITECORE_EDGE_URL_DEFAULT } from '../../constants';
|
|
2
|
-
import debug from './../../debug';
|
|
3
|
-
/**
|
|
4
|
-
* Gets the component spec url.
|
|
5
|
-
* @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
|
|
6
|
-
* @returns {string} The component spec url.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
* @
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
1
|
+
import { SITECORE_EDGE_URL_DEFAULT } from '../../constants';
|
|
2
|
+
import debug from './../../debug';
|
|
3
|
+
/**
|
|
4
|
+
* Gets the component spec url.
|
|
5
|
+
* @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
|
|
6
|
+
* @returns {string} The component spec url.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export const getComponentSpecUrl = ({ componentId, edgeUrl = SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
|
|
10
|
+
let url = `${edgeUrl}/authoring/api/v1/components/generated/${componentId}?token=${token}`;
|
|
11
|
+
if (targetPath) {
|
|
12
|
+
url += `&targetPath=${encodeURIComponent(targetPath)}`;
|
|
13
|
+
}
|
|
14
|
+
return url;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Fetches the component spec.
|
|
18
|
+
* @param {GetComponentSpecParams} params - The parameters for fetching the component spec.
|
|
19
|
+
* @returns {Promise<ComponentSpec>} The component spec.
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export const getComponentSpec = async ({ componentId, edgeUrl = SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
|
|
23
|
+
const url = getComponentSpecUrl({ componentId, edgeUrl, targetPath, token });
|
|
24
|
+
debug.common('Fetching component spec for %s: %s', componentId, url);
|
|
25
|
+
try {
|
|
26
|
+
const response = await fetch(url);
|
|
27
|
+
if (response.status === 404) {
|
|
28
|
+
throw new Error(`Component '${componentId}' was not found. Please verify the component ID is correct and exists.`);
|
|
29
|
+
}
|
|
30
|
+
if (response.status === 401) {
|
|
31
|
+
throw new Error('The token is incorrect or expired or the component ID is incorrect.');
|
|
32
|
+
}
|
|
33
|
+
if (!response.ok) {
|
|
34
|
+
throw new Error(`Failed to fetch component ${componentId}`);
|
|
35
|
+
}
|
|
36
|
+
const spec = await response.json();
|
|
37
|
+
debug.common('Component spec fetched successfully for %s: %o', componentId, spec);
|
|
38
|
+
return spec;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
debug.common('Failed to fetch component spec: %s', String(error));
|
|
42
|
+
throw error;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
@@ -1,101 +1,99 @@
|
|
|
1
|
-
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { ExtractedFileType, resolveComponentImportFiles, sendCode, validateDeployContext, readNamedExports, } from './utils';
|
|
4
|
-
import { auth } from '../../tools';
|
|
5
|
-
import debug from './../../debug';
|
|
6
|
-
import path from 'path';
|
|
7
|
-
import fs from 'fs';
|
|
8
|
-
/**
|
|
9
|
-
* Extracts components from the app folder and sends them to XMCloud.
|
|
10
|
-
* @param {ExtractFilesConfig} args - Config for components extraction
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
};
|
|
101
|
-
}
|
|
1
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { ExtractedFileType, resolveComponentImportFiles, sendCode, validateDeployContext, readNamedExports, } from './utils';
|
|
4
|
+
import { auth } from '../../tools';
|
|
5
|
+
import debug from './../../debug';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
/**
|
|
9
|
+
* Extracts components from the app folder and sends them to XMCloud.
|
|
10
|
+
* @param {ExtractFilesConfig} args - Config for components extraction
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export let extractFiles = _extractFiles;
|
|
14
|
+
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
15
|
+
// https://sinonjs.org/how-to/typescript-swc/
|
|
16
|
+
// This, plus the `_` names make the exports writable for sinon
|
|
17
|
+
export const unitMocks = {
|
|
18
|
+
set extractFiles(mockImplementation) {
|
|
19
|
+
extractFiles = mockImplementation;
|
|
20
|
+
},
|
|
21
|
+
get extractFiles() {
|
|
22
|
+
return _extractFiles;
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
function _extractFiles(args = {}) {
|
|
26
|
+
const authParams = {
|
|
27
|
+
clientId: process.env.SITECORE_AUTH_CLIENT_ID || '',
|
|
28
|
+
clientSecret: process.env.SITECORE_AUTH_CLIENT_SECRET || '',
|
|
29
|
+
authority: process.env.SITECORE_AUTH_AUTHORITY,
|
|
30
|
+
audience: process.env.SITECORE_AUTH_AUDIENCE,
|
|
31
|
+
};
|
|
32
|
+
const renderingHost = process.env.SITECORE_RENDERINGHOST_NAME;
|
|
33
|
+
return async ({ scConfig } = {}) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const config = (_a = args.scConfig) !== null && _a !== void 0 ? _a : scConfig;
|
|
36
|
+
if (!config) {
|
|
37
|
+
throw new Error('Sitecore configuration is required to be provided');
|
|
38
|
+
}
|
|
39
|
+
if ((args.customValidateDeployContext && !args.customValidateDeployContext()) ||
|
|
40
|
+
!validateDeployContext()) {
|
|
41
|
+
debug.common('Skipping code extraction, not in deploy context');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (config.disableCodeGeneration) {
|
|
45
|
+
debug.common('Skipping code extraction, code generation has been disabled');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(chalk.green('Code extraction started'));
|
|
49
|
+
const basePath = process.cwd();
|
|
50
|
+
try {
|
|
51
|
+
// Use Edge Platform mesh endpoint - staging is ready, prod QA in progress
|
|
52
|
+
const targetUrl = config.api.edge.edgeUrl;
|
|
53
|
+
const { accessToken } = await auth.clientCredentialsFlow(authParams);
|
|
54
|
+
if (!accessToken) {
|
|
55
|
+
console.error(chalk.red('Failed to get access token, aborting code extraction'));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Resolve files from component-map
|
|
59
|
+
const resolvedImports = await resolveComponentImportFiles(basePath, args.componentMapPath);
|
|
60
|
+
const clientComponentMapPath = args.clientComponentMapPath || '.sitecore/component-map.client.ts';
|
|
61
|
+
const absClientMapPath = path.isAbsolute(clientComponentMapPath)
|
|
62
|
+
? clientComponentMapPath
|
|
63
|
+
: path.resolve(basePath, clientComponentMapPath);
|
|
64
|
+
const exists = fs.existsSync(absClientMapPath);
|
|
65
|
+
if (exists) {
|
|
66
|
+
resolvedImports.push(...(await resolveComponentImportFiles(basePath, absClientMapPath)));
|
|
67
|
+
}
|
|
68
|
+
const fileDispatches = [];
|
|
69
|
+
for (const { componentKey, filePath, fileType } of resolvedImports) {
|
|
70
|
+
let extraLabels;
|
|
71
|
+
// return an array of export names (e.g., ['Default','Cooler'])
|
|
72
|
+
const variantNames = readNamedExports(filePath);
|
|
73
|
+
extraLabels = Object.assign(Object.assign({}, (variantNames.length ? { variantNames } : {})), (renderingHost ? { renderingHost } : {}));
|
|
74
|
+
fileDispatches.push(sendCode({
|
|
75
|
+
file: {
|
|
76
|
+
labels: extraLabels,
|
|
77
|
+
name: componentKey,
|
|
78
|
+
path: filePath,
|
|
79
|
+
type: fileType,
|
|
80
|
+
},
|
|
81
|
+
targetUrl,
|
|
82
|
+
token: accessToken,
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
fileDispatches.push(sendCode({
|
|
86
|
+
file: Object.assign(Object.assign({}, (renderingHost ? { labels: { renderingHost } } : {})), { name: 'package.json', path: path.resolve(basePath, './package.json'), type: ExtractedFileType.PackageJson }),
|
|
87
|
+
targetUrl,
|
|
88
|
+
token: accessToken,
|
|
89
|
+
}));
|
|
90
|
+
const files = await Promise.all(fileDispatches);
|
|
91
|
+
console.log(chalk.green(`Code extraction completed successfully, files extracted:\r\n${files
|
|
92
|
+
.filter((file) => file !== null)
|
|
93
|
+
.join('\r\n')}`));
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.warn(chalk.yellow('Error during code extraction:', error, error.stack));
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|