@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,172 +1,187 @@
|
|
|
1
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
-
var t = {};
|
|
3
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
-
t[p] = s[p];
|
|
5
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
-
t[p[i]] = s[p[i]];
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
};
|
|
12
|
-
import debuggers from './debug';
|
|
13
|
-
import TimeoutPromise from './utils/timeout-promise';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
const
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Perform a
|
|
75
|
-
* @param {string} url The URL to request (may include query string)
|
|
76
|
-
* @param {
|
|
77
|
-
* @
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
*
|
|
85
|
-
* @param {
|
|
86
|
-
* @param {RequestInit} [options] Fetch options
|
|
87
|
-
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
88
|
-
*/
|
|
89
|
-
async
|
|
90
|
-
return this.fetch(url, Object.assign({ method: '
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Perform a
|
|
94
|
-
* @param {string} url The URL to request (may include query string)
|
|
95
|
-
* @param {
|
|
96
|
-
* @
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
*
|
|
104
|
-
* @param {
|
|
105
|
-
* @param {RequestInit} [options] Fetch options
|
|
106
|
-
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
107
|
-
*/
|
|
108
|
-
|
|
109
|
-
return this.fetch(url, Object.assign({ method: '
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
*
|
|
113
|
-
* @param {
|
|
114
|
-
* @
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import debuggers from './debug';
|
|
13
|
+
import TimeoutPromise from './utils/timeout-promise';
|
|
14
|
+
/**
|
|
15
|
+
* Native data fetcher class
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export class NativeDataFetcher {
|
|
19
|
+
constructor(config = {}) {
|
|
20
|
+
this.config = config;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Implements a data fetcher.
|
|
24
|
+
* @param {string} url The URL to request (may include query string)
|
|
25
|
+
* @param {RequestInit} [options] Optional fetch options
|
|
26
|
+
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
27
|
+
*/
|
|
28
|
+
async fetch(url, options = {}) {
|
|
29
|
+
var _a;
|
|
30
|
+
const _b = this.config, { debugger: debugOverride, fetch: fetchOverride } = _b, init = __rest(_b, ["debugger", "fetch"]);
|
|
31
|
+
const startTimestamp = Date.now();
|
|
32
|
+
const fetchImpl = fetchOverride || fetch;
|
|
33
|
+
const debug = debugOverride || debuggers.http;
|
|
34
|
+
const requestInit = this.getRequestInit(Object.assign(Object.assign({}, init), options));
|
|
35
|
+
const fetchWithOptionalTimeout = [fetchImpl(url, requestInit)];
|
|
36
|
+
if (init.timeout) {
|
|
37
|
+
this.abortTimeout = new TimeoutPromise(init.timeout);
|
|
38
|
+
fetchWithOptionalTimeout.push(this.abortTimeout.start);
|
|
39
|
+
}
|
|
40
|
+
debug('Request initiated: %o', Object.assign({ url, headers: this.extractDebugHeaders(requestInit.headers) }, requestInit));
|
|
41
|
+
try {
|
|
42
|
+
const response = await Promise.race(fetchWithOptionalTimeout).then((res) => {
|
|
43
|
+
var _a;
|
|
44
|
+
(_a = this.abortTimeout) === null || _a === void 0 ? void 0 : _a.clear();
|
|
45
|
+
return res;
|
|
46
|
+
});
|
|
47
|
+
const respData = await this.parseResponse(response, debug);
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
const error = this.createError(response, respData);
|
|
50
|
+
debug('Response error: %o', error.response);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
debug('Response in %dms: %o', Date.now() - startTimestamp, {
|
|
54
|
+
status: response.status,
|
|
55
|
+
statusText: response.statusText,
|
|
56
|
+
headers: this.extractDebugHeaders(response.headers),
|
|
57
|
+
url: response.url,
|
|
58
|
+
data: respData,
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
data: respData,
|
|
62
|
+
headers: response.headers,
|
|
63
|
+
status: response.status,
|
|
64
|
+
statusText: response.statusText,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
(_a = this.abortTimeout) === null || _a === void 0 ? void 0 : _a.clear();
|
|
69
|
+
debug('Request failed: %o', error);
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Perform a GET request
|
|
75
|
+
* @param {string} url The URL to request (may include query string)
|
|
76
|
+
* @param {RequestInit} [options] Fetch options
|
|
77
|
+
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
78
|
+
*/
|
|
79
|
+
async get(url, options = {}) {
|
|
80
|
+
return this.fetch(url, Object.assign({ method: 'GET' }, options));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Perform a POST request
|
|
84
|
+
* @param {string} url The URL to request (may include query string)
|
|
85
|
+
* @param {unknown} body The data to send with the request
|
|
86
|
+
* @param {RequestInit} [options] Fetch options
|
|
87
|
+
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
88
|
+
*/
|
|
89
|
+
async post(url, body, options = {}) {
|
|
90
|
+
return this.fetch(url, Object.assign({ method: 'POST', body: JSON.stringify(body) }, options));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Perform a DELETE request
|
|
94
|
+
* @param {string} url The URL to request (may include query string)
|
|
95
|
+
* @param {RequestInit} [options] Fetch options
|
|
96
|
+
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
97
|
+
*/
|
|
98
|
+
async delete(url, options = {}) {
|
|
99
|
+
return this.fetch(url, Object.assign({ method: 'DELETE' }, options));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Perform a PUT request
|
|
103
|
+
* @param {string} url The URL to request (may include query string)
|
|
104
|
+
* @param {unknown} body The data to send with the request
|
|
105
|
+
* @param {RequestInit} [options] Fetch options
|
|
106
|
+
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
107
|
+
*/
|
|
108
|
+
async put(url, body, options = {}) {
|
|
109
|
+
return this.fetch(url, Object.assign({ method: 'PUT', body: JSON.stringify(body) }, options));
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Perform a HEAD request
|
|
113
|
+
* @param {string} url The URL to request (may include query string)
|
|
114
|
+
* @param {RequestInit} [options] Fetch options
|
|
115
|
+
* @returns {Promise<NativeDataFetcherResponse<T>>} response
|
|
116
|
+
*/
|
|
117
|
+
head(url, options = {}) {
|
|
118
|
+
return this.fetch(url, Object.assign({ method: 'HEAD' }, options));
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Determines settings for the request
|
|
122
|
+
* @param {RequestInit} init Custom settings for request
|
|
123
|
+
* @returns {RequestInit} The final request settings
|
|
124
|
+
*/
|
|
125
|
+
getRequestInit(init = {}) {
|
|
126
|
+
const headers = new Headers(init.headers);
|
|
127
|
+
if (!init.method) {
|
|
128
|
+
init.method = init.body ? 'POST' : 'GET';
|
|
129
|
+
}
|
|
130
|
+
headers.set('Content-Type', 'application/json');
|
|
131
|
+
init.headers = headers;
|
|
132
|
+
return init;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Safely extract all headers for debug logging
|
|
136
|
+
* @param {HeadersInit} incomingHeaders Incoming headers
|
|
137
|
+
* @returns Object with headers as key/value pairs
|
|
138
|
+
*/
|
|
139
|
+
extractDebugHeaders(incomingHeaders = {}) {
|
|
140
|
+
const headers = {};
|
|
141
|
+
if (typeof (incomingHeaders === null || incomingHeaders === void 0 ? void 0 : incomingHeaders.forEach) !== 'string' && incomingHeaders.forEach) {
|
|
142
|
+
incomingHeaders === null || incomingHeaders === void 0 ? void 0 : incomingHeaders.forEach((value, key) => {
|
|
143
|
+
headers[key] = value;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return headers;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Parses the response data.
|
|
150
|
+
* @param {Response} response - The fetch response object.
|
|
151
|
+
* @param {Function} debug - The debug logger function.
|
|
152
|
+
* @returns {Promise<unknown>} - The parsed response data.
|
|
153
|
+
*/
|
|
154
|
+
async parseResponse(response, debug) {
|
|
155
|
+
const contentType = response.headers.get('Content-Type') || '';
|
|
156
|
+
try {
|
|
157
|
+
if (contentType.includes('application/json')) {
|
|
158
|
+
return await response.json();
|
|
159
|
+
}
|
|
160
|
+
return await response.text();
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
debug('Response parsing error: %o', error);
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Creates a custom error for fetch failures.
|
|
169
|
+
* @param {Response} response - The fetch response object.
|
|
170
|
+
* @param {unknown} data - The parsed response data.
|
|
171
|
+
* @returns {NativeDataFetcherError} - The constructed error object.
|
|
172
|
+
*/
|
|
173
|
+
createError(response, data) {
|
|
174
|
+
const error = new Error(`HTTP ${response.status}${response.statusText ? ` ${response.statusText}` : ''}`);
|
|
175
|
+
return {
|
|
176
|
+
name: error.name,
|
|
177
|
+
message: error.message,
|
|
178
|
+
stack: error.stack,
|
|
179
|
+
response: {
|
|
180
|
+
status: response.status,
|
|
181
|
+
statusText: response.statusText,
|
|
182
|
+
headers: this.extractDebugHeaders(response.headers),
|
|
183
|
+
data,
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { personalizeLayout } from './layout-personalizer';
|
|
2
|
-
export { PersonalizeService, } from './personalize-service';
|
|
3
|
-
export { getPersonalizedRewrite, getPersonalizedRewriteData, getGroomedVariantIds, normalizePersonalizedRewrite, CdpHelper, DEFAULT_VARIANT, VARIANT_PREFIX, } from './utils';
|
|
1
|
+
export { personalizeLayout } from './layout-personalizer';
|
|
2
|
+
export { PersonalizeService, } from './personalize-service';
|
|
3
|
+
export { getPersonalizedRewrite, getPersonalizedRewriteData, getGroomedVariantIds, normalizePersonalizedRewrite, CdpHelper, DEFAULT_VARIANT, VARIANT_PREFIX, } from './utils';
|
|
@@ -1,92 +1,93 @@
|
|
|
1
|
-
import { HIDDEN_RENDERING_NAME } from '../constants';
|
|
2
|
-
const transformToHiddenRenderingVariant = (component) => (Object.assign(Object.assign({}, component), { componentName: HIDDEN_RENDERING_NAME, experiences: {} }));
|
|
3
|
-
/**
|
|
4
|
-
* Apply personalization to layout data. This will recursively go through all placeholders/components, check experiences nodes and replace default with object from specific experience.
|
|
5
|
-
* @param {LayoutServiceData} layout Layout data
|
|
6
|
-
* @param {string} variantId variant id
|
|
7
|
-
* @param {string[]} [componentVariantIds] component variant ids
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* @param {
|
|
28
|
-
* @param {
|
|
29
|
-
* @
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
* @param {
|
|
51
|
-
* @param {
|
|
52
|
-
* @
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
1
|
+
import { HIDDEN_RENDERING_NAME } from '../constants';
|
|
2
|
+
const transformToHiddenRenderingVariant = (component) => (Object.assign(Object.assign({}, component), { componentName: HIDDEN_RENDERING_NAME, experiences: {} }));
|
|
3
|
+
/**
|
|
4
|
+
* Apply personalization to layout data. This will recursively go through all placeholders/components, check experiences nodes and replace default with object from specific experience.
|
|
5
|
+
* @param {LayoutServiceData} layout Layout data
|
|
6
|
+
* @param {string} variantId variant id
|
|
7
|
+
* @param {string[]} [componentVariantIds] component variant ids
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export function personalizeLayout(layout, variantId, componentVariantIds) {
|
|
11
|
+
var _a;
|
|
12
|
+
// Add (page-level) variantId to Sitecore context so that it is accessible here
|
|
13
|
+
layout.sitecore.context.variantId = variantId;
|
|
14
|
+
const placeholders = ((_a = layout.sitecore.route) === null || _a === void 0 ? void 0 : _a.placeholders) || {};
|
|
15
|
+
if (Object.keys(placeholders).length === 0) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const isEditing = layout.sitecore.context.pageEditing;
|
|
19
|
+
if (placeholders) {
|
|
20
|
+
Object.keys(placeholders).forEach((placeholder) => {
|
|
21
|
+
placeholders[placeholder] = personalizePlaceholder(placeholders[placeholder], [variantId, ...(componentVariantIds || [])], isEditing);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return placeholders;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @param {Array} components components within placeholder
|
|
28
|
+
* @param {string[]} variantIds variant ids
|
|
29
|
+
* @param {boolean} isEditing indicates if page is rendered in metadata edit mode
|
|
30
|
+
* @returns {ComponentRendering[]} components with personalization applied
|
|
31
|
+
*/
|
|
32
|
+
export function personalizePlaceholder(components, variantIds, isEditing) {
|
|
33
|
+
return components
|
|
34
|
+
.map((component) => {
|
|
35
|
+
const rendering = component;
|
|
36
|
+
if (rendering.experiences !== undefined) {
|
|
37
|
+
return personalizeComponent(rendering, variantIds, isEditing);
|
|
38
|
+
}
|
|
39
|
+
else if (rendering.placeholders) {
|
|
40
|
+
const placeholders = rendering.placeholders;
|
|
41
|
+
Object.keys(placeholders).forEach((placeholder) => {
|
|
42
|
+
placeholders[placeholder] = personalizePlaceholder(placeholders[placeholder], variantIds, isEditing);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return component;
|
|
46
|
+
})
|
|
47
|
+
.filter(Boolean);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @param {ComponentRenderingWithExperiences} component component with experiences
|
|
51
|
+
* @param {string[]} variantIds variant ids
|
|
52
|
+
* @param {boolean} isEditing indicates if page is rendered in metadata edit mode
|
|
53
|
+
* @returns {ComponentRendering | null} component with personalization applied or null if hidden
|
|
54
|
+
*/
|
|
55
|
+
export function personalizeComponent(component, variantIds, isEditing) {
|
|
56
|
+
// Check if we have a page/component experience matching any of the variants (there should be at most 1)
|
|
57
|
+
const match = Object.keys(component.experiences).find((variantId) => variantIds.includes(variantId));
|
|
58
|
+
const variant = match && component.experiences[match];
|
|
59
|
+
// variant and componentName can be undefined or null
|
|
60
|
+
if (!variant && !component.componentName) {
|
|
61
|
+
// DEFAULT IS HIDDEN
|
|
62
|
+
if (isEditing) {
|
|
63
|
+
component = transformToHiddenRenderingVariant(component);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (variant && variant.componentName === null && variant.dataSource === null) {
|
|
70
|
+
// VARIANT IS HIDDEN
|
|
71
|
+
if (isEditing) {
|
|
72
|
+
component = transformToHiddenRenderingVariant(component);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else if (variant) {
|
|
79
|
+
component = variant;
|
|
80
|
+
}
|
|
81
|
+
// remove unused experiences from layout data
|
|
82
|
+
if (component.experiences) {
|
|
83
|
+
component.experiences = {};
|
|
84
|
+
}
|
|
85
|
+
if (!component.placeholders)
|
|
86
|
+
return component;
|
|
87
|
+
Object.keys(component === null || component === void 0 ? void 0 : component.placeholders).forEach((placeholder) => {
|
|
88
|
+
if (component.placeholders) {
|
|
89
|
+
component.placeholders[placeholder] = personalizePlaceholder(component.placeholders[placeholder], variantIds);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
return component;
|
|
93
|
+
}
|