@akinon/next 1.93.0-snapshot-ZERO-3574-20250813140510 → 1.93.0

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 (54) hide show
  1. package/CHANGELOG.md +26 -1244
  2. package/__tests__/next-config.test.ts +10 -1
  3. package/bin/pz-prebuild.js +1 -0
  4. package/components/accordion.tsx +5 -20
  5. package/components/file-input.tsx +3 -65
  6. package/components/input.tsx +0 -2
  7. package/components/link.tsx +12 -16
  8. package/components/modal.tsx +16 -32
  9. package/components/plugin-module.tsx +3 -35
  10. package/components/selected-payment-option-view.tsx +0 -11
  11. package/data/client/checkout.ts +4 -25
  12. package/data/server/category.ts +28 -48
  13. package/data/server/flatpage.ts +12 -16
  14. package/data/server/landingpage.ts +12 -16
  15. package/data/server/list.ts +13 -23
  16. package/data/server/product.ts +39 -66
  17. package/data/server/special-page.ts +12 -16
  18. package/data/urls.ts +2 -7
  19. package/hocs/server/with-segment-defaults.tsx +2 -5
  20. package/hooks/use-localization.ts +3 -2
  21. package/instrumentation/node.ts +13 -15
  22. package/jest.config.js +1 -7
  23. package/lib/cache-handler.mjs +52 -35
  24. package/lib/cache.ts +0 -2
  25. package/middlewares/checkout-provider.ts +1 -1
  26. package/middlewares/complete-gpay.ts +2 -6
  27. package/middlewares/complete-masterpass.ts +2 -7
  28. package/middlewares/default.ts +183 -232
  29. package/middlewares/index.ts +1 -3
  30. package/middlewares/locale.ts +1 -9
  31. package/middlewares/redirection-payment.ts +2 -6
  32. package/middlewares/saved-card-redirection.ts +2 -7
  33. package/middlewares/three-d-redirection.ts +2 -7
  34. package/middlewares/url-redirection.ts +15 -9
  35. package/package.json +3 -3
  36. package/plugins.d.ts +0 -10
  37. package/plugins.js +1 -4
  38. package/redux/middlewares/checkout.ts +2 -15
  39. package/redux/reducers/checkout.ts +1 -9
  40. package/sentry/index.ts +17 -54
  41. package/types/commerce/order.ts +0 -1
  42. package/types/index.ts +1 -42
  43. package/utils/app-fetch.ts +2 -7
  44. package/utils/index.ts +10 -34
  45. package/utils/redirect.ts +6 -31
  46. package/with-pz-config.js +5 -1
  47. package/__tests__/redirect.test.ts +0 -319
  48. package/api/image-proxy.ts +0 -75
  49. package/api/similar-product-list.ts +0 -84
  50. package/api/similar-products.ts +0 -120
  51. package/data/server/basket.ts +0 -72
  52. package/hooks/use-loyalty-availability.ts +0 -21
  53. package/middlewares/wallet-complete-redirection.ts +0 -203
  54. package/utils/redirect-ignore.ts +0 -35
@@ -11,8 +11,7 @@ import {
11
11
  withRedirectionPayment,
12
12
  withSavedCardRedirection,
13
13
  withThreeDRedirection,
14
- withUrlRedirection,
15
- withWalletCompleteRedirection
14
+ withUrlRedirection
16
15
  } from '.';
17
16
  import { urlLocaleMatcherRegex } from '../utils';
18
17
  import withCurrency from './currency';
@@ -229,173 +228,144 @@ const withPzDefault =
229
228
  withCompleteGpay(
230
229
  withCompleteMasterpass(
231
230
  withSavedCardRedirection(
232
- withWalletCompleteRedirection(
233
- async (
234
- req: PzNextRequest,
235
- event: NextFetchEvent
236
- ) => {
237
- let middlewareResult: NextResponse | void =
238
- NextResponse.next();
239
-
240
- try {
241
- const { locale, prettyUrl, currency } =
242
- req.middlewareParams.rewrites;
243
- const { defaultLocaleValue } =
244
- Settings.localization;
245
- const url = req.nextUrl.clone();
246
- const pathnameWithoutLocale =
247
- url.pathname.replace(
248
- urlLocaleMatcherRegex,
231
+ async (req: PzNextRequest, event: NextFetchEvent) => {
232
+ let middlewareResult: NextResponse | void =
233
+ NextResponse.next();
234
+
235
+ try {
236
+ const { locale, prettyUrl, currency } =
237
+ req.middlewareParams.rewrites;
238
+ const { defaultLocaleValue } =
239
+ Settings.localization;
240
+ const url = req.nextUrl.clone();
241
+ const pathnameWithoutLocale =
242
+ url.pathname.replace(urlLocaleMatcherRegex, '');
243
+
244
+ middlewareResult = (await middleware(
245
+ req,
246
+ event
247
+ )) as NextResponse | void;
248
+
249
+ let customRewriteUrlDiff = '';
250
+
251
+ if (
252
+ middlewareResult instanceof NextResponse &&
253
+ middlewareResult.headers.get(
254
+ 'pz-override-response'
255
+ ) &&
256
+ middlewareResult.headers.get(
257
+ 'x-middleware-rewrite'
258
+ )
259
+ ) {
260
+ const rewriteUrl = new URL(
261
+ middlewareResult.headers.get(
262
+ 'x-middleware-rewrite'
263
+ )
264
+ );
265
+ const originalUrl = new URL(req.url);
266
+ customRewriteUrlDiff =
267
+ rewriteUrl.pathname.replace(
268
+ originalUrl.pathname,
249
269
  ''
250
270
  );
271
+ }
272
+
273
+ url.basePath = `/${commerceUrl}`;
274
+ url.pathname = `/${
275
+ locale.length ? `${locale}/` : ''
276
+ }${currency}/${customRewriteUrlDiff}${
277
+ prettyUrl ?? pathnameWithoutLocale
278
+ }`.replace(/\/+/g, '/');
279
+
280
+ if (
281
+ Settings.usePrettyUrlRoute &&
282
+ url.searchParams.toString().length > 0 &&
283
+ !Object.entries(ROUTES).find(([, value]) =>
284
+ new RegExp(`^${value}/?$`).test(
285
+ pathnameWithoutLocale
286
+ )
287
+ )
288
+ ) {
289
+ url.pathname =
290
+ url.pathname +
291
+ (/\/$/.test(url.pathname) ? '' : '/') +
292
+ `searchparams|${encodeURIComponent(
293
+ url.searchParams.toString()
294
+ )}`;
295
+ }
251
296
 
252
- middlewareResult = (await middleware(
253
- req,
254
- event
255
- )) as NextResponse | void;
297
+ if (
298
+ !req.middlewareParams.found &&
299
+ Settings.customNotFoundEnabled
300
+ ) {
301
+ const pathname = url.pathname
302
+ .replace(/\/+$/, '')
303
+ .split('/');
304
+ url.pathname = url.pathname.replace(
305
+ pathname.pop(),
306
+ 'pz-not-found'
307
+ );
308
+ }
256
309
 
257
- let customRewriteUrlDiff = '';
310
+ Settings.rewrites.forEach((rewrite) => {
311
+ url.pathname = url.pathname.replace(
312
+ rewrite.source,
313
+ rewrite.destination
314
+ );
315
+ });
258
316
 
317
+ // if middleware.ts has a return value for current url
318
+ if (middlewareResult instanceof NextResponse) {
319
+ // pz-override-response header is used to prevent 404 page for custom responses.
259
320
  if (
260
- middlewareResult instanceof NextResponse &&
261
321
  middlewareResult.headers.get(
262
322
  'pz-override-response'
263
- ) &&
264
- middlewareResult.headers.get(
265
- 'x-middleware-rewrite'
266
- )
323
+ ) !== 'true'
267
324
  ) {
268
- const rewriteUrl = new URL(
269
- middlewareResult.headers.get(
270
- 'x-middleware-rewrite'
271
- )
325
+ middlewareResult.headers.set(
326
+ 'x-middleware-rewrite',
327
+ url.href
272
328
  );
273
- const originalUrl = new URL(req.url);
274
- customRewriteUrlDiff =
275
- rewriteUrl.pathname.replace(
276
- originalUrl.pathname,
277
- ''
278
- );
279
- }
280
-
281
- url.basePath = `/${commerceUrl}`;
282
- url.pathname = `/${
283
- locale.length ? `${locale}/` : ''
284
- }${currency}/${customRewriteUrlDiff}${
285
- prettyUrl ?? pathnameWithoutLocale
286
- }`.replace(/\/+/g, '/');
287
-
288
- if (
289
- Settings.usePrettyUrlRoute &&
290
- url.searchParams.toString().length > 0 &&
291
- !Object.entries(ROUTES).find(([, value]) =>
292
- new RegExp(`^${value}/?$`).test(
293
- pathnameWithoutLocale
294
- )
295
- )
329
+ } else if (
330
+ middlewareResult.headers.get(
331
+ 'x-middleware-rewrite'
332
+ ) &&
333
+ middlewareResult.headers.get(
334
+ 'pz-override-response'
335
+ ) === 'true'
296
336
  ) {
297
- url.pathname =
298
- url.pathname +
299
- (/\/$/.test(url.pathname) ? '' : '/') +
300
- `searchparams|${encodeURIComponent(
301
- url.searchParams.toString()
302
- )}`;
303
- }
304
-
305
- Settings.rewrites.forEach((rewrite) => {
306
- url.pathname = url.pathname.replace(
307
- rewrite.source,
308
- rewrite.destination
309
- );
310
- });
311
-
312
- // if middleware.ts has a return value for current url
313
- if (middlewareResult instanceof NextResponse) {
314
- // pz-override-response header is used to prevent 404 page for custom responses.
315
- if (
316
- middlewareResult.headers.get(
317
- 'pz-override-response'
318
- ) !== 'true'
319
- ) {
320
- middlewareResult.headers.set(
321
- 'x-middleware-rewrite',
322
- url.href
323
- );
324
- } else if (
325
- middlewareResult.headers.get(
326
- 'x-middleware-rewrite'
327
- ) &&
328
- middlewareResult.headers.get(
329
- 'pz-override-response'
330
- ) === 'true'
331
- ) {
332
- middlewareResult =
333
- NextResponse.rewrite(url);
334
- }
335
- } else {
336
- // if middleware.ts doesn't have a return value.
337
- // e.g. NextResponse.next() doesn't exist in middleware.ts
338
-
339
337
  middlewareResult = NextResponse.rewrite(url);
340
338
  }
339
+ } else {
340
+ // if middleware.ts doesn't have a return value.
341
+ // e.g. NextResponse.next() doesn't exist in middleware.ts
341
342
 
342
- if (
343
- !req.middlewareParams.found &&
344
- Settings.customNotFoundEnabled
345
- ) {
346
- const pathSegments = url.pathname
347
- .replace(/\/+$/, '')
348
- .split('/');
349
- if (pathSegments.length >= 3) {
350
- url.pathname = `/${pathSegments[1]}/${pathSegments[2]}/pz-not-found`;
351
- } else {
352
- url.pathname = '/pz-not-found';
353
- }
354
-
355
- middlewareResult = NextResponse.rewrite(url, {
356
- status: 404
357
- });
358
- }
359
-
360
- const { localeUrlStrategy } =
361
- Settings.localization;
362
-
363
- const fallbackHost =
364
- req.headers.get('x-forwarded-host') ||
365
- req.headers.get('host');
366
- const hostname =
367
- process.env.NEXT_PUBLIC_URL ||
368
- `https://${fallbackHost}`;
369
- const rootHostname =
370
- localeUrlStrategy ===
371
- LocaleUrlStrategy.Subdomain
372
- ? getRootHostname(hostname)
373
- : null;
374
-
375
- if (
376
- !url.pathname.startsWith(
377
- `/${currency}/orders`
378
- )
379
- ) {
380
- middlewareResult.cookies.set(
381
- 'pz-locale',
382
- locale?.length > 0
383
- ? locale
384
- : defaultLocaleValue,
385
- {
386
- domain: rootHostname,
387
- sameSite: 'none',
388
- secure: true,
389
- expires: new Date(
390
- Date.now() + 1000 * 60 * 60 * 24 * 7
391
- ) // 7 days
392
- }
393
- );
394
- }
343
+ middlewareResult = NextResponse.rewrite(url);
344
+ }
395
345
 
346
+ const { localeUrlStrategy } =
347
+ Settings.localization;
348
+
349
+ const fallbackHost =
350
+ req.headers.get('x-forwarded-host') ||
351
+ req.headers.get('host');
352
+ const hostname =
353
+ process.env.NEXT_PUBLIC_URL ||
354
+ `https://${fallbackHost}`;
355
+ const rootHostname =
356
+ localeUrlStrategy ===
357
+ LocaleUrlStrategy.Subdomain
358
+ ? getRootHostname(hostname)
359
+ : null;
360
+
361
+ if (
362
+ !url.pathname.startsWith(`/${currency}/orders`)
363
+ ) {
396
364
  middlewareResult.cookies.set(
397
- 'pz-currency',
398
- currency,
365
+ 'pz-locale',
366
+ locale?.length > 0
367
+ ? locale
368
+ : defaultLocaleValue,
399
369
  {
400
370
  domain: rootHostname,
401
371
  sameSite: 'none',
@@ -405,101 +375,82 @@ const withPzDefault =
405
375
  ) // 7 days
406
376
  }
407
377
  );
378
+ }
408
379
 
409
- if (
410
- !url.pathname.startsWith(
411
- `/${currency}/orders`
412
- )
413
- ) {
414
- const currentCookieLocale =
415
- req.cookies.get('pz-locale')?.value;
416
-
417
- const urlHasExplicitLocale =
418
- url.pathname.match(urlLocaleMatcherRegex);
419
- const shouldUpdateCookie =
420
- !currentCookieLocale ||
421
- urlHasExplicitLocale;
422
-
423
- if (shouldUpdateCookie) {
424
- middlewareResult.cookies.set(
425
- 'pz-locale',
426
- locale?.length > 0
427
- ? locale
428
- : defaultLocaleValue,
429
- {
430
- domain: rootHostname,
431
- sameSite: 'none',
432
- secure: true,
433
- expires: new Date(
434
- Date.now() + 1000 * 60 * 60 * 24 * 7
435
- ) // 7 days
436
- }
437
- );
438
- }
380
+ middlewareResult.cookies.set(
381
+ 'pz-currency',
382
+ currency,
383
+ {
384
+ domain: rootHostname,
385
+ sameSite: 'none',
386
+ secure: true,
387
+ expires: new Date(
388
+ Date.now() + 1000 * 60 * 60 * 24 * 7
389
+ ) // 7 days
439
390
  }
391
+ );
392
+
393
+ if (
394
+ req.cookies.get('pz-locale') &&
395
+ req.cookies.get('pz-locale').value !== locale
396
+ ) {
397
+ logger.debug('Locale changed', {
398
+ locale,
399
+ oldLocale:
400
+ req.cookies.get('pz-locale')?.value,
401
+ ip
402
+ });
403
+ }
440
404
 
441
- if (
442
- req.cookies.get('pz-locale') &&
443
- req.cookies.get('pz-locale').value !== locale
444
- ) {
445
- logger.debug('Locale changed', {
446
- locale,
447
- oldLocale:
448
- req.cookies.get('pz-locale')?.value,
449
- ip
450
- });
451
- }
405
+ middlewareResult.headers.set(
406
+ 'pz-url',
407
+ req.nextUrl.toString()
408
+ );
409
+
410
+ if (req.cookies.get('pz-set-currency')) {
411
+ middlewareResult.cookies.delete(
412
+ 'pz-set-currency'
413
+ );
414
+ }
452
415
 
416
+ if (process.env.ACC_APP_VERSION) {
453
417
  middlewareResult.headers.set(
454
- 'pz-url',
455
- req.nextUrl.toString()
418
+ 'acc-app-version',
419
+ process.env.ACC_APP_VERSION
456
420
  );
421
+ }
457
422
 
458
- if (req.cookies.get('pz-set-currency')) {
459
- middlewareResult.cookies.delete(
460
- 'pz-set-currency'
461
- );
462
- }
423
+ // Set CSRF token if not set
424
+ try {
425
+ const url = `${Settings.commerceUrl}${user.csrfToken}`;
463
426
 
464
- if (process.env.ACC_APP_VERSION) {
465
- middlewareResult.headers.set(
466
- 'acc-app-version',
467
- process.env.ACC_APP_VERSION
427
+ if (!req.cookies.get('csrftoken')) {
428
+ const { csrf_token } = await (
429
+ await fetch(url)
430
+ ).json();
431
+ middlewareResult.cookies.set(
432
+ 'csrftoken',
433
+ csrf_token,
434
+ {
435
+ domain: rootHostname
436
+ }
468
437
  );
469
438
  }
470
-
471
- // Set CSRF token if not set
472
- try {
473
- const url = `${Settings.commerceUrl}${user.csrfToken}`;
474
-
475
- if (!req.cookies.get('csrftoken')) {
476
- const { csrf_token } = await (
477
- await fetch(url)
478
- ).json();
479
- middlewareResult.cookies.set(
480
- 'csrftoken',
481
- csrf_token,
482
- {
483
- domain: rootHostname
484
- }
485
- );
486
- }
487
- } catch (error) {
488
- logger.error('CSRF Error', {
489
- error,
490
- ip
491
- });
492
- }
493
439
  } catch (error) {
494
- logger.error('withPzDefault Error', {
440
+ logger.error('CSRF Error', {
495
441
  error,
496
442
  ip
497
443
  });
498
444
  }
499
-
500
- return middlewareResult;
445
+ } catch (error) {
446
+ logger.error('withPzDefault Error', {
447
+ error,
448
+ ip
449
+ });
501
450
  }
502
- )
451
+
452
+ return middlewareResult;
453
+ }
503
454
  )
504
455
  )
505
456
  )
@@ -9,7 +9,6 @@ import withCompleteGpay from './complete-gpay';
9
9
  import withCompleteMasterpass from './complete-masterpass';
10
10
  import withCheckoutProvider from './checkout-provider';
11
11
  import withSavedCardRedirection from './saved-card-redirection';
12
- import withWalletCompleteRedirection from './wallet-complete-redirection';
13
12
  import { NextRequest } from 'next/server';
14
13
 
15
14
  export {
@@ -23,8 +22,7 @@ export {
23
22
  withCompleteGpay,
24
23
  withCompleteMasterpass,
25
24
  withCheckoutProvider,
26
- withSavedCardRedirection,
27
- withWalletCompleteRedirection
25
+ withSavedCardRedirection
28
26
  };
29
27
 
30
28
  export interface PzNextRequest extends NextRequest {
@@ -23,15 +23,7 @@ const getMatchedLocale = (pathname: string, req: PzNextRequest) => {
23
23
  );
24
24
 
25
25
  if (subDomainLocaleMatched && subDomainLocaleMatched[0]) {
26
- const subdomainLocale = subDomainLocaleMatched[0].slice(1);
27
-
28
- const isValidSubdomainLocale = settings.localization.locales.find(
29
- (l) => l.value === subdomainLocale
30
- );
31
-
32
- if (isValidSubdomainLocale) {
33
- matchedLocale = subdomainLocale;
34
- }
26
+ matchedLocale = subDomainLocaleMatched[0].slice(1);
35
27
  }
36
28
  }
37
29
  }
@@ -35,7 +35,6 @@ const withRedirectionPayment =
35
35
  const searchParams = new URLSearchParams(url.search);
36
36
  const ip = req.headers.get('x-forwarded-for') ?? '';
37
37
  const sessionId = req.cookies.get('osessionid');
38
- const currentLocale = req.middlewareParams?.rewrites?.locale;
39
38
 
40
39
  if (searchParams.get('page') !== 'RedirectionPageCompletePage') {
41
40
  return middleware(req, event);
@@ -47,9 +46,7 @@ const withRedirectionPayment =
47
46
  'Content-Type': 'application/x-www-form-urlencoded',
48
47
  Cookie: req.headers.get('cookie') ?? '',
49
48
  'x-currency': req.cookies.get('pz-currency')?.value ?? '',
50
- 'x-forwarded-for': ip,
51
- 'Accept-Language':
52
- currentLocale ?? req.cookies.get('pz-locale')?.value ?? ''
49
+ 'x-forwarded-for': ip
53
50
  };
54
51
 
55
52
  try {
@@ -149,8 +146,7 @@ const withRedirectionPayment =
149
146
  logger.info('Redirecting to order success page', {
150
147
  middleware: 'redirection-payment',
151
148
  redirectUrlWithLocale,
152
- ip,
153
- setCookie: request.headers.get('set-cookie')
149
+ ip
154
150
  });
155
151
 
156
152
  // Using POST method while redirecting causes an error,
@@ -4,7 +4,6 @@ import { Buffer } from 'buffer';
4
4
  import logger from '../utils/log';
5
5
  import { getUrlPathWithLocale } from '../utils/localization';
6
6
  import { PzNextRequest } from '.';
7
- import { ServerVariables } from '../utils/server-variables';
8
7
 
9
8
  const streamToString = async (stream: ReadableStream<Uint8Array> | null) => {
10
9
  if (stream) {
@@ -35,7 +34,6 @@ const withSavedCardRedirection =
35
34
  const url = req.nextUrl.clone();
36
35
  const ip = req.headers.get('x-forwarded-for') ?? '';
37
36
  const sessionId = req.cookies.get('osessionid');
38
- const currentLocale = req.middlewareParams?.rewrites?.locale;
39
37
 
40
38
  if (url.search.indexOf('SavedCardThreeDSecurePage') === -1) {
41
39
  return middleware(req, event);
@@ -47,9 +45,7 @@ const withSavedCardRedirection =
47
45
  'Content-Type': 'application/x-www-form-urlencoded',
48
46
  Cookie: req.headers.get('cookie') ?? '',
49
47
  'x-currency': req.cookies.get('pz-currency')?.value ?? '',
50
- 'x-forwarded-for': ip,
51
- 'Accept-Language':
52
- currentLocale ?? req.cookies.get('pz-locale')?.value ?? ''
48
+ 'x-forwarded-for': ip
53
49
  };
54
50
 
55
51
  try {
@@ -149,8 +145,7 @@ const withSavedCardRedirection =
149
145
  logger.info('Redirecting to order success page', {
150
146
  middleware: 'saved-card-redirection',
151
147
  redirectUrlWithLocale,
152
- ip,
153
- setCookie: request.headers.get('set-cookie')
148
+ ip
154
149
  });
155
150
 
156
151
  // Using POST method while redirecting causes an error,
@@ -4,7 +4,6 @@ import { Buffer } from 'buffer';
4
4
  import logger from '../utils/log';
5
5
  import { getUrlPathWithLocale } from '../utils/localization';
6
6
  import { PzNextRequest } from '.';
7
- import { ServerVariables } from '../utils/server-variables';
8
7
 
9
8
  const streamToString = async (stream: ReadableStream<Uint8Array> | null) => {
10
9
  if (stream) {
@@ -35,7 +34,6 @@ const withThreeDRedirection =
35
34
  const url = req.nextUrl.clone();
36
35
  const ip = req.headers.get('x-forwarded-for') ?? '';
37
36
  const sessionId = req.cookies.get('osessionid');
38
- const currentLocale = req.middlewareParams?.rewrites?.locale;
39
37
 
40
38
  if (url.search.indexOf('CreditCardThreeDSecurePage') === -1) {
41
39
  return middleware(req, event);
@@ -47,9 +45,7 @@ const withThreeDRedirection =
47
45
  'Content-Type': 'application/x-www-form-urlencoded',
48
46
  Cookie: req.headers.get('cookie') ?? '',
49
47
  'x-currency': req.cookies.get('pz-currency')?.value ?? '',
50
- 'x-forwarded-for': ip,
51
- 'Accept-Language':
52
- currentLocale ?? req.cookies.get('pz-locale')?.value ?? ''
48
+ 'x-forwarded-for': ip
53
49
  };
54
50
 
55
51
  try {
@@ -149,8 +145,7 @@ const withThreeDRedirection =
149
145
  logger.info('Redirecting to order success page', {
150
146
  middleware: 'three-d-redirection',
151
147
  redirectUrlWithLocale,
152
- ip,
153
- setCookie: request.headers.get('set-cookie')
148
+ ip
154
149
  });
155
150
 
156
151
  // Using POST method while redirecting causes an error,
@@ -4,7 +4,6 @@ import { PzNextRequest } from '.';
4
4
  import logger from '../utils/log';
5
5
  import { urlLocaleMatcherRegex } from '../utils';
6
6
  import { getUrlPathWithLocale } from '../utils/localization';
7
- import { shouldIgnoreRedirect } from '../utils/redirect-ignore';
8
7
  import { ROUTES } from 'routes';
9
8
 
10
9
  // This middleware is used to handle url redirections set in Omnitron
@@ -51,7 +50,7 @@ const withUrlRedirection =
51
50
  const location = request.headers.get('location');
52
51
  const redirectUrl = new URL(
53
52
  request.headers.get('location'),
54
- location.startsWith('http') ? '' : url.origin
53
+ location.startsWith('http') ? '' : process.env.NEXT_PUBLIC_URL
55
54
  );
56
55
 
57
56
  redirectUrl.pathname = getUrlPathWithLocale(
@@ -61,13 +60,20 @@ const withUrlRedirection =
61
60
 
62
61
  const setCookies = request.headers.getSetCookie();
63
62
 
64
- if (
65
- shouldIgnoreRedirect(
66
- url.pathname,
67
- req.middlewareParams.rewrites.locale
68
- )
69
- ) {
70
- return middleware(req, event);
63
+ if (settings.commerceRedirectionIgnoreList) {
64
+ const shouldIgnoreRedirect =
65
+ settings.commerceRedirectionIgnoreList.some((ignorePath) =>
66
+ redirectUrl.pathname.startsWith(
67
+ getUrlPathWithLocale(
68
+ ignorePath,
69
+ req.middlewareParams.rewrites.locale
70
+ )
71
+ )
72
+ );
73
+
74
+ if (shouldIgnoreRedirect) {
75
+ return middleware(req, event);
76
+ }
71
77
  }
72
78
 
73
79
  const response = NextResponse.redirect(redirectUrl.toString(), {