@akinon/projectzero 2.0.0-beta.2 → 2.0.0-beta.20
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.
- package/CHANGELOG.md +147 -6
- package/app-template/.env.example +8 -0
- package/app-template/.github/instructions/account.instructions.md +749 -0
- package/app-template/.github/instructions/checkout.instructions.md +678 -0
- package/app-template/.github/instructions/default.instructions.md +279 -0
- package/app-template/.github/instructions/edge-cases.instructions.md +73 -0
- package/app-template/.github/instructions/routing.instructions.md +603 -0
- package/app-template/.github/instructions/settings.instructions.md +338 -0
- package/app-template/.gitignore +5 -0
- package/app-template/AGENTS.md +7 -0
- package/app-template/CHANGELOG.md +1645 -61
- package/app-template/Procfile +1 -1
- package/app-template/README.md +6 -0
- package/app-template/akinon.json +1 -4
- package/app-template/build.sh +10 -0
- package/app-template/config/prebuild-tests.json +5 -0
- package/app-template/docs/advanced-usage.md +111 -0
- package/app-template/docs/plugins.md +60 -25
- package/app-template/docs/sentry-usage.md +35 -0
- package/app-template/jest.config.ts +2 -2
- package/app-template/next-env.d.ts +1 -0
- package/app-template/next.config.mjs +8 -5
- package/app-template/package.json +60 -50
- package/app-template/postcss.config.mjs +5 -0
- package/app-template/public/amex.svg +12 -0
- package/app-template/public/apple-pay.svg +16 -0
- package/app-template/public/assets/images/product-placeholder-1.jpg +0 -0
- package/app-template/public/assets/images/product-placeholder-2.jpg +0 -0
- package/app-template/public/assets/images/product-placeholder-3.jpg +0 -0
- package/app-template/public/assets/images/product-placeholder-4.jpg +0 -0
- package/app-template/public/google-pay.svg +16 -0
- package/app-template/public/locales/en/account.json +13 -4
- package/app-template/public/locales/en/auth.json +6 -7
- package/app-template/public/locales/en/basket.json +6 -6
- package/app-template/public/locales/en/blog.json +7 -0
- package/app-template/public/locales/en/category.json +3 -1
- package/app-template/public/locales/en/checkout.json +17 -4
- package/app-template/public/locales/en/common.json +71 -3
- package/app-template/public/locales/en/forgot_password.json +6 -7
- package/app-template/public/locales/en/product.json +84 -4
- package/app-template/public/locales/tr/account.json +13 -4
- package/app-template/public/locales/tr/auth.json +16 -17
- package/app-template/public/locales/tr/basket.json +4 -4
- package/app-template/public/locales/tr/blog.json +7 -0
- package/app-template/public/locales/tr/category.json +3 -1
- package/app-template/public/locales/tr/checkout.json +48 -36
- package/app-template/public/locales/tr/common.json +70 -2
- package/app-template/public/locales/tr/forgot_password.json +12 -13
- package/app-template/public/locales/tr/product.json +82 -0
- package/app-template/public/logo.svg +3 -27
- package/app-template/public/mastercard.svg +14 -0
- package/app-template/public/masterpass-javascript-sdk-web.min.js +1 -0
- package/app-template/public/promotion-banner.jpg +0 -0
- package/app-template/public/shop-pay.svg +12 -0
- package/app-template/public/visa.svg +12 -0
- package/app-template/src/__tests__/middleware-matcher.test.ts +135 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/blog/[slug]/page.tsx +118 -0
- package/app-template/src/app/[commerce]/[locale]/[currency]/pages/[slug]/page.tsx +15 -0
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/[...prettyurl]/page.tsx +9 -9
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/layout.tsx +2 -2
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/[id]/cancellation/page.tsx +105 -13
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/[id]/page.tsx +136 -52
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/profile/page.tsx +2 -2
- package/app-template/src/app/[pz]/category/[pk]/page.tsx +27 -0
- package/app-template/src/app/[pz]/error.tsx +17 -0
- package/app-template/src/app/[pz]/flat-page/[pk]/page.tsx +23 -0
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/forms/[pk]/generate/page.tsx +1 -2
- package/app-template/src/app/[pz]/group-product/[pk]/page.tsx +93 -0
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/landing-page/[pk]/page.tsx +2 -4
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/layout.tsx +3 -10
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/list/page.tsx +2 -4
- package/app-template/src/app/{[commerce]/[locale]/[currency]/pz-not-found/page.tsx → [pz]/not-found.tsx} +5 -7
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/orders/checkout/page.tsx +7 -4
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/orders/completed/[token]/page.tsx +6 -4
- package/app-template/src/app/[pz]/product/[pk]/page.tsx +102 -0
- package/app-template/src/app/[pz]/special-page/[pk]/page.tsx +35 -0
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/email-set-primary/[[...id]]/page.tsx +3 -4
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/registration/account-confirm-email/[[...id]]/page.tsx +3 -3
- package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/reset/[[...id]]/page.tsx +41 -5
- package/app-template/src/app/[pz]/xml-sitemap/[node]/route.ts +73 -0
- package/app-template/src/app/api/auth/[...nextauth]/route.ts +3 -0
- package/app-template/src/app/api/barcode-search/route.ts +1 -0
- package/app-template/src/app/api/form/[...id]/route.ts +1 -7
- package/app-template/src/app/api/image-proxy/route.ts +1 -0
- package/app-template/src/app/api/product-categories/route.ts +1 -0
- package/app-template/src/app/api/similar-product-list/route.ts +1 -0
- package/app-template/src/app/api/similar-products/route.ts +1 -0
- package/app-template/src/app/api/theme-settings/route.ts +12 -0
- package/app-template/src/app/api/virtual-try-on/limited-categories/route.ts +1 -0
- package/app-template/src/app/api/virtual-try-on/route.ts +1 -0
- package/app-template/src/assets/fonts/pz-icon.css +211 -49
- package/app-template/src/assets/fonts/pz-icon.eot +0 -0
- package/app-template/src/assets/fonts/pz-icon.html +486 -0
- package/app-template/src/assets/fonts/pz-icon.scss +373 -49
- package/app-template/src/assets/fonts/pz-icon.svg +215 -53
- package/app-template/src/assets/fonts/pz-icon.ttf +0 -0
- package/app-template/src/assets/fonts/pz-icon.woff +0 -0
- package/app-template/src/assets/fonts/pz-icon.woff2 +0 -0
- package/app-template/src/assets/globals.scss +37 -34
- package/app-template/src/assets/icons/arrow-right.svg +3 -0
- package/app-template/src/assets/icons/cart.svg +4 -12
- package/app-template/src/assets/icons/check.svg +2 -18
- package/app-template/src/assets/icons/chevron-down.svg +2 -7
- package/app-template/src/assets/icons/delete.svg +3 -0
- package/app-template/src/assets/icons/facebook.svg +2 -8
- package/app-template/src/assets/icons/fav-off.svg +5 -0
- package/app-template/src/assets/icons/fav-on.svg +5 -0
- package/app-template/src/assets/icons/filter-and-sort.svg +3 -0
- package/app-template/src/assets/icons/heart.svg +3 -0
- package/app-template/src/assets/icons/instagram.svg +2 -13
- package/app-template/src/assets/icons/materials.svg +3 -0
- package/app-template/src/assets/icons/person.svg +4 -0
- package/app-template/src/assets/icons/pinterest.svg +5 -11
- package/app-template/src/assets/icons/ruler.svg +3 -0
- package/app-template/src/assets/icons/search.svg +8 -11
- package/app-template/src/assets/icons/share.svg +2 -9
- package/app-template/src/assets/icons/snapchat.svg +3 -0
- package/app-template/src/assets/icons/tiktok.svg +3 -0
- package/app-template/src/assets/icons/tumblr.svg +6 -0
- package/app-template/src/assets/icons/twitter.svg +2 -10
- package/app-template/src/assets/icons/vimeo.svg +3 -0
- package/app-template/src/assets/icons/youtube.svg +3 -0
- package/app-template/src/assets/icons/zoom.svg +8 -0
- package/app-template/src/auth.ts +3 -0
- package/app-template/src/components/__tests__/link.test.tsx +2 -0
- package/app-template/src/components/accordion.tsx +48 -23
- package/app-template/src/components/action-tooltip.tsx +160 -0
- package/app-template/src/components/button.tsx +50 -35
- package/app-template/src/components/carousel-core.tsx +4 -11
- package/app-template/src/components/checkbox.tsx +2 -1
- package/app-template/src/components/currency-select.tsx +150 -4
- package/app-template/src/components/file-input.tsx +64 -2
- package/app-template/src/components/generate-form-fields.tsx +49 -10
- package/app-template/src/components/icon.tsx +5 -6
- package/app-template/src/components/index.ts +4 -1
- package/app-template/src/components/input.tsx +8 -2
- package/app-template/src/components/language-select.tsx +88 -2
- package/app-template/src/components/modal.tsx +34 -16
- package/app-template/src/components/pagination.tsx +133 -20
- package/app-template/src/components/price.tsx +1 -1
- package/app-template/src/components/pwa-tags.tsx +1 -0
- package/app-template/src/components/quantity-input.tsx +63 -0
- package/app-template/src/components/quantity-selector.tsx +203 -0
- package/app-template/src/components/route-handler.tsx +50 -0
- package/app-template/src/components/select.tsx +86 -54
- package/app-template/src/components/tabs.tsx +2 -2
- package/app-template/src/components/types/index.ts +55 -2
- package/app-template/src/components/widget-content.tsx +323 -0
- package/app-template/src/data/server/theme.ts +70 -0
- package/app-template/src/hooks/use-fav-button.tsx +9 -10
- package/app-template/src/hooks/use-product-cart.ts +80 -0
- package/app-template/src/hooks/use-stock-alert.ts +74 -0
- package/app-template/src/hooks/use-theme-settings.ts +42 -0
- package/app-template/src/lib/fonts.ts +149 -0
- package/app-template/src/middleware.ts +1 -0
- package/app-template/src/plugins.js +13 -2
- package/app-template/src/redux/middlewares/category.ts +6 -5
- package/app-template/src/redux/reducers/category.ts +1 -1
- package/app-template/src/redux/store.ts +21 -1
- package/app-template/src/routes/index.ts +2 -1
- package/app-template/src/settings.js +5 -3
- package/app-template/src/types/hookform-resolvers-yup.d.ts +28 -0
- package/app-template/src/types/index.ts +74 -3
- package/app-template/src/types/next-auth.d.ts +2 -2
- package/app-template/src/types/widget.ts +169 -0
- package/app-template/src/utils/convert-facet-search-params.ts +1 -1
- package/app-template/src/utils/formatDate.ts +48 -0
- package/app-template/src/utils/styles.ts +71 -0
- package/app-template/src/utils/variant-validation.ts +41 -0
- package/app-template/src/views/account/address-form.tsx +8 -4
- package/app-template/src/views/account/contact-form.tsx +148 -136
- package/app-template/src/views/account/content-header.tsx +2 -2
- package/app-template/src/views/account/faq/faq-tabs.tsx +8 -2
- package/app-template/src/views/account/favorite-item.tsx +1 -1
- package/app-template/src/views/account/order.tsx +10 -8
- package/app-template/src/views/account/orders/order-cancellation-item.tsx +4 -3
- package/app-template/src/views/account/orders/order-detail-header.tsx +1 -1
- package/app-template/src/views/anonymous-tracking/order-detail/index.tsx +44 -37
- package/app-template/src/views/basket/basket-item.tsx +697 -107
- package/app-template/src/views/basket/basket-summary-context.tsx +560 -0
- package/app-template/src/views/basket/designer-context.tsx +617 -0
- package/app-template/src/views/basket/index.ts +2 -0
- package/app-template/src/views/basket/summary.tsx +497 -60
- package/app-template/src/views/breadcrumb/breadcrumb-client.tsx +190 -0
- package/app-template/src/views/breadcrumb/breadcrumb-registrar.tsx +286 -0
- package/app-template/src/views/breadcrumb/constants.ts +15 -0
- package/app-template/src/views/breadcrumb/index.tsx +127 -0
- package/app-template/src/views/breadcrumb.tsx +13 -38
- package/app-template/src/views/category/category-active-filters.tsx +1 -1
- package/app-template/src/views/category/category-banner.tsx +4 -23
- package/app-template/src/views/category/category-header.tsx +289 -60
- package/app-template/src/views/category/category-info.tsx +177 -27
- package/app-template/src/views/category/filters/filter-item.tsx +138 -42
- package/app-template/src/views/category/filters/index.tsx +209 -49
- package/app-template/src/views/category/layout.tsx +7 -4
- package/app-template/src/views/category/native-widget-context.tsx +257 -0
- package/app-template/src/views/category/product-list-registrar.tsx +665 -0
- package/app-template/src/views/checkout/auth.tsx +64 -40
- package/app-template/src/views/checkout/checkout-address-registrar.tsx +254 -0
- package/app-template/src/views/checkout/checkout-buttons-registrar.tsx +183 -0
- package/app-template/src/views/checkout/checkout-delivery-method-registrar.tsx +259 -0
- package/app-template/src/views/checkout/checkout-payment-options-registrar.tsx +253 -0
- package/app-template/src/views/checkout/checkout-summary-registrar.tsx +183 -0
- package/app-template/src/views/checkout/constants.ts +5 -0
- package/app-template/src/views/checkout/index.tsx +5 -0
- package/app-template/src/views/checkout/layout/header.tsx +9 -5
- package/app-template/src/views/checkout/steps/payment/index.tsx +5 -2
- package/app-template/src/views/checkout/steps/payment/options/credit-card/index.tsx +93 -6
- package/app-template/src/views/checkout/steps/payment/options/funds-transfer.tsx +25 -5
- package/app-template/src/views/checkout/steps/payment/options/loyalty.tsx +21 -2
- package/app-template/src/views/checkout/steps/payment/options/masterpass-rest.tsx +15 -0
- package/app-template/src/views/checkout/steps/payment/options/redirection.tsx +27 -5
- package/app-template/src/views/checkout/steps/payment/options/saved-card.tsx +18 -0
- package/app-template/src/views/checkout/steps/payment/options/store-credit.tsx +464 -0
- package/app-template/src/views/checkout/steps/payment/payment-option-buttons.tsx +171 -40
- package/app-template/src/views/checkout/steps/shipping/address-box.tsx +104 -29
- package/app-template/src/views/checkout/steps/shipping/addresses.tsx +129 -46
- package/app-template/src/views/checkout/steps/shipping/shipping-options.tsx +232 -27
- package/app-template/src/views/checkout/summary.tsx +310 -26
- package/app-template/src/views/find-in-store/index.tsx +2 -2
- package/app-template/src/views/footer/footer-app-banner-context.tsx +326 -0
- package/app-template/src/views/footer/footer-bottom-context.tsx +215 -0
- package/app-template/src/views/footer/footer-bottom-wrapper.tsx +74 -0
- package/app-template/src/views/footer/footer-layout-constants.ts +35 -0
- package/app-template/src/views/footer/footer-layout-registrar.tsx +342 -0
- package/app-template/src/views/footer/footer-layout-switcher.tsx +110 -0
- package/app-template/src/views/footer/footer-menu-context.tsx +211 -0
- package/app-template/src/views/footer/footer-native-widgets.tsx +60 -0
- package/app-template/src/views/footer/footer-social-context.tsx +254 -0
- package/app-template/src/views/footer/footer-subscription-context.tsx +210 -0
- package/app-template/src/views/footer/footer-utils.ts +43 -0
- package/app-template/src/views/footer/footer-value-props-context.tsx +326 -0
- package/app-template/src/views/footer/logo-settings.ts +183 -0
- package/app-template/src/views/footer/native-widget-config.ts +262 -0
- package/app-template/src/views/footer/subscription-settings.ts +122 -0
- package/app-template/src/views/footer/use-footer-logo.ts +162 -0
- package/app-template/src/views/footer.tsx +415 -13
- package/app-template/src/views/guest-login/index.tsx +62 -58
- package/app-template/src/views/header/action-menu.tsx +284 -49
- package/app-template/src/views/header/band.tsx +6 -21
- package/app-template/src/views/header/designer-context.tsx +261 -0
- package/app-template/src/views/header/header-announcement-registrar.tsx +267 -0
- package/app-template/src/views/header/header-client-wrapper.tsx +496 -0
- package/app-template/src/views/header/header-content.tsx +1026 -0
- package/app-template/src/views/header/header-currency-registrar.tsx +348 -0
- package/app-template/src/views/header/header-icons-context.tsx +262 -0
- package/app-template/src/views/header/header-language-registrar.tsx +348 -0
- package/app-template/src/views/header/header-layout-context.tsx +143 -0
- package/app-template/src/views/header/header-layout-registrar.tsx +658 -0
- package/app-template/src/views/header/header-logo-context.tsx +228 -0
- package/app-template/src/views/header/header-logo.tsx +118 -0
- package/app-template/src/views/header/header-mini-basket-context.tsx +524 -0
- package/app-template/src/views/header/header-search-registrar.tsx +511 -0
- package/app-template/src/views/header/header-text-slider-registrar.tsx +382 -0
- package/app-template/src/views/header/index.tsx +110 -48
- package/app-template/src/views/header/inline-search.tsx +262 -0
- package/app-template/src/views/header/mini-basket.tsx +832 -46
- package/app-template/src/views/header/mobile-hamburger-button.tsx +5 -8
- package/app-template/src/views/header/mobile-menu.tsx +12 -0
- package/app-template/src/views/header/navbar-menu-context.tsx +219 -0
- package/app-template/src/views/header/navbar.tsx +178 -111
- package/app-template/src/views/header/search/index.tsx +85 -24
- package/app-template/src/views/header/search/results.tsx +127 -65
- package/app-template/src/views/header/search/search-input.tsx +61 -0
- package/app-template/src/views/header/server-settings-parser.ts +1105 -0
- package/app-template/src/views/header/use-header-icons.ts +241 -0
- package/app-template/src/views/header/use-header-logo.ts +213 -0
- package/app-template/src/views/header/use-navbar-menu.ts +179 -0
- package/app-template/src/views/installment-options/index.tsx +1 -1
- package/app-template/src/views/login/index.tsx +89 -56
- package/app-template/src/views/otp-login/index.tsx +23 -20
- package/app-template/src/views/product/accordion-section.tsx +61 -0
- package/app-template/src/views/product/accordion-wrapper.tsx +135 -43
- package/app-template/src/views/product/custom-button-group.tsx +69 -0
- package/app-template/src/views/product/favorites-button-section.tsx +69 -0
- package/app-template/src/views/product/find-in-store-section.tsx +60 -0
- package/app-template/src/views/product/index.ts +1 -0
- package/app-template/src/views/product/layout.tsx +21 -6
- package/app-template/src/views/product/misc-buttons.tsx +339 -25
- package/app-template/src/views/product/price-wrapper.tsx +3 -24
- package/app-template/src/views/product/product-actions.tsx +294 -0
- package/app-template/src/views/product/product-info-section.tsx +140 -0
- package/app-template/src/views/product/product-info.tsx +130 -254
- package/app-template/src/views/product/product-share.tsx +61 -0
- package/app-template/src/views/product/product-variants.tsx +26 -0
- package/app-template/src/views/product/quantity-section.tsx +73 -0
- package/app-template/src/views/product/sale-tag.tsx +10 -0
- package/app-template/src/views/product/share-section.tsx +357 -0
- package/app-template/src/views/product/slider.tsx +135 -76
- package/app-template/src/views/product/variant.tsx +69 -41
- package/app-template/src/views/product/variants-section.tsx +126 -0
- package/app-template/src/views/product-detail/constants.ts +272 -0
- package/app-template/src/views/product-detail/index.ts +10 -0
- package/app-template/src/views/product-detail/product-detail-registrar.tsx +616 -0
- package/app-template/src/views/product-item/index.tsx +119 -46
- package/app-template/src/views/register/index.tsx +54 -44
- package/app-template/src/views/share/index.tsx +9 -6
- package/app-template/src/views/widgets/home-hero-slider-content.tsx +41 -39
- package/app-template/src/widgets/flatpages/about-us/index.tsx +78 -0
- package/app-template/src/widgets/flatpages/blog-list/index.tsx +129 -0
- package/app-template/src/widgets/footer-app-banner.tsx +444 -0
- package/app-template/src/widgets/footer-bottom.tsx +127 -0
- package/app-template/src/widgets/footer-menu-compact.tsx +238 -0
- package/app-template/src/widgets/footer-menu-two.tsx +298 -0
- package/app-template/src/widgets/footer-menu.tsx +6 -2
- package/app-template/src/widgets/footer-social-client.tsx +251 -0
- package/app-template/src/widgets/footer-social.tsx +47 -16
- package/app-template/src/widgets/footer-subscription/footer-subscription-form.tsx +17 -14
- package/app-template/src/widgets/footer-subscription/index.tsx +183 -17
- package/app-template/src/widgets/footer-value-props.tsx +201 -0
- package/app-template/src/widgets/home-stories-eng.tsx +42 -34
- package/app-template/src/widgets/index.ts +7 -0
- package/app-template/src/widgets/schemas/about-us.json +46 -0
- package/app-template/src/widgets/schemas/blog-list.json +37 -0
- package/app-template/src/widgets/schemas/blog.json +29 -0
- package/app-template/tailwind.config.js +19 -7
- package/app-template/tsconfig.json +29 -11
- package/codemods/migrate-segments/index.js +591 -0
- package/codemods/sentry-9/index.js +30 -0
- package/codemods/sentry-9/remove-sentry-configs.js +14 -0
- package/codemods/sentry-9/remove-sentry-dependency.js +25 -0
- package/codemods/sentry-9/replace-error-page.js +32 -0
- package/codemods/update-tailwind-config/index.js +30 -0
- package/codemods/update-tailwind-config/transform.js +102 -0
- package/commands/codemod.ts +17 -0
- package/commands/index.ts +3 -1
- package/commands/plugins.ts +115 -46
- package/dist/codemods/sentry-9/templates/error.js +14 -0
- package/dist/commands/codemod.js +15 -0
- package/dist/commands/index.js +3 -1
- package/dist/commands/plugins.js +85 -34
- package/package.json +3 -2
- package/app-template/postcss.config.js +0 -6
- package/app-template/sentry.client.config.ts +0 -16
- package/app-template/sentry.edge.config.ts +0 -3
- package/app-template/sentry.properties +0 -4
- package/app-template/sentry.server.config.ts +0 -3
- package/app-template/src/app/[commerce]/[locale]/[currency]/category/[pk]/page.tsx +0 -22
- package/app-template/src/app/[commerce]/[locale]/[currency]/error.tsx +0 -20
- package/app-template/src/app/[commerce]/[locale]/[currency]/flat-page/[pk]/page.tsx +0 -20
- package/app-template/src/app/[commerce]/[locale]/[currency]/group-product/[pk]/page.tsx +0 -74
- package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/loading.tsx +0 -67
- package/app-template/src/app/[commerce]/[locale]/[currency]/product/[pk]/page.tsx +0 -84
- package/app-template/src/app/[commerce]/[locale]/[currency]/special-page/[pk]/page.tsx +0 -27
- package/app-template/src/app/[commerce]/[locale]/[currency]/xml-sitemap/[node]/route.ts +0 -25
- package/app-template/src/pages/api/auth/[...nextauth].ts +0 -3
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/address/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/change-email/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/change-password/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/contact/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/coupons/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/email-verification/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/faq/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/favourite-products/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/my-quotations/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/[id]/layout.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/orders/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/account/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/address/stores/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/anonymous-tracking/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/auth/oauth-login/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/auth/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/basket/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/basket-b2b/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/category/[pk]/loading.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/client-root.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/contact-us/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/flat-page/[pk]/loading.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/group-product/[pk]/loading.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/landing-page/[pk]/loading.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/list/loading.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/orders/completed/[token]/layout.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/special-page/[pk]/loading.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/template.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/users/password/reset/page.tsx +0 -0
- /package/app-template/src/app/{[commerce]/[locale]/[currency] → [pz]}/xml-sitemap/route.ts +0 -0
package/app-template/Procfile
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
web:
|
|
1
|
+
web: PORT=8008 HOSTNAME=0.0.0.0 node .next/standalone/server.js
|
package/app-template/README.md
CHANGED
|
@@ -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:
|
package/app-template/akinon.json
CHANGED
package/app-template/build.sh
CHANGED
|
@@ -41,3 +41,114 @@ const middleware: NextMiddleware = (
|
|
|
41
41
|
return NextResponse.next();
|
|
42
42
|
};
|
|
43
43
|
```
|
|
44
|
+
|
|
45
|
+
## Custom Segments
|
|
46
|
+
|
|
47
|
+
The `[pz]` segment encodes `locale`, `currency`, and `url` by default. You can add custom segments via `pzSegments` in `settings.js` to encode additional values into the URL.
|
|
48
|
+
|
|
49
|
+
### Configuration
|
|
50
|
+
|
|
51
|
+
Define custom segments in `settings.js` with a `resolve` function that computes the segment value at request time:
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
/** @type {import('@akinon/next/types').Settings} */
|
|
55
|
+
module.exports = {
|
|
56
|
+
// ...
|
|
57
|
+
usePzSegment: true,
|
|
58
|
+
pzSegments: {
|
|
59
|
+
segments: [
|
|
60
|
+
{
|
|
61
|
+
name: 'segment',
|
|
62
|
+
resolve: (context) => context.req.cookies.get('pz-segment')?.value ?? 'default'
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Default segments (`locale`, `currency`, `url`) are always included automatically. You only need to define your custom ones.
|
|
70
|
+
|
|
71
|
+
### Resolve Context
|
|
72
|
+
|
|
73
|
+
The `resolve` function receives a context object with the following properties:
|
|
74
|
+
|
|
75
|
+
| Property | Type | Description |
|
|
76
|
+
|------------|------------------|--------------------------------------|
|
|
77
|
+
| `req` | `PzNextRequest` | The incoming request object (cookies, headers, middlewareParams) |
|
|
78
|
+
| `event` | `NextFetchEvent` | The Next.js fetch event (waitUntil, etc.) |
|
|
79
|
+
| `url` | `NextURL` | Cloned URL object of the current request |
|
|
80
|
+
| `locale` | `string` | Resolved locale value |
|
|
81
|
+
| `currency` | `string` | Resolved currency value |
|
|
82
|
+
| `pathname` | `string` | Pathname without locale prefix |
|
|
83
|
+
|
|
84
|
+
### Reading Segment Values
|
|
85
|
+
|
|
86
|
+
In server components, use `parsePzParams` to read all segment values (both built-in and custom):
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
import { parsePzParams } from '@akinon/next/utils'
|
|
90
|
+
import settings from 'settings'
|
|
91
|
+
|
|
92
|
+
export default function Page({ params }) {
|
|
93
|
+
const { locale, currency, url, segment } = parsePzParams(params, settings)
|
|
94
|
+
// ...
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
In client components, use the `usePzParams` hook:
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
'use client'
|
|
102
|
+
import { usePzParams } from '@akinon/next/hooks/use-pz-params'
|
|
103
|
+
|
|
104
|
+
export default function MyComponent() {
|
|
105
|
+
const { locale, currency, url, segment } = usePzParams()
|
|
106
|
+
// ...
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Example: Cookie-based Segment
|
|
111
|
+
|
|
112
|
+
A segment that reads a value from a cookie and falls back to a default:
|
|
113
|
+
|
|
114
|
+
```js
|
|
115
|
+
pzSegments: {
|
|
116
|
+
segments: [
|
|
117
|
+
{
|
|
118
|
+
name: 'segment',
|
|
119
|
+
resolve: (context) => context.req.cookies.get('pz-segment')?.value ?? 'default'
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This encodes the cookie value into the `[pz]` URL parameter. The resulting URL structure becomes:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
/tr--TL--<encoded-url>--default/page-path
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Migration from Legacy Structure
|
|
132
|
+
|
|
133
|
+
To migrate a project using the legacy `[commerce]/[locale]/[currency]` directory structure to the new `[pz]` segment:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
npx projectzero codemod --codemod=migrate-segments
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
This codemod will:
|
|
140
|
+
- Detect all dynamic segments and merge them into `[pz]/`
|
|
141
|
+
- Update `settings.js` with `usePzSegment: true`
|
|
142
|
+
- Clean up middleware rewrite blocks
|
|
143
|
+
- Update path references in `tsconfig.json`, `next.config.js`, and source files
|
|
144
|
+
- Replace `params.locale` / `params.currency` / `params.url` usages with `parsePzParams`
|
|
145
|
+
|
|
146
|
+
## Enabling Browser Back/Forward Cache (bfcache)
|
|
147
|
+
|
|
148
|
+
By default, dynamic pages may include `Cache-Control: no-store` headers, which prevents browsers from using the back/forward cache (bfcache). To enable bfcache support, set the `BF_CACHE` environment variable to `true`:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
BF_CACHE=true
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
When enabled, a middleware wrapper overrides the `Cache-Control` header to `private, no-cache, max-age=0, must-revalidate`, allowing the browser to cache pages for instant back/forward navigation while still revalidating content on revisit.
|
|
@@ -15,13 +15,18 @@ The plugins selected from this list will be added to the project and ready for u
|
|
|
15
15
|
|
|
16
16
|
### Plugin List
|
|
17
17
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
18
|
+
1. Basket Gift Pack
|
|
19
|
+
2. Click & Collect
|
|
20
20
|
3. Checkout Gift Pack
|
|
21
|
-
4. Checkout
|
|
22
|
-
5.
|
|
23
|
-
6.
|
|
24
|
-
7.
|
|
21
|
+
4. One Click Checkout
|
|
22
|
+
5. Garanti Pay
|
|
23
|
+
6. Pay On Delivery
|
|
24
|
+
7. OTP
|
|
25
|
+
8. BKM Express
|
|
26
|
+
9. Credit Payment
|
|
27
|
+
10. Multi Basket
|
|
28
|
+
11. Tabby Payment Extension
|
|
29
|
+
12. Tamara Payment Extension
|
|
25
30
|
|
|
26
31
|
## Installation
|
|
27
32
|
|
|
@@ -33,44 +38,74 @@ The plugins selected from this list will be added to the project and ready for u
|
|
|
33
38
|
|
|
34
39
|
2. Select the plugins desire to install from the list provided.
|
|
35
40
|
|
|
36
|
-
###
|
|
41
|
+
### Basket Gift Pack
|
|
37
42
|
|
|
38
|
-
|
|
43
|
+
Adds a gift pack and/or a gift note to products in the basket. Enhances the gifting experience for customers.
|
|
39
44
|
|
|
40
|
-
[Click here for details](https://
|
|
45
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-basket-gift-pack)
|
|
41
46
|
|
|
42
|
-
###
|
|
47
|
+
### Click & Collect
|
|
43
48
|
|
|
44
|
-
|
|
49
|
+
Allows customers to place an order online and pick it up from a selected store. Reduces delivery costs and improves convenience for users.
|
|
45
50
|
|
|
46
|
-
[Click here for details](https://
|
|
51
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-click-collect)
|
|
47
52
|
|
|
48
53
|
### Checkout Gift Pack
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
Enables a gift pack option on the payment page. Customers can choose to wrap their purchases as gifts during checkout.
|
|
56
|
+
|
|
57
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-checkout-gift-pack)
|
|
58
|
+
|
|
59
|
+
### One Click Checkout
|
|
51
60
|
|
|
52
|
-
|
|
61
|
+
Simplifies the checkout process by adding one-click payment methods.
|
|
53
62
|
|
|
54
|
-
|
|
63
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-one-click-checkout)
|
|
55
64
|
|
|
56
|
-
|
|
65
|
+
### Garanti Pay
|
|
57
66
|
|
|
58
|
-
|
|
67
|
+
Allows Garanti Bank credit card users to make fast and secure payments without entering card details.
|
|
68
|
+
|
|
69
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-gpay)
|
|
70
|
+
|
|
71
|
+
### Pay On Delivery
|
|
72
|
+
|
|
73
|
+
Provides an option for customers to pay with cash or a credit card at the time of delivery.
|
|
74
|
+
|
|
75
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-pay-on-delivery)
|
|
59
76
|
|
|
60
77
|
### OTP
|
|
61
78
|
|
|
62
|
-
|
|
79
|
+
Adds SMS-based OTP (One-Time Password) verification for secure actions such as registration and updating profile information.
|
|
63
80
|
|
|
64
|
-
[Click here for details](https://
|
|
81
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-otp)
|
|
65
82
|
|
|
66
|
-
###
|
|
83
|
+
### BKM Express
|
|
67
84
|
|
|
68
|
-
|
|
85
|
+
Integrates the BKM Express payment method for users to make fast and secure payments without entering card details.
|
|
69
86
|
|
|
70
|
-
[Click here for details](https://
|
|
87
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-bkm)
|
|
71
88
|
|
|
72
|
-
###
|
|
89
|
+
### Credit Payment
|
|
90
|
+
|
|
91
|
+
Supports credit card payments with installment and non-installment options.
|
|
92
|
+
|
|
93
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-credit-payment)
|
|
94
|
+
|
|
95
|
+
### Multi Basket
|
|
96
|
+
|
|
97
|
+
Enables customers to create and manage multiple virtual baskets at the same time. Facilitates better basket organization.
|
|
98
|
+
|
|
99
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-multi-basket)
|
|
100
|
+
|
|
101
|
+
### Tabby Payment Extension
|
|
102
|
+
|
|
103
|
+
Integrates Tabby’s installment and deferred payment solutions into the checkout.
|
|
104
|
+
|
|
105
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-tabby-extension)
|
|
106
|
+
|
|
107
|
+
### Tamara Payment Extension
|
|
73
108
|
|
|
74
|
-
|
|
109
|
+
Adds Tamara’s "Buy Now, Pay Later" feature to the payment options. Customers can defer payments while ensuring a seamless checkout experience.
|
|
75
110
|
|
|
76
|
-
[Click here for details](https://
|
|
111
|
+
[Click here for details](https://www.npmjs.com/package/@akinon/pz-tamara-extension)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Sentry Usage
|
|
3
|
+
sidebar_label: Sentry Usage
|
|
4
|
+
slug: sentry-usage
|
|
5
|
+
custom_edit_url: null
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Sentry is a powerful tool for monitoring and debugging applications. In the context of the Project Zero Next application, it can be used to track errors, performance issues, and other important metrics. This document provides guidelines on how to effectively use Sentry for the Project Zero Next application.
|
|
9
|
+
|
|
10
|
+
## Filtering PZ Next Errors and Warnings
|
|
11
|
+
|
|
12
|
+
To filter out errors and warnings that are specific to the PZ Next application, you can use the following tag:
|
|
13
|
+
|
|
14
|
+
APP_TYPE = ProjectZeroNext
|
|
15
|
+
|
|
16
|
+
## Filtering Only Client-Side Errors
|
|
17
|
+
|
|
18
|
+
To filter out client-side errors, you can use the following tag:
|
|
19
|
+
|
|
20
|
+
TYPE = client
|
|
21
|
+
|
|
22
|
+
## Filtering Only Server-Side Errors
|
|
23
|
+
|
|
24
|
+
To filter out server-side errors, you can use the following tag:
|
|
25
|
+
|
|
26
|
+
TYPE = server
|
|
27
|
+
|
|
28
|
+
## Filtering Client-Side 500 Error Pages
|
|
29
|
+
|
|
30
|
+
To filter out 500 error pages caused by the client-side code, you can use the following tags:
|
|
31
|
+
|
|
32
|
+
TYPE = Client
|
|
33
|
+
LOG_TYPE = UNCAUGHT_ERROR_PAGE
|
|
34
|
+
|
|
35
|
+
You can use the **"Breadcrumbs"** feature in Sentry to track the navigation path that led to the error. This can help you understand how users arrived at the error page and what actions they took before encountering the issue.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const nextJest = require('next/jest');
|
|
2
|
-
import type {
|
|
2
|
+
import type { JestConfigWithTsJest } from 'ts-jest';
|
|
3
3
|
|
|
4
4
|
const createJestConfig = nextJest({
|
|
5
5
|
dir: './'
|
|
6
6
|
});
|
|
7
7
|
|
|
8
|
-
const config:
|
|
8
|
+
const config: JestConfigWithTsJest = {
|
|
9
9
|
preset: 'ts-jest',
|
|
10
10
|
setupFilesAfterEnv: ['<rootDir>/setupTests.ts'],
|
|
11
11
|
transform: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="next" />
|
|
2
2
|
/// <reference types="next/image-types/global" />
|
|
3
3
|
/// <reference types="next/navigation-types/compat/navigation" />
|
|
4
|
+
import "./.next/types/routes.d.ts";
|
|
4
5
|
|
|
5
6
|
// NOTE: This file should not be edited
|
|
6
7
|
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
|
|
@@ -8,12 +8,12 @@ const nextConfig = {
|
|
|
8
8
|
rewrites: async () => {
|
|
9
9
|
return [
|
|
10
10
|
{
|
|
11
|
-
source: '/:
|
|
12
|
-
destination: '/:
|
|
11
|
+
source: '/:pz/sitemap.xml',
|
|
12
|
+
destination: '/:pz/xml-sitemap'
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
source: '/:
|
|
16
|
-
destination: '/:
|
|
15
|
+
source: '/:pz/sitemap/:node',
|
|
16
|
+
destination: '/:pz/xml-sitemap/:node'
|
|
17
17
|
}
|
|
18
18
|
];
|
|
19
19
|
}
|
|
@@ -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,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projectzeronext",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.20",
|
|
4
4
|
"private": true,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"clean": "rm -rf node_modules && rm -rf .next",
|
|
8
|
-
"dev": "next dev",
|
|
9
|
-
"
|
|
8
|
+
"dev": "next dev --webpack",
|
|
9
|
+
"dev-ssl": "next dev --experimental-https --webpack",
|
|
10
|
+
"build": "next build --webpack",
|
|
10
11
|
"start": "next start -p 8008",
|
|
11
12
|
"type-check": "tsc",
|
|
12
13
|
"lint": "next lint",
|
|
@@ -19,76 +20,87 @@
|
|
|
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.
|
|
26
|
-
"@akinon/pz-akifast": "2.0.0-beta.
|
|
27
|
-
"@akinon/pz-
|
|
28
|
-
"@akinon/pz-
|
|
29
|
-
"@akinon/pz-
|
|
30
|
-
"@akinon/pz-
|
|
31
|
-
"@akinon/pz-
|
|
32
|
-
"@akinon/pz-
|
|
33
|
-
"@akinon/pz-
|
|
34
|
-
"@akinon/pz-
|
|
35
|
-
"@akinon/pz-
|
|
36
|
-
"@akinon/pz-
|
|
37
|
-
"@akinon/pz-
|
|
38
|
-
"@akinon/pz-
|
|
39
|
-
"@akinon/pz-
|
|
27
|
+
"@akinon/next": "2.0.0-beta.20",
|
|
28
|
+
"@akinon/pz-akifast": "2.0.0-beta.20",
|
|
29
|
+
"@akinon/pz-apple-pay": "2.0.0-beta.20",
|
|
30
|
+
"@akinon/pz-b2b": "2.0.0-beta.20",
|
|
31
|
+
"@akinon/pz-basket-gift-pack": "2.0.0-beta.20",
|
|
32
|
+
"@akinon/pz-bkm": "2.0.0-beta.20",
|
|
33
|
+
"@akinon/pz-checkout-gift-pack": "2.0.0-beta.20",
|
|
34
|
+
"@akinon/pz-click-collect": "2.0.0-beta.20",
|
|
35
|
+
"@akinon/pz-credit-payment": "2.0.0-beta.20",
|
|
36
|
+
"@akinon/pz-cybersource-uc": "2.0.0-beta.20",
|
|
37
|
+
"@akinon/pz-flow-payment": "2.0.0-beta.20",
|
|
38
|
+
"@akinon/pz-google-pay": "2.0.0-beta.20",
|
|
39
|
+
"@akinon/pz-gpay": "2.0.0-beta.20",
|
|
40
|
+
"@akinon/pz-haso": "2.0.0-beta.20",
|
|
41
|
+
"@akinon/pz-hepsipay": "2.0.0-beta.20",
|
|
42
|
+
"@akinon/pz-masterpass": "2.0.0-beta.20",
|
|
43
|
+
"@akinon/pz-masterpass-rest": "2.0.0-beta.20",
|
|
44
|
+
"@akinon/pz-multi-basket": "2.0.0-beta.20",
|
|
45
|
+
"@akinon/pz-one-click-checkout": "2.0.0-beta.20",
|
|
46
|
+
"@akinon/pz-otp": "2.0.0-beta.20",
|
|
47
|
+
"@akinon/pz-pay-on-delivery": "2.0.0-beta.20",
|
|
48
|
+
"@akinon/pz-saved-card": "2.0.0-beta.20",
|
|
49
|
+
"@akinon/pz-similar-products": "2.0.0-beta.20",
|
|
50
|
+
"@akinon/pz-tabby-extension": "2.0.0-beta.20",
|
|
51
|
+
"@akinon/pz-tamara-extension": "2.0.0-beta.20",
|
|
52
|
+
"@akinon/pz-virtual-try-on": "2.0.0-beta.20",
|
|
40
53
|
"@hookform/resolvers": "2.9.0",
|
|
41
|
-
"@next/third-parties": "
|
|
54
|
+
"@next/third-parties": "16.1.6",
|
|
42
55
|
"@react-google-maps/api": "2.17.1",
|
|
43
|
-
"@sentry/nextjs": "7.116.0",
|
|
44
56
|
"dayjs": "1.11.5",
|
|
45
57
|
"lossless-json": "2.0.5",
|
|
46
|
-
"next": "
|
|
47
|
-
"next-auth": "
|
|
58
|
+
"next": "16.1.6",
|
|
59
|
+
"next-auth": "5.0.0-beta.30",
|
|
48
60
|
"next-pwa": "5.6.0",
|
|
49
61
|
"pino": "8.11.0",
|
|
50
|
-
"postcss": "8.4.
|
|
51
|
-
"react": "19.
|
|
52
|
-
"react-dom": "19.
|
|
62
|
+
"postcss": "8.4.49",
|
|
63
|
+
"react": "19.2.4",
|
|
64
|
+
"react-dom": "19.2.4",
|
|
53
65
|
"react-google-recaptcha": "2.1.0",
|
|
54
|
-
"react-hook-form": "7.
|
|
66
|
+
"react-hook-form": "7.71.2",
|
|
55
67
|
"react-intersection-observer": "9.4.0",
|
|
56
68
|
"react-multi-carousel": "2.8.4",
|
|
57
69
|
"react-string-replace": "1.1.0",
|
|
58
70
|
"start-server-and-test": "2.0.3",
|
|
59
71
|
"tailwind-merge": "1.8.0",
|
|
60
|
-
"tailwindcss": "3.4.17",
|
|
61
72
|
"yup": "0.32.11"
|
|
62
73
|
},
|
|
63
74
|
"devDependencies": {
|
|
64
|
-
"@akinon/eslint-plugin-projectzero": "2.0.0-beta.
|
|
75
|
+
"@akinon/eslint-plugin-projectzero": "2.0.0-beta.20",
|
|
65
76
|
"@semantic-release/changelog": "6.0.2",
|
|
66
77
|
"@semantic-release/exec": "6.0.3",
|
|
67
78
|
"@semantic-release/git": "10.0.1",
|
|
68
|
-
"@tailwindcss/
|
|
69
|
-
"@
|
|
79
|
+
"@tailwindcss/postcss": "4.2.0",
|
|
80
|
+
"@tailwindcss/typography": "0.5.19",
|
|
81
|
+
"@testing-library/dom": "10.4.0",
|
|
70
82
|
"@testing-library/jest-dom": "5.16.4",
|
|
71
|
-
"@testing-library/react": "
|
|
83
|
+
"@testing-library/react": "16.3.2",
|
|
72
84
|
"@testing-library/user-event": "14.1.1",
|
|
73
85
|
"@types/googlemaps": "3.43.3",
|
|
74
|
-
"@types/jest": "
|
|
75
|
-
"@types/react": "19.
|
|
76
|
-
"@types/react-dom": "19.
|
|
77
|
-
"@typescript-eslint/eslint-plugin": "
|
|
78
|
-
"@typescript-eslint/parser": "
|
|
79
|
-
"autoprefixer": "10.4.13",
|
|
86
|
+
"@types/jest": "29.5.14",
|
|
87
|
+
"@types/react": "19.2.14",
|
|
88
|
+
"@types/react-dom": "19.2.3",
|
|
89
|
+
"@typescript-eslint/eslint-plugin": "6.7.4",
|
|
90
|
+
"@typescript-eslint/parser": "6.7.4",
|
|
80
91
|
"client-only": "0.0.1",
|
|
81
92
|
"clsx": "1.1.1",
|
|
82
93
|
"currency-symbol-map": "5.1.0",
|
|
83
|
-
"eslint": "
|
|
84
|
-
"eslint-config-next": "
|
|
85
|
-
"eslint-config-prettier": "
|
|
94
|
+
"eslint": "8.14.0",
|
|
95
|
+
"eslint-config-next": "16.1.6",
|
|
96
|
+
"eslint-config-prettier": "8.5.0",
|
|
86
97
|
"husky": "8.0.0",
|
|
87
98
|
"jest": "29.7.0",
|
|
88
99
|
"jest-css-modules-transform": "4.3.0",
|
|
100
|
+
"jest-environment-jsdom": "29.7.0",
|
|
89
101
|
"lint-staged": "13.1.0",
|
|
90
|
-
"prettier": "
|
|
91
|
-
"react-number-format": "5.4
|
|
102
|
+
"prettier": "2.6.2",
|
|
103
|
+
"react-number-format": "5.3.4",
|
|
92
104
|
"sass": "1.49.9",
|
|
93
105
|
"semantic-release": "19.0.5",
|
|
94
106
|
"server-only": "0.0.1",
|
|
@@ -97,13 +109,11 @@
|
|
|
97
109
|
"stylelint-config-standard": "25.0.0",
|
|
98
110
|
"stylelint-scss": "4.2.0",
|
|
99
111
|
"stylelint-selector-bem-pattern": "2.1.1",
|
|
100
|
-
"tailwindcss": "
|
|
101
|
-
"ts-jest": "29.
|
|
112
|
+
"tailwindcss": "4.2.0",
|
|
113
|
+
"ts-jest": "29.2.6",
|
|
102
114
|
"ts-node": "10.7.0",
|
|
103
|
-
"typescript": "5.
|
|
115
|
+
"typescript": "5.9.3"
|
|
104
116
|
},
|
|
105
|
-
"resolutions": {
|
|
106
|
-
|
|
107
|
-
},
|
|
108
|
-
"packageManager": "yarn@1.22.22"
|
|
117
|
+
"resolutions": {},
|
|
118
|
+
"packageManager": "yarn@1.22.17"
|
|
109
119
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg width="38" height="24" viewBox="0 0 38 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#orp6w81v6a)">
|
|
3
|
+
<path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/>
|
|
4
|
+
<path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#006FCF"/>
|
|
5
|
+
<path d="m8.971 10.268.774 1.876H8.203l.768-1.876zm16.075.078h-2.977v.827h2.929v1.239h-2.923v.922h2.977v.739l2.077-2.245-2.077-2.34-.006.858zm-14.063-2.34h3.995l.887 1.935L16.687 8h10.37l1.078 1.19L29.25 8h4.763l-3.519 3.852 3.483 3.828h-4.834l-1.078-1.19-1.125 1.19H10.03l-.494-1.19h-1.13l-.495 1.19H4L7.286 8h3.43l.267.006zm8.663 1.078h-2.239l-1.5 3.536-1.625-3.536H12.06v4.81L10 9.084H8.007l-2.382 5.512H7.18l.494-1.19h2.596l.494 1.19h2.72v-3.935l1.751 3.941h1.19l1.74-3.929v3.93h1.458l.024-5.52-.001.001zm9.34 2.768 2.531-2.768h-1.822l-1.601 1.726-1.548-1.726h-5.894v5.518h5.81l1.614-1.738 1.548 1.738h1.875l-2.512-2.75h-.001z" fill="#fff"/>
|
|
6
|
+
</g>
|
|
7
|
+
<defs>
|
|
8
|
+
<clipPath id="orp6w81v6a">
|
|
9
|
+
<path fill="#fff" d="M0 0h38v24H0z"/>
|
|
10
|
+
</clipPath>
|
|
11
|
+
</defs>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg width="38" height="24" viewBox="0 0 38 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_0_453)">
|
|
3
|
+
<path d="M34.3872 0H3.61287C3.48468 0 3.35626 0 3.2283 0.00067947C3.12026 0.00158543 3.01245 0.00271788 2.90441 0.00566225C2.66909 0.012004 2.43173 0.0260463 2.19935 0.0677205C1.9663 0.107648 1.74051 0.182074 1.52939 0.288548C1.10499 0.504411 0.760026 0.849374 0.544163 1.27378C0.4375 1.48497 0.363065 1.71095 0.323336 1.94419C0.281209 2.17679 0.267393 2.41393 0.261051 2.64903C0.258291 2.75697 0.25663 2.86493 0.256068 2.97291C0.255615 3.10065 0.255615 3.22884 0.255615 3.35726V20.6425C0.255615 20.7709 0.255615 20.8989 0.256068 21.0273C0.256748 21.1351 0.258107 21.2432 0.261051 21.3512C0.267393 21.5858 0.281435 21.8232 0.323336 22.0556C0.362983 22.2888 0.437342 22.5148 0.543937 22.726C0.651108 22.9369 0.790999 23.1296 0.958413 23.2967C1.12554 23.4642 1.31819 23.6041 1.52917 23.7112C1.74365 23.8206 1.96335 23.8902 2.19958 23.9325C2.43173 23.974 2.66909 23.988 2.90441 23.9943C3.01245 23.9968 3.12026 23.9982 3.2283 23.9989C3.35626 23.9998 3.48468 23.9998 3.61287 23.9998H34.3872C34.5152 23.9998 34.6436 23.9998 34.7715 23.9989C34.8794 23.9984 34.9872 23.9968 35.0956 23.9943C35.3305 23.988 35.5679 23.974 35.8007 23.9325C36.0338 23.8925 36.2596 23.818 36.4707 23.7112C36.8949 23.4951 37.2397 23.1502 37.4559 22.726C37.5653 22.5115 37.6346 22.2918 37.6765 22.0556C37.7186 21.8232 37.7322 21.5858 37.7386 21.3512C37.7415 21.2432 37.7431 21.1351 37.7435 21.0273C37.7444 20.8989 37.7444 20.7709 37.7444 20.6425V3.35749C37.7444 3.22907 37.7444 3.10087 37.7435 2.97268C37.7431 2.86478 37.7414 2.75689 37.7386 2.64903C37.7322 2.41393 37.7186 2.17679 37.6765 1.94419C37.6371 1.71091 37.5627 1.4849 37.4559 1.27378C37.2399 0.849448 36.895 0.504513 36.4707 0.288548C36.2595 0.182184 36.0337 0.107836 35.8007 0.067947C35.5679 0.0260463 35.3305 0.0122305 35.0956 0.00588874C34.9876 0.00314533 34.8796 0.00148432 34.7715 0.000905959C34.6436 0 34.5152 0 34.3872 0Z" fill="black"/>
|
|
4
|
+
<path d="M34.3873 0.799805L34.766 0.800484C34.8683 0.801164 34.9709 0.802296 35.074 0.805014C35.2536 0.809997 35.4633 0.819736 35.659 0.854842C35.8289 0.885418 35.9716 0.931848 36.1084 1.00161C36.3821 1.1408 36.6045 1.36345 36.7434 1.63736C36.8128 1.77326 36.859 1.91504 36.8895 2.08649C36.9244 2.27992 36.9342 2.49033 36.9389 2.67084C36.9419 2.77276 36.9432 2.87468 36.9434 2.97886C36.9446 3.10502 36.9446 3.23095 36.9446 3.35733V20.6426C36.9446 20.769 36.9446 20.8949 36.9437 21.0235C36.9432 21.1255 36.9418 21.2274 36.9391 21.3293C36.9341 21.5096 36.9244 21.72 36.8891 21.9157C36.8634 22.0713 36.8141 22.2222 36.743 22.363C36.6038 22.637 36.3811 22.8597 36.107 22.9988C35.9711 23.0681 35.8289 23.1145 35.6606 23.1448C35.4611 23.1804 35.2423 23.1901 35.0776 23.1947C34.9741 23.1969 34.8711 23.1985 34.7653 23.199C34.6396 23.1999 34.5132 23.1999 34.3873 23.1999H3.60798C3.48341 23.1999 3.35884 23.1999 3.232 23.199C3.13007 23.1985 3.02815 23.1972 2.92624 23.1949C2.75774 23.1904 2.53895 23.1804 2.34099 23.1451C2.18448 23.119 2.03283 23.0694 1.89119 22.9979C1.75532 22.9288 1.63131 22.8386 1.52382 22.7306C1.41599 22.623 1.32593 22.4989 1.25701 22.363C1.18584 22.2214 1.13651 22.0698 1.1107 21.9134C1.07537 21.718 1.0654 21.5085 1.06087 21.3295C1.05831 21.2272 1.0568 21.1249 1.05634 21.0226L1.05566 20.7221V3.27806L1.05612 2.97796C1.05658 2.8755 1.05809 2.77304 1.06065 2.67061C1.06563 2.49123 1.07537 2.28173 1.11093 2.08468C1.13679 1.9286 1.18612 1.77733 1.25724 1.63601C1.32609 1.50056 1.41578 1.3769 1.5245 1.26841C1.63225 1.16049 1.75639 1.07029 1.89232 1.00115C2.03362 0.930167 2.18479 0.880844 2.34077 0.854842C2.53668 0.819736 2.74664 0.809997 2.92647 0.805014C3.02884 0.802296 3.13144 0.801164 3.23314 0.800484L3.61296 0.799805H34.3873Z" fill="white"/>
|
|
5
|
+
<path d="M10.1097 8.10171C10.4277 7.70422 10.6433 7.17039 10.5864 6.625C10.1212 6.6481 9.55363 6.93189 9.22477 7.32984C8.92965 7.67048 8.66851 8.22651 8.73646 8.74902C9.25874 8.79432 9.78058 8.48811 10.1097 8.10171Z" fill="black"/>
|
|
6
|
+
<path d="M10.5806 8.85119C9.82187 8.80589 9.17727 9.28152 8.81512 9.28152C8.45273 9.28152 7.89806 8.87384 7.29809 8.88493C6.51738 8.89626 5.79306 9.33791 5.39671 10.04C4.58179 11.4443 5.18154 13.528 5.97425 14.6717C6.35906 15.238 6.82291 15.8608 7.43398 15.8384C8.01153 15.8158 8.23779 15.4647 8.93946 15.4647C9.6409 15.4647 9.84474 15.8384 10.456 15.8271C11.0898 15.8157 11.4861 15.2608 11.8709 14.6946C12.3126 14.0491 12.4931 13.4263 12.5044 13.3923C12.4931 13.381 11.2823 12.9165 11.2709 11.5235C11.2596 10.3571 12.2218 9.80222 12.267 9.76802C11.7237 8.96443 10.8748 8.87384 10.5804 8.85119" fill="black"/>
|
|
7
|
+
<path d="M18.1422 7.27295C19.7906 7.27295 20.9386 8.40925 20.9386 10.0635C20.9386 11.7237 19.767 12.8659 18.101 12.8659H16.2759V15.7686H14.9573V7.27295H18.1422ZM16.2759 11.759H17.7889C18.9372 11.759 19.5904 11.1409 19.5904 10.0694C19.5904 8.99812 18.9369 8.38569 17.7947 8.38569H16.2759V11.759Z" fill="black"/>
|
|
8
|
+
<path d="M21.2656 14.008C21.2656 12.9188 22.0957 12.2949 23.6263 12.2006L25.2688 12.1005V11.6294C25.2688 10.9409 24.8156 10.564 24.0091 10.564C23.3437 10.564 22.8608 10.9053 22.7611 11.4292H21.5716C21.6072 10.3285 22.6431 9.52783 24.0444 9.52783C25.5515 9.52783 26.5347 10.3167 26.5347 11.5413V15.7683H25.3162V14.7498H25.2867C24.9393 15.415 24.1738 15.8329 23.3437 15.8329C22.1193 15.8329 21.2656 15.1031 21.2656 14.008ZM25.2688 13.4606V12.9836L23.803 13.0778C22.9786 13.1308 22.5491 13.4368 22.5491 13.9725C22.5491 14.4907 22.9965 14.8263 23.697 14.8263C24.5916 14.8263 25.2688 14.2551 25.2688 13.4606Z" fill="black"/>
|
|
9
|
+
<path d="M27.6552 18.0408V17.0225C27.7376 17.034 27.9376 17.0458 28.0436 17.0458C28.6263 17.0458 28.9561 16.7989 29.1563 16.1627L29.2741 15.7861L27.0427 9.60449H28.4202L29.9746 14.6203H30.0041L31.5583 9.60449H32.9007L30.5868 16.098C30.0569 17.5876 29.4505 18.0763 28.1672 18.0763C28.0671 18.0763 27.7433 18.0646 27.6552 18.0408Z" fill="black"/>
|
|
10
|
+
</g>
|
|
11
|
+
<defs>
|
|
12
|
+
<clipPath id="clip0_0_453">
|
|
13
|
+
<rect width="38" height="24" fill="white"/>
|
|
14
|
+
</clipPath>
|
|
15
|
+
</defs>
|
|
16
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg width="38" height="24" viewBox="0 0 38 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#7dr9ioy5ra)">
|
|
3
|
+
<path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/>
|
|
4
|
+
<path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/>
|
|
5
|
+
<path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698a1.348 1.348 0 0 0 1.37-1.117 1.39 1.39 0 0 0-1.37-1.64l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.65v3.333h-.97v-.766h-.048a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.605 1.605 0 0 1 .613-1.336 2.747 2.747 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.136 1.136 0 0 0-.417-.9 1.417 1.417 0 0 0-.98-.369 1.546 1.546 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.06zM23.29 13.52a.788.788 0 0 0 .337.662c.223.176.5.27.785.263.429 0 .84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.885.885 0 0 0-.392.73zm9.286-3.75-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/>
|
|
6
|
+
<path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/>
|
|
7
|
+
<path d="M9.629 15.72a4.352 4.352 0 0 0 3.01-1.096l-1.466-1.14a2.753 2.753 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/>
|
|
8
|
+
<path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/>
|
|
9
|
+
<path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/>
|
|
10
|
+
</g>
|
|
11
|
+
<defs>
|
|
12
|
+
<clipPath id="7dr9ioy5ra">
|
|
13
|
+
<path fill="#fff" d="M0 0h38v24H0z"/>
|
|
14
|
+
</clipPath>
|
|
15
|
+
</defs>
|
|
16
|
+
</svg>
|