Replace manual "type the number and order ID" flow with: - Client-side QR code (qrcode npm package) for desktop users - Pre-filled Swish payment URL (app.swish.nu) for mobile users - Manual number fallback + "Jag har betalat" confirmation The Swish C2B URL scheme pre-fills amount and message (order ID) without requiring any Swish Commerce API certificate or bank agreement. Supports both personal phone numbers (070...) and Swish Företag business numbers (123...) via number normalization in buildSwishPaymentUrl(). Set SWISH_NUMBER in .env to a Företags number once set up.
45 lines
1.3 KiB
JSON
45 lines
1.3 KiB
JSON
{
|
|
"name": "frontend",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vue-tsc -b && vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint src/ --fix",
|
|
"format": "prettier --write src/",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:ci": "docker compose -f ../docker-compose.e2e.yml up --build --abort-on-container-exit --exit-code-from playwright"
|
|
},
|
|
"dependencies": {
|
|
"pinia": "^3.0.4",
|
|
"qrcode": "^1.5.4",
|
|
"vue": "^3.5.32",
|
|
"vue-router": "^5.0.6"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.60.0",
|
|
"@rushstack/eslint-patch": "^1.16.1",
|
|
"@types/node": "^24.12.2",
|
|
"@types/qrcode": "^1.5.5",
|
|
"@vitejs/plugin-vue": "^6.0.6",
|
|
"@vitest/coverage-v8": "^4.1.6",
|
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
"@vue/eslint-config-typescript": "^14.7.0",
|
|
"@vue/test-utils": "^2.4.10",
|
|
"@vue/tsconfig": "^0.9.1",
|
|
"eslint": "^10.2.1",
|
|
"eslint-plugin-vue": "^10.9.0",
|
|
"jiti": "^2.6.1",
|
|
"jsdom": "^29.1.1",
|
|
"prettier": "^3.8.3",
|
|
"typescript": "~6.0.2",
|
|
"vite": "^8.0.10",
|
|
"vitest": "^4.1.5",
|
|
"vue-tsc": "^3.2.7"
|
|
}
|
|
}
|