export Backend: - Add email verification code generation and verification endpoints - Add profile picture upload with S3 storage and image processing - Add deposit_required field to users with 48h advance booking requirement - Add loyalty stamps that accumulate on completed bookings - Auto-transition bookings: confirmed → in_progress → completed - Add booking cancellation handler with no-show detection - Add ICS calendar file download endpoint for bookings - Sync bookings to CalDAV on confirmation Frontend: - Add schedule page route - Add avatar and image-cropper UI components - Update shadcn-svelte components (button, dialog) - Add "Add to Calendar" button in booking modal Database: - Add verification_codes table - Add profile_pic_url, loyalty_stamps, deposits_required to users - Various schema updates
65 lines
1.8 KiB
JSON
65 lines
1.8 KiB
JSON
{
|
|
"name": "crussell",
|
|
"private": true,
|
|
"version": "0.0.1",
|
|
"type": "module",
|
|
"overrides": {
|
|
"cookie": "^0.7.0",
|
|
"minimatch": "^10.2.1"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"prepare": "svelte-kit sync || echo ''",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
"format": "prettier --write .",
|
|
"lint": "prettier --check . && eslint ."
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/compat": "^1.2.5",
|
|
"@eslint/js": "^9.22.0",
|
|
"@internationalized/date": "^3.11.0",
|
|
"@lucide/svelte": "^0.562.0",
|
|
"@sveltejs/adapter-auto": "^6.0.0",
|
|
"@sveltejs/adapter-static": "^3.0.9",
|
|
"@sveltejs/kit": "^2.22.0",
|
|
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
"@tailwindcss/vite": "^4.2.0",
|
|
"@types/node": "^22.19.11",
|
|
"bits-ui": "^2.16.1",
|
|
"clsx": "^2.1.1",
|
|
"eslint": "^9.22.0",
|
|
"eslint-config-prettier": "^10.0.1",
|
|
"eslint-plugin-svelte": "^3.0.0",
|
|
"formsnap": "^2.0.1",
|
|
"globals": "^17.3.0",
|
|
"mode-watcher": "^1.1.0",
|
|
"prettier": "^3.8.1",
|
|
"prettier-plugin-svelte": "^3.5.0",
|
|
"prettier-plugin-tailwindcss": "^0.7.2",
|
|
"runed": "^0.37.1",
|
|
"shadcn-svelte": "^1.1.1",
|
|
"svelte": "^5.0.0",
|
|
"svelte-check": "^4.4.3",
|
|
"svelte-easy-crop": "^5.0.0",
|
|
"svelte-sonner": "^1.0.7",
|
|
"svelte-toolbelt": "^0.10.6",
|
|
"sveltekit-superforms": "^2.27.1",
|
|
"tailwind-merge": "^3.5.0",
|
|
"tailwind-variants": "^3.2.2",
|
|
"tailwindcss": "^4.2.0",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5.9.3",
|
|
"typescript-eslint": "^8.20.0",
|
|
"vite": "^7.0.4"
|
|
},
|
|
"dependencies": {
|
|
"@zxcvbn-ts/core": "^3.0.4",
|
|
"@zxcvbn-ts/language-common": "^3.0.4",
|
|
"@zxcvbn-ts/language-en": "^3.0.2",
|
|
"cropperjs": "^1.6.2"
|
|
}
|
|
}
|