MVP core recesso: App Proxy flow + ricevuta durevole + design storefront

- A1: SPEC-MVP-RECESSO.md (criteri + copy IT)
- A3: App Proxy /apps/recesso — lookup guest ordine+email (anti-leak), form 2-step,
  funzione dedicata Conferma recesso, persist WithdrawalRequest + transmittedAt + AuditLog
- A4: ricevuta durevole via nodemailer (mailer.server.ts) + receiptSentAt + AuditLog
- Design: recesso.server.ts restyle token CSS light/dark, coerente Shopify
- Fix: @shopify/shopify-api pinnato 13.1.0 (dedupe) -> tsc clean
- PLAN: A5 esteso a motore di stile a 3 livelli

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:
2026-07-07 09:52:47 +02:00
parent 4586b2e557
commit 8ca4de6c0b
9 changed files with 1551 additions and 1 deletions

View File

@@ -34,6 +34,7 @@
"@shopify/shopify-app-remix": "^4.1.0",
"@shopify/shopify-app-session-storage-prisma": "^8.0.0",
"isbot": "^5.1.0",
"nodemailer": "^9.0.3",
"prisma": "^6.2.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
@@ -45,6 +46,7 @@
"@shopify/api-codegen-preset": "^1.1.1",
"@types/eslint": "^9.6.1",
"@types/node": "^22.2.0",
"@types/nodemailer": "^8.0.1",
"@types/react": "^18.2.31",
"@types/react-dom": "^18.2.14",
"eslint": "^8.42.0",
@@ -62,6 +64,7 @@
"@shopify/plugin-cloudflare"
],
"resolutions": {
"@shopify/shopify-api": "13.1.0",
"@graphql-tools/url-loader": "8.0.16",
"@graphql-codegen/client-preset": "4.7.0",
"@graphql-codegen/typescript-operations": "4.5.0",
@@ -69,6 +72,7 @@
"vite": "^6.2.2"
},
"overrides": {
"@shopify/shopify-api": "13.1.0",
"@graphql-tools/url-loader": "8.0.16",
"@graphql-codegen/client-preset": "4.7.0",
"@graphql-codegen/typescript-operations": "4.5.0",