Files
HokmPlay/package.json
T
soroush.asadi 8ffdc6a5b1
CI/CD / CI - API (dotnet build + engine sim) (push) Successful in 38s
CI/CD / CI - Web (tsc + next build) (push) Successful in 1m9s
CI/CD / Deploy - local stack (db + server + web) (push) Successful in 1m28s
iap: per-release payment flavors (web=ZarinPal, bazaar, myket)
Payment provider is baked at build time via NEXT_PUBLIC_STORE and selected by
storeBilling.getStore(). Add cross-env + flavor build scripts:

  npm run build:web | build:bazaar | build:myket     # web bundle per flavor
  npm run cap:bazaar | cap:myket                      # build flavor + cap sync
  npm run aab:bazaar | aab:myket                      # signed AAB (bundleRelease)
  npm run apk:bazaar | apk:myket                      # release APK (assembleRelease)

web → ZarinPal gateway, bazaar → Cafe Bazaar IAB (deep-link), myket → Myket IAB
(native bridge). A plain native build with no flavor still falls back to bazaar.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 14:56:32 +03:30

53 lines
1.8 KiB
JSON

{
"name": "barg-e-vasat",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint",
"build:web": "cross-env NEXT_PUBLIC_STORE=web next build",
"build:bazaar": "cross-env NEXT_PUBLIC_STORE=bazaar next build",
"build:myket": "cross-env NEXT_PUBLIC_STORE=myket next build",
"cap:sync": "next build && npx cap sync android",
"cap:bazaar": "npm run build:bazaar && npx cap sync android",
"cap:myket": "npm run build:myket && npx cap sync android",
"android:open": "npx cap open android",
"android:apk": "npm run cap:sync && cd android && gradlew.bat assembleDebug",
"aab:bazaar": "npm run cap:bazaar && cd android && gradlew.bat bundleRelease",
"aab:myket": "npm run cap:myket && cd android && gradlew.bat bundleRelease",
"apk:bazaar": "npm run cap:bazaar && cd android && gradlew.bat assembleRelease",
"apk:myket": "npm run cap:myket && cd android && gradlew.bat assembleRelease"
},
"dependencies": {
"@capacitor/app": "^8.1.0",
"@capacitor/core": "^8.4.0",
"@fontsource-variable/plus-jakarta-sans": "^5.2.8",
"@fontsource-variable/vazirmatn": "^5.2.8",
"@microsoft/signalr": "^10.0.0",
"clsx": "^2.1.1",
"framer-motion": "^12.40.0",
"lucide-react": "^1.17.0",
"next": "16.2.7",
"react": "19.2.4",
"react-dom": "19.2.4",
"tailwind-merge": "^3.6.0",
"zustand": "^5.0.14"
},
"devDependencies": {
"@capacitor/android": "^8.4.0",
"@capacitor/cli": "^8.4.0",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"cross-env": "^10.1.0",
"eslint": "^9",
"eslint-config-next": "16.2.7",
"playwright": "^1.60.0",
"tailwindcss": "^4",
"typescript": "^5"
}
}