@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,118 +1,141 @@
1
- "use strict";
2
- /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.MultisiteMiddleware = void 0;
14
- const site_1 = require("@sitecore-content-sdk/core/site");
15
- const core_1 = require("@sitecore-content-sdk/core");
16
- const middleware_1 = require("./middleware");
17
- const editing_1 = require("@sitecore-content-sdk/core/editing");
18
- /**
19
- * Middleware / handler for multisite support
20
- */
21
- class MultisiteMiddleware extends middleware_1.MiddlewareBase {
22
- /**
23
- * @param {MultisiteMiddlewareConfig} [config] Multisite middleware config
24
- */
25
- constructor(config) {
26
- super(config);
27
- this.config = config;
28
- this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
29
- var _a, _b, _c;
30
- try {
31
- // Path can be rewritten by previously executed middleware
32
- const pathname = (res === null || res === void 0 ? void 0 : res.headers.get(middleware_1.REWRITE_HEADER_NAME)) || req.nextUrl.pathname;
33
- const language = this.getLanguage(req, res);
34
- const hostname = this.getHostHeader(req) || this.defaultHostname;
35
- const startTimestamp = Date.now();
36
- core_1.debug.multisite('multisite middleware start: %o', {
37
- pathname,
38
- language,
39
- hostname,
40
- });
41
- // We can't skip site name preservation for App Router in Preview since currently we rely on the site segment
42
- // to be present in the path.
43
- if (this.isPreview(req) && !this.isAppRouter(res)) {
44
- core_1.debug.multisite('skipped (preview)');
45
- return res;
46
- }
47
- // Site name preservation is required for Sitecore Preview mode to support navigation between pages
48
- const isSitecorePreview = (_a = req.cookies.get(editing_1.PREVIEW_KEY)) === null || _a === void 0 ? void 0 : _a.value;
49
- if (!isSitecorePreview) {
50
- if (!this.config.enabled) {
51
- core_1.debug.multisite('skipped (multisite middleware is disabled globally)');
52
- return res;
53
- }
54
- if (this.disabled(req, res)) {
55
- core_1.debug.multisite('skipped (multisite middleware is disabled)');
56
- return res;
57
- }
58
- }
59
- let siteName;
60
- if (isSitecorePreview) {
61
- // This cookie is required to be set in the Sitecore Preview mode to support navigation
62
- // and preserve the site name
63
- siteName = (_b = req.cookies.get(site_1.SITE_KEY)) === null || _b === void 0 ? void 0 : _b.value;
64
- }
65
- else {
66
- // Site name can be forced by query string parameter or cookie
67
- // 'site' is provided when running "preview" in AppRouter
68
- siteName =
69
- req.nextUrl.searchParams.get(site_1.SITE_KEY) ||
70
- req.nextUrl.searchParams.get('site') ||
71
- (this.config.useCookieResolution &&
72
- this.config.useCookieResolution(req) &&
73
- ((_c = req.cookies.get(site_1.SITE_KEY)) === null || _c === void 0 ? void 0 : _c.value)) ||
74
- this.siteResolver.getByHost(hostname).name;
75
- }
76
- // Rewrite to site specific path
77
- const rewritePath = this.getSiteRewrite(pathname, siteName);
78
- const response = this.rewrite(rewritePath, req, res);
79
- // default site cookie attributes
80
- const defaultCookieAttributes = {
81
- secure: true,
82
- httpOnly: true,
83
- sameSite: 'none',
84
- };
85
- // Share site name with the following executed middlewares
86
- response.cookies.set(site_1.SITE_KEY, siteName, defaultCookieAttributes);
87
- core_1.debug.multisite('multisite middleware end in %dms: %o', Date.now() - startTimestamp, {
88
- rewritePath,
89
- siteName,
90
- headers: this.extractDebugHeaders(response.headers),
91
- cookies: response.cookies,
92
- });
93
- return response;
94
- }
95
- catch (error) {
96
- console.log('Multisite middleware failed:');
97
- console.log(error);
98
- return res;
99
- }
100
- });
101
- }
102
- disabled(req, res) {
103
- // ignore files
104
- return req.nextUrl.pathname.includes('.') || super.disabled(req, res);
105
- }
106
- /**
107
- * Generates a site-specific rewrite path based on the provided pathname and site name.
108
- * @param {string} pathname - The pathname to be rewritten.
109
- * @param {string} siteName - The name of the site.
110
- * @returns The rewritten path as a string.
111
- */
112
- getSiteRewrite(pathname, siteName) {
113
- return (0, site_1.getSiteRewrite)(pathname, {
114
- siteName,
115
- });
116
- }
117
- }
118
- exports.MultisiteMiddleware = MultisiteMiddleware;
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.MultisiteMiddleware = void 0;
14
+ const site_1 = require("@sitecore-content-sdk/core/site");
15
+ const core_1 = require("@sitecore-content-sdk/core");
16
+ const middleware_1 = require("./middleware");
17
+ const editing_1 = require("@sitecore-content-sdk/core/editing");
18
+ /**
19
+ * Middleware / handler for multisite support
20
+ * @public
21
+ */
22
+ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
23
+ /**
24
+ * @param {MultisiteMiddlewareConfig} [config] Multisite middleware config
25
+ */
26
+ constructor(config) {
27
+ super(config);
28
+ this.config = config;
29
+ this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
30
+ var _a, _b, _c;
31
+ try {
32
+ // Path can be rewritten by previously executed middleware
33
+ const pathname = (res === null || res === void 0 ? void 0 : res.headers.get(middleware_1.REWRITE_HEADER_NAME)) || req.nextUrl.pathname;
34
+ const language = this.getLanguage(req, res);
35
+ const hostname = this.getHostHeader(req) || this.defaultHostname;
36
+ const startTimestamp = Date.now();
37
+ core_1.debug.multisite('multisite middleware start: %o', {
38
+ pathname,
39
+ language,
40
+ hostname,
41
+ });
42
+ // We can't skip site name preservation for App Router in Preview since currently we rely on the site segment
43
+ // to be present in the path.
44
+ // Additionally, App Router route structure always requires [site] segment, so disabling multisite
45
+ // will break regular requests even though Preview/Editing modes will still work.
46
+ if (this.isPreview(req) && !this.isAppRouter(res)) {
47
+ core_1.debug.multisite('skipped (preview)');
48
+ return res;
49
+ }
50
+ // Site name preservation is required for Sitecore Preview mode to support navigation between pages
51
+ const isSitecorePreview = (_a = req.cookies.get(editing_1.PREVIEW_KEY)) === null || _a === void 0 ? void 0 : _a.value;
52
+ if (!isSitecorePreview) {
53
+ if (!this.config.enabled) {
54
+ this.shouldWarnWhenDisabled(res);
55
+ if (this.shouldSkipWhenDisabled()) {
56
+ core_1.debug.multisite('skipped (multisite middleware is disabled globally)');
57
+ return res;
58
+ }
59
+ // Continue execution if shouldSkipWhenDisabled returns false (App Router case)
60
+ }
61
+ if (this.disabled(req, res)) {
62
+ core_1.debug.multisite('skipped (multisite middleware is disabled)');
63
+ return res;
64
+ }
65
+ }
66
+ let siteName;
67
+ if (isSitecorePreview) {
68
+ // This cookie is required to be set in the Sitecore Preview mode to support navigation
69
+ // and preserve the site name
70
+ siteName = (_b = req.cookies.get(site_1.SITE_KEY)) === null || _b === void 0 ? void 0 : _b.value;
71
+ }
72
+ else {
73
+ // Site name can be forced by query string parameter or cookie
74
+ // 'site' is provided when running "preview" in AppRouter
75
+ siteName =
76
+ req.nextUrl.searchParams.get(site_1.SITE_KEY) ||
77
+ req.nextUrl.searchParams.get('site') ||
78
+ (this.config.useCookieResolution &&
79
+ this.config.useCookieResolution(req) &&
80
+ ((_c = req.cookies.get(site_1.SITE_KEY)) === null || _c === void 0 ? void 0 : _c.value)) ||
81
+ this.siteResolver.getByHost(hostname).name;
82
+ }
83
+ // Rewrite to site specific path
84
+ const rewritePath = this.getSiteRewrite(pathname, siteName);
85
+ const response = this.rewrite(rewritePath, req, res);
86
+ // default site cookie attributes
87
+ const defaultCookieAttributes = {
88
+ secure: true,
89
+ httpOnly: true,
90
+ sameSite: 'none',
91
+ };
92
+ // Share site name with the following executed middlewares
93
+ response.cookies.set(site_1.SITE_KEY, siteName, defaultCookieAttributes);
94
+ core_1.debug.multisite('multisite middleware end in %dms: %o', Date.now() - startTimestamp, {
95
+ rewritePath,
96
+ siteName,
97
+ headers: this.extractDebugHeaders(response.headers),
98
+ cookies: response.cookies,
99
+ });
100
+ return response;
101
+ }
102
+ catch (error) {
103
+ console.log('Multisite middleware failed:');
104
+ console.log(error);
105
+ return res;
106
+ }
107
+ });
108
+ }
109
+ disabled(req, res) {
110
+ // ignore files
111
+ return req.nextUrl.pathname.includes('.') || super.disabled(req, res);
112
+ }
113
+ /**
114
+ * Called when multisite is disabled. Override this method in subclasses to show router-specific warnings.
115
+ * @param {NextResponse} _res response
116
+ */
117
+ // eslint-disable-next-line no-unused-vars
118
+ shouldWarnWhenDisabled(_res) {
119
+ // Base implementation does nothing - subclasses can override to show warnings
120
+ }
121
+ /**
122
+ * Determines if middleware should be skipped when multisite is disabled.
123
+ * Override in subclasses to provide router-specific behavior.
124
+ * @returns {boolean} true if middleware should be skipped when disabled
125
+ */
126
+ shouldSkipWhenDisabled() {
127
+ return true; // Base class skips when disabled
128
+ }
129
+ /**
130
+ * Generates a site-specific rewrite path based on the provided pathname and site name.
131
+ * @param {string} pathname - The pathname to be rewritten.
132
+ * @param {string} siteName - The name of the site.
133
+ * @returns The rewritten path as a string.
134
+ */
135
+ getSiteRewrite(pathname, siteName) {
136
+ return (0, site_1.getSiteRewrite)(pathname, {
137
+ siteName,
138
+ });
139
+ }
140
+ }
141
+ exports.MultisiteMiddleware = MultisiteMiddleware;