{ "name": "delivery-datetime-app", "private": true, "scripts": { "build": "remix vite:build", "predev": "npm run build:widget", "dev": "shopify app dev", "predeploy": "npm run build:widget", "config:link": "shopify app config link", "generate": "shopify app generate", "deploy": "shopify app deploy", "config:use": "shopify app config use", "env": "shopify app env", "start": "remix-serve ./build/server/index.js", "docker-start": "npm run setup && npm run start", "setup": "prisma generate && prisma migrate deploy", "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", "typegen:functions": "npm --prefix extensions/validation-slot run typegen && npm --prefix extensions/delivery-customization run typegen", "pretypecheck": "npm run typegen:functions", "typecheck": "tsc --noEmit", "typecheck:pos": "npm --prefix extensions/pos-datetime run typecheck", "typecheck:checkout": "npm --prefix extensions/checkout-datetime run typecheck", "test:functions": "npm --prefix extensions/validation-slot test && npm --prefix extensions/delivery-customization test", "test": "vitest", "test:integration": "vitest run --config vitest.integration.config.ts", "test:e2e": "playwright test", "build:widget": "esbuild widget-src/datetime-widget/datetime-widget.ts --bundle --minify --target=es2019 --outfile=extensions/datetime-widget/assets/datetime-widget.js", "worker": "tsx jobs/worker.ts", "shopify": "shopify", "prisma": "prisma", "graphql-codegen": "graphql-codegen", "vite": "vite" }, "type": "module", "engines": { "node": ">=20.19 <22 || >=22.12" }, "dependencies": { "@prisma/client": "^6.2.1", "@remix-run/dev": "^2.16.1", "@remix-run/fs-routes": "^2.16.1", "@remix-run/node": "^2.16.1", "@remix-run/react": "^2.16.1", "@remix-run/serve": "^2.16.1", "@shopify/app-bridge-react": "^4.1.6", "@shopify/polaris": "^12.0.0", "@shopify/shopify-app-remix": "^4.1.0", "@shopify/shopify-app-session-storage-prisma": "^9.0.1", "bullmq": "^5.34.0", "ioredis": "^5.4.2", "isbot": "^5.1.0", "luxon": "^3.5.0", "prisma": "^6.2.1", "react": "^18.2.0", "react-dom": "^18.2.0", "vite-tsconfig-paths": "^5.0.1" }, "devDependencies": { "@playwright/test": "^1.49.1", "@remix-run/eslint-config": "^2.16.1", "@remix-run/route-config": "^2.16.1", "@shopify/api-codegen-preset": "^1.1.1", "@types/eslint": "^9.6.1", "@types/luxon": "^3.4.2", "@types/node": "^22.2.0", "@types/react": "^18.2.31", "@types/react-dom": "^18.2.14", "dotenv": "^16.4.7", "esbuild": "^0.24.2", "eslint": "^8.42.0", "eslint-config-prettier": "^10.0.1", "prettier": "^3.2.4", "tsx": "^4.19.2", "typescript": "^5.2.2", "vite": "^6.2.2", "vitest": "^2.1.8" }, "workspaces": { "packages": [ "extensions/*" ] }, "trustedDependencies": [ "@shopify/plugin-cloudflare" ], "resolutions": { "@graphql-tools/url-loader": "8.0.16", "@graphql-codegen/client-preset": "4.7.0", "@graphql-codegen/typescript-operations": "4.5.0", "minimatch": "9.0.5", "vite": "^6.2.2" }, "overrides": { "@graphql-tools/url-loader": "8.0.16", "@graphql-codegen/client-preset": "4.7.0", "@graphql-codegen/typescript-operations": "4.5.0", "minimatch": "9.0.5", "vite": "^6.2.2" } }