Initial scaffold: Shopify recesso (withdrawal) compliance app
- Remix (TypeScript) + Polaris, official Shopify app template - Prisma multi-tenant schema (Settings, ExclusionRule, WithdrawalRequest, AuditLog, WebhookEvent) on Postgres - Mandatory GDPR compliance webhooks (data_request, redact, shop/redact) + HMAC handlers - API version pinned 2026-04, scopes read_orders/read_products - Fly deploy config; two-env strategy (custom now, public later) - Dev setup: shopify.web.toml + Vite allowedHosts for tunnels - Docs: PLAN.md, ANALISI-REQUISITI-LEGALI.md (Art. 54-bis compliance) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mv83a29B4eFv5ixoj6PoE1
This commit is contained in:
78
app/package.json
Normal file
78
app/package.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"name": "app",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "remix vite:build",
|
||||
"dev": "shopify app dev",
|
||||
"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 .",
|
||||
"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": "^8.0.0",
|
||||
"isbot": "^5.1.0",
|
||||
"prisma": "^6.2.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"vite-tsconfig-paths": "^5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@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/node": "^22.2.0",
|
||||
"@types/react": "^18.2.31",
|
||||
"@types/react-dom": "^18.2.14",
|
||||
"eslint": "^8.42.0",
|
||||
"eslint-config-prettier": "^10.0.1",
|
||||
"prettier": "^3.2.4",
|
||||
"typescript": "^5.2.2",
|
||||
"vite": "^6.2.2"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user