text: const commerce = require('./commerce.config.json')
  const {
    withCommerceConfig,
    getProviderName,
  } = require('./framework/commerce/config')
  
  const provider = commerce.provider || getProviderName()
  const isBC = provider === 'bigcommerce'
  const isShopify = provider === 'shopify'
  const isSaleor = provider === 'saleor'
  const isSwell = provider === 'swell'
  const isVendure = provider === 'vendure'
  
  const STUDIO_REWRITE = {
    source: '/studio/:path*',
    destination:
      process.env.NODE_ENV === 'development'
        ? 'http://localhost:3333/studio/:path*'
        : '/studio/index.html',
  }
  
  module.exports = withCommerceConfig({
    commerce,
    i18n: {
      locales: ['en-US', 'es'],
      defaultLocale: 'en-US',
    },
    rewrites() {
      return [
        // sanity self hosted
        STUDIO_REWRITE,
        // vercel commerce
        (isBC || isShopify || isSwell || isVendure) && {
          source: '/checkout',
          destination: '/api/checkout',
        },
        // The logout is also an action so this route is not required, but it's also another way
        // you can allow a logout!
        isBC && {
          source: '/logout',
          destination: '/api/logout?redirect_to=/',
        },
        // For Vendure, rewrite the local api url to the remote (external) api url. This is required
        // to make the session cookies work.
        isVendure &&
        process.env.NEXT_PUBLIC_VENDURE_LOCAL_URL && {
          source: `${process.env.NEXT_PUBLIC_VENDURE_LOCAL_URL}/:path*`,
          destination: `${process.env.NEXT_PUBLIC_VENDURE_SHOP_API_URL}/:path*`,
        },
      ].filter(Boolean)
    },
  })
  
  // Don't delete this console log, useful to see the commerce config in Vercel deployments
  console.log('next.config.js', JSON.stringify(module.exports, null, 2))
  