@sitecore-content-sdk/nextjs 1.5.0 → 2.0.0-canary.10

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 (172) hide show
  1. package/LICENSE.txt +202 -202
  2. package/dist/cjs/client/index.js +1 -1
  3. package/dist/cjs/client/sitecore-nextjs-client.js +4 -4
  4. package/dist/cjs/components/BYOCWrapper.js +0 -5
  5. package/dist/cjs/components/FEaaSWrapper.js +0 -5
  6. package/dist/cjs/components/NextImage.js +2 -2
  7. package/dist/cjs/config/define-config.js +7 -4
  8. package/dist/cjs/config-cli/define-cli-config.js +1 -1
  9. package/dist/cjs/debug.js +11 -0
  10. package/dist/cjs/editing/codegen/import-map-server.js +1 -1
  11. package/dist/cjs/editing/editing-config-middleware.js +13 -11
  12. package/dist/cjs/editing/editing-render-middleware.js +41 -29
  13. package/dist/cjs/editing/feaas-render-middleware.js +24 -13
  14. package/dist/cjs/editing/index.js +2 -2
  15. package/dist/cjs/editing/types.js +2 -0
  16. package/dist/cjs/editing/utils.js +35 -6
  17. package/dist/cjs/index.js +17 -11
  18. package/dist/cjs/middleware/index.js +1 -24
  19. package/dist/cjs/{middleware/app-router-multisite-middleware.js → proxy/app-router-multisite-proxy.js} +8 -8
  20. package/dist/cjs/proxy/index.js +29 -0
  21. package/dist/cjs/{middleware/locale-middleware.js → proxy/locale-proxy.js} +18 -15
  22. package/dist/cjs/{middleware/multisite-middleware.js → proxy/multisite-proxy.js} +23 -20
  23. package/dist/cjs/{middleware/personalize-middleware.js → proxy/personalize-proxy.js} +31 -28
  24. package/dist/cjs/{middleware/middleware.js → proxy/proxy.js} +31 -28
  25. package/dist/cjs/{middleware/redirects-middleware.js → proxy/redirects-proxy.js} +121 -111
  26. package/dist/cjs/route-handler/editing-config-route-handler.js +16 -13
  27. package/dist/cjs/route-handler/editing-render-route-handler.js +43 -32
  28. package/dist/cjs/route-handler/robots-route-handler.js +14 -6
  29. package/dist/cjs/route-handler/sitemap-route-handler.js +13 -5
  30. package/dist/cjs/site/index.js +1 -1
  31. package/dist/cjs/tools/codegen/import-map.js +2 -2
  32. package/dist/cjs/tools/generate-map.js +1 -1
  33. package/dist/cjs/tools/index.js +7 -8
  34. package/dist/cjs/tools/templating/byoc-component.js +1 -1
  35. package/dist/cjs/tools/templating/default-component.js +1 -1
  36. package/dist/cjs/tools/templating/utils.js +5 -6
  37. package/dist/cjs/utils/index.js +4 -5
  38. package/dist/cjs/utils/utils.js +3 -3
  39. package/dist/esm/client/index.js +1 -1
  40. package/dist/esm/client/sitecore-nextjs-client.js +4 -4
  41. package/dist/esm/components/BYOCWrapper.js +0 -5
  42. package/dist/esm/components/FEaaSWrapper.js +0 -5
  43. package/dist/esm/components/NextImage.js +2 -2
  44. package/dist/esm/config/define-config.js +7 -4
  45. package/dist/esm/config-cli/define-cli-config.js +1 -1
  46. package/dist/esm/debug.js +9 -0
  47. package/dist/esm/editing/codegen/import-map-server.js +1 -1
  48. package/dist/esm/editing/editing-config-middleware.js +4 -5
  49. package/dist/esm/editing/editing-render-middleware.js +22 -13
  50. package/dist/esm/editing/feaas-render-middleware.js +14 -6
  51. package/dist/esm/editing/index.js +2 -2
  52. package/dist/esm/editing/types.js +1 -0
  53. package/dist/esm/editing/utils.js +32 -4
  54. package/dist/esm/index.js +11 -12
  55. package/dist/esm/middleware/index.js +0 -9
  56. package/dist/esm/{middleware/app-router-multisite-middleware.js → proxy/app-router-multisite-proxy.js} +6 -6
  57. package/dist/esm/proxy/index.js +9 -0
  58. package/dist/esm/{middleware/locale-middleware.js → proxy/locale-proxy.js} +12 -12
  59. package/dist/esm/{middleware/multisite-middleware.js → proxy/multisite-proxy.js} +16 -16
  60. package/dist/esm/{middleware/personalize-middleware.js → proxy/personalize-proxy.js} +17 -17
  61. package/dist/esm/{middleware/middleware.js → proxy/proxy.js} +24 -24
  62. package/dist/esm/{middleware/redirects-middleware.js → proxy/redirects-proxy.js} +112 -102
  63. package/dist/esm/route-handler/editing-config-route-handler.js +4 -4
  64. package/dist/esm/route-handler/editing-render-route-handler.js +19 -11
  65. package/dist/esm/route-handler/robots-route-handler.js +8 -3
  66. package/dist/esm/route-handler/sitemap-route-handler.js +8 -3
  67. package/dist/esm/site/index.js +1 -1
  68. package/dist/esm/tools/codegen/import-map.js +1 -1
  69. package/dist/esm/tools/generate-map.js +1 -1
  70. package/dist/esm/tools/index.js +2 -1
  71. package/dist/esm/tools/templating/byoc-component.js +1 -1
  72. package/dist/esm/tools/templating/default-component.js +1 -1
  73. package/dist/esm/tools/templating/utils.js +1 -2
  74. package/dist/esm/utils/index.js +2 -2
  75. package/dist/esm/utils/utils.js +2 -2
  76. package/package.json +187 -181
  77. package/proxy.d.ts +1 -0
  78. package/types/client/index.d.ts +1 -1
  79. package/types/client/index.d.ts.map +1 -1
  80. package/types/client/sitecore-nextjs-client.d.ts +3 -3
  81. package/types/client/sitecore-nextjs-client.d.ts.map +1 -1
  82. package/types/components/BYOCWrapper.d.ts +0 -5
  83. package/types/components/BYOCWrapper.d.ts.map +1 -1
  84. package/types/components/FEaaSWrapper.d.ts +0 -5
  85. package/types/components/FEaaSWrapper.d.ts.map +1 -1
  86. package/types/components/Placeholder.d.ts +2 -2
  87. package/types/components/Placeholder.d.ts.map +1 -1
  88. package/types/config/define-config.d.ts +1 -1
  89. package/types/config/define-config.d.ts.map +1 -1
  90. package/types/config-cli/define-cli-config.d.ts +1 -1
  91. package/types/config-cli/define-cli-config.d.ts.map +1 -1
  92. package/types/debug.d.ts +7 -0
  93. package/types/debug.d.ts.map +1 -0
  94. package/types/editing/codegen/import-map-server.d.ts +1 -1
  95. package/types/editing/codegen/import-map-server.d.ts.map +1 -1
  96. package/types/editing/codegen/import-map-utils.d.ts +1 -1
  97. package/types/editing/codegen/import-map-utils.d.ts.map +1 -1
  98. package/types/editing/codegen/import-map.d.ts +1 -1
  99. package/types/editing/codegen/import-map.d.ts.map +1 -1
  100. package/types/editing/codegen/index.d.ts +1 -1
  101. package/types/editing/codegen/index.d.ts.map +1 -1
  102. package/types/editing/editing-config-middleware.d.ts +1 -1
  103. package/types/editing/editing-config-middleware.d.ts.map +1 -1
  104. package/types/editing/editing-render-middleware.d.ts +8 -1
  105. package/types/editing/editing-render-middleware.d.ts.map +1 -1
  106. package/types/editing/feaas-render-middleware.d.ts +1 -1
  107. package/types/editing/feaas-render-middleware.d.ts.map +1 -1
  108. package/types/editing/index.d.ts +3 -2
  109. package/types/editing/index.d.ts.map +1 -1
  110. package/types/editing/types.d.ts +37 -0
  111. package/types/editing/types.d.ts.map +1 -0
  112. package/types/editing/utils.d.ts +12 -1
  113. package/types/editing/utils.d.ts.map +1 -1
  114. package/types/index.d.ts +13 -11
  115. package/types/index.d.ts.map +1 -1
  116. package/types/middleware/index.d.ts +0 -9
  117. package/types/middleware/index.d.ts.map +1 -1
  118. package/types/middleware/robots-middleware.d.ts +1 -1
  119. package/types/middleware/robots-middleware.d.ts.map +1 -1
  120. package/types/middleware/sitemap-middleware.d.ts +1 -1
  121. package/types/middleware/sitemap-middleware.d.ts.map +1 -1
  122. package/types/{middleware/app-router-multisite-middleware.d.ts → proxy/app-router-multisite-proxy.d.ts} +6 -6
  123. package/types/proxy/app-router-multisite-proxy.d.ts.map +1 -0
  124. package/types/proxy/index.d.ts +10 -0
  125. package/types/proxy/index.d.ts.map +1 -0
  126. package/types/proxy/locale-proxy.d.ts +35 -0
  127. package/types/proxy/locale-proxy.d.ts.map +1 -0
  128. package/types/{middleware/multisite-middleware.d.ts → proxy/multisite-proxy.d.ts} +11 -11
  129. package/types/proxy/multisite-proxy.d.ts.map +1 -0
  130. package/types/{middleware/personalize-middleware.d.ts → proxy/personalize-proxy.d.ts} +10 -10
  131. package/types/proxy/personalize-proxy.d.ts.map +1 -0
  132. package/types/{middleware/middleware.d.ts → proxy/proxy.d.ts} +24 -26
  133. package/types/proxy/proxy.d.ts.map +1 -0
  134. package/types/{middleware/redirects-middleware.d.ts → proxy/redirects-proxy.d.ts} +11 -11
  135. package/types/proxy/redirects-proxy.d.ts.map +1 -0
  136. package/types/route-handler/editing-config-route-handler.d.ts +1 -1
  137. package/types/route-handler/editing-config-route-handler.d.ts.map +1 -1
  138. package/types/route-handler/editing-render-route-handler.d.ts +7 -0
  139. package/types/route-handler/editing-render-route-handler.d.ts.map +1 -1
  140. package/types/route-handler/robots-route-handler.d.ts +2 -2
  141. package/types/route-handler/robots-route-handler.d.ts.map +1 -1
  142. package/types/route-handler/sitemap-route-handler.d.ts +2 -2
  143. package/types/route-handler/sitemap-route-handler.d.ts.map +1 -1
  144. package/types/services/component-props-service.d.ts +1 -1
  145. package/types/services/component-props-service.d.ts.map +1 -1
  146. package/types/sharedTypes/component-props.d.ts +1 -1
  147. package/types/sharedTypes/component-props.d.ts.map +1 -1
  148. package/types/sharedTypes/sitecore-page-props.d.ts +2 -2
  149. package/types/sharedTypes/sitecore-page-props.d.ts.map +1 -1
  150. package/types/site/index.d.ts +1 -1
  151. package/types/site/index.d.ts.map +1 -1
  152. package/types/tools/codegen/import-map.d.ts +3 -3
  153. package/types/tools/codegen/import-map.d.ts.map +1 -1
  154. package/types/tools/generate-map.d.ts +1 -1
  155. package/types/tools/generate-map.d.ts.map +1 -1
  156. package/types/tools/index.d.ts +3 -1
  157. package/types/tools/index.d.ts.map +1 -1
  158. package/types/tools/templating/byoc-component.d.ts +1 -1
  159. package/types/tools/templating/byoc-component.d.ts.map +1 -1
  160. package/types/tools/templating/default-component.d.ts +1 -1
  161. package/types/tools/templating/default-component.d.ts.map +1 -1
  162. package/types/tools/templating/utils.d.ts +2 -2
  163. package/types/tools/templating/utils.d.ts.map +1 -1
  164. package/types/utils/index.d.ts +2 -2
  165. package/types/utils/index.d.ts.map +1 -1
  166. package/types/middleware/app-router-multisite-middleware.d.ts.map +0 -1
  167. package/types/middleware/locale-middleware.d.ts +0 -35
  168. package/types/middleware/locale-middleware.d.ts.map +0 -1
  169. package/types/middleware/middleware.d.ts.map +0 -1
  170. package/types/middleware/multisite-middleware.d.ts.map +0 -1
  171. package/types/middleware/personalize-middleware.d.ts.map +0 -1
  172. package/types/middleware/redirects-middleware.d.ts.map +0 -1
@@ -9,19 +9,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
10
  });
11
11
  };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
12
15
  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");
16
+ exports.MultisiteProxy = void 0;
17
+ const site_1 = require("@sitecore-content-sdk/content/site");
18
+ const proxy_1 = require("./proxy");
19
+ const editing_1 = require("@sitecore-content-sdk/content/editing");
20
+ const debug_1 = __importDefault(require("../debug"));
18
21
  /**
19
- * Middleware / handler for multisite support
22
+ * Proxy / handler for multisite support
20
23
  * @public
21
24
  */
22
- class MultisiteMiddleware extends middleware_1.MiddlewareBase {
25
+ class MultisiteProxy extends proxy_1.ProxyBase {
23
26
  /**
24
- * @param {MultisiteMiddlewareConfig} [config] Multisite middleware config
27
+ * @param {MultisiteProxyConfig} [config] Multisite proxy config
25
28
  */
26
29
  constructor(config) {
27
30
  super(config);
@@ -29,12 +32,12 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
29
32
  this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
30
33
  var _a, _b, _c;
31
34
  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;
35
+ // Path can be rewritten by previously executed proxy
36
+ const pathname = (res === null || res === void 0 ? void 0 : res.headers.get(proxy_1.REWRITE_HEADER_NAME)) || req.nextUrl.pathname;
34
37
  const language = this.getLanguage(req, res);
35
38
  const hostname = this.getHostHeader(req) || this.defaultHostname;
36
39
  const startTimestamp = Date.now();
37
- core_1.debug.multisite('multisite middleware start: %o', {
40
+ debug_1.default.multisite('multisite proxy start: %o', {
38
41
  pathname,
39
42
  language,
40
43
  hostname,
@@ -44,7 +47,7 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
44
47
  // Additionally, App Router route structure always requires [site] segment, so disabling multisite
45
48
  // will break regular requests even though Preview/Editing modes will still work.
46
49
  if (this.isPreview(req) && !this.isAppRouter(res)) {
47
- core_1.debug.multisite('skipped (preview)');
50
+ debug_1.default.multisite('skipped (preview)');
48
51
  return res;
49
52
  }
50
53
  // Site name preservation is required for Sitecore Preview mode to support navigation between pages
@@ -53,13 +56,13 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
53
56
  if (!this.config.enabled) {
54
57
  this.shouldWarnWhenDisabled(res);
55
58
  if (this.shouldSkipWhenDisabled()) {
56
- core_1.debug.multisite('skipped (multisite middleware is disabled globally)');
59
+ debug_1.default.multisite('skipped (multisite proxy is disabled globally)');
57
60
  return res;
58
61
  }
59
62
  // Continue execution if shouldSkipWhenDisabled returns false (App Router case)
60
63
  }
61
64
  if (this.disabled(req, res)) {
62
- core_1.debug.multisite('skipped (multisite middleware is disabled)');
65
+ debug_1.default.multisite('skipped (multisite proxy is disabled)');
63
66
  return res;
64
67
  }
65
68
  }
@@ -89,9 +92,9 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
89
92
  httpOnly: true,
90
93
  sameSite: 'none',
91
94
  };
92
- // Share site name with the following executed middlewares
95
+ // Share site name with the following executed proxies
93
96
  response.cookies.set(site_1.SITE_KEY, siteName, defaultCookieAttributes);
94
- core_1.debug.multisite('multisite middleware end in %dms: %o', Date.now() - startTimestamp, {
97
+ debug_1.default.multisite('multisite proxy end in %dms: %o', Date.now() - startTimestamp, {
95
98
  rewritePath,
96
99
  siteName,
97
100
  headers: this.extractDebugHeaders(response.headers),
@@ -100,7 +103,7 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
100
103
  return response;
101
104
  }
102
105
  catch (error) {
103
- console.log('Multisite middleware failed:');
106
+ console.log('Multisite proxy failed:');
104
107
  console.log(error);
105
108
  return res;
106
109
  }
@@ -119,9 +122,9 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
119
122
  // Base implementation does nothing - subclasses can override to show warnings
120
123
  }
121
124
  /**
122
- * Determines if middleware should be skipped when multisite is disabled.
125
+ * Determines if proxy should be skipped when multisite is disabled.
123
126
  * Override in subclasses to provide router-specific behavior.
124
- * @returns {boolean} true if middleware should be skipped when disabled
127
+ * @returns {boolean} true if proxy should be skipped when disabled
125
128
  */
126
129
  shouldSkipWhenDisabled() {
127
130
  return true; // Base class skips when disabled
@@ -138,4 +141,4 @@ class MultisiteMiddleware extends middleware_1.MiddlewareBase {
138
141
  });
139
142
  }
140
143
  }
141
- exports.MultisiteMiddleware = MultisiteMiddleware;
144
+ exports.MultisiteProxy = MultisiteProxy;
@@ -8,20 +8,23 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PersonalizeMiddleware = void 0;
13
- const personalize_1 = require("@sitecore-content-sdk/core/personalize");
14
- const core_1 = require("@sitecore-content-sdk/core");
15
- const middleware_1 = require("./middleware");
15
+ exports.PersonalizeProxy = void 0;
16
+ const personalize_1 = require("@sitecore-content-sdk/content/personalize");
17
+ const proxy_1 = require("./proxy");
16
18
  const server_1 = require("@sitecore-cloudsdk/core/server");
17
19
  const server_2 = require("@sitecore-cloudsdk/personalize/server");
20
+ const debug_1 = __importDefault(require("../debug"));
18
21
  /**
19
- * Middleware / handler to support Sitecore Personalize
22
+ * Proxy / handler to support Sitecore Personalize
20
23
  * @public
21
24
  */
22
- class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
25
+ class PersonalizeProxy extends proxy_1.ProxyBase {
23
26
  /**
24
- * @param {PersonalizeMiddlewareConfig} [config] Personalize middleware config
27
+ * @param {PersonalizeProxyConfig} [config] Personalize proxy config
25
28
  */
26
29
  constructor(config) {
27
30
  var _a;
@@ -29,7 +32,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
29
32
  this.config = config;
30
33
  this.handle = (req, res) => __awaiter(this, void 0, void 0, function* () {
31
34
  if (!this.config.enabled) {
32
- core_1.debug.personalize('skipped (personalize middleware is disabled globally)');
35
+ debug_1.default.personalize('skipped (personalize proxy is disabled globally)');
33
36
  return res;
34
37
  }
35
38
  try {
@@ -41,17 +44,17 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
41
44
  const geo = this.config.extractGeoDataCb
42
45
  ? yield this.config.extractGeoDataCb(req)
43
46
  : undefined;
44
- core_1.debug.personalize('personalize middleware start: %o', Object.assign(Object.assign({ pathname,
47
+ debug_1.default.personalize('personalize proxy start: %o', Object.assign(Object.assign({ pathname,
45
48
  language,
46
49
  hostname }, (geo && { geo })), { headers: this.extractDebugHeaders(req.headers) }));
47
50
  if (this.disabled(req, res)) {
48
- core_1.debug.personalize('skipped (personalize middleware is disabled)');
51
+ debug_1.default.personalize('skipped (personalize proxy is disabled)');
49
52
  return res;
50
53
  }
51
54
  if (res.redirected || // Don't attempt to personalize a redirect
52
55
  this.isPreview(req) // No need to personalize for preview (layout data is already prepared for preview)
53
56
  ) {
54
- core_1.debug.personalize('skipped (%s)', res.redirected ? 'redirected' : 'preview');
57
+ debug_1.default.personalize('skipped (%s)', res.redirected ? 'redirected' : 'preview');
55
58
  return res;
56
59
  }
57
60
  const site = this.getSite(req, res);
@@ -63,20 +66,20 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
63
66
  const personalizeInfo = yield this.personalizeService.getPersonalizeInfo(pathname, language, site.name);
64
67
  if (!personalizeInfo) {
65
68
  // Likely an invalid route / language
66
- core_1.debug.personalize('skipped (personalize info not found)');
69
+ debug_1.default.personalize('skipped (personalize info not found)');
67
70
  return res;
68
71
  }
69
72
  if (personalizeInfo.variantIds.length === 0) {
70
- core_1.debug.personalize('skipped (no personalization configured)');
73
+ debug_1.default.personalize('skipped (no personalization configured)');
71
74
  return res;
72
75
  }
73
76
  if (this.isPrefetch(req)) {
74
- core_1.debug.personalize('skipped (prefetch)');
77
+ debug_1.default.personalize('skipped (prefetch)');
75
78
  // Personalized, but this is a prefetch request.
76
79
  // In this case, don't execute a personalize request; otherwise, the metrics for component A/B experiments would be inaccurate.
77
80
  // Disable preflight caching to force revalidation on client-side navigation (personalization WILL be influenced).
78
- // Note the reason we don't move this any earlier in the middleware is that we would then be sacrificing performance for non-personalized pages.
79
- res.headers.set('x-middleware-cache', 'no-cache');
81
+ // Note the reason we don't move this any earlier in the proxy is that we would then be sacrificing performance for non-personalized pages.
82
+ res.headers.set('x-proxy-cache', 'no-cache');
80
83
  res.headers.set('Cache-Control', 'no-store, must-revalidate');
81
84
  return res;
82
85
  }
@@ -94,7 +97,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
94
97
  const variantId = personalization.variantId;
95
98
  if (variantId) {
96
99
  if (!execution.variantIds.includes(variantId)) {
97
- core_1.debug.personalize('invalid variant %s', variantId);
100
+ debug_1.default.personalize('invalid variant %s', variantId);
98
101
  }
99
102
  else {
100
103
  identifiedVariantIds.push(variantId);
@@ -102,32 +105,32 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
102
105
  }
103
106
  })));
104
107
  if (identifiedVariantIds.length === 0) {
105
- core_1.debug.personalize('skipped (no variant(s) identified)');
108
+ debug_1.default.personalize('skipped (no variant(s) identified)');
106
109
  return res;
107
110
  }
108
- // Path can be rewritten by previously executed middleware
109
- const basePath = (res === null || res === void 0 ? void 0 : res.headers.get(middleware_1.REWRITE_HEADER_NAME)) || pathname;
111
+ // Path can be rewritten by previously executed proxy
112
+ const basePath = (res === null || res === void 0 ? void 0 : res.headers.get(proxy_1.REWRITE_HEADER_NAME)) || pathname;
110
113
  // Rewrite to persononalized path
111
114
  const rewritePath = (0, personalize_1.getPersonalizedRewrite)(basePath, identifiedVariantIds);
112
115
  const response = this.rewrite(rewritePath, req, res);
113
116
  // Disable preflight caching to force revalidation on client-side navigation (personalization MAY be influenced).
114
117
  // See https://github.com/vercel/next.js/pull/32767
115
- response.headers.set('x-middleware-cache', 'no-cache');
116
- core_1.debug.personalize('personalize middleware end in %dms: %o', Date.now() - startTimestamp, {
118
+ response.headers.set('x-proxy-cache', 'no-cache');
119
+ debug_1.default.personalize('personalize proxy end in %dms: %o', Date.now() - startTimestamp, {
117
120
  rewritePath,
118
121
  headers: this.extractDebugHeaders(response.headers),
119
122
  });
120
123
  return response;
121
124
  }
122
125
  catch (error) {
123
- console.log('Personalize middleware failed:');
126
+ console.log('Personalize proxy failed:');
124
127
  console.log(error);
125
128
  return res;
126
129
  }
127
130
  });
128
131
  // Validate edge config is present - personalize requires Edge platform
129
132
  if (!this.config.contextId && !this.config.clientContextId) {
130
- console.warn('[PersonalizeMiddleware] Personalize middleware requires Edge configuration (contextId/clientContextId). ' +
133
+ console.warn('[PersonalizeProxy] Personalize proxy requires Edge configuration (contextId/clientContextId). ' +
131
134
  'Personalize features will be disabled. This is expected in local container development.');
132
135
  // Set to null to indicate service is disabled
133
136
  this.personalizeService = null;
@@ -153,9 +156,9 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
153
156
  });
154
157
  }
155
158
  disabled(req, res) {
156
- // Check if API config is missing - if so, disable the middleware
159
+ // Check if API config is missing - if so, disable the proxy
157
160
  if (!this.personalizeService) {
158
- core_1.debug.personalize('skipped (personalize service not configured - edge config required)');
161
+ debug_1.default.personalize('skipped (personalize service not configured - edge config required)');
159
162
  return true;
160
163
  }
161
164
  // ignore files
@@ -188,7 +191,7 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
188
191
  personalize(_a, request_1) {
189
192
  return __awaiter(this, arguments, void 0, function* ({ params, friendlyId, language, timeout, variantIds, geo, }, request) {
190
193
  var _b;
191
- core_1.debug.personalize('executing experience for %s %o', friendlyId, params);
194
+ debug_1.default.personalize('executing experience for %s %o', friendlyId, params);
192
195
  return (yield (0, server_2.personalize)(request, Object.assign({ channel: this.config.channel || 'WEB', currency: (_b = this.config.currency) !== null && _b !== void 0 ? _b : 'USD', friendlyId,
193
196
  params,
194
197
  language, pageVariantIds: variantIds }, (geo && { geo })), { timeout }));
@@ -241,4 +244,4 @@ class PersonalizeMiddleware extends middleware_1.MiddlewareBase {
241
244
  }, results);
242
245
  }
243
246
  }
244
- exports.PersonalizeMiddleware = PersonalizeMiddleware;
247
+ exports.PersonalizeProxy = PersonalizeProxy;
@@ -8,26 +8,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.defineMiddleware = exports.MiddlewareBase = exports.Middleware = exports.LOCALE_HEADER_NAME = exports.REWRITE_HEADER_NAME = void 0;
13
- const site_1 = require("@sitecore-content-sdk/core/site");
14
- const core_1 = require("@sitecore-content-sdk/core");
15
+ exports.defineProxy = exports.ProxyBase = exports.ProxyHandler = exports.LOCALE_HEADER_NAME = exports.REWRITE_HEADER_NAME = void 0;
16
+ const site_1 = require("@sitecore-content-sdk/content/site");
15
17
  const server_1 = require("next/server");
16
- const client_1 = require("@sitecore-content-sdk/core/client");
18
+ const client_1 = require("@sitecore-content-sdk/content/client");
19
+ const debug_1 = __importDefault(require("../debug"));
17
20
  exports.REWRITE_HEADER_NAME = 'x-sc-rewrite';
18
21
  exports.LOCALE_HEADER_NAME = 'x-sc-locale';
19
22
  /**
20
- * Middleware class to be extended by all middleware implementations
23
+ * Proxy handler class to be extended by all proxy implementations
21
24
  * @public
22
25
  */
23
- class Middleware {
26
+ class ProxyHandler {
24
27
  }
25
- exports.Middleware = Middleware;
28
+ exports.ProxyHandler = ProxyHandler;
26
29
  /**
27
- * Base middleware class with common methods
30
+ * Base proxy class with common methods
28
31
  * @public
29
32
  */
30
- class MiddlewareBase extends Middleware {
33
+ class ProxyBase extends ProxyHandler {
31
34
  constructor(config) {
32
35
  super();
33
36
  this.config = config;
@@ -64,14 +67,14 @@ class MiddlewareBase extends Middleware {
64
67
  const isKnownDevice = isMobile || isKnownPlatform;
65
68
  const purpose = req.headers.get('purpose');
66
69
  const nextRouterPrefetch = req.headers.get('Next-Router-Prefetch');
67
- const middlewarePrefetch = req.headers.get('x-middleware-prefetch');
70
+ const proxyPrefetch = req.headers.get('x-middleware-prefetch');
68
71
  // Some real navigations on different devices may incorrectly include 'prefetch' headers.
69
72
  // To avoid skipping personalization in such cases, we treat 'x-middleware-prefetch' as a more reliable signal of true prefetch behavior.
70
- if (isKnownDevice && middlewarePrefetch === '1') {
73
+ if (isKnownDevice && proxyPrefetch === '1') {
71
74
  return false;
72
75
  }
73
76
  // Otherwise, standard prefetch detection
74
- return purpose === 'prefetch' || nextRouterPrefetch === '1' || middlewarePrefetch === '1';
77
+ return purpose === 'prefetch' || nextRouterPrefetch === '1' || proxyPrefetch === '1';
75
78
  }
76
79
  disabled(req, res) {
77
80
  const { pathname } = req.nextUrl;
@@ -82,7 +85,7 @@ class MiddlewareBase extends Middleware {
82
85
  }
83
86
  /**
84
87
  * Safely extract all headers for debug logging
85
- * Necessary to avoid middleware issue https://github.com/vercel/next.js/issues/39765
88
+ * Necessary to avoid proxy issue https://github.com/vercel/next.js/issues/39765
86
89
  * @param {Headers} incomingHeaders Incoming headers
87
90
  * @returns Object with headers as key/value pairs
88
91
  */
@@ -106,7 +109,7 @@ class MiddlewareBase extends Middleware {
106
109
  }
107
110
  /**
108
111
  * Extract language from locale header of the response
109
- * set by LocaleMiddleware for app router application
112
+ * set by LocaleProxy for app router application
110
113
  * @param {NextResponse} res response
111
114
  * @returns {string | undefined} language or undefined if not found
112
115
  */
@@ -160,36 +163,36 @@ class MiddlewareBase extends Middleware {
160
163
  // Note an absolute URL is required: https://nextjs.org/docs/messages/middleware-relative-urls
161
164
  const rewriteUrl = req.nextUrl.clone();
162
165
  rewriteUrl.pathname = rewritePath;
163
- const response = server_1.NextResponse.rewrite(rewriteUrl, res);
164
- // Share rewrite path with following executed middlewares
166
+ // NextResponse.rewrite requires a string URL, not a NextURL object
167
+ const response = server_1.NextResponse.rewrite(rewriteUrl.href, res);
168
+ // Share rewrite path with following executed proxies
165
169
  if (!skipHeader) {
166
170
  response.headers.set(exports.REWRITE_HEADER_NAME, rewritePath);
167
171
  }
168
172
  return response;
169
173
  }
170
174
  }
171
- exports.MiddlewareBase = MiddlewareBase;
175
+ exports.ProxyBase = ProxyBase;
172
176
  /**
173
- * Define a middleware with a list of middlewares
174
- * @param {Middleware[]} middlewares List of middlewares to execute
177
+ * Define a proxy with a list of proxy handlers
178
+ * @param {ProxyHandler[]} proxies List of proxy handlers to execute
175
179
  * @public
176
180
  */
177
- const defineMiddleware = (...middlewares) => {
181
+ const defineProxy = (...proxies) => {
178
182
  return {
179
183
  /**
180
- * Execute all middlewares
184
+ * Execute all proxies
181
185
  * @param {NextRequest} req request
182
- * @param {NextFetchEvent} ev fetch event
183
186
  * @param {NextResponse} [res] response
184
187
  */
185
- exec: (req, ev, res) => __awaiter(void 0, void 0, void 0, function* () {
188
+ exec: (req, res) => __awaiter(void 0, void 0, void 0, function* () {
186
189
  const response = res || server_1.NextResponse.next();
187
- core_1.debug.common('middleware start');
190
+ debug_1.default.common('proxy start');
188
191
  const start = Date.now();
189
- const middlewareResponse = yield middlewares.reduce((p, middleware) => p.then((res) => middleware.handle(req, res, ev)), Promise.resolve(response));
190
- core_1.debug.common('middleware end in %dms', Date.now() - start);
191
- return middlewareResponse;
192
+ const proxyResponse = yield proxies.reduce((p, proxy) => p.then((res) => proxy.handle(req, res)), Promise.resolve(response));
193
+ debug_1.default.common('proxy end in %dms', Date.now() - start);
194
+ return proxyResponse;
192
195
  }),
193
196
  };
194
197
  };
195
- exports.defineMiddleware = defineMiddleware;
198
+ exports.defineProxy = defineProxy;