@akinon/projectzero 2.0.0-beta.1 → 2.0.0-beta.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 (101) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/app-template/.env.example +5 -0
  3. package/app-template/.gitignore +2 -0
  4. package/app-template/CHANGELOG.md +225 -0
  5. package/app-template/README.md +6 -0
  6. package/app-template/config/prebuild-tests.json +5 -0
  7. package/app-template/{next.config.mjs → next.config.ts} +6 -3
  8. package/app-template/package.json +30 -27
  9. package/app-template/postcss.config.mjs +8 -0
  10. package/app-template/public/locales/en/account.json +4 -0
  11. package/app-template/public/locales/en/common.json +10 -0
  12. package/app-template/public/locales/tr/account.json +4 -0
  13. package/app-template/public/locales/tr/common.json +10 -0
  14. package/app-template/src/__tests__/middleware-matcher.test.ts +135 -0
  15. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/cancellation/page.tsx +93 -4
  16. package/app-template/src/app/[commerce]/[locale]/[currency]/account/orders/[id]/page.tsx +66 -4
  17. package/app-template/src/app/[commerce]/[locale]/[currency]/account/page.tsx +1 -1
  18. package/app-template/src/app/[commerce]/[locale]/[currency]/address/stores/page.tsx +2 -2
  19. package/app-template/src/app/[commerce]/[locale]/[currency]/auth/page.tsx +1 -1
  20. package/app-template/src/app/[commerce]/[locale]/[currency]/basket/page.tsx +2 -2
  21. package/app-template/src/app/[commerce]/[locale]/[currency]/error.tsx +12 -15
  22. package/app-template/src/app/[commerce]/[locale]/[currency]/forms/[pk]/generate/page.tsx +1 -1
  23. package/app-template/src/app/[commerce]/[locale]/[currency]/{pz-not-found/page.tsx → not-found.tsx} +2 -2
  24. package/app-template/src/app/[commerce]/[locale]/[currency]/orders/checkout/page.tsx +7 -4
  25. package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/[node]/route.ts +47 -1
  26. package/app-template/src/assets/globals.scss +162 -34
  27. package/app-template/src/components/__tests__/badge.test.tsx +2 -2
  28. package/app-template/src/components/accordion.tsx +1 -1
  29. package/app-template/src/components/button.tsx +50 -35
  30. package/app-template/src/components/file-input.tsx +44 -2
  31. package/app-template/src/components/input.tsx +3 -3
  32. package/app-template/src/components/modal.tsx +1 -1
  33. package/app-template/src/components/select.tsx +2 -2
  34. package/app-template/src/components/shimmer.tsx +1 -1
  35. package/app-template/src/components/tabs.tsx +2 -2
  36. package/app-template/src/components/types/index.ts +4 -1
  37. package/app-template/src/middleware.ts +1 -0
  38. package/app-template/src/plugins.js +2 -1
  39. package/app-template/src/redux/middlewares/category.ts +1 -1
  40. package/app-template/src/redux/reducers/category.ts +1 -1
  41. package/app-template/src/redux/store.ts +4 -3
  42. package/app-template/src/settings.js +1 -2
  43. package/app-template/src/utils/convert-facet-search-params.ts +1 -1
  44. package/app-template/src/views/account/contact-form.tsx +3 -8
  45. package/app-template/src/views/account/content-header.tsx +2 -3
  46. package/app-template/src/views/account/order.tsx +1 -1
  47. package/app-template/src/views/account/orders/order-cancellation-item.tsx +5 -4
  48. package/app-template/src/views/anonymous-tracking/order-detail/index.tsx +1 -1
  49. package/app-template/src/views/basket/basket-item.tsx +1 -0
  50. package/app-template/src/views/category/category-active-filters.tsx +1 -1
  51. package/app-template/src/views/category/category-header.tsx +12 -6
  52. package/app-template/src/views/category/category-info.tsx +4 -4
  53. package/app-template/src/views/category/filters/index.tsx +2 -2
  54. package/app-template/src/views/checkout/auth.tsx +1 -1
  55. package/app-template/src/views/checkout/layout/header.tsx +1 -1
  56. package/app-template/src/views/checkout/steps/payment/index.tsx +1 -1
  57. package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +1 -1
  58. package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +4 -4
  59. package/app-template/src/views/checkout/steps/shipping/address-box.tsx +3 -3
  60. package/app-template/src/views/checkout/steps/shipping/addresses.tsx +1 -1
  61. package/app-template/src/views/checkout/summary.tsx +2 -2
  62. package/app-template/src/views/header/action-menu.tsx +6 -3
  63. package/app-template/src/views/header/band.tsx +2 -2
  64. package/app-template/src/views/header/mini-basket.tsx +15 -4
  65. package/app-template/src/views/header/mobile-menu.tsx +6 -6
  66. package/app-template/src/views/header/navbar.tsx +1 -1
  67. package/app-template/src/views/header/pwa-back-button.tsx +1 -1
  68. package/app-template/src/views/header/search/index.tsx +16 -4
  69. package/app-template/src/views/header/search/results.tsx +1 -1
  70. package/app-template/src/views/header/user-menu.tsx +3 -1
  71. package/app-template/src/views/installment-options/index.tsx +1 -1
  72. package/app-template/src/views/login/index.tsx +30 -6
  73. package/app-template/src/views/otp-login/index.tsx +12 -14
  74. package/app-template/src/views/product/product-info.tsx +2 -2
  75. package/app-template/src/views/product/slider.tsx +1 -1
  76. package/app-template/src/views/product-pointer-banner-item.tsx +1 -1
  77. package/app-template/src/views/register/index.tsx +29 -4
  78. package/app-template/src/views/sales-contract-modal/index.tsx +17 -17
  79. package/app-template/src/widgets/footer-info.tsx +1 -1
  80. package/app-template/src/widgets/footer-menu.tsx +1 -1
  81. package/app-template/src/widgets/footer-subscription/index.tsx +1 -1
  82. package/app-template/src/widgets/home-stories-eng.tsx +1 -1
  83. package/app-template/tailwind.config.js +1 -137
  84. package/codemods/sentry-9/index.js +30 -0
  85. package/codemods/sentry-9/remove-sentry-configs.js +14 -0
  86. package/codemods/sentry-9/remove-sentry-dependency.js +25 -0
  87. package/codemods/sentry-9/replace-error-page.js +32 -0
  88. package/commands/codemod.ts +18 -0
  89. package/commands/index.ts +3 -1
  90. package/commands/plugins.ts +4 -0
  91. package/dist/codemods/sentry-9/templates/error.js +14 -0
  92. package/dist/commands/codemod.js +16 -0
  93. package/dist/commands/index.js +3 -1
  94. package/dist/commands/plugins.js +4 -0
  95. package/package.json +1 -1
  96. package/app-template/postcss.config.js +0 -6
  97. package/app-template/sentry.client.config.ts +0 -16
  98. package/app-template/sentry.edge.config.ts +0 -3
  99. package/app-template/sentry.properties +0 -4
  100. package/app-template/sentry.server.config.ts +0 -3
  101. package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/loading.tsx +0 -67
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # @akinon/projectzero
2
2
 
3
+ ## 2.0.0-beta.10
4
+
5
+ ### Minor Changes
6
+
7
+ - 2806320: ZERO-3390: Update version tailwindcss, autoprefixer, tailwind-merge, postcss
8
+
9
+ ## 2.0.0-beta.9
10
+
11
+ ### Minor Changes
12
+
13
+ - 0fe7711: ZERO-3387: Upgrade nextjs, eslint-config-next
14
+
15
+ ## 2.0.0-beta.8
16
+
17
+ ## 2.0.0-beta.7
18
+
19
+ ## 2.0.0-beta.6
20
+
21
+ ### Minor Changes
22
+
23
+ - 8f05f9b: ZERO-3250: Beta branch synchronized with Main branch
24
+
25
+ ## 2.0.0-beta.5
26
+
27
+ ## 2.0.0-beta.4
28
+
29
+ ## 2.0.0-beta.3
30
+
31
+ ## 2.0.0-beta.2
32
+
33
+ ### Minor Changes
34
+
35
+ - a006015: ZERO-3116: Add not-found page and update default middleware.
36
+ - 1eeb3d8: ZERO-3116: Add not found page
37
+
3
38
  ## 2.0.0-beta.1
4
39
 
5
40
  ### Minor Changes
@@ -1,9 +1,14 @@
1
1
  NEXTAUTH_SECRET=PDpBb/aSJESgBbPLHw1+jveHXqyvkC7GC1Z82jvE04s=
2
+ # When using dev-ssl command, NEXTAUTH_URL should be updated to https://localhost:3000
2
3
  NEXTAUTH_URL=http://localhost:3000
3
4
  NEXT_PUBLIC_MAP_API_KEY=YOUR_MAP_API_KEY
4
5
  NEXT_PUBLIC_GTM_KEY=GTM_KEY
5
6
  NEXT_PUBLIC_URL=http://localhost:3000
6
7
  SERVICE_BACKEND_URL=https://02fde10fee4440269e695aa10707dfaf.lb.akinoncloud.com
8
+ SITEMAP_S3_BUCKET_NAME=0fb534
9
+
10
+ # LOG_LEVEL_DEV=debug # For more details, please refer to the Logging documentation.
11
+
7
12
  # CACHE_SECRET=KhvhE1go3GDmYJ7PhZLmskqfhYNlPSm6
8
13
  # CACHE_HOST=default:redispw@localhost
9
14
  # CACHE_PORT=6379
@@ -65,3 +65,5 @@ next.config.wizardcopy.js
65
65
 
66
66
  certificates
67
67
  public/locales/*/index.json
68
+
69
+ certificates
@@ -1,5 +1,230 @@
1
1
  # projectzeronext
2
2
 
3
+ ## 2.0.0-beta.10
4
+
5
+ ### Minor Changes
6
+
7
+ - 2806320: ZERO-3390: Update version tailwindcss, autoprefixer, tailwind-merge, postcss
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [2806320]
12
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.10
13
+ - @akinon/pz-one-click-checkout@2.0.0-beta.10
14
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.10
15
+ - @akinon/pz-tamara-extension@2.0.0-beta.10
16
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.10
17
+ - @akinon/pz-tabby-extension@2.0.0-beta.10
18
+ - @akinon/pz-credit-payment@2.0.0-beta.10
19
+ - @akinon/pz-click-collect@2.0.0-beta.10
20
+ - @akinon/pz-masterpass@2.0.0-beta.10
21
+ - @akinon/pz-saved-card@2.0.0-beta.10
22
+ - @akinon/next@2.0.0-beta.10
23
+ - @akinon/pz-akifast@2.0.0-beta.10
24
+ - @akinon/pz-gpay@2.0.0-beta.10
25
+ - @akinon/pz-b2b@2.0.0-beta.10
26
+ - @akinon/pz-bkm@2.0.0-beta.10
27
+ - @akinon/pz-otp@2.0.0-beta.10
28
+
29
+ ## 2.0.0-beta.9
30
+
31
+ ### Minor Changes
32
+
33
+ - 0fe7711: ZERO-3387: Upgrade nextjs, eslint-config-next
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies [0fe7711]
38
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.9
39
+ - @akinon/pz-one-click-checkout@2.0.0-beta.9
40
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.9
41
+ - @akinon/pz-tamara-extension@2.0.0-beta.9
42
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.9
43
+ - @akinon/pz-tabby-extension@2.0.0-beta.9
44
+ - @akinon/pz-credit-payment@2.0.0-beta.9
45
+ - @akinon/pz-click-collect@2.0.0-beta.9
46
+ - @akinon/pz-masterpass@2.0.0-beta.9
47
+ - @akinon/pz-saved-card@2.0.0-beta.9
48
+ - @akinon/next@2.0.0-beta.9
49
+ - @akinon/pz-akifast@2.0.0-beta.9
50
+ - @akinon/pz-gpay@2.0.0-beta.9
51
+ - @akinon/pz-b2b@2.0.0-beta.9
52
+ - @akinon/pz-bkm@2.0.0-beta.9
53
+ - @akinon/pz-otp@2.0.0-beta.9
54
+
55
+ ## 2.0.0-beta.8
56
+
57
+ ### Minor Changes
58
+
59
+ - 071d0f5: ZERO-3352: Resolve Single item size exceeds maxSize error and upgrade dependencies
60
+
61
+ ### Patch Changes
62
+
63
+ - Updated dependencies [071d0f5]
64
+ - @akinon/next@2.0.0-beta.8
65
+ - @akinon/pz-akifast@2.0.0-beta.8
66
+ - @akinon/pz-b2b@2.0.0-beta.8
67
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.8
68
+ - @akinon/pz-bkm@2.0.0-beta.8
69
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.8
70
+ - @akinon/pz-click-collect@2.0.0-beta.8
71
+ - @akinon/pz-credit-payment@2.0.0-beta.8
72
+ - @akinon/pz-gpay@2.0.0-beta.8
73
+ - @akinon/pz-masterpass@2.0.0-beta.8
74
+ - @akinon/pz-one-click-checkout@2.0.0-beta.8
75
+ - @akinon/pz-otp@2.0.0-beta.8
76
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.8
77
+ - @akinon/pz-saved-card@2.0.0-beta.8
78
+ - @akinon/pz-tabby-extension@2.0.0-beta.8
79
+ - @akinon/pz-tamara-extension@2.0.0-beta.8
80
+
81
+ ## 2.0.0-beta.7
82
+
83
+ ### Minor Changes
84
+
85
+ - 1bbba84: ZERO-3291: Update next.js and related dependencies to version 15.2.3
86
+
87
+ ### Patch Changes
88
+
89
+ - @akinon/next@2.0.0-beta.7
90
+ - @akinon/pz-akifast@2.0.0-beta.7
91
+ - @akinon/pz-b2b@2.0.0-beta.7
92
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.7
93
+ - @akinon/pz-bkm@2.0.0-beta.7
94
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.7
95
+ - @akinon/pz-click-collect@2.0.0-beta.7
96
+ - @akinon/pz-credit-payment@2.0.0-beta.7
97
+ - @akinon/pz-gpay@2.0.0-beta.7
98
+ - @akinon/pz-masterpass@2.0.0-beta.7
99
+ - @akinon/pz-one-click-checkout@2.0.0-beta.7
100
+ - @akinon/pz-otp@2.0.0-beta.7
101
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.7
102
+ - @akinon/pz-saved-card@2.0.0-beta.7
103
+ - @akinon/pz-tabby-extension@2.0.0-beta.7
104
+ - @akinon/pz-tamara-extension@2.0.0-beta.7
105
+
106
+ ## 2.0.0-beta.6
107
+
108
+ ### Minor Changes
109
+
110
+ - 8f05f9b: ZERO-3250: Beta branch synchronized with Main branch
111
+
112
+ ### Patch Changes
113
+
114
+ - Updated dependencies [8f05f9b]
115
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.6
116
+ - @akinon/pz-one-click-checkout@2.0.0-beta.6
117
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.6
118
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.6
119
+ - @akinon/pz-tabby-extension@2.0.0-beta.6
120
+ - @akinon/pz-credit-payment@2.0.0-beta.6
121
+ - @akinon/pz-click-collect@2.0.0-beta.6
122
+ - @akinon/pz-masterpass@2.0.0-beta.6
123
+ - @akinon/pz-saved-card@2.0.0-beta.6
124
+ - @akinon/next@2.0.0-beta.6
125
+ - @akinon/pz-akifast@2.0.0-beta.6
126
+ - @akinon/pz-gpay@2.0.0-beta.6
127
+ - @akinon/pz-b2b@2.0.0-beta.6
128
+ - @akinon/pz-bkm@2.0.0-beta.6
129
+ - @akinon/pz-otp@2.0.0-beta.6
130
+
131
+ ## 2.0.0-beta.5
132
+
133
+ ### Patch Changes
134
+
135
+ - Updated dependencies [e791eab]
136
+ - @akinon/next@2.0.0-beta.5
137
+ - @akinon/pz-akifast@2.0.0-beta.5
138
+ - @akinon/pz-b2b@2.0.0-beta.5
139
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.5
140
+ - @akinon/pz-bkm@2.0.0-beta.5
141
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.5
142
+ - @akinon/pz-click-collect@2.0.0-beta.5
143
+ - @akinon/pz-credit-payment@2.0.0-beta.5
144
+ - @akinon/pz-gpay@2.0.0-beta.5
145
+ - @akinon/pz-masterpass@2.0.0-beta.5
146
+ - @akinon/pz-one-click-checkout@2.0.0-beta.5
147
+ - @akinon/pz-otp@2.0.0-beta.5
148
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.5
149
+ - @akinon/pz-saved-card@2.0.0-beta.5
150
+ - @akinon/pz-tabby-extension@2.0.0-beta.5
151
+
152
+ ## 2.0.0-beta.4
153
+
154
+ ### Minor Changes
155
+
156
+ - 8b5509a: ZERO-3123: Upgrade Next.js to version 15.1.3 and rename configuration file to TypeScript
157
+
158
+ ### Patch Changes
159
+
160
+ - @akinon/next@2.0.0-beta.4
161
+ - @akinon/pz-akifast@2.0.0-beta.4
162
+ - @akinon/pz-b2b@2.0.0-beta.4
163
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.4
164
+ - @akinon/pz-bkm@2.0.0-beta.4
165
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.4
166
+ - @akinon/pz-click-collect@2.0.0-beta.4
167
+ - @akinon/pz-credit-payment@2.0.0-beta.4
168
+ - @akinon/pz-gpay@2.0.0-beta.4
169
+ - @akinon/pz-masterpass@2.0.0-beta.4
170
+ - @akinon/pz-one-click-checkout@2.0.0-beta.4
171
+ - @akinon/pz-otp@2.0.0-beta.4
172
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.4
173
+ - @akinon/pz-saved-card@2.0.0-beta.4
174
+ - @akinon/pz-tabby-extension@2.0.0-beta.4
175
+
176
+ ## 2.0.0-beta.3
177
+
178
+ ### Patch Changes
179
+
180
+ - Updated dependencies [5536b80]
181
+ - @akinon/next@2.0.0-beta.3
182
+ - @akinon/pz-akifast@2.0.0-beta.3
183
+ - @akinon/pz-b2b@2.0.0-beta.3
184
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.3
185
+ - @akinon/pz-bkm@2.0.0-beta.3
186
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.3
187
+ - @akinon/pz-click-collect@2.0.0-beta.3
188
+ - @akinon/pz-credit-payment@2.0.0-beta.3
189
+ - @akinon/pz-gpay@2.0.0-beta.3
190
+ - @akinon/pz-masterpass@2.0.0-beta.3
191
+ - @akinon/pz-one-click-checkout@2.0.0-beta.3
192
+ - @akinon/pz-otp@2.0.0-beta.3
193
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.3
194
+ - @akinon/pz-saved-card@2.0.0-beta.3
195
+ - @akinon/pz-tabby-extension@2.0.0-beta.3
196
+
197
+ ## 2.0.0-beta.2
198
+
199
+ ### Minor Changes
200
+
201
+ - a006015: ZERO-3116: Add not-found page and update default middleware.
202
+ - 1eeb3d8: ZERO-3116: Add not found page
203
+ - dd69cc6: ZERO-3079: Modularize pre-order middleware
204
+
205
+ ### Patch Changes
206
+
207
+ - Updated dependencies [a006015]
208
+ - Updated dependencies [999168d]
209
+ - Updated dependencies [1eeb3d8]
210
+ - Updated dependencies [86a5a62]
211
+ - Updated dependencies [dd69cc6]
212
+ - @akinon/pz-checkout-gift-pack@2.0.0-beta.2
213
+ - @akinon/pz-one-click-checkout@2.0.0-beta.2
214
+ - @akinon/pz-basket-gift-pack@2.0.0-beta.2
215
+ - @akinon/pz-pay-on-delivery@2.0.0-beta.2
216
+ - @akinon/pz-tabby-extension@2.0.0-beta.2
217
+ - @akinon/pz-credit-payment@2.0.0-beta.2
218
+ - @akinon/pz-click-collect@2.0.0-beta.2
219
+ - @akinon/pz-masterpass@2.0.0-beta.2
220
+ - @akinon/pz-saved-card@2.0.0-beta.2
221
+ - @akinon/next@2.0.0-beta.2
222
+ - @akinon/pz-akifast@2.0.0-beta.2
223
+ - @akinon/pz-gpay@2.0.0-beta.2
224
+ - @akinon/pz-b2b@2.0.0-beta.2
225
+ - @akinon/pz-bkm@2.0.0-beta.2
226
+ - @akinon/pz-otp@2.0.0-beta.2
227
+
3
228
  ## 2.0.0-beta.1
4
229
 
5
230
  ### Minor Changes
@@ -6,6 +6,12 @@ Headless Akinon Commerce Cloud Storefront.
6
6
 
7
7
  Run `cp .env.example .env && yarn` command at project root and all dependencies should be installed.
8
8
 
9
+ ## Environment Variables
10
+
11
+ ### Required Environment Variables
12
+
13
+ - `SITEMAP_S3_BUCKET_NAME`: S3 bucket name for XML sitemaps (e.g., "0fb534"). This is required for the sitemap route to function correctly.
14
+
9
15
  ### Build
10
16
 
11
17
  To build the app, run the following command:
@@ -0,0 +1,5 @@
1
+ {
2
+ "tests": [
3
+ "test:middleware"
4
+ ]
5
+ }
@@ -1,9 +1,9 @@
1
+ import type { NextConfig } from 'next';
1
2
  import withPWA from 'next-pwa';
2
3
  import { withSentryConfig } from '@sentry/nextjs';
3
4
  import withPzConfig from '@akinon/next/with-pz-config.js';
4
5
 
5
- /** @type {import('next').NextConfig} */
6
- const nextConfig = {
6
+ const nextConfig: NextConfig = {
7
7
  // Your Next.js config to override defaults
8
8
  rewrites: async () => {
9
9
  return [
@@ -26,7 +26,10 @@ const withPwaConfig = withPWA({
26
26
 
27
27
  const sentryConfig = {
28
28
  silent: true,
29
- dryRun: !process.env.SENTRY_DSN
29
+ dryRun: !process.env.SENTRY_DSN,
30
+ org: 'akinon'
31
+ // project: 'enter_your_project_name_here',
32
+ // authToken: 'enter_your_auth_token_here'
30
33
  };
31
34
 
32
35
  const enhancedConfig = withPzConfig(nextConfig);
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "projectzeronext",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.10",
4
4
  "private": true,
5
5
  "license": "MIT",
6
6
  "scripts": {
7
7
  "clean": "rm -rf node_modules && rm -rf .next",
8
8
  "dev": "next dev",
9
+ "dev-ssl": "next dev --experimental-https",
9
10
  "build": "next build",
10
11
  "start": "next start -p 8008",
11
12
  "type-check": "tsc",
@@ -19,35 +20,37 @@
19
20
  "prebuild": "pz-prebuild",
20
21
  "postbuild": "pz-postbuild",
21
22
  "poststart": "pz-poststart",
22
- "prestart": "pz-prestart"
23
+ "prestart": "pz-prestart",
24
+ "test:middleware": "jest middleware-matcher.test.ts --bail"
23
25
  },
24
26
  "dependencies": {
25
- "@akinon/next": "2.0.0-beta.1",
26
- "@akinon/pz-akifast": "2.0.0-beta.1",
27
- "@akinon/pz-b2b": "2.0.0-beta.1",
28
- "@akinon/pz-basket-gift-pack": "2.0.0-beta.1",
29
- "@akinon/pz-bkm": "2.0.0-beta.1",
30
- "@akinon/pz-checkout-gift-pack": "2.0.0-beta.1",
31
- "@akinon/pz-click-collect": "2.0.0-beta.1",
32
- "@akinon/pz-credit-payment": "2.0.0-beta.1",
33
- "@akinon/pz-gpay": "2.0.0-beta.1",
34
- "@akinon/pz-masterpass": "2.0.0-beta.1",
35
- "@akinon/pz-one-click-checkout": "2.0.0-beta.1",
36
- "@akinon/pz-otp": "2.0.0-beta.1",
37
- "@akinon/pz-pay-on-delivery": "2.0.0-beta.1",
38
- "@akinon/pz-saved-card": "2.0.0-beta.1",
39
- "@akinon/pz-tabby-extension": "2.0.0-beta.1",
27
+ "@akinon/next": "2.0.0-beta.10",
28
+ "@akinon/pz-akifast": "2.0.0-beta.10",
29
+ "@akinon/pz-b2b": "2.0.0-beta.10",
30
+ "@akinon/pz-basket-gift-pack": "2.0.0-beta.10",
31
+ "@akinon/pz-bkm": "2.0.0-beta.10",
32
+ "@akinon/pz-checkout-gift-pack": "2.0.0-beta.10",
33
+ "@akinon/pz-click-collect": "2.0.0-beta.10",
34
+ "@akinon/pz-credit-payment": "2.0.0-beta.10",
35
+ "@akinon/pz-gpay": "2.0.0-beta.10",
36
+ "@akinon/pz-masterpass": "2.0.0-beta.10",
37
+ "@akinon/pz-one-click-checkout": "2.0.0-beta.10",
38
+ "@akinon/pz-otp": "2.0.0-beta.10",
39
+ "@akinon/pz-pay-on-delivery": "2.0.0-beta.10",
40
+ "@akinon/pz-saved-card": "2.0.0-beta.10",
41
+ "@akinon/pz-tabby-extension": "2.0.0-beta.10",
42
+ "@akinon/pz-tamara-extension": "2.0.0-beta.10",
40
43
  "@hookform/resolvers": "2.9.0",
41
44
  "@next/third-parties": "14.1.0",
42
45
  "@react-google-maps/api": "2.17.1",
43
- "@sentry/nextjs": "7.116.0",
46
+ "@tailwindcss/postcss": "4.0.0",
44
47
  "dayjs": "1.11.5",
45
48
  "lossless-json": "2.0.5",
46
- "next": "15.1.2",
49
+ "next": "15.3.2",
47
50
  "next-auth": "4.24.11",
48
51
  "next-pwa": "5.6.0",
49
52
  "pino": "8.11.0",
50
- "postcss": "8.4.31",
53
+ "postcss": "8.5.3",
51
54
  "react": "19.0.0",
52
55
  "react-dom": "19.0.0",
53
56
  "react-google-recaptcha": "2.1.0",
@@ -56,12 +59,11 @@
56
59
  "react-multi-carousel": "2.8.4",
57
60
  "react-string-replace": "1.1.0",
58
61
  "start-server-and-test": "2.0.3",
59
- "tailwind-merge": "1.8.0",
60
- "tailwindcss": "3.4.17",
62
+ "tailwind-merge": "3.3.0",
61
63
  "yup": "0.32.11"
62
64
  },
63
65
  "devDependencies": {
64
- "@akinon/eslint-plugin-projectzero": "2.0.0-beta.1",
66
+ "@akinon/eslint-plugin-projectzero": "2.0.0-beta.10",
65
67
  "@semantic-release/changelog": "6.0.2",
66
68
  "@semantic-release/exec": "6.0.3",
67
69
  "@semantic-release/git": "10.0.1",
@@ -76,16 +78,17 @@
76
78
  "@types/react-dom": "19.0.2",
77
79
  "@typescript-eslint/eslint-plugin": "8.18.2",
78
80
  "@typescript-eslint/parser": "8.18.2",
79
- "autoprefixer": "10.4.13",
81
+ "autoprefixer": "10.4.21",
80
82
  "client-only": "0.0.1",
81
83
  "clsx": "1.1.1",
82
84
  "currency-symbol-map": "5.1.0",
83
85
  "eslint": "9.17.0",
84
- "eslint-config-next": "15.1.2",
86
+ "eslint-config-next": "15.3.2",
85
87
  "eslint-config-prettier": "9.1.0",
86
88
  "husky": "8.0.0",
87
89
  "jest": "29.7.0",
88
90
  "jest-css-modules-transform": "4.3.0",
91
+ "jest-environment-jsdom": "29.7.0",
89
92
  "lint-staged": "13.1.0",
90
93
  "prettier": "3.4.2",
91
94
  "react-number-format": "5.4.2",
@@ -97,13 +100,13 @@
97
100
  "stylelint-config-standard": "25.0.0",
98
101
  "stylelint-scss": "4.2.0",
99
102
  "stylelint-selector-bem-pattern": "2.1.1",
100
- "tailwindcss": "3.4.14",
103
+ "tailwindcss": "4.1.6",
101
104
  "ts-jest": "29.1.1",
102
105
  "ts-node": "10.7.0",
103
106
  "typescript": "5.7.2"
104
107
  },
105
108
  "resolutions": {
106
- "**/postcss": "8.4.31"
109
+ "**/postcss": "8.5.1"
107
110
  },
108
111
  "packageManager": "yarn@1.22.22"
109
112
  }
@@ -0,0 +1,8 @@
1
+ /** @type {import('postcss-load-config').Config} */
2
+ const config = {
3
+ plugins: {
4
+ '@tailwindcss/postcss': {}
5
+ }
6
+ };
7
+
8
+ export default config;
@@ -254,6 +254,10 @@
254
254
  "cancelled": "Cancelled",
255
255
  "cancellation_request_recieved": "Cancellation Request Recieved",
256
256
  "close_button": "Close",
257
+ "return_status": "Return Status",
258
+ "rejected": "Return Rejected",
259
+ "completed": "Return Completed",
260
+ "explanation": "Explanation",
257
261
  "success": {
258
262
  "title": "Success",
259
263
  "description": "Your request have been recieved and will be evaluated as soon as possible."
@@ -38,6 +38,12 @@
38
38
  "description": "Please try again later.",
39
39
  "link_text": "Return to home page"
40
40
  },
41
+ "client_error": {
42
+ "title": "We encountered a problem with the page.",
43
+ "description": "This appears to be a client-side issue. Please try refreshing the page or clearing your browser cache.",
44
+ "link_text": "Return to home page"
45
+ },
46
+ "try_again": "Try Again",
41
47
  "breadcrumb": {
42
48
  "homepage": "Homepage"
43
49
  },
@@ -61,5 +67,9 @@
61
67
  "description": "The products in your cart will be deleted because the exchange rate has changed.",
62
68
  "close": "Close",
63
69
  "continue": "Continue"
70
+ },
71
+ "file_input": {
72
+ "select_file": "Select File",
73
+ "no_file": "No file selected"
64
74
  }
65
75
  }
@@ -254,6 +254,10 @@
254
254
  "cancelled": "İptal edildi",
255
255
  "cancellation_request_recieved": "İptal talebi alındı",
256
256
  "close_button": "Kapat",
257
+ "return_status": "İade Durumu",
258
+ "rejected": "İade reddedildi",
259
+ "completed": "İade tamamlandı",
260
+ "explanation": "Açıklama",
257
261
  "success": {
258
262
  "title": "Başarılı",
259
263
  "description": "Talebiniz alınmış olup en kısa sürede değerlendirilecektir."
@@ -38,6 +38,12 @@
38
38
  "description": "Lütfen daha sonra tekrar deneyiniz.",
39
39
  "link_text": "Ana sayfaya dön"
40
40
  },
41
+ "client_error": {
42
+ "title": "Sayfada bir sorunla karşılaştık.",
43
+ "description": "Bu bir tarayıcı hatası gibi görünüyor. Lütfen sayfayı yenileyin veya tarayıcı önbelleğinizi temizleyin.",
44
+ "link_text": "Ana sayfaya dön"
45
+ },
46
+ "try_again": "Tekrar Dene",
41
47
  "breadcrumb": {
42
48
  "homepage": "Anasayfa"
43
49
  },
@@ -61,5 +67,9 @@
61
67
  "description": "Döviz kuru değiştiği için sepetinizdeki ürünler silinecektir.",
62
68
  "close": "Kapat",
63
69
  "continue": "Devam Et"
70
+ },
71
+ "file_input": {
72
+ "select_file": "Dosya Seç",
73
+ "no_file": "Dosya seçilmedi"
64
74
  }
65
75
  }
@@ -0,0 +1,135 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+
4
+ describe('Middleware matcher regex tests', () => {
5
+ const middlewareFilePath = path.resolve(__dirname, '../middleware.ts');
6
+ const middlewareContent = fs.readFileSync(middlewareFilePath, 'utf8');
7
+
8
+ let actualMatcherStrings: string[] = [];
9
+ let matcherPatterns: RegExp[] = [];
10
+
11
+ const matcherBlockRegex = middlewareContent.match(/matcher:\s*\[([\s\S]*?)\](?=\s*[,}])/);
12
+
13
+ if (matcherBlockRegex && matcherBlockRegex[1]) {
14
+ const matcherContentInsideBrackets = matcherBlockRegex[1];
15
+
16
+ actualMatcherStrings = matcherContentInsideBrackets
17
+ .split(',')
18
+ .map(line => {
19
+ const uncommentedLine = line.replace(/\/\/.*$/, '').trim();
20
+ const quoteMatch = uncommentedLine.match(/^(['"])(.*)\1$/);
21
+ return quoteMatch ? quoteMatch[2] : null;
22
+ })
23
+ .filter((pattern): pattern is string => pattern !== null && pattern !== '');
24
+
25
+ matcherPatterns = matcherContentInsideBrackets
26
+ .split(',')
27
+ .map((pattern) => pattern.trim())
28
+ .filter(Boolean)
29
+ .map((pattern) => {
30
+ let cleanPattern = pattern
31
+ .replace(/^['"]|['"]$/g, '');
32
+
33
+ try {
34
+ if (cleanPattern.includes('(?!') && cleanPattern.includes('api') && cleanPattern.includes('_next')) {
35
+ cleanPattern = '^(?!/(?:api|_next)/)(?!.*\\.\\w+$).*$';
36
+ }
37
+
38
+ return new RegExp(cleanPattern);
39
+ } catch (error) {
40
+ console.error(`Invalid simplified regex: ${cleanPattern}`, error);
41
+ return null;
42
+ }
43
+ })
44
+ .filter(Boolean) as RegExp[];
45
+ }
46
+
47
+ const testPath = (path: string): boolean => {
48
+ return matcherPatterns.some((pattern) => {
49
+ try {
50
+ const result = pattern.test(path);
51
+ return result;
52
+ } catch (error) {
53
+ console.error(
54
+ `Error testing path: ${path} | Pattern: ${pattern.toString()}`,
55
+ error
56
+ );
57
+ return false;
58
+ }
59
+ });
60
+ };
61
+
62
+ it('should NOT match api routes', () => {
63
+ const apiPaths = ['/api/products', '/api/auth/login', '/api/v1/users'];
64
+ apiPaths.forEach((path) => {
65
+ expect(testPath(path)).toBe(false);
66
+ });
67
+ });
68
+
69
+ it('should NOT match _next routes', () => {
70
+ const nextPaths = [
71
+ '/_next/static/chunks/main.js',
72
+ '/_next/image',
73
+ '/_next/data/build-id/products.json'
74
+ ];
75
+ nextPaths.forEach((path) => {
76
+ expect(testPath(path)).toBe(false);
77
+ });
78
+ });
79
+
80
+ it('should NOT match static files with extensions', () => {
81
+ const staticFiles = [
82
+ '/images/logo.png',
83
+ '/styles/main.css',
84
+ '/fonts/roboto.woff2',
85
+ '/favicon.ico',
86
+ '/manifest.json'
87
+ ];
88
+ staticFiles.forEach((path) => {
89
+ expect(testPath(path)).toBe(false);
90
+ });
91
+ });
92
+
93
+ it('should match dynamic routes and specific patterns', () => {
94
+ const validPaths = [
95
+ '/profile/settings',
96
+ '/dashboard/stats',
97
+ '/products/123'
98
+ ];
99
+ validPaths.forEach((path) => {
100
+ expect(testPath(path)).toBe(true);
101
+ });
102
+ });
103
+
104
+ it('should match checkout-with-token routes', () => {
105
+ const expectedRegexString = '\'/(.*orders\\\\/checkout-with-token.*)\'';
106
+ expect(middlewareContent.includes(expectedRegexString)).toBe(true);
107
+
108
+ const checkoutPaths = [
109
+ '/orders/checkout-with-token/123',
110
+ '/orders/checkout-with-token/abc-xyz',
111
+ '/orders/checkout-with-token'
112
+ ];
113
+ checkoutPaths.forEach((path) => {
114
+ expect(testPath(path)).toBe(true);
115
+ });
116
+ });
117
+
118
+ it('should contain the exact specific extensions regex string in the file content', () => {
119
+ const expectedRegexString = '\'/(.+\\\\.)(html|htm|aspx|asp|php)\'';
120
+ expect(middlewareContent.includes(expectedRegexString)).toBe(true);
121
+ });
122
+
123
+ it('should include the sitemap pattern specifically within the matcher array', () => {
124
+ const sitemapPattern = '/(.*sitemap\\\\.xml)';
125
+ expect(actualMatcherStrings).toContain(sitemapPattern);
126
+ });
127
+
128
+ it('should verify that api pattern is excluded in the matcher configuration', () => {
129
+ expect(/api/.test(middlewareContent)).toBe(true);
130
+ });
131
+
132
+ it('should verify that _next pattern is excluded in the matcher configuration', () => {
133
+ expect(/_next/.test(middlewareContent)).toBe(true);
134
+ });
135
+ });