@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,422 +1,424 @@
|
|
|
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.SitecoreClient = exports.ErrorPage = void 0;
|
|
7
|
-
const editing_1 = require("../editing");
|
|
8
|
-
const i18n_1 = require("../i18n");
|
|
9
|
-
const layout_1 = require("../layout");
|
|
10
|
-
const utils_1 = require("../personalize/utils");
|
|
11
|
-
const layout_personalizer_1 = require("../personalize/layout-personalizer");
|
|
12
|
-
const site_1 = require("../site");
|
|
13
|
-
const utils_2 = require("./utils");
|
|
14
|
-
const native_fetcher_1 = require("../native-fetcher");
|
|
15
|
-
const robots_service_1 = require("../site/robots-service");
|
|
16
|
-
const models_1 = require("../editing/models");
|
|
17
|
-
const debug_1 = __importDefault(require("../debug"));
|
|
18
|
-
/**
|
|
19
|
-
* Error page codes
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
ErrorPage["
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
(
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
-
this.
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* @param {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
*
|
|
82
|
-
* @param {
|
|
83
|
-
* @
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
*
|
|
117
|
-
* @param {
|
|
118
|
-
* @param {
|
|
119
|
-
* @
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
const contextId
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
*
|
|
140
|
-
* @
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
*
|
|
151
|
-
* @
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
*
|
|
162
|
-
* @
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
*
|
|
199
|
-
* @
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
*
|
|
229
|
-
* @param {
|
|
230
|
-
* @
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
*
|
|
265
|
-
* @param {
|
|
266
|
-
* @
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
*
|
|
275
|
-
* @
|
|
276
|
-
* @
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
const
|
|
282
|
-
//
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
//
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
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.SitecoreClient = exports.ErrorPage = void 0;
|
|
7
|
+
const editing_1 = require("../editing");
|
|
8
|
+
const i18n_1 = require("../i18n");
|
|
9
|
+
const layout_1 = require("../layout");
|
|
10
|
+
const utils_1 = require("../personalize/utils");
|
|
11
|
+
const layout_personalizer_1 = require("../personalize/layout-personalizer");
|
|
12
|
+
const site_1 = require("../site");
|
|
13
|
+
const utils_2 = require("./utils");
|
|
14
|
+
const native_fetcher_1 = require("../native-fetcher");
|
|
15
|
+
const robots_service_1 = require("../site/robots-service");
|
|
16
|
+
const models_1 = require("../editing/models");
|
|
17
|
+
const debug_1 = __importDefault(require("../debug"));
|
|
18
|
+
/**
|
|
19
|
+
* Error page codes
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
var ErrorPage;
|
|
23
|
+
(function (ErrorPage) {
|
|
24
|
+
ErrorPage["NotFound"] = "404";
|
|
25
|
+
ErrorPage["InternalServerError"] = "500";
|
|
26
|
+
})(ErrorPage || (exports.ErrorPage = ErrorPage = {}));
|
|
27
|
+
/**
|
|
28
|
+
* This is a generic content client that can be used by any framework.
|
|
29
|
+
* Use it to retrieve pages, preview data, dictionary and other data
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
class SitecoreClient {
|
|
33
|
+
/**
|
|
34
|
+
* Init SitecoreClient
|
|
35
|
+
* @param {SitecoreClientInit} initOptions initOptions for the client, containing site and Sitecore connection details
|
|
36
|
+
*/
|
|
37
|
+
constructor(initOptions) {
|
|
38
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
39
|
+
this.initOptions = initOptions;
|
|
40
|
+
this.clientFactory = this.getClientFactory();
|
|
41
|
+
this.graphQLClient = this.clientFactory({
|
|
42
|
+
debugger: debug_1.default.http,
|
|
43
|
+
});
|
|
44
|
+
const baseServiceOptions = this.getBaseServiceOptions();
|
|
45
|
+
this.layoutService =
|
|
46
|
+
(_b = (_a = initOptions.custom) === null || _a === void 0 ? void 0 : _a.layoutService) !== null && _b !== void 0 ? _b : this.getLayoutService(baseServiceOptions);
|
|
47
|
+
this.dictionaryService =
|
|
48
|
+
(_d = (_c = initOptions.custom) === null || _c === void 0 ? void 0 : _c.dictionaryService) !== null && _d !== void 0 ? _d : this.getDictionaryService(baseServiceOptions);
|
|
49
|
+
this.editingService = (_f = (_e = initOptions.custom) === null || _e === void 0 ? void 0 : _e.editingService) !== null && _f !== void 0 ? _f : this.getEditingService();
|
|
50
|
+
this.errorPagesService = (_h = (_g = initOptions.custom) === null || _g === void 0 ? void 0 : _g.errorPagesService) !== null && _h !== void 0 ? _h : this.getErrorPagesService();
|
|
51
|
+
this.sitePathService = (_k = (_j = initOptions.custom) === null || _j === void 0 ? void 0 : _j.sitePathService) !== null && _k !== void 0 ? _k : this.getSitePathService();
|
|
52
|
+
this.componentService = this.getComponentService();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Normalize path regardless of type
|
|
56
|
+
* @param {string | string[]} path string or string array path
|
|
57
|
+
* @returns {string} string path
|
|
58
|
+
*/
|
|
59
|
+
parsePath(path) {
|
|
60
|
+
// join array path, while clearing extra slashes and ensure first slash
|
|
61
|
+
return typeof path === 'string'
|
|
62
|
+
? path.startsWith('/')
|
|
63
|
+
? path
|
|
64
|
+
: `/${path}`
|
|
65
|
+
: `/${path
|
|
66
|
+
.filter((part) => part !== '/')
|
|
67
|
+
.map((part) => part.replace(/^\/+/, '').replace(/\/+$/, ''))
|
|
68
|
+
.join('/')}`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Execute a raw GraphQL request using the client's configured GraphQL Edge endpoint.
|
|
72
|
+
* This is a thin pass-through to the underlying {@link GraphQLClient.request},
|
|
73
|
+
* @param {string | DocumentNode} query GraphQL query
|
|
74
|
+
* @param {Record<string, unknown>} [variables] Optional variables bag
|
|
75
|
+
* @param {FetchOptions} [fetchOptions] Optional fetch overrides (e.g. fetch, headers)
|
|
76
|
+
*/
|
|
77
|
+
getData(query, variables, fetchOptions) {
|
|
78
|
+
return this.graphQLClient.request(query, variables, fetchOptions);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get page details for a route, with layout and other details
|
|
82
|
+
* @param {string} path route path
|
|
83
|
+
* @param {PageOptions} [pageOptions] site, language and personalization variant details for route
|
|
84
|
+
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
|
|
85
|
+
* @returns {Page | null} page details
|
|
86
|
+
*/
|
|
87
|
+
async getPage(path, pageOptions, fetchOptions) {
|
|
88
|
+
var _a, _b, _c, _d;
|
|
89
|
+
const computedPath = this.parsePath(path);
|
|
90
|
+
const locale = (_a = pageOptions === null || pageOptions === void 0 ? void 0 : pageOptions.locale) !== null && _a !== void 0 ? _a : this.initOptions.defaultLanguage;
|
|
91
|
+
const site = (_b = pageOptions === null || pageOptions === void 0 ? void 0 : pageOptions.site) !== null && _b !== void 0 ? _b : this.initOptions.defaultSite;
|
|
92
|
+
// Fetch layout data, passing on req/res for SSR
|
|
93
|
+
const layout = await this.layoutService.fetchLayoutData(computedPath, {
|
|
94
|
+
locale,
|
|
95
|
+
site,
|
|
96
|
+
}, fetchOptions);
|
|
97
|
+
if (!layout.sitecore.route) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Initialize links to be inserted on the page
|
|
102
|
+
if ((_c = pageOptions === null || pageOptions === void 0 ? void 0 : pageOptions.personalize) === null || _c === void 0 ? void 0 : _c.variantId) {
|
|
103
|
+
// Modify layoutData to use specific variant(s) instead of default
|
|
104
|
+
// This will also set the variantId on the Sitecore context so that it is accessible here
|
|
105
|
+
(0, layout_personalizer_1.personalizeLayout)(layout, pageOptions.personalize.variantId, pageOptions.personalize.componentVariantIds);
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
layout,
|
|
109
|
+
siteName: ((_d = layout.sitecore.context.site) === null || _d === void 0 ? void 0 : _d.name) || site,
|
|
110
|
+
locale,
|
|
111
|
+
mode: this.getPageMode(layout_1.LayoutServicePageState.Normal),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Retrieves the head `<link>` elements for Sitecore styles and themes.
|
|
117
|
+
* @param {LayoutServiceData} layoutData - The layout data containing styles and themes.
|
|
118
|
+
* @param {object} [options] - Optional configuration for enabling styles and themes.
|
|
119
|
+
* @param {boolean} [options.enableStyles] - Whether to include content styles.
|
|
120
|
+
* @param {boolean} [options.enableThemes] - Whether to include theme styles.
|
|
121
|
+
* @returns {HTMLLink[]} An array of `<link>` elements for stylesheets.
|
|
122
|
+
*/
|
|
123
|
+
getHeadLinks(layoutData, options = {}) {
|
|
124
|
+
const { enableStyles = true, enableThemes = true } = options;
|
|
125
|
+
const { contextId: serverContextId, clientContextId, edgeUrl } = this.initOptions.api.edge;
|
|
126
|
+
const headLinks = [];
|
|
127
|
+
const contextId = serverContextId || clientContextId;
|
|
128
|
+
if (enableStyles) {
|
|
129
|
+
const contentStyles = (0, layout_1.getContentStylesheetLink)(layoutData, contextId, edgeUrl);
|
|
130
|
+
if (contentStyles)
|
|
131
|
+
headLinks.push(contentStyles);
|
|
132
|
+
}
|
|
133
|
+
if (enableThemes) {
|
|
134
|
+
headLinks.push(...(0, layout_1.getDesignLibraryStylesheetLinks)(layoutData, contextId, edgeUrl));
|
|
135
|
+
}
|
|
136
|
+
return headLinks;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Retrieves dictionary phrases for a given site and locale.
|
|
140
|
+
* @param {RouteOptions} routeOptions - Route options containing language and site name to load dictionary for
|
|
141
|
+
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
|
|
142
|
+
* @returns {DictionaryPhrases} A promise that resolves to the dictionary phrases.
|
|
143
|
+
*/
|
|
144
|
+
async getDictionary(routeOptions, fetchOptions) {
|
|
145
|
+
const locale = (routeOptions === null || routeOptions === void 0 ? void 0 : routeOptions.locale) || this.initOptions.defaultLanguage;
|
|
146
|
+
const site = (routeOptions === null || routeOptions === void 0 ? void 0 : routeOptions.site) || this.initOptions.defaultSite;
|
|
147
|
+
return await this.dictionaryService.fetchDictionaryData(locale, site, fetchOptions);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Retrieves error pages for a given site and locale.
|
|
151
|
+
* @param {RouteOptions} routeOptions - Route options containing language and site name to load error pages
|
|
152
|
+
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
|
|
153
|
+
* @returns {ErrorPages | null} A promise that resolves to the error pages or null if not found.
|
|
154
|
+
*/
|
|
155
|
+
async getErrorPages(routeOptions, fetchOptions) {
|
|
156
|
+
const locale = (routeOptions === null || routeOptions === void 0 ? void 0 : routeOptions.locale) || this.initOptions.defaultLanguage;
|
|
157
|
+
const site = (routeOptions === null || routeOptions === void 0 ? void 0 : routeOptions.site) || this.initOptions.defaultSite;
|
|
158
|
+
return await this.errorPagesService.fetchErrorPages(site, locale, fetchOptions);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Retrieves preview page and layout details
|
|
162
|
+
* @param {EditingPreviewData | undefined} previewData - The editing preview data for metadata mode.
|
|
163
|
+
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
|
|
164
|
+
* @returns {Page} preview page details
|
|
165
|
+
*/
|
|
166
|
+
async getPreview(previewData, fetchOptions) {
|
|
167
|
+
var _a;
|
|
168
|
+
if (!previewData) {
|
|
169
|
+
console.error('Preview data missing');
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
// If we're in Pages preview (editing) mode, prefetch the editing data
|
|
173
|
+
const { site, itemId, language, version, layoutKind, mode } = previewData;
|
|
174
|
+
const variantIds = Array.isArray(previewData.variantIds)
|
|
175
|
+
? previewData.variantIds
|
|
176
|
+
: previewData.variantIds.split(',');
|
|
177
|
+
const data = await this.editingService.fetchEditingData({
|
|
178
|
+
itemId,
|
|
179
|
+
language,
|
|
180
|
+
version,
|
|
181
|
+
layoutKind,
|
|
182
|
+
mode,
|
|
183
|
+
}, fetchOptions);
|
|
184
|
+
if (!data) {
|
|
185
|
+
throw new Error(`Unable to fetch editing data for preview ${JSON.stringify(previewData)}`);
|
|
186
|
+
}
|
|
187
|
+
const page = {
|
|
188
|
+
locale: language,
|
|
189
|
+
layout: data.layoutData,
|
|
190
|
+
siteName: ((_a = data.layoutData.sitecore.context.site) === null || _a === void 0 ? void 0 : _a.name) || site,
|
|
191
|
+
mode: this.getPageMode(mode),
|
|
192
|
+
};
|
|
193
|
+
const personalizeData = (0, utils_1.getGroomedVariantIds)(variantIds);
|
|
194
|
+
(0, layout_personalizer_1.personalizeLayout)(page.layout, personalizeData.variantId, personalizeData.componentVariantIds);
|
|
195
|
+
return page;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get design library page details for Design Library mode of your app
|
|
199
|
+
* @param {DesignLibraryRenderPreviewData} designLibData preview data set in 'library' mode of the app
|
|
200
|
+
* @param {FetchOptions} [fetchOptions] Additional fetch fetch options to override GraphQL requests
|
|
201
|
+
* @returns {Page} preview page for Design Library
|
|
202
|
+
*/
|
|
203
|
+
async getDesignLibraryData(designLibData, fetchOptions) {
|
|
204
|
+
var _a;
|
|
205
|
+
if (!this.initOptions.api.local) {
|
|
206
|
+
throw new Error('Component Library requires Sitecore apiHost and apiKey to be provided');
|
|
207
|
+
}
|
|
208
|
+
const { itemId, componentUid, site, language, renderingId, dataSourceId, version, mode, generation, } = designLibData;
|
|
209
|
+
const componentData = await this.componentService.fetchComponentData(Object.assign({ siteName: site, itemId,
|
|
210
|
+
language,
|
|
211
|
+
componentUid,
|
|
212
|
+
renderingId,
|
|
213
|
+
dataSourceId,
|
|
214
|
+
version,
|
|
215
|
+
mode }, (generation ? { generation } : {})), fetchOptions);
|
|
216
|
+
if (!componentData) {
|
|
217
|
+
throw new Error(`Unable to fetch editing data for preview ${JSON.stringify(designLibData)}`);
|
|
218
|
+
}
|
|
219
|
+
const page = {
|
|
220
|
+
locale: designLibData.language,
|
|
221
|
+
layout: componentData,
|
|
222
|
+
siteName: ((_a = componentData.sitecore.context.site) === null || _a === void 0 ? void 0 : _a.name) || site,
|
|
223
|
+
mode: this.getPageMode(mode, generation),
|
|
224
|
+
};
|
|
225
|
+
return page;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get error page details for a given error code
|
|
229
|
+
* @param {ErrorPage} code - The error code to get the error page for
|
|
230
|
+
* @param {Partial<RouteOptions>} pageOptions - The page options to get the error page for
|
|
231
|
+
* @param {FetchOptions} [fetchOptions] - Additional fetch fetch options to override GraphQL requests
|
|
232
|
+
* @returns {Promise<Page | null>} A promise that resolves to the error page details or null if not found
|
|
233
|
+
*/
|
|
234
|
+
async getErrorPage(code, pageOptions, fetchOptions) {
|
|
235
|
+
var _a, _b;
|
|
236
|
+
const locale = (pageOptions === null || pageOptions === void 0 ? void 0 : pageOptions.locale) || this.initOptions.defaultLanguage;
|
|
237
|
+
const site = (pageOptions === null || pageOptions === void 0 ? void 0 : pageOptions.site) || this.initOptions.defaultSite;
|
|
238
|
+
const result = await this.getErrorPages({
|
|
239
|
+
site,
|
|
240
|
+
locale,
|
|
241
|
+
}, fetchOptions);
|
|
242
|
+
let layout = null;
|
|
243
|
+
switch (code) {
|
|
244
|
+
case ErrorPage.NotFound:
|
|
245
|
+
layout = ((_a = result === null || result === void 0 ? void 0 : result.notFoundPage) === null || _a === void 0 ? void 0 : _a.rendered) || null;
|
|
246
|
+
break;
|
|
247
|
+
case ErrorPage.InternalServerError:
|
|
248
|
+
layout = ((_b = result === null || result === void 0 ? void 0 : result.serverErrorPage) === null || _b === void 0 ? void 0 : _b.rendered) || null;
|
|
249
|
+
break;
|
|
250
|
+
default:
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
if (!layout) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
return {
|
|
257
|
+
layout,
|
|
258
|
+
locale,
|
|
259
|
+
mode: this.getPageMode(layout_1.LayoutServicePageState.Normal),
|
|
260
|
+
siteName: site,
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Retrieves the static paths for pages based on the given languages.
|
|
265
|
+
* @param {string[]} sites - An array of site names to fetch routes for.
|
|
266
|
+
* @param {string[]} [languages] - An optional array of language codes to generate paths for.
|
|
267
|
+
* @param {FetchOptions} [fetchOptions] - Additional fetch options.
|
|
268
|
+
* @returns {Promise<StaticPath[]>} A promise that resolves to an array of static paths.
|
|
269
|
+
*/
|
|
270
|
+
async getPagePaths(sites, languages, fetchOptions) {
|
|
271
|
+
return this.sitePathService.fetchSiteRoutes(sites, languages || [], fetchOptions);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Retrieves sitemap XML content - either a specific sitemap or the index of all sitemaps.
|
|
275
|
+
* @param {SitemapXmlOptions} reqOptions - Options for sitemap retrieval
|
|
276
|
+
* @param {FetchOptions} [fetchOptions] - Additional fetch options.
|
|
277
|
+
* @returns {Promise<string>} Promise resolving to the sitemap XML content as string
|
|
278
|
+
* @throws {Error} Throws 'REDIRECT_404' if requested sitemap is not found
|
|
279
|
+
*/
|
|
280
|
+
async getSiteMap(reqOptions, fetchOptions) {
|
|
281
|
+
const { reqHost, reqProtocol, id, siteName } = reqOptions;
|
|
282
|
+
// create sitemap graphql service
|
|
283
|
+
const sitemapXmlService = this.getGraphqlSitemapXMLService(siteName || this.initOptions.defaultSite);
|
|
284
|
+
// The id is present if url has sitemap-{n}.xml type.
|
|
285
|
+
// The id can be null if it's index sitemap.xml request
|
|
286
|
+
const sitemapPath = await sitemapXmlService.getSitemap(id);
|
|
287
|
+
// regular sitemap
|
|
288
|
+
if (sitemapPath) {
|
|
289
|
+
try {
|
|
290
|
+
const fetcher = new native_fetcher_1.NativeDataFetcher();
|
|
291
|
+
const xmlResponse = await fetcher.fetch(sitemapPath);
|
|
292
|
+
if (!xmlResponse.data) {
|
|
293
|
+
throw new Error('REDIRECT_404');
|
|
294
|
+
}
|
|
295
|
+
return xmlResponse.data;
|
|
296
|
+
// eslint-disable-next-line no-unused-vars
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
throw new Error('REDIRECT_404');
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
// index /sitemap.xml that includes links to all sitemaps
|
|
303
|
+
const sitemaps = await sitemapXmlService.fetchSitemaps(fetchOptions);
|
|
304
|
+
if (!sitemaps.length) {
|
|
305
|
+
throw new Error('REDIRECT_404');
|
|
306
|
+
}
|
|
305
307
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
306
308
|
<sitemapindex xmlns="http://sitemaps.org/schemas/sitemap/0.9">
|
|
307
|
-
${sitemaps
|
|
308
|
-
.map((item) => {
|
|
309
|
-
const parseUrl = item.split('/');
|
|
310
|
-
const lastSegment = parseUrl[parseUrl.length - 1];
|
|
311
|
-
const escapedUrl = `${reqProtocol}://${reqHost}/${lastSegment}`.replace(/&/g, '&');
|
|
312
|
-
return `<sitemap><loc>${escapedUrl}</loc></sitemap>`;
|
|
313
|
-
})
|
|
309
|
+
${sitemaps
|
|
310
|
+
.map((item) => {
|
|
311
|
+
const parseUrl = item.split('/');
|
|
312
|
+
const lastSegment = parseUrl[parseUrl.length - 1];
|
|
313
|
+
const escapedUrl = `${reqProtocol}://${reqHost}/${lastSegment}`.replace(/&/g, '&');
|
|
314
|
+
return `<sitemap><loc>${escapedUrl}</loc></sitemap>`;
|
|
315
|
+
})
|
|
314
316
|
.join('')}
|
|
315
|
-
</sitemapindex>`;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Retrieves the robots.txt content for a given site name.
|
|
319
|
-
* @param {string} siteName - The name of the site to retrieve the robots.txt for.
|
|
320
|
-
* @param {FetchOptions} [fetchOptions] - Optional fetch options.
|
|
321
|
-
* @returns {Promise<string | null>} A promise that resolves to the robots.txt content,
|
|
322
|
-
* or null if no content is found.
|
|
323
|
-
*/
|
|
324
|
-
async getRobots(siteName, fetchOptions) {
|
|
325
|
-
const robotsService = this.getRobotsService(siteName || this.initOptions.defaultSite);
|
|
326
|
-
const content = await robotsService.fetchRobots(fetchOptions);
|
|
327
|
-
return content || null;
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Factory methods for creating dependencies
|
|
331
|
-
* Subclasses can override these to provide custom implementations.
|
|
332
|
-
*/
|
|
333
|
-
getGraphqlSitemapXMLService(siteName) {
|
|
334
|
-
return new site_1.SitemapXmlService({
|
|
335
|
-
clientFactory: this.clientFactory,
|
|
336
|
-
siteName,
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
getRobotsService(siteName) {
|
|
340
|
-
return new robots_service_1.RobotsService({
|
|
341
|
-
clientFactory: this.clientFactory,
|
|
342
|
-
siteName,
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
getBaseServiceOptions() {
|
|
346
|
-
return {
|
|
347
|
-
defaultSite: this.initOptions.defaultSite,
|
|
348
|
-
clientFactory: this.clientFactory,
|
|
349
|
-
retries: this.initOptions.retries,
|
|
350
|
-
};
|
|
351
|
-
}
|
|
352
|
-
/**
|
|
353
|
-
* Get page mode based on mode name
|
|
354
|
-
* @param {PageModeName} mode - The mode name to get the page mode for
|
|
355
|
-
* @param { DesignLibraryVariantGeneration} generation - The variant generation mode, if applicable
|
|
356
|
-
* @returns {PageMode} The page mode
|
|
357
|
-
*/
|
|
358
|
-
getPageMode(mode, generation) {
|
|
359
|
-
const pageMode = {
|
|
360
|
-
name: mode,
|
|
361
|
-
isNormal: false,
|
|
362
|
-
isPreview: false,
|
|
363
|
-
isEditing: false,
|
|
364
|
-
isDesignLibrary: false,
|
|
365
|
-
designLibrary: { isVariantGeneration: false },
|
|
366
|
-
};
|
|
367
|
-
switch (mode) {
|
|
368
|
-
case layout_1.LayoutServicePageState.Normal:
|
|
369
|
-
pageMode.isNormal = true;
|
|
370
|
-
break;
|
|
371
|
-
case layout_1.LayoutServicePageState.Preview:
|
|
372
|
-
pageMode.isPreview = true;
|
|
373
|
-
break;
|
|
374
|
-
case layout_1.LayoutServicePageState.Edit:
|
|
375
|
-
pageMode.isEditing = true;
|
|
376
|
-
break;
|
|
377
|
-
case editing_1.DesignLibraryMode.Normal:
|
|
378
|
-
pageMode.isDesignLibrary = true;
|
|
379
|
-
break;
|
|
380
|
-
case editing_1.DesignLibraryMode.Metadata:
|
|
381
|
-
pageMode.isDesignLibrary = true;
|
|
382
|
-
pageMode.isEditing = true;
|
|
383
|
-
break;
|
|
384
|
-
default:
|
|
385
|
-
break;
|
|
386
|
-
}
|
|
387
|
-
if (pageMode.isDesignLibrary && generation === models_1.DesignLibraryVariantGeneration.Variant) {
|
|
388
|
-
pageMode.designLibrary.isVariantGeneration = true;
|
|
389
|
-
pageMode.isEditing = true;
|
|
390
|
-
}
|
|
391
|
-
return pageMode;
|
|
392
|
-
}
|
|
393
|
-
getClientFactory() {
|
|
394
|
-
const graphQLOptions = {
|
|
395
|
-
api: this.initOptions.api,
|
|
396
|
-
retries: this.initOptions.retries.count,
|
|
397
|
-
retryStrategy: this.initOptions.retries.retryStrategy,
|
|
398
|
-
};
|
|
399
|
-
return (0, utils_2.createGraphQLClientFactory)(graphQLOptions);
|
|
400
|
-
}
|
|
401
|
-
getLayoutService(baseOptions) {
|
|
402
|
-
return new layout_1.LayoutService(Object.assign(Object.assign({}, baseOptions), { formatLayoutQuery: this.initOptions.layout.formatLayoutQuery }));
|
|
403
|
-
}
|
|
404
|
-
getDictionaryService(baseOptions) {
|
|
405
|
-
return new i18n_1.DictionaryService(Object.assign(Object.assign({}, baseOptions), { cacheEnabled: this.initOptions.dictionary.caching.enabled, cacheTimeout: this.initOptions.dictionary.caching.timeout }));
|
|
406
|
-
}
|
|
407
|
-
getEditingService() {
|
|
408
|
-
return new editing_1.EditingService({ clientFactory: this.clientFactory });
|
|
409
|
-
}
|
|
410
|
-
getErrorPagesService() {
|
|
411
|
-
return new site_1.ErrorPagesService(Object.assign(Object.assign({}, this.initOptions), { language: this.initOptions.defaultLanguage, clientFactory: this.clientFactory }));
|
|
412
|
-
}
|
|
413
|
-
getComponentService() {
|
|
414
|
-
return new editing_1.ComponentLayoutService(this.initOptions.api.edge);
|
|
415
|
-
}
|
|
416
|
-
getSitePathService() {
|
|
417
|
-
return new site_1.SitePathService({
|
|
418
|
-
clientFactory: this.clientFactory,
|
|
419
|
-
});
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
exports.SitecoreClient = SitecoreClient;
|
|
317
|
+
</sitemapindex>`;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Retrieves the robots.txt content for a given site name.
|
|
321
|
+
* @param {string} siteName - The name of the site to retrieve the robots.txt for.
|
|
322
|
+
* @param {FetchOptions} [fetchOptions] - Optional fetch options.
|
|
323
|
+
* @returns {Promise<string | null>} A promise that resolves to the robots.txt content,
|
|
324
|
+
* or null if no content is found.
|
|
325
|
+
*/
|
|
326
|
+
async getRobots(siteName, fetchOptions) {
|
|
327
|
+
const robotsService = this.getRobotsService(siteName || this.initOptions.defaultSite);
|
|
328
|
+
const content = await robotsService.fetchRobots(fetchOptions);
|
|
329
|
+
return content || null;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Factory methods for creating dependencies
|
|
333
|
+
* Subclasses can override these to provide custom implementations.
|
|
334
|
+
*/
|
|
335
|
+
getGraphqlSitemapXMLService(siteName) {
|
|
336
|
+
return new site_1.SitemapXmlService({
|
|
337
|
+
clientFactory: this.clientFactory,
|
|
338
|
+
siteName,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
getRobotsService(siteName) {
|
|
342
|
+
return new robots_service_1.RobotsService({
|
|
343
|
+
clientFactory: this.clientFactory,
|
|
344
|
+
siteName,
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
getBaseServiceOptions() {
|
|
348
|
+
return {
|
|
349
|
+
defaultSite: this.initOptions.defaultSite,
|
|
350
|
+
clientFactory: this.clientFactory,
|
|
351
|
+
retries: this.initOptions.retries,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Get page mode based on mode name
|
|
356
|
+
* @param {PageModeName} mode - The mode name to get the page mode for
|
|
357
|
+
* @param { DesignLibraryVariantGeneration} generation - The variant generation mode, if applicable
|
|
358
|
+
* @returns {PageMode} The page mode
|
|
359
|
+
*/
|
|
360
|
+
getPageMode(mode, generation) {
|
|
361
|
+
const pageMode = {
|
|
362
|
+
name: mode,
|
|
363
|
+
isNormal: false,
|
|
364
|
+
isPreview: false,
|
|
365
|
+
isEditing: false,
|
|
366
|
+
isDesignLibrary: false,
|
|
367
|
+
designLibrary: { isVariantGeneration: false },
|
|
368
|
+
};
|
|
369
|
+
switch (mode) {
|
|
370
|
+
case layout_1.LayoutServicePageState.Normal:
|
|
371
|
+
pageMode.isNormal = true;
|
|
372
|
+
break;
|
|
373
|
+
case layout_1.LayoutServicePageState.Preview:
|
|
374
|
+
pageMode.isPreview = true;
|
|
375
|
+
break;
|
|
376
|
+
case layout_1.LayoutServicePageState.Edit:
|
|
377
|
+
pageMode.isEditing = true;
|
|
378
|
+
break;
|
|
379
|
+
case editing_1.DesignLibraryMode.Normal:
|
|
380
|
+
pageMode.isDesignLibrary = true;
|
|
381
|
+
break;
|
|
382
|
+
case editing_1.DesignLibraryMode.Metadata:
|
|
383
|
+
pageMode.isDesignLibrary = true;
|
|
384
|
+
pageMode.isEditing = true;
|
|
385
|
+
break;
|
|
386
|
+
default:
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
if (pageMode.isDesignLibrary && generation === models_1.DesignLibraryVariantGeneration.Variant) {
|
|
390
|
+
pageMode.designLibrary.isVariantGeneration = true;
|
|
391
|
+
pageMode.isEditing = true;
|
|
392
|
+
}
|
|
393
|
+
return pageMode;
|
|
394
|
+
}
|
|
395
|
+
getClientFactory() {
|
|
396
|
+
const graphQLOptions = {
|
|
397
|
+
api: this.initOptions.api,
|
|
398
|
+
retries: this.initOptions.retries.count,
|
|
399
|
+
retryStrategy: this.initOptions.retries.retryStrategy,
|
|
400
|
+
};
|
|
401
|
+
return (0, utils_2.createGraphQLClientFactory)(graphQLOptions);
|
|
402
|
+
}
|
|
403
|
+
getLayoutService(baseOptions) {
|
|
404
|
+
return new layout_1.LayoutService(Object.assign(Object.assign({}, baseOptions), { formatLayoutQuery: this.initOptions.layout.formatLayoutQuery }));
|
|
405
|
+
}
|
|
406
|
+
getDictionaryService(baseOptions) {
|
|
407
|
+
return new i18n_1.DictionaryService(Object.assign(Object.assign({}, baseOptions), { cacheEnabled: this.initOptions.dictionary.caching.enabled, cacheTimeout: this.initOptions.dictionary.caching.timeout }));
|
|
408
|
+
}
|
|
409
|
+
getEditingService() {
|
|
410
|
+
return new editing_1.EditingService({ clientFactory: this.clientFactory });
|
|
411
|
+
}
|
|
412
|
+
getErrorPagesService() {
|
|
413
|
+
return new site_1.ErrorPagesService(Object.assign(Object.assign({}, this.initOptions), { language: this.initOptions.defaultLanguage, clientFactory: this.clientFactory }));
|
|
414
|
+
}
|
|
415
|
+
getComponentService() {
|
|
416
|
+
return new editing_1.ComponentLayoutService(this.initOptions.api.edge);
|
|
417
|
+
}
|
|
418
|
+
getSitePathService() {
|
|
419
|
+
return new site_1.SitePathService({
|
|
420
|
+
clientFactory: this.clientFactory,
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
exports.SitecoreClient = SitecoreClient;
|