A pass sells a ticket at each of several events in a series for one price. Supervisors set passes up on the Event series page (events and ticket per event; fixed once sold). Buying on the series page registers the buyer at every event at once with one checkout (free passes give tickets straight away; Pay now if online payment isn't possible). The price is split over the events in proportion to their normal prices: each registration line is priced at its share and the webhook records one Payment per event, so cashups stay per event. Pass registrations aren't repriced, take no coupons and can't be edited. Migration 20261028150000_season_pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
73 lines
2.0 KiB
JSON
73 lines
2.0 KiB
JSON
{
|
|
"name": "hope-events-frontend",
|
|
"version": "1.47.3",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint"
|
|
},
|
|
"dependencies": {
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@hookform/resolvers": "^5.2.1",
|
|
"@radix-ui/react-accordion": "^1.2.11",
|
|
"@radix-ui/react-alert-dialog": "^1.1.14",
|
|
"@radix-ui/react-avatar": "^1.1.10",
|
|
"@radix-ui/react-checkbox": "^1.3.2",
|
|
"@radix-ui/react-dialog": "^1.1.14",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
"@radix-ui/react-label": "^2.1.7",
|
|
"@radix-ui/react-navigation-menu": "^1.2.13",
|
|
"@radix-ui/react-radio-group": "^1.3.7",
|
|
"@radix-ui/react-select": "^2.2.5",
|
|
"@radix-ui/react-separator": "^1.1.7",
|
|
"@radix-ui/react-slider": "^1.3.5",
|
|
"@radix-ui/react-slot": "^1.2.3",
|
|
"@radix-ui/react-switch": "^1.2.5",
|
|
"@radix-ui/react-tabs": "^1.1.12",
|
|
"@radix-ui/react-toast": "^1.2.14",
|
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
"@sentry/nextjs": "^10.71.0",
|
|
"@zxing/browser": "^0.1.5",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"idb": "^8.0.4",
|
|
"lucide-react": "^0.536.0",
|
|
"next": "^15.5.24",
|
|
"qrcode": "^1.5.4",
|
|
"react": "19.1.0",
|
|
"react-day-picker": "^9.8.1",
|
|
"react-dom": "19.1.0",
|
|
"react-hook-form": "^7.62.0",
|
|
"react-webcam": "^7.2.0",
|
|
"tailwind-merge": "^3.3.1",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"zod": "^4.0.15"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@types/node": "^20",
|
|
"@types/qrcode": "^1.5.5",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"autoprefixer": "^10.4.21",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "^15.5.24",
|
|
"postcss": "^8.5.6",
|
|
"tailwindcss": "3.4",
|
|
"typescript": "^5"
|
|
},
|
|
"overrides": {
|
|
"next": {
|
|
"postcss": "^8.5.23"
|
|
},
|
|
"postcss-selector-parser": "^7.1.7"
|
|
},
|
|
"allowScripts": {
|
|
"@sentry/cli@2.58.6": true,
|
|
"unrs-resolver@1.12.2": true
|
|
}
|
|
}
|