@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,64 +1,65 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.unitMocks = exports.clientCredentialsFlow = void 0;
|
|
4
|
-
const tenant_store_1 = require("./tenant-store");
|
|
5
|
-
const constants_1 = require("../../constants");
|
|
6
|
-
const GRANT_TYPE = 'client_credentials';
|
|
7
|
-
/**
|
|
8
|
-
* Performs the OAuth 2.0 client credentials flow to obtain a JWT access token
|
|
9
|
-
* from the Sitecore Identity Provider using the provided client credentials.
|
|
10
|
-
* @param {object} [args] - The arguments for client credentials flow
|
|
11
|
-
* @param {string} [args.clientId] - The client ID registered with Sitecore Identity
|
|
12
|
-
* @param {string} [args.clientSecret] - The client secret associated with the client ID
|
|
13
|
-
* @param {string} [args.organizationId] - The ID of the organization the client belongs to
|
|
14
|
-
* @param {string} [args.tenantId] - The tenant ID representing the specific Sitecore environment
|
|
15
|
-
* @param {string} [args.audience] - The API audience the token is intended for. Defaults to `constants.DEFAULT_SITECORE_AUTH_AUDIENCE`
|
|
16
|
-
* @param {string} [args.authority] - The auth server base URL. Defaults to `constants.DEFAULT_SITECORE_AUTH_DOMAIN`
|
|
17
|
-
* @param {string} [args.baseUrl] - The base URL for the API, used to construct the audience. Defaults to `constants.DEFAULT_SITECORE_AUTH_BASE_URL`
|
|
18
|
-
* @returns A Promise that resolves to the access token response (including access token, token type, expiry, etc.)
|
|
19
|
-
* @throws Will log and exit the process if the request fails or returns a non-OK status
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
exports
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unitMocks = exports.clientCredentialsFlow = void 0;
|
|
4
|
+
const tenant_store_1 = require("./tenant-store");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
const GRANT_TYPE = 'client_credentials';
|
|
7
|
+
/**
|
|
8
|
+
* Performs the OAuth 2.0 client credentials flow to obtain a JWT access token
|
|
9
|
+
* from the Sitecore Identity Provider using the provided client credentials.
|
|
10
|
+
* @param {object} [args] - The arguments for client credentials flow
|
|
11
|
+
* @param {string} [args.clientId] - The client ID registered with Sitecore Identity
|
|
12
|
+
* @param {string} [args.clientSecret] - The client secret associated with the client ID
|
|
13
|
+
* @param {string} [args.organizationId] - The ID of the organization the client belongs to
|
|
14
|
+
* @param {string} [args.tenantId] - The tenant ID representing the specific Sitecore environment
|
|
15
|
+
* @param {string} [args.audience] - The API audience the token is intended for. Defaults to `constants.DEFAULT_SITECORE_AUTH_AUDIENCE`
|
|
16
|
+
* @param {string} [args.authority] - The auth server base URL. Defaults to `constants.DEFAULT_SITECORE_AUTH_DOMAIN`
|
|
17
|
+
* @param {string} [args.baseUrl] - The base URL for the API, used to construct the audience. Defaults to `constants.DEFAULT_SITECORE_AUTH_BASE_URL`
|
|
18
|
+
* @returns A Promise that resolves to the access token response (including access token, token type, expiry, etc.)
|
|
19
|
+
* @throws Will log and exit the process if the request fails or returns a non-OK status
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
exports.clientCredentialsFlow = _clientCredentialsFlow;
|
|
23
|
+
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
24
|
+
// https://sinonjs.org/how-to/typescript-swc/
|
|
25
|
+
// This, plus the `_` names make the exports writable for sinon
|
|
26
|
+
exports.unitMocks = {
|
|
27
|
+
set clientCredentialsFlow(mockImplementation) {
|
|
28
|
+
exports.clientCredentialsFlow = mockImplementation;
|
|
29
|
+
},
|
|
30
|
+
get clientCredentialsFlow() {
|
|
31
|
+
return _clientCredentialsFlow;
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
async function _clientCredentialsFlow({ clientId, clientSecret, organizationId, tenantId, audience = constants_1.DEFAULT_SITECORE_AUTH_AUDIENCE, authority = constants_1.DEFAULT_SITECORE_AUTH_DOMAIN, baseUrl = constants_1.DEFAULT_SITECORE_AUTH_BASE_URL, }) {
|
|
35
|
+
const params = new URLSearchParams({
|
|
36
|
+
client_id: clientId,
|
|
37
|
+
client_secret: clientSecret !== null && clientSecret !== void 0 ? clientSecret : '',
|
|
38
|
+
organization_id: organizationId !== null && organizationId !== void 0 ? organizationId : '',
|
|
39
|
+
tenant_id: tenantId !== null && tenantId !== void 0 ? tenantId : '',
|
|
40
|
+
audience,
|
|
41
|
+
grant_type: GRANT_TYPE,
|
|
42
|
+
baseUrl: baseUrl !== null && baseUrl !== void 0 ? baseUrl : '',
|
|
43
|
+
});
|
|
44
|
+
const response = await fetch(`${authority}/oauth/token`, {
|
|
45
|
+
method: 'POST',
|
|
46
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
47
|
+
body: params.toString(),
|
|
48
|
+
});
|
|
49
|
+
const data = await response.json();
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
throw new Error(data.error_description || data.error || 'Error during client credentials flow');
|
|
52
|
+
}
|
|
53
|
+
const decodedPayload = (0, tenant_store_1.decodeJwtPayload)(data.access_token) || {};
|
|
54
|
+
if (!(decodedPayload === null || decodedPayload === void 0 ? void 0 : decodedPayload.tokenTenantId) || !decodedPayload.tokenOrgId) {
|
|
55
|
+
throw new Error('\n Token is missing required claims tenant_id or org_id.');
|
|
56
|
+
}
|
|
57
|
+
const { tokenTenantId, tokenOrgId, tokenTenantName } = decodedPayload;
|
|
58
|
+
if (tenantId && tenantId !== tokenTenantId) {
|
|
59
|
+
throw new Error('\n Mismatch: Provided tenant ID does not match claims tenant ID.');
|
|
60
|
+
}
|
|
61
|
+
if (organizationId && organizationId !== tokenOrgId) {
|
|
62
|
+
throw new Error('\n Mismatch: Provided organization ID does not match claims organization ID.');
|
|
63
|
+
}
|
|
64
|
+
return { data, tokenOrgId, tokenTenantId, tokenTenantName, accessToken: data.access_token };
|
|
65
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clientCredentialsFlow = void 0;
|
|
4
|
-
var flow_1 = require("./flow");
|
|
5
|
-
Object.defineProperty(exports, "clientCredentialsFlow", { enumerable: true, get: function () { return flow_1.clientCredentialsFlow; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clientCredentialsFlow = void 0;
|
|
4
|
+
var flow_1 = require("./flow");
|
|
5
|
+
Object.defineProperty(exports, "clientCredentialsFlow", { enumerable: true, get: function () { return flow_1.clientCredentialsFlow; } });
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable jsdoc/require-jsdoc */
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.unitMocks = exports.decodeJwtPayload = void 0;
|
|
5
|
-
const constants_1 = require("./../../constants");
|
|
6
|
-
/**
|
|
7
|
-
* Decodes a JWT without verifying its signature.
|
|
8
|
-
* @param {string} token - The access token string.
|
|
9
|
-
* @returns Decoded payload object or null if invalid.
|
|
10
|
-
*/
|
|
11
|
-
exports.decodeJwtPayload = _decodeJwtPayload;
|
|
12
|
-
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
13
|
-
// https://sinonjs.org/how-to/typescript-swc/
|
|
14
|
-
// This, plus the `_` names make the exports writable for sinon
|
|
15
|
-
exports.unitMocks = {
|
|
16
|
-
set decodeJwtPayload(mockImplementation) {
|
|
17
|
-
exports.decodeJwtPayload = mockImplementation;
|
|
18
|
-
},
|
|
19
|
-
get decodeJwtPayload() {
|
|
20
|
-
return _decodeJwtPayload;
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
function _decodeJwtPayload(token) {
|
|
24
|
-
try {
|
|
25
|
-
const base64Payload = token.split('.')[1];
|
|
26
|
-
const payload = Buffer.from(base64Payload, 'base64').toString('utf-8');
|
|
27
|
-
const decoded = JSON.parse(payload);
|
|
28
|
-
return {
|
|
29
|
-
tokenTenantId: decoded === null || decoded === void 0 ? void 0 : decoded[`${constants_1.CLAIMS}/tenant_id`],
|
|
30
|
-
tokenOrgId: decoded === null || decoded === void 0 ? void 0 : decoded[`${constants_1.CLAIMS}/org_id`],
|
|
31
|
-
tokenTenantName: decoded === null || decoded === void 0 ? void 0 : decoded[`${constants_1.CLAIMS}/tenant_name`],
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
console.error('\n Failed to decode access token:', error.message);
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.unitMocks = exports.decodeJwtPayload = void 0;
|
|
5
|
+
const constants_1 = require("./../../constants");
|
|
6
|
+
/**
|
|
7
|
+
* Decodes a JWT without verifying its signature.
|
|
8
|
+
* @param {string} token - The access token string.
|
|
9
|
+
* @returns Decoded payload object or null if invalid.
|
|
10
|
+
*/
|
|
11
|
+
exports.decodeJwtPayload = _decodeJwtPayload;
|
|
12
|
+
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
13
|
+
// https://sinonjs.org/how-to/typescript-swc/
|
|
14
|
+
// This, plus the `_` names make the exports writable for sinon
|
|
15
|
+
exports.unitMocks = {
|
|
16
|
+
set decodeJwtPayload(mockImplementation) {
|
|
17
|
+
exports.decodeJwtPayload = mockImplementation;
|
|
18
|
+
},
|
|
19
|
+
get decodeJwtPayload() {
|
|
20
|
+
return _decodeJwtPayload;
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
function _decodeJwtPayload(token) {
|
|
24
|
+
try {
|
|
25
|
+
const base64Payload = token.split('.')[1];
|
|
26
|
+
const payload = Buffer.from(base64Payload, 'base64').toString('utf-8');
|
|
27
|
+
const decoded = JSON.parse(payload);
|
|
28
|
+
return {
|
|
29
|
+
tokenTenantId: decoded === null || decoded === void 0 ? void 0 : decoded[`${constants_1.CLAIMS}/tenant_id`],
|
|
30
|
+
tokenOrgId: decoded === null || decoded === void 0 ? void 0 : decoded[`${constants_1.CLAIMS}/org_id`],
|
|
31
|
+
tokenTenantName: decoded === null || decoded === void 0 ? void 0 : decoded[`${constants_1.CLAIMS}/tenant_name`],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error('\n Failed to decode access token:', error.message);
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1,50 +1,52 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getComponentSpec = exports.getComponentSpecUrl = void 0;
|
|
7
|
-
const constants_1 = require("../../constants");
|
|
8
|
-
const debug_1 = __importDefault(require("./../../debug"));
|
|
9
|
-
/**
|
|
10
|
-
* Gets the component spec url.
|
|
11
|
-
* @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
|
|
12
|
-
* @returns {string} The component spec url.
|
|
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
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getComponentSpec = exports.getComponentSpecUrl = void 0;
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
8
|
+
const debug_1 = __importDefault(require("./../../debug"));
|
|
9
|
+
/**
|
|
10
|
+
* Gets the component spec url.
|
|
11
|
+
* @param {GetComponentSpecParams} params - The parameters for getting the component spec url.
|
|
12
|
+
* @returns {string} The component spec url.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
const getComponentSpecUrl = ({ componentId, edgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
|
|
16
|
+
let url = `${edgeUrl}/authoring/api/v1/components/generated/${componentId}?token=${token}`;
|
|
17
|
+
if (targetPath) {
|
|
18
|
+
url += `&targetPath=${encodeURIComponent(targetPath)}`;
|
|
19
|
+
}
|
|
20
|
+
return url;
|
|
21
|
+
};
|
|
22
|
+
exports.getComponentSpecUrl = getComponentSpecUrl;
|
|
23
|
+
/**
|
|
24
|
+
* Fetches the component spec.
|
|
25
|
+
* @param {GetComponentSpecParams} params - The parameters for fetching the component spec.
|
|
26
|
+
* @returns {Promise<ComponentSpec>} The component spec.
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
const getComponentSpec = async ({ componentId, edgeUrl = constants_1.SITECORE_EDGE_URL_DEFAULT, targetPath, token, }) => {
|
|
30
|
+
const url = (0, exports.getComponentSpecUrl)({ componentId, edgeUrl, targetPath, token });
|
|
31
|
+
debug_1.default.common('Fetching component spec for %s: %s', componentId, url);
|
|
32
|
+
try {
|
|
33
|
+
const response = await fetch(url);
|
|
34
|
+
if (response.status === 404) {
|
|
35
|
+
throw new Error(`Component '${componentId}' was not found. Please verify the component ID is correct and exists.`);
|
|
36
|
+
}
|
|
37
|
+
if (response.status === 401) {
|
|
38
|
+
throw new Error('The token is incorrect or expired or the component ID is incorrect.');
|
|
39
|
+
}
|
|
40
|
+
if (!response.ok) {
|
|
41
|
+
throw new Error(`Failed to fetch component ${componentId}`);
|
|
42
|
+
}
|
|
43
|
+
const spec = await response.json();
|
|
44
|
+
debug_1.default.common('Component spec fetched successfully for %s: %o', componentId, spec);
|
|
45
|
+
return spec;
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
debug_1.default.common('Failed to fetch component spec: %s', String(error));
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.getComponentSpec = getComponentSpec;
|
|
@@ -1,107 +1,105 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.unitMocks = exports.extractFiles = void 0;
|
|
7
|
-
/* eslint-disable jsdoc/require-jsdoc */
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const utils_1 = require("./utils");
|
|
10
|
-
const tools_1 = require("../../tools");
|
|
11
|
-
const debug_1 = __importDefault(require("./../../debug"));
|
|
12
|
-
const path_1 = __importDefault(require("path"));
|
|
13
|
-
const fs_1 = __importDefault(require("fs"));
|
|
14
|
-
/**
|
|
15
|
-
* Extracts components from the app folder and sends them to XMCloud.
|
|
16
|
-
* @param {ExtractFilesConfig} args - Config for components extraction
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
exports
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
};
|
|
107
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.unitMocks = exports.extractFiles = void 0;
|
|
7
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
const tools_1 = require("../../tools");
|
|
11
|
+
const debug_1 = __importDefault(require("./../../debug"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
/**
|
|
15
|
+
* Extracts components from the app folder and sends them to XMCloud.
|
|
16
|
+
* @param {ExtractFilesConfig} args - Config for components extraction
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
exports.extractFiles = _extractFiles;
|
|
20
|
+
// mock setup for unit tests to make sinon happy and mock-able with esbuild/tsx
|
|
21
|
+
// https://sinonjs.org/how-to/typescript-swc/
|
|
22
|
+
// This, plus the `_` names make the exports writable for sinon
|
|
23
|
+
exports.unitMocks = {
|
|
24
|
+
set extractFiles(mockImplementation) {
|
|
25
|
+
exports.extractFiles = mockImplementation;
|
|
26
|
+
},
|
|
27
|
+
get extractFiles() {
|
|
28
|
+
return _extractFiles;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
function _extractFiles(args = {}) {
|
|
32
|
+
const authParams = {
|
|
33
|
+
clientId: process.env.SITECORE_AUTH_CLIENT_ID || '',
|
|
34
|
+
clientSecret: process.env.SITECORE_AUTH_CLIENT_SECRET || '',
|
|
35
|
+
authority: process.env.SITECORE_AUTH_AUTHORITY,
|
|
36
|
+
audience: process.env.SITECORE_AUTH_AUDIENCE,
|
|
37
|
+
};
|
|
38
|
+
const renderingHost = process.env.SITECORE_RENDERINGHOST_NAME;
|
|
39
|
+
return async ({ scConfig } = {}) => {
|
|
40
|
+
var _a;
|
|
41
|
+
const config = (_a = args.scConfig) !== null && _a !== void 0 ? _a : scConfig;
|
|
42
|
+
if (!config) {
|
|
43
|
+
throw new Error('Sitecore configuration is required to be provided');
|
|
44
|
+
}
|
|
45
|
+
if ((args.customValidateDeployContext && !args.customValidateDeployContext()) ||
|
|
46
|
+
!(0, utils_1.validateDeployContext)()) {
|
|
47
|
+
debug_1.default.common('Skipping code extraction, not in deploy context');
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (config.disableCodeGeneration) {
|
|
51
|
+
debug_1.default.common('Skipping code extraction, code generation has been disabled');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
console.log(chalk_1.default.green('Code extraction started'));
|
|
55
|
+
const basePath = process.cwd();
|
|
56
|
+
try {
|
|
57
|
+
// Use Edge Platform mesh endpoint - staging is ready, prod QA in progress
|
|
58
|
+
const targetUrl = config.api.edge.edgeUrl;
|
|
59
|
+
const { accessToken } = await tools_1.auth.clientCredentialsFlow(authParams);
|
|
60
|
+
if (!accessToken) {
|
|
61
|
+
console.error(chalk_1.default.red('Failed to get access token, aborting code extraction'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Resolve files from component-map
|
|
65
|
+
const resolvedImports = await (0, utils_1.resolveComponentImportFiles)(basePath, args.componentMapPath);
|
|
66
|
+
const clientComponentMapPath = args.clientComponentMapPath || '.sitecore/component-map.client.ts';
|
|
67
|
+
const absClientMapPath = path_1.default.isAbsolute(clientComponentMapPath)
|
|
68
|
+
? clientComponentMapPath
|
|
69
|
+
: path_1.default.resolve(basePath, clientComponentMapPath);
|
|
70
|
+
const exists = fs_1.default.existsSync(absClientMapPath);
|
|
71
|
+
if (exists) {
|
|
72
|
+
resolvedImports.push(...(await (0, utils_1.resolveComponentImportFiles)(basePath, absClientMapPath)));
|
|
73
|
+
}
|
|
74
|
+
const fileDispatches = [];
|
|
75
|
+
for (const { componentKey, filePath, fileType } of resolvedImports) {
|
|
76
|
+
let extraLabels;
|
|
77
|
+
// return an array of export names (e.g., ['Default','Cooler'])
|
|
78
|
+
const variantNames = (0, utils_1.readNamedExports)(filePath);
|
|
79
|
+
extraLabels = Object.assign(Object.assign({}, (variantNames.length ? { variantNames } : {})), (renderingHost ? { renderingHost } : {}));
|
|
80
|
+
fileDispatches.push((0, utils_1.sendCode)({
|
|
81
|
+
file: {
|
|
82
|
+
labels: extraLabels,
|
|
83
|
+
name: componentKey,
|
|
84
|
+
path: filePath,
|
|
85
|
+
type: fileType,
|
|
86
|
+
},
|
|
87
|
+
targetUrl,
|
|
88
|
+
token: accessToken,
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
fileDispatches.push((0, utils_1.sendCode)({
|
|
92
|
+
file: Object.assign(Object.assign({}, (renderingHost ? { labels: { renderingHost } } : {})), { name: 'package.json', path: path_1.default.resolve(basePath, './package.json'), type: utils_1.ExtractedFileType.PackageJson }),
|
|
93
|
+
targetUrl,
|
|
94
|
+
token: accessToken,
|
|
95
|
+
}));
|
|
96
|
+
const files = await Promise.all(fileDispatches);
|
|
97
|
+
console.log(chalk_1.default.green(`Code extraction completed successfully, files extracted:\r\n${files
|
|
98
|
+
.filter((file) => file !== null)
|
|
99
|
+
.join('\r\n')}`));
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.warn(chalk_1.default.yellow('Error during code extraction:', error, error.stack));
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
}
|