@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,100 +1,101 @@
|
|
|
1
|
-
import { GraphQLClient as Client } from 'graphql-request';
|
|
2
|
-
import parse from 'url-parse';
|
|
3
|
-
import debuggers from './debug';
|
|
4
|
-
import TimeoutPromise from './utils/timeout-promise';
|
|
5
|
-
import { DefaultRetryStrategy } from './retries';
|
|
6
|
-
/**
|
|
7
|
-
* A GraphQL client for Sitecore APIs that uses the 'graphql-request' library.
|
|
8
|
-
* https://github.com/prisma-labs/graphql-request
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* @param {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
* @param {
|
|
44
|
-
* @param {string}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
*
|
|
52
|
-
* @param {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
this.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
attempt
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
1
|
+
import { GraphQLClient as Client } from 'graphql-request';
|
|
2
|
+
import parse from 'url-parse';
|
|
3
|
+
import debuggers from './debug';
|
|
4
|
+
import TimeoutPromise from './utils/timeout-promise';
|
|
5
|
+
import { DefaultRetryStrategy } from './retries';
|
|
6
|
+
/**
|
|
7
|
+
* A GraphQL client for Sitecore APIs that uses the 'graphql-request' library.
|
|
8
|
+
* https://github.com/prisma-labs/graphql-request
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export class GraphQLRequestClient {
|
|
12
|
+
/**
|
|
13
|
+
* Provides ability to execute graphql query using given `endpoint`
|
|
14
|
+
* @param {string} endpoint The Graphql endpoint
|
|
15
|
+
* @param {GraphQLRequestClientConfig} [clientConfig] GraphQL request client configuration.
|
|
16
|
+
*/
|
|
17
|
+
constructor(endpoint, clientConfig = {}) {
|
|
18
|
+
var _a;
|
|
19
|
+
this.endpoint = endpoint;
|
|
20
|
+
this.headers = {};
|
|
21
|
+
if (clientConfig.apiKey) {
|
|
22
|
+
this.headers.sc_apikey = clientConfig.apiKey;
|
|
23
|
+
}
|
|
24
|
+
if (clientConfig.headers) {
|
|
25
|
+
this.headers = Object.assign(Object.assign({}, this.headers), clientConfig.headers);
|
|
26
|
+
}
|
|
27
|
+
if (!endpoint || !parse(endpoint).hostname) {
|
|
28
|
+
throw new Error(`Invalid GraphQL endpoint '${endpoint}'. Verify that appropriate environment variable is set`);
|
|
29
|
+
}
|
|
30
|
+
this.timeout = clientConfig.timeout;
|
|
31
|
+
this.retries = (_a = clientConfig.retries) !== null && _a !== void 0 ? _a : 3;
|
|
32
|
+
this.retryStrategy =
|
|
33
|
+
clientConfig.retryStrategy ||
|
|
34
|
+
new DefaultRetryStrategy({ statusCodes: [429, 502, 503, 504, 520, 521, 522, 523, 524] });
|
|
35
|
+
this.client = new Client(endpoint, {
|
|
36
|
+
headers: this.headers,
|
|
37
|
+
fetch: clientConfig.fetch,
|
|
38
|
+
});
|
|
39
|
+
this.debug = clientConfig.debugger || debuggers.http;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Factory method for creating a GraphQLRequestClientFactory.
|
|
43
|
+
* @param {object} config - client configuration options.
|
|
44
|
+
* @param {string} config.endpoint - endpoint
|
|
45
|
+
* @param {string} [config.apiKey] - apikey
|
|
46
|
+
*/
|
|
47
|
+
static createClientFactory({ endpoint, apiKey, }) {
|
|
48
|
+
return (config = {}) => new GraphQLRequestClient(endpoint, Object.assign(Object.assign({}, config), { apiKey }));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Execute graphql request
|
|
52
|
+
* @param {string | DocumentNode} query graphql query
|
|
53
|
+
* @param {RequestOptions} [options] Options for configuring a GraphQL request.
|
|
54
|
+
*/
|
|
55
|
+
async request(query, variables, options) {
|
|
56
|
+
let attempt = 1;
|
|
57
|
+
const retryer = async () => {
|
|
58
|
+
const retries = (options === null || options === void 0 ? void 0 : options.retries) || this.retries;
|
|
59
|
+
const retryStrategy = (options === null || options === void 0 ? void 0 : options.retryStrategy) || this.retryStrategy;
|
|
60
|
+
const debug = (options === null || options === void 0 ? void 0 : options.debugger) || this.debug;
|
|
61
|
+
// Note we don't have access to raw request/response with graphql-request
|
|
62
|
+
// but we should log whatever we have.
|
|
63
|
+
debug('request: %o', {
|
|
64
|
+
url: this.endpoint,
|
|
65
|
+
headers: Object.assign(Object.assign({}, this.headers), options === null || options === void 0 ? void 0 : options.headers),
|
|
66
|
+
query,
|
|
67
|
+
variables,
|
|
68
|
+
timeout: this.timeout,
|
|
69
|
+
});
|
|
70
|
+
const startTimestamp = Date.now();
|
|
71
|
+
const headers = Object.assign(Object.assign({}, this.headers), options === null || options === void 0 ? void 0 : options.headers);
|
|
72
|
+
const fetchWithOptionalTimeout = [this.client.request(query, variables, headers)];
|
|
73
|
+
if (this.timeout) {
|
|
74
|
+
this.abortTimeout = new TimeoutPromise(this.timeout);
|
|
75
|
+
fetchWithOptionalTimeout.push(this.abortTimeout.start);
|
|
76
|
+
}
|
|
77
|
+
return Promise.race(fetchWithOptionalTimeout).then((data) => {
|
|
78
|
+
var _a;
|
|
79
|
+
(_a = this.abortTimeout) === null || _a === void 0 ? void 0 : _a.clear();
|
|
80
|
+
this.debug('response in %dms: %o', Date.now() - startTimestamp, data);
|
|
81
|
+
return Promise.resolve(data);
|
|
82
|
+
}, async (error) => {
|
|
83
|
+
var _a, _b;
|
|
84
|
+
(_a = this.abortTimeout) === null || _a === void 0 ? void 0 : _a.clear();
|
|
85
|
+
debug('response error: %o', error.response || error.message || error);
|
|
86
|
+
const status = ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) || error.code;
|
|
87
|
+
const shouldRetry = retryStrategy.shouldRetry(error, attempt, retries);
|
|
88
|
+
if (shouldRetry) {
|
|
89
|
+
const delayMs = retryStrategy.getDelay(error, attempt);
|
|
90
|
+
debug('Error: %s. Retrying in %dms (attempt %d).', status, delayMs, attempt);
|
|
91
|
+
attempt++;
|
|
92
|
+
return new Promise((resolve) => setTimeout(resolve, delayMs)).then(retryer);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
return Promise.reject(error);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
return retryer();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { MemoryCacheClient } from '../cache-client';
|
|
2
|
-
import { siteNameError, languageError } from '../client/constants';
|
|
3
|
-
import debug from '../debug';
|
|
4
|
-
/** @private */
|
|
5
|
-
export const queryError = 'Valid value for rootItemId not provided and failed to auto-resolve app root item.';
|
|
6
|
-
/** @default */
|
|
1
|
+
import { MemoryCacheClient } from '../cache-client';
|
|
2
|
+
import { siteNameError, languageError } from '../client/constants';
|
|
3
|
+
import debug from '../debug';
|
|
4
|
+
/** @private */
|
|
5
|
+
export const queryError = 'Valid value for rootItemId not provided and failed to auto-resolve app root item.';
|
|
6
|
+
/** @default */
|
|
7
7
|
const siteQuery = /* GraphQL */ `
|
|
8
8
|
query DictionarySiteQuery(
|
|
9
9
|
$siteName: String!
|
|
@@ -26,111 +26,112 @@ const siteQuery = /* GraphQL */ `
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
`;
|
|
30
|
-
/**
|
|
31
|
-
* Service that fetch dictionary data using Sitecore's GraphQL API.
|
|
32
|
-
* @augments DictionaryServiceBase
|
|
33
|
-
* @mixes SearchQueryService<DictionaryQueryResult>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
*
|
|
48
|
-
* @param {string}
|
|
49
|
-
* @param {
|
|
50
|
-
* @
|
|
51
|
-
* @
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
let
|
|
65
|
-
let
|
|
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
|
-
* @param {
|
|
96
|
-
* @
|
|
97
|
-
* @
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
* @
|
|
105
|
-
* @
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
29
|
+
`;
|
|
30
|
+
/**
|
|
31
|
+
* Service that fetch dictionary data using Sitecore's GraphQL API.
|
|
32
|
+
* @augments DictionaryServiceBase
|
|
33
|
+
* @mixes SearchQueryService<DictionaryQueryResult>
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export class DictionaryService {
|
|
37
|
+
/**
|
|
38
|
+
* Creates an instance of graphQL dictionary service with the provided options
|
|
39
|
+
* @param {DictionaryService} options instance
|
|
40
|
+
*/
|
|
41
|
+
constructor(options) {
|
|
42
|
+
this.options = options;
|
|
43
|
+
this.cache = this.getCacheClient();
|
|
44
|
+
this.graphQLClient = this.getGraphQLClient();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Fetches dictionary data for internalization. Uses search query by default
|
|
48
|
+
* @param {string} language the language to fetch
|
|
49
|
+
* @param {string} site site name to fetch data for.
|
|
50
|
+
* @param {FetchOptions} [fetchOptions] Options to override graphQL client details like retries and fetch implementation
|
|
51
|
+
* @returns {Promise<DictionaryPhrases>} dictionary phrases
|
|
52
|
+
* @throws {Error} if the app root was not found for the specified site and language.
|
|
53
|
+
*/
|
|
54
|
+
async fetchDictionaryData(language, site, fetchOptions) {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
const cacheKey = site + language;
|
|
57
|
+
const cachedValue = this.getCacheValue(cacheKey);
|
|
58
|
+
if (cachedValue) {
|
|
59
|
+
debug.dictionary('using cached dictionary data for %s %s', language, site);
|
|
60
|
+
return cachedValue;
|
|
61
|
+
}
|
|
62
|
+
const phrases = {};
|
|
63
|
+
debug.dictionary('fetching dictionary data for %s %s', language, site);
|
|
64
|
+
let results = [];
|
|
65
|
+
let hasNext = true;
|
|
66
|
+
let after = '';
|
|
67
|
+
if (!site) {
|
|
68
|
+
throw new RangeError(siteNameError);
|
|
69
|
+
}
|
|
70
|
+
if (!language) {
|
|
71
|
+
throw new RangeError(languageError);
|
|
72
|
+
}
|
|
73
|
+
while (hasNext) {
|
|
74
|
+
const fetchResponse = await this.graphQLClient.request(siteQuery, {
|
|
75
|
+
siteName: site,
|
|
76
|
+
language,
|
|
77
|
+
pageSize: this.options.pageSize,
|
|
78
|
+
after,
|
|
79
|
+
}, fetchOptions);
|
|
80
|
+
if ((_b = (_a = fetchResponse === null || fetchResponse === void 0 ? void 0 : fetchResponse.site) === null || _a === void 0 ? void 0 : _a.siteInfo) === null || _b === void 0 ? void 0 : _b.dictionary) {
|
|
81
|
+
results = results.concat(fetchResponse.site.siteInfo.dictionary.results);
|
|
82
|
+
after = fetchResponse.site.siteInfo.dictionary.pageInfo.endCursor;
|
|
83
|
+
hasNext = fetchResponse.site.siteInfo.dictionary.pageInfo.hasNext;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
hasNext = false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
results.forEach((item) => (phrases[item.key] = item.value));
|
|
90
|
+
this.setCacheValue(cacheKey, phrases);
|
|
91
|
+
return phrases;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Caches a @see DictionaryPhrases value for the specified cache key.
|
|
95
|
+
* @param {string} key The cache key.
|
|
96
|
+
* @param {DictionaryPhrases} value The value to cache.
|
|
97
|
+
* @returns The value added to the cache.
|
|
98
|
+
* @mixes CacheClient<DictionaryPhrases>
|
|
99
|
+
*/
|
|
100
|
+
setCacheValue(key, value) {
|
|
101
|
+
return this.cache.setCacheValue(key, value);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Retrieves a @see DictionaryPhrases value from the cache.
|
|
105
|
+
* @param {string} key The cache key.
|
|
106
|
+
* @returns The @see DictionaryPhrases value, or null if the specified key is not found in the cache.
|
|
107
|
+
*/
|
|
108
|
+
getCacheValue(key) {
|
|
109
|
+
return this.cache.getCacheValue(key);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Gets a cache client that can cache data. Uses memory-cache as the default
|
|
113
|
+
* library for caching (@see MemoryCacheClient). Override this method if you
|
|
114
|
+
* want to use something else.
|
|
115
|
+
* @returns {CacheClient} implementation
|
|
116
|
+
*/
|
|
117
|
+
getCacheClient() {
|
|
118
|
+
return new MemoryCacheClient(this.options);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Gets a GraphQL client that can make requests to the API. Uses graphql-request as the default
|
|
122
|
+
* library for fetching graphql data (@see GraphQLRequestClient). Override this method if you
|
|
123
|
+
* want to use something else.
|
|
124
|
+
* @returns {GraphQLClient} implementation
|
|
125
|
+
*/
|
|
126
|
+
getGraphQLClient() {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
if (!this.options.clientFactory) {
|
|
129
|
+
throw new Error('clientFactory needs to be provided when initializing GraphQL client.');
|
|
130
|
+
}
|
|
131
|
+
return this.options.clientFactory({
|
|
132
|
+
debugger: debug.dictionary,
|
|
133
|
+
retries: (_a = this.options.retries) === null || _a === void 0 ? void 0 : _a.count,
|
|
134
|
+
retryStrategy: (_b = this.options.retries) === null || _b === void 0 ? void 0 : _b.retryStrategy,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
package/dist/esm/i18n/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { DictionaryService, } from './dictionary-service';
|
|
2
|
-
export { getLocaleRewrite } from './utils';
|
|
1
|
+
export { DictionaryService, } from './dictionary-service';
|
|
2
|
+
export { getLocaleRewrite } from './utils';
|
package/dist/esm/i18n/utils.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get a locale rewrite path for given pathname
|
|
3
|
-
* @param {string} pathname the pathname
|
|
4
|
-
* @param {string} locale the site data to include in the rewrite
|
|
5
|
-
* @returns {string} the rewrite path
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Get a locale rewrite path for given pathname
|
|
3
|
+
* @param {string} pathname the pathname
|
|
4
|
+
* @param {string} locale the site data to include in the rewrite
|
|
5
|
+
* @returns {string} the rewrite path
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export function getLocaleRewrite(pathname, locale) {
|
|
9
|
+
if (pathname === '/')
|
|
10
|
+
return `/${locale}`;
|
|
11
|
+
const path = pathname.startsWith('/') ? pathname : '/' + pathname;
|
|
12
|
+
return `/${locale}${path}`;
|
|
13
|
+
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
// NOTE: all imports are now named as to not make breaking changes
|
|
2
|
-
// and to keep react-native working with cjs modules.
|
|
3
|
-
import * as constants from './constants';
|
|
4
|
-
import * as form from './form';
|
|
5
|
-
export { default as debug, enableDebug } from './debug';
|
|
6
|
-
export { GraphQLRequestClient, } from './graphql-request-client';
|
|
7
|
-
export { DefaultRetryStrategy } from './retries';
|
|
8
|
-
export { MemoryCacheClient } from './cache-client';
|
|
9
|
-
export { ClientError } from 'graphql-request';
|
|
10
|
-
export { NativeDataFetcher, } from './native-fetcher';
|
|
11
|
-
export { constants };
|
|
12
|
-
export { form };
|
|
13
|
-
export { defineConfig } from './config';
|
|
1
|
+
// NOTE: all imports are now named as to not make breaking changes
|
|
2
|
+
// and to keep react-native working with cjs modules.
|
|
3
|
+
import * as constants from './constants';
|
|
4
|
+
import * as form from './form';
|
|
5
|
+
export { default as debug, enableDebug } from './debug';
|
|
6
|
+
export { GraphQLRequestClient, } from './graphql-request-client';
|
|
7
|
+
export { DefaultRetryStrategy } from './retries';
|
|
8
|
+
export { MemoryCacheClient } from './cache-client';
|
|
9
|
+
export { ClientError } from 'graphql-request';
|
|
10
|
+
export { NativeDataFetcher, } from './native-fetcher';
|
|
11
|
+
export { constants };
|
|
12
|
+
export { form };
|
|
13
|
+
export { defineConfig } from './config';
|