@sitecore-content-sdk/nextjs 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.
Files changed (234) hide show
  1. package/README.md +11 -11
  2. package/dist/cjs/client/index.js +10 -10
  3. package/dist/cjs/client/models.js +2 -2
  4. package/dist/cjs/client/sitecore-nextjs-client.js +160 -156
  5. package/dist/cjs/components/BYOCWrapper.js +31 -30
  6. package/dist/cjs/components/ComponentPropsContext.js +66 -59
  7. package/dist/cjs/components/FEaaSWrapper.js +33 -32
  8. package/dist/cjs/components/Link.js +117 -90
  9. package/dist/cjs/components/NextImage.js +66 -62
  10. package/dist/cjs/components/Placeholder.js +55 -50
  11. package/dist/cjs/components/RichText.js +133 -128
  12. package/dist/cjs/config/define-config.js +26 -25
  13. package/dist/cjs/config/index.js +5 -5
  14. package/dist/cjs/config-cli/define-cli-config.js +40 -39
  15. package/dist/cjs/config-cli/index.js +5 -5
  16. package/dist/cjs/editing/codegen/import-map.js +129 -118
  17. package/dist/cjs/editing/codegen/index.js +6 -6
  18. package/dist/cjs/editing/constants.js +10 -10
  19. package/dist/cjs/editing/editing-config-middleware.js +70 -69
  20. package/dist/cjs/editing/editing-render-middleware.js +145 -144
  21. package/dist/cjs/editing/feaas-render-middleware.js +102 -101
  22. package/dist/cjs/editing/index.js +19 -19
  23. package/dist/cjs/editing/render-middleware.js +46 -46
  24. package/dist/cjs/editing/utils.js +260 -257
  25. package/dist/cjs/index.js +132 -131
  26. package/dist/cjs/middleware/app-router-multisite-middleware.js +41 -20
  27. package/dist/cjs/middleware/index.js +30 -30
  28. package/dist/cjs/middleware/locale-middleware.js +85 -84
  29. package/dist/cjs/middleware/middleware.js +195 -192
  30. package/dist/cjs/middleware/multisite-middleware.js +141 -118
  31. package/dist/cjs/middleware/personalize-middleware.js +240 -236
  32. package/dist/cjs/middleware/redirects-middleware.js +323 -297
  33. package/dist/cjs/middleware/robots-middleware.js +45 -44
  34. package/dist/cjs/middleware/sitemap-middleware.js +50 -49
  35. package/dist/cjs/monitoring/healthcheck-middleware.js +31 -30
  36. package/dist/cjs/monitoring/index.js +5 -5
  37. package/dist/cjs/route-handler/editing-config-route-handler.js +110 -106
  38. package/dist/cjs/route-handler/editing-render-route-handler.js +270 -165
  39. package/dist/cjs/route-handler/index.js +11 -11
  40. package/dist/cjs/route-handler/robots-route-handler.js +69 -68
  41. package/dist/cjs/route-handler/sitemap-route-handler.js +66 -65
  42. package/dist/cjs/search/index.js +17 -0
  43. package/dist/cjs/services/component-props-service.js +142 -138
  44. package/dist/cjs/sharedTypes/component-props.js +2 -2
  45. package/dist/cjs/sharedTypes/sitecore-page-props.js +2 -2
  46. package/dist/cjs/site/index.js +5 -5
  47. package/dist/cjs/tools/codegen/import-map.js +15 -0
  48. package/dist/cjs/tools/component-props.loader.js +95 -95
  49. package/dist/cjs/tools/generate-map.js +317 -317
  50. package/dist/cjs/tools/index.js +14 -13
  51. package/dist/cjs/tools/templating/byoc-component.js +36 -36
  52. package/dist/cjs/tools/templating/constants.js +7 -7
  53. package/dist/cjs/tools/templating/default-component.js +35 -35
  54. package/dist/cjs/tools/templating/utils.js +200 -0
  55. package/dist/cjs/utils/index.js +14 -14
  56. package/dist/cjs/utils/utils.js +82 -73
  57. package/dist/esm/client/index.js +2 -2
  58. package/dist/esm/client/models.js +1 -1
  59. package/dist/esm/client/sitecore-nextjs-client.js +156 -152
  60. package/dist/esm/components/BYOCWrapper.js +27 -26
  61. package/dist/esm/components/ComponentPropsContext.js +28 -21
  62. package/dist/esm/components/FEaaSWrapper.js +29 -28
  63. package/dist/esm/components/Link.js +78 -51
  64. package/dist/esm/components/NextImage.js +60 -56
  65. package/dist/esm/components/Placeholder.js +18 -13
  66. package/dist/esm/components/RichText.js +96 -91
  67. package/dist/esm/config/define-config.js +21 -20
  68. package/dist/esm/config/index.js +1 -1
  69. package/dist/esm/config-cli/define-cli-config.js +36 -35
  70. package/dist/esm/config-cli/index.js +1 -1
  71. package/dist/esm/editing/codegen/import-map.js +92 -81
  72. package/dist/esm/editing/codegen/index.js +1 -1
  73. package/dist/esm/editing/constants.js +7 -7
  74. package/dist/esm/editing/editing-config-middleware.js +66 -65
  75. package/dist/esm/editing/editing-render-middleware.js +141 -140
  76. package/dist/esm/editing/feaas-render-middleware.js +98 -97
  77. package/dist/esm/editing/index.js +6 -6
  78. package/dist/esm/editing/render-middleware.js +42 -42
  79. package/dist/esm/editing/utils.js +246 -243
  80. package/dist/esm/index.js +25 -25
  81. package/dist/esm/middleware/app-router-multisite-middleware.js +37 -16
  82. package/dist/esm/middleware/index.js +11 -11
  83. package/dist/esm/middleware/locale-middleware.js +81 -80
  84. package/dist/esm/middleware/middleware.js +189 -186
  85. package/dist/esm/middleware/multisite-middleware.js +137 -114
  86. package/dist/esm/middleware/personalize-middleware.js +236 -232
  87. package/dist/esm/middleware/redirects-middleware.js +316 -290
  88. package/dist/esm/middleware/robots-middleware.js +41 -40
  89. package/dist/esm/middleware/sitemap-middleware.js +46 -45
  90. package/dist/esm/monitoring/healthcheck-middleware.js +27 -26
  91. package/dist/esm/monitoring/index.js +1 -1
  92. package/dist/esm/route-handler/editing-config-route-handler.js +106 -102
  93. package/dist/esm/route-handler/editing-render-route-handler.js +265 -160
  94. package/dist/esm/route-handler/index.js +4 -4
  95. package/dist/esm/route-handler/robots-route-handler.js +65 -64
  96. package/dist/esm/route-handler/sitemap-route-handler.js +63 -62
  97. package/dist/esm/search/index.js +1 -0
  98. package/dist/esm/services/component-props-service.js +135 -131
  99. package/dist/esm/sharedTypes/component-props.js +1 -1
  100. package/dist/esm/sharedTypes/sitecore-page-props.js +1 -1
  101. package/dist/esm/site/index.js +1 -1
  102. package/dist/esm/tools/codegen/import-map.js +11 -0
  103. package/dist/esm/tools/component-props.loader.js +59 -59
  104. package/dist/esm/tools/generate-map.js +279 -279
  105. package/dist/esm/tools/index.js +3 -2
  106. package/dist/esm/tools/templating/byoc-component.js +30 -30
  107. package/dist/esm/tools/templating/constants.js +4 -4
  108. package/dist/esm/tools/templating/default-component.js +29 -29
  109. package/dist/esm/tools/templating/utils.js +190 -0
  110. package/dist/esm/utils/index.js +3 -3
  111. package/dist/esm/utils/utils.js +74 -65
  112. package/package.json +87 -13
  113. package/search.d.ts +1 -0
  114. package/types/client/index.d.ts +3 -2
  115. package/types/client/index.d.ts.map +1 -0
  116. package/types/client/models.d.ts +9 -8
  117. package/types/client/models.d.ts.map +1 -0
  118. package/types/client/sitecore-nextjs-client.d.ts +68 -63
  119. package/types/client/sitecore-nextjs-client.d.ts.map +1 -0
  120. package/types/components/BYOCWrapper.d.ts +16 -14
  121. package/types/components/BYOCWrapper.d.ts.map +1 -0
  122. package/types/components/ComponentPropsContext.d.ts +30 -18
  123. package/types/components/ComponentPropsContext.d.ts.map +1 -0
  124. package/types/components/FEaaSWrapper.d.ts +17 -15
  125. package/types/components/FEaaSWrapper.d.ts.map +1 -0
  126. package/types/components/Link.d.ts +25 -15
  127. package/types/components/Link.d.ts.map +1 -0
  128. package/types/components/NextImage.d.ts +11 -6
  129. package/types/components/NextImage.d.ts.map +1 -0
  130. package/types/components/Placeholder.d.ts +14 -8
  131. package/types/components/Placeholder.d.ts.map +1 -0
  132. package/types/components/RichText.d.ts +35 -25
  133. package/types/components/RichText.d.ts.map +1 -0
  134. package/types/config/define-config.d.ts +42 -38
  135. package/types/config/define-config.d.ts.map +1 -0
  136. package/types/config/index.d.ts +2 -1
  137. package/types/config/index.d.ts.map +1 -0
  138. package/types/config-cli/define-cli-config.d.ts +10 -8
  139. package/types/config-cli/define-cli-config.d.ts.map +1 -0
  140. package/types/config-cli/index.d.ts +2 -1
  141. package/types/config-cli/index.d.ts.map +1 -0
  142. package/types/editing/codegen/import-map.d.ts +15 -3
  143. package/types/editing/codegen/import-map.d.ts.map +1 -0
  144. package/types/editing/codegen/index.d.ts +3 -2
  145. package/types/editing/codegen/index.d.ts.map +1 -0
  146. package/types/editing/constants.d.ts +8 -7
  147. package/types/editing/constants.d.ts.map +1 -0
  148. package/types/editing/editing-config-middleware.d.ts +37 -31
  149. package/types/editing/editing-config-middleware.d.ts.map +1 -0
  150. package/types/editing/editing-render-middleware.d.ts +47 -44
  151. package/types/editing/editing-render-middleware.d.ts.map +1 -0
  152. package/types/editing/feaas-render-middleware.d.ts +35 -32
  153. package/types/editing/feaas-render-middleware.d.ts.map +1 -0
  154. package/types/editing/index.d.ts +7 -6
  155. package/types/editing/index.d.ts.map +1 -0
  156. package/types/editing/render-middleware.d.ts +26 -25
  157. package/types/editing/render-middleware.d.ts.map +1 -0
  158. package/types/editing/utils.d.ts +110 -106
  159. package/types/editing/utils.d.ts.map +1 -0
  160. package/types/index.d.ts +25 -24
  161. package/types/index.d.ts.map +1 -0
  162. package/types/middleware/app-router-multisite-middleware.d.ts +28 -13
  163. package/types/middleware/app-router-multisite-middleware.d.ts.map +1 -0
  164. package/types/middleware/index.d.ts +12 -11
  165. package/types/middleware/index.d.ts.map +1 -0
  166. package/types/middleware/locale-middleware.d.ts +35 -32
  167. package/types/middleware/locale-middleware.d.ts.map +1 -0
  168. package/types/middleware/middleware.d.ts +135 -127
  169. package/types/middleware/middleware.d.ts.map +1 -0
  170. package/types/middleware/multisite-middleware.d.ts +54 -37
  171. package/types/middleware/multisite-middleware.d.ts.map +1 -0
  172. package/types/middleware/personalize-middleware.d.ts +81 -65
  173. package/types/middleware/personalize-middleware.d.ts.map +1 -0
  174. package/types/middleware/redirects-middleware.d.ts +68 -65
  175. package/types/middleware/redirects-middleware.d.ts.map +1 -0
  176. package/types/middleware/robots-middleware.d.ts +15 -13
  177. package/types/middleware/robots-middleware.d.ts.map +1 -0
  178. package/types/middleware/sitemap-middleware.d.ts +16 -14
  179. package/types/middleware/sitemap-middleware.d.ts.map +1 -0
  180. package/types/monitoring/healthcheck-middleware.d.ts +14 -12
  181. package/types/monitoring/healthcheck-middleware.d.ts.map +1 -0
  182. package/types/monitoring/index.d.ts +2 -1
  183. package/types/monitoring/index.d.ts.map +1 -0
  184. package/types/route-handler/editing-config-route-handler.d.ts +30 -24
  185. package/types/route-handler/editing-config-route-handler.d.ts.map +1 -0
  186. package/types/route-handler/editing-render-route-handler.d.ts +33 -25
  187. package/types/route-handler/editing-render-route-handler.d.ts.map +1 -0
  188. package/types/route-handler/index.d.ts +5 -4
  189. package/types/route-handler/index.d.ts.map +1 -0
  190. package/types/route-handler/robots-route-handler.d.ts +30 -28
  191. package/types/route-handler/robots-route-handler.d.ts.map +1 -0
  192. package/types/route-handler/sitemap-route-handler.d.ts +30 -28
  193. package/types/route-handler/sitemap-route-handler.d.ts.map +1 -0
  194. package/types/search/index.d.ts +2 -0
  195. package/types/search/index.d.ts.map +1 -0
  196. package/types/services/component-props-service.d.ts +62 -57
  197. package/types/services/component-props-service.d.ts.map +1 -0
  198. package/types/sharedTypes/component-props.d.ts +62 -47
  199. package/types/sharedTypes/component-props.d.ts.map +1 -0
  200. package/types/sharedTypes/sitecore-page-props.d.ts +14 -9
  201. package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -0
  202. package/types/site/index.d.ts +2 -1
  203. package/types/site/index.d.ts.map +1 -0
  204. package/types/tools/codegen/import-map.d.ts +10 -0
  205. package/types/tools/codegen/import-map.d.ts.map +1 -0
  206. package/types/tools/component-props.loader.d.ts +8 -7
  207. package/types/tools/component-props.loader.d.ts.map +1 -0
  208. package/types/tools/generate-map.d.ts +26 -24
  209. package/types/tools/generate-map.d.ts.map +1 -0
  210. package/types/tools/index.d.ts +4 -2
  211. package/types/tools/index.d.ts.map +1 -0
  212. package/types/tools/templating/byoc-component.d.ts +3 -2
  213. package/types/tools/templating/byoc-component.d.ts.map +1 -0
  214. package/types/tools/templating/constants.d.ts +5 -4
  215. package/types/tools/templating/constants.d.ts.map +1 -0
  216. package/types/tools/templating/default-component.d.ts +3 -2
  217. package/types/tools/templating/default-component.d.ts.map +1 -0
  218. package/types/tools/templating/utils.d.ts +44 -0
  219. package/types/tools/templating/utils.d.ts.map +1 -0
  220. package/types/utils/index.d.ts +4 -3
  221. package/types/utils/index.d.ts.map +1 -0
  222. package/types/utils/utils.d.ts +34 -24
  223. package/types/utils/utils.d.ts.map +1 -0
  224. package/client.js +0 -1
  225. package/codegen.js +0 -1
  226. package/config-cli.js +0 -1
  227. package/config.js +0 -1
  228. package/editing.js +0 -1
  229. package/middleware.js +0 -1
  230. package/monitoring.js +0 -1
  231. package/route-handler.js +0 -1
  232. package/site.js +0 -1
  233. package/tools.js +0 -1
  234. package/utils.js +0 -1
@@ -1,81 +1,92 @@
1
- import React, { Children, Fragment, createElement, cloneElement, isValidElement, useActionState, useCallback, useContext, useDeferredValue, useEffect, useId, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, forwardRef, lazy, memo, Suspense, } from 'react';
2
- import { Link, Text, RichText, useSitecore, NextImage, Placeholder, Image, File, useComponentProps, withDatasourceCheck, CdpHelper, withSitecore, } from '../..';
3
- export const defaultImportEntries = [
4
- /* -------------------- React -------------------- */
5
- {
6
- module: 'react',
7
- exports: [
8
- { name: 'default', value: React },
9
- { name: 'Children', value: Children },
10
- { name: 'Fragment', value: Fragment },
11
- { name: 'createElement', value: createElement },
12
- { name: 'cloneElement', value: cloneElement },
13
- { name: 'isValidElement', value: isValidElement },
14
- // Hooks
15
- { name: 'useActionState', value: useActionState },
16
- { name: 'useCallback', value: useCallback },
17
- { name: 'useContext', value: useContext },
18
- { name: 'useDeferredValue', value: useDeferredValue },
19
- { name: 'useEffect', value: useEffect },
20
- { name: 'useId', value: useId },
21
- { name: 'useLayoutEffect', value: useLayoutEffect },
22
- { name: 'useMemo', value: useMemo },
23
- { name: 'useOptimistic', value: useOptimistic },
24
- { name: 'useReducer', value: useReducer },
25
- { name: 'useRef', value: useRef },
26
- { name: 'useState', value: useState },
27
- { name: 'useSyncExternalStore', value: useSyncExternalStore },
28
- { name: 'useTransition', value: useTransition },
29
- // Performance helpers
30
- { name: 'forwardRef', value: forwardRef },
31
- { name: 'lazy', value: lazy },
32
- { name: 'memo', value: memo },
33
- { name: 'Suspense', value: Suspense },
34
- ],
35
- },
36
- /* ------------- Sitecore Content‑SDK ------------- */
37
- {
38
- module: '@sitecore-content-sdk/nextjs',
39
- exports: [
40
- { name: 'Link', value: Link },
41
- { name: 'Text', value: Text },
42
- { name: 'RichText', value: RichText },
43
- { name: 'Placeholder', value: Placeholder },
44
- { name: 'NextImage', value: NextImage },
45
- { name: 'Image', value: Image },
46
- { name: 'File', value: File },
47
- { name: 'useSitecore', value: useSitecore },
48
- { name: 'withSitecore', value: withSitecore },
49
- { name: 'useComponentProps', value: useComponentProps },
50
- { name: 'withDatasourceCheck', value: withDatasourceCheck },
51
- { name: 'CdpHelper', value: CdpHelper },
52
- ],
53
- },
54
- ];
55
- export const combineImportEntries = (defaultImportEntries, generatedImportEntries) => {
56
- const combinedEntries = [];
57
- const importMap = new Map();
58
- // add generated entries to the map, overwriting existing ones
59
- generatedImportEntries.forEach((entry) => {
60
- importMap.set(entry.module, entry);
61
- });
62
- // add default entries to the map, if not present
63
- defaultImportEntries.forEach((defaultEntry) => {
64
- const mapEntry = importMap.get(defaultEntry.module);
65
- if (mapEntry) {
66
- defaultEntry.exports.forEach((defaultExportsEntry) => {
67
- if (!mapEntry.exports.some((e) => e.name === defaultExportsEntry.name)) {
68
- mapEntry.exports.push(defaultExportsEntry);
69
- }
70
- });
71
- }
72
- else {
73
- importMap.set(defaultEntry.module, defaultEntry);
74
- }
75
- });
76
- // convert map back to array
77
- importMap.forEach((value) => {
78
- combinedEntries.push(value);
79
- });
80
- return combinedEntries;
81
- };
1
+ import React, { Children, Fragment, createElement, cloneElement, isValidElement, useActionState, useCallback, useContext, useDeferredValue, useEffect, useId, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, forwardRef, lazy, memo, Suspense, } from 'react';
2
+ import { Link, Text, RichText, useSitecore, NextImage, Placeholder, Image, File, useComponentProps, withDatasourceCheck, CdpHelper, withSitecore, } from '../..';
3
+ /**
4
+ * The default import entries for the import map.
5
+ * @public
6
+ */
7
+ export const defaultImportEntries = [
8
+ /* -------------------- React -------------------- */
9
+ {
10
+ module: 'react',
11
+ exports: [
12
+ { name: 'default', value: React },
13
+ { name: 'Children', value: Children },
14
+ { name: 'Fragment', value: Fragment },
15
+ { name: 'createElement', value: createElement },
16
+ { name: 'cloneElement', value: cloneElement },
17
+ { name: 'isValidElement', value: isValidElement },
18
+ // Hooks
19
+ { name: 'useActionState', value: useActionState },
20
+ { name: 'useCallback', value: useCallback },
21
+ { name: 'useContext', value: useContext },
22
+ { name: 'useDeferredValue', value: useDeferredValue },
23
+ { name: 'useEffect', value: useEffect },
24
+ { name: 'useId', value: useId },
25
+ { name: 'useLayoutEffect', value: useLayoutEffect },
26
+ { name: 'useMemo', value: useMemo },
27
+ { name: 'useOptimistic', value: useOptimistic },
28
+ { name: 'useReducer', value: useReducer },
29
+ { name: 'useRef', value: useRef },
30
+ { name: 'useState', value: useState },
31
+ { name: 'useSyncExternalStore', value: useSyncExternalStore },
32
+ { name: 'useTransition', value: useTransition },
33
+ // Performance helpers
34
+ { name: 'forwardRef', value: forwardRef },
35
+ { name: 'lazy', value: lazy },
36
+ { name: 'memo', value: memo },
37
+ { name: 'Suspense', value: Suspense },
38
+ ],
39
+ },
40
+ /* ------------- Sitecore Content‑SDK ------------- */
41
+ {
42
+ module: '@sitecore-content-sdk/nextjs',
43
+ exports: [
44
+ { name: 'Link', value: Link },
45
+ { name: 'Text', value: Text },
46
+ { name: 'RichText', value: RichText },
47
+ { name: 'Placeholder', value: Placeholder },
48
+ { name: 'NextImage', value: NextImage },
49
+ { name: 'Image', value: Image },
50
+ { name: 'File', value: File },
51
+ { name: 'useSitecore', value: useSitecore },
52
+ { name: 'withSitecore', value: withSitecore },
53
+ { name: 'useComponentProps', value: useComponentProps },
54
+ { name: 'withDatasourceCheck', value: withDatasourceCheck },
55
+ { name: 'CdpHelper', value: CdpHelper },
56
+ ],
57
+ },
58
+ ];
59
+ /**
60
+ * Combines the default import entries with the generated import entries.
61
+ * @param {ImportEntry[]} defaultImportEntries - The default import entries.
62
+ * @param {ImportEntry[]} generatedImportEntries - The generated import entries.
63
+ * @returns {ImportEntry[]} The combined import entries.
64
+ * @public
65
+ */
66
+ export const combineImportEntries = (defaultImportEntries, generatedImportEntries) => {
67
+ const combinedEntries = [];
68
+ const importMap = new Map();
69
+ // add generated entries to the map, overwriting existing ones
70
+ generatedImportEntries.forEach((entry) => {
71
+ importMap.set(entry.module, entry);
72
+ });
73
+ // add default entries to the map, if not present
74
+ defaultImportEntries.forEach((defaultEntry) => {
75
+ const mapEntry = importMap.get(defaultEntry.module);
76
+ if (mapEntry) {
77
+ defaultEntry.exports.forEach((defaultExportsEntry) => {
78
+ if (!mapEntry.exports.some((e) => e.name === defaultExportsEntry.name)) {
79
+ mapEntry.exports.push(defaultExportsEntry);
80
+ }
81
+ });
82
+ }
83
+ else {
84
+ importMap.set(defaultEntry.module, defaultEntry);
85
+ }
86
+ });
87
+ // convert map back to array
88
+ importMap.forEach((value) => {
89
+ combinedEntries.push(value);
90
+ });
91
+ return combinedEntries;
92
+ };
@@ -1 +1 @@
1
- export { defaultImportEntries, combineImportEntries } from './import-map';
1
+ export { defaultImportEntries, combineImportEntries } from './import-map';
@@ -1,7 +1,7 @@
1
- export const QUERY_PARAM_VERCEL_PROTECTION_BYPASS = 'x-vercel-protection-bypass';
2
- export const QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
3
- /**
4
- * Headers that should be passed along to (Editing Chromes handler) SSR request.
5
- * Note these are in lowercase format to match expected `IncomingHttpHeaders`.
6
- */
7
- export const EDITING_PASS_THROUGH_HEADERS = ['authorization', 'cookie'];
1
+ export const QUERY_PARAM_VERCEL_PROTECTION_BYPASS = 'x-vercel-protection-bypass';
2
+ export const QUERY_PARAM_VERCEL_SET_BYPASS_COOKIE = 'x-vercel-set-bypass-cookie';
3
+ /**
4
+ * Headers that should be passed along to (Editing Chromes handler) SSR request.
5
+ * Note these are in lowercase format to match expected `IncomingHttpHeaders`.
6
+ */
7
+ export const EDITING_PASS_THROUGH_HEADERS = ['authorization', 'cookie'];
@@ -1,65 +1,66 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-content-sdk/core/editing';
11
- import { debug } from '@sitecore-content-sdk/core';
12
- import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/utils';
13
- import { EditMode } from '@sitecore-content-sdk/core/layout';
14
- import { getEditingSecret } from '../utils/utils';
15
- /**
16
- * Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
17
- * provides configuration information to determine feature compatibility on Pages side.
18
- */
19
- export class EditingConfigMiddleware {
20
- /**
21
- * @param {EditingConfigMiddlewareConfig} [config] Editing configuration middleware config
22
- */
23
- constructor(config) {
24
- this.config = config;
25
- this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
26
- const secret = _req.query[QUERY_PARAM_EDITING_SECRET];
27
- const corsHeaders = getEnforcedCorsHeaders({
28
- requestMethod: _req.method,
29
- headers: _req.headers,
30
- presetCorsHeader: res === null || res === void 0 ? void 0 : res.getHeader('Access-Control-Allow-Origin'),
31
- allowedOrigins: EDITING_ALLOWED_ORIGINS,
32
- });
33
- if (!corsHeaders) {
34
- debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
35
- return res.status(401).json({ message: 'Invalid origin' });
36
- }
37
- Object.keys(corsHeaders).forEach((key) => {
38
- res.setHeader(key, corsHeaders[key]);
39
- });
40
- if (secret !== getEditingSecret()) {
41
- debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, getEditingSecret());
42
- return res.status(401).json({ message: 'Missing or invalid editing secret' });
43
- }
44
- // Handle preflight request
45
- if (_req.method === 'OPTIONS') {
46
- debug.editing('preflight request');
47
- // CORS headers are set by enforceCors
48
- return res.status(204).send(null);
49
- }
50
- const components = Array.from(this.config.components.keys());
51
- return res.status(200).json({
52
- components,
53
- packages: this.config.metadata.packages,
54
- editMode: EditMode.Metadata,
55
- });
56
- });
57
- }
58
- /**
59
- * Gets the Next.js API route handler
60
- * @returns middleware handler
61
- */
62
- getHandler() {
63
- return this.handler;
64
- }
65
- }
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET, } from '@sitecore-content-sdk/core/editing';
11
+ import { debug } from '@sitecore-content-sdk/core';
12
+ import { getEnforcedCorsHeaders } from '@sitecore-content-sdk/core/utils';
13
+ import { EditMode } from '@sitecore-content-sdk/core/layout';
14
+ import { getEditingSecret } from '../utils/utils';
15
+ /**
16
+ * Middleware / handler used in the editing config API route in xmcloud add on (e.g. '/api/editing/config')
17
+ * provides configuration information to determine feature compatibility on Pages side.
18
+ * @public
19
+ */
20
+ export class EditingConfigMiddleware {
21
+ /**
22
+ * @param {EditingConfigMiddlewareConfig} [config] Editing configuration middleware config
23
+ */
24
+ constructor(config) {
25
+ this.config = config;
26
+ this.handler = (_req, res) => __awaiter(this, void 0, void 0, function* () {
27
+ const secret = _req.query[QUERY_PARAM_EDITING_SECRET];
28
+ const corsHeaders = getEnforcedCorsHeaders({
29
+ requestMethod: _req.method,
30
+ headers: _req.headers,
31
+ presetCorsHeader: res === null || res === void 0 ? void 0 : res.getHeader('Access-Control-Allow-Origin'),
32
+ allowedOrigins: EDITING_ALLOWED_ORIGINS,
33
+ });
34
+ if (!corsHeaders) {
35
+ debug.editing('invalid origin host - set allowed origins in JSS_ALLOWED_ORIGINS environment variable');
36
+ return res.status(401).json({ message: 'Invalid origin' });
37
+ }
38
+ Object.keys(corsHeaders).forEach((key) => {
39
+ res.setHeader(key, corsHeaders[key]);
40
+ });
41
+ if (secret !== getEditingSecret()) {
42
+ debug.editing('invalid editing secret - sent "%s" expected "%s"', secret, getEditingSecret());
43
+ return res.status(401).json({ message: 'Missing or invalid editing secret' });
44
+ }
45
+ // Handle preflight request
46
+ if (_req.method === 'OPTIONS') {
47
+ debug.editing('preflight request');
48
+ // CORS headers are set by enforceCors
49
+ return res.status(204).send(null);
50
+ }
51
+ const components = Array.from(this.config.components.keys());
52
+ return res.status(200).json({
53
+ components,
54
+ packages: this.config.metadata.packages,
55
+ editMode: EditMode.Metadata,
56
+ });
57
+ });
58
+ }
59
+ /**
60
+ * Gets the Next.js API route handler
61
+ * @returns middleware handler
62
+ */
63
+ getHandler() {
64
+ return this.handler;
65
+ }
66
+ }