metatrondelivery/package.json
metatroncubeswdev e116a6c87a fix: Theme App Extension only allows assets/blocks/snippets/locales dirs
`shopify app dev` failed dev preview with "Only assets, blocks, snippets,
locales directories are allowed" — the widget's TypeScript source lived in
extensions/datetime-widget/src/, which isn't one of the four directories a
Theme App Extension may contain. Moved it to widget-src/datetime-widget/
(a plain, non-extension folder outside extensions/) and updated
build:widget's esbuild input path accordingly; the bundled output still
lands in the same place (extensions/datetime-widget/assets/).

Also fixed a theme-check warning surfaced during the same run:
`script_tag` renders a parser-blocking <script> with no way to defer it —
switched to a manual <script defer> tag for the widget's JS asset.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 21:51:54 -04:00

99 lines
3.2 KiB
JSON

{
"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",
"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"
}
}