import "@shopify/shopify-app-react-router/adapters/node"; import { ApiVersion, AppDistribution, shopifyApp, } from "@shopify/shopify-app-react-router/server"; import prisma from "./db.server"; import { requireEnv } from "./services/config/env.server"; import { EncryptedPrismaSessionStorage } from "./services/session/encryptedSessionStorage.server"; const shopify = shopifyApp({ apiKey: requireEnv("SHOPIFY_API_KEY"), apiSecretKey: requireEnv("SHOPIFY_API_SECRET"), apiVersion: ApiVersion.October25, scopes: process.env.SCOPES?.split(","), appUrl: requireEnv("SHOPIFY_APP_URL"), authPathPrefix: "/auth", sessionStorage: new EncryptedPrismaSessionStorage(prisma), distribution: AppDistribution.SingleMerchant, future: { expiringOfflineAccessTokens: true, }, ...(process.env.SHOP_CUSTOM_DOMAIN ? { customShopDomains: [process.env.SHOP_CUSTOM_DOMAIN] } : {}), }); export default shopify; export const apiVersion = ApiVersion.October25; export const addDocumentResponseHeaders = shopify.addDocumentResponseHeaders; export const authenticate = shopify.authenticate; export const unauthenticated = shopify.unauthenticated; export const login = shopify.login; export const registerWebhooks = shopify.registerWebhooks; export const sessionStorage = shopify.sessionStorage;