From ab7096a3a9fd843c0610aa74e9902d2091993088 Mon Sep 17 00:00:00 2001 From: RicardoNicolau Date: Sat, 6 Sep 2025 14:51:45 +0200 Subject: [PATCH 01/20] Add root .gitignore to ignore secrets and builds --- .gitignore | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 3d70248ba2..7089420a3e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,24 @@ -node_modules -.DS_Store -.env -.env.local -.env.development.local -.env.test.local -.env.production.local +# --- Node --- +node_modules/ +npm-debug.log* +yarn.lock +pnpm-lock.yaml -build +# --- Build artifacts --- +client/dist/ +server/dist/ +*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* +# --- Env (secrets) --- +.env +*.env +client/.env +server/.env + +# --- OS cruft --- +.DS_Store +Thumbs.db -package-lock.json \ No newline at end of file +# --- Editor --- +.vscode/ +.idea/ From 31935db2797210012e5520b71852f029e191325d Mon Sep 17 00:00:00 2001 From: RicardoNicolau Date: Sat, 6 Sep 2025 15:06:53 +0200 Subject: [PATCH 02/20] Replace old scaffold with client/server app; add .gitignore and env example --- Procfile | 1 - README.md | 13 - README.txt | 240 ++ backend/.babelrc | 5 - backend/README.md | 8 - backend/package.json | 20 - backend/server.js | 22 - client/.env.local | 8 + client/index.html | 38 + client/package-lock.json | 3061 ++++++++++++++++++++++ client/package.json | 23 + client/postcss.config.js | 6 + client/public/apple-touch-icon.png | Bin 0 -> 52009 bytes client/public/favicon-96x96.png | Bin 0 -> 17475 bytes client/public/favicon.ico | Bin 0 -> 15086 bytes client/public/favicon.svg | 3 + client/public/icon-192.png | Bin 0 -> 58537 bytes client/public/icon-512.png | Bin 0 -> 315930 bytes client/public/logo.png | Bin 0 -> 206444 bytes client/public/robots.txt | 4 + client/public/site.webmanifest | 11 + client/public/sitemap.xml | 5 + client/src/App.jsx | 61 + client/src/auth.jsx | 38 + client/src/authStore.js | 28 + client/src/brand.js | 5 + client/src/components/Header.jsx | 96 + client/src/components/ProtectedRoute.jsx | 18 + client/src/components/ThemeToggle.jsx | 18 + client/src/index.css | 25 + client/src/lib.js | 41 + client/src/main.jsx | 21 + client/src/pages/AdminDashboard.jsx | 94 + client/src/pages/AdminLogin.jsx | 39 + client/src/pages/ConfirmPage.jsx | 24 + client/src/pages/DetailsPage.jsx | 97 + client/src/pages/SelectTime.jsx | 162 ++ client/src/seo.js | 43 + client/tailwind.config.js | 11 + {frontend => client}/vite.config.js | 1 - frontend/README.md | 8 - frontend/index.html | 13 - frontend/package.json | 26 - frontend/public/vite.svg | 1 - frontend/src/App.jsx | 8 - frontend/src/assets/boiler-plate.svg | 18 - frontend/src/assets/react.svg | 1 - frontend/src/assets/technigo-logo.svg | 31 - frontend/src/index.css | 0 frontend/src/main.jsx | 10 - package.json | 7 - server/.env.example | 29 + server/index.js | 283 ++ server/package-lock.json | 1406 ++++++++++ server/package.json | 20 + 55 files changed, 5958 insertions(+), 193 deletions(-) delete mode 100644 Procfile delete mode 100644 README.md create mode 100644 README.txt delete mode 100644 backend/.babelrc delete mode 100644 backend/README.md delete mode 100644 backend/package.json delete mode 100644 backend/server.js create mode 100644 client/.env.local create mode 100644 client/index.html create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/postcss.config.js create mode 100644 client/public/apple-touch-icon.png create mode 100644 client/public/favicon-96x96.png create mode 100644 client/public/favicon.ico create mode 100644 client/public/favicon.svg create mode 100644 client/public/icon-192.png create mode 100644 client/public/icon-512.png create mode 100644 client/public/logo.png create mode 100644 client/public/robots.txt create mode 100644 client/public/site.webmanifest create mode 100644 client/public/sitemap.xml create mode 100644 client/src/App.jsx create mode 100644 client/src/auth.jsx create mode 100644 client/src/authStore.js create mode 100644 client/src/brand.js create mode 100644 client/src/components/Header.jsx create mode 100644 client/src/components/ProtectedRoute.jsx create mode 100644 client/src/components/ThemeToggle.jsx create mode 100644 client/src/index.css create mode 100644 client/src/lib.js create mode 100644 client/src/main.jsx create mode 100644 client/src/pages/AdminDashboard.jsx create mode 100644 client/src/pages/AdminLogin.jsx create mode 100644 client/src/pages/ConfirmPage.jsx create mode 100644 client/src/pages/DetailsPage.jsx create mode 100644 client/src/pages/SelectTime.jsx create mode 100644 client/src/seo.js create mode 100644 client/tailwind.config.js rename {frontend => client}/vite.config.js (81%) delete mode 100644 frontend/README.md delete mode 100644 frontend/index.html delete mode 100644 frontend/package.json delete mode 100644 frontend/public/vite.svg delete mode 100644 frontend/src/App.jsx delete mode 100644 frontend/src/assets/boiler-plate.svg delete mode 100644 frontend/src/assets/react.svg delete mode 100644 frontend/src/assets/technigo-logo.svg delete mode 100644 frontend/src/index.css delete mode 100644 frontend/src/main.jsx delete mode 100644 package.json create mode 100644 server/.env.example create mode 100644 server/index.js create mode 100644 server/package-lock.json create mode 100644 server/package.json diff --git a/Procfile b/Procfile deleted file mode 100644 index dc14c0b63a..0000000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: npm start --prefix backend \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 31466b54c2..0000000000 --- a/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Final Project - -Replace this readme with your own information about your project. - -Start by briefly describing the assignment in a sentence or two. Keep it short and to the point. - -## The problem - -Describe how you approached to problem, and what tools and techniques you used to solve it. How did you plan? What technologies did you use? If you had more time, what would be next? - -## View it live - -Every project should be deployed somewhere. Be sure to include the link to the deployed project so that the viewer can click around and see what it's all about. \ No newline at end of file diff --git a/README.txt b/README.txt new file mode 100644 index 0000000000..f9ea6824c8 --- /dev/null +++ b/README.txt @@ -0,0 +1,240 @@ +# Best barber – Booking App + +A fast, robust booking app for barbershops. Customers book in **two quick steps** (date/time → details), receive a **confirmation email with an .ics calendar attachment**, and the shop manages bookings via an **admin dashboard** (login, mark done/undo, delete). + +## Features + +- 📅 Two-step flow (Calendly-style): **Pick date/time → Fill details → Confirm** +- ✉️ Confirmation email with **.ics** calendar invite +- 🔐 **Admin** with JWT login, **Mark done / Undo**, **Delete** +- 🌙 **Dark mode** (class-based) & fully responsive UI (Tailwind) +- 🧱 Overbooking protection: DB **unique index** on `date + time` +- 🛡️ Security: `helmet`, `cors`, `rate-limit`, server-side validation +- ⚡ Performance & SEO: compression, semantic HTML, meta tags, PWA manifest + +## Tech Stack + +**Frontend:** React (Vite), React Router, Tailwind CSS +**Backend:** Node.js, Express, Mongoose (MongoDB), Nodemailer (Mailtrap) +**Other:** JWT (admin), .ics generation, optional WhatsApp Cloud API notifications + +--- + +## Directory Structure + +``` +project-final/ +├─ client/ # React app (Vite) +│ ├─ public/ # favicons, manifest, apple-touch-icon, logo.png +│ ├─ src/ +│ │ ├─ components/ # Header, ThemeToggle, ProtectedRoute, ... +│ │ ├─ pages/ # SelectTime, DetailsPage, ConfirmPage, Admin* +│ │ ├─ brand.js, lib.js, main.jsx, App.jsx, index.css, ... +│ └─ index.html +└─ server/ # Express API + ├─ index.js # API routes, mail, DB + ├─ package.json + └─ .env # 🔒 private environment variables (not in git) +``` + +--- + +## Getting Started (Local) + +### 0) Requirements +- Node 18+ +- A MongoDB database (e.g. MongoDB Atlas) +- A Mailtrap account (Sandbox inbox for development) + +### 1) Install +```bash +git clone +cd project-final + +# client +cd client +npm i + +# server +cd ../server +npm i +``` + +### 2) Environment Variables + +Create **`server/.env`** (do **not** commit this file): + +```env +# ----- MongoDB ----- +MONGODB_URI=mongodb+srv://:@.mongodb.net/bookingapp?retryWrites=true&w=majority&appName= +PORT=5000 +CLIENT_URL=http://localhost:5173 + +# ----- Admin ----- +ADMIN_EMAIL=admin@example.com +ADMIN_PASSWORD=changeme +JWT_SECRET= + +# ----- Mail (dev: Mailtrap Sandbox) ----- +SMTP_HOST=sandbox.smtp.mailtrap.io +SMTP_PORT=2525 +SMTP_USER= +SMTP_PASS= +FROM_EMAIL="Bästa barbern " + +# ----- Notifications (optional) ----- +BARBER_EMAIL=barber@example.com +BARBER_WHATSAPP= +WHATSAPP_TOKEN= +WHATSAPP_PHONE_ID= +``` + +Optional **`client/.env`** (mainly for production): +```env +# In dev the client auto-uses http://localhost:5000 +VITE_API_BASE=https://your-api.example.com +VITE_BRAND_NAME=Bästa barbern +VITE_LOGO_URL=/logo.png +``` + +### 3) Run (two terminals) + +**Server:** +```bash +cd server +npm run dev +# -> Server listening on 5000 +``` + +**Client:** +```bash +cd client +npm run dev +# -> http://localhost:5173 +``` + +Open `http://localhost:5173` in your browser. + +--- + +## API Overview + +| Method | Path | Description | Auth | +|------:|----------------------------------|--------------------------------------|------| +| GET | `/api/health` | Health check | - | +| POST | `/api/auth/login` | Admin login (JWT) | - | +| GET | `/api/auth/me` | Verify token | ✅ | +| GET | `/api/slots?date=YYYY-MM-DD` | Free times & booked slots | - | +| POST | `/api/bookings` | Create booking + email + .ics | - | +| GET | `/api/bookings` | List bookings | ✅ | +| PATCH | `/api/bookings/:id/toggle` | Mark **done/undo** | ✅ | +| DELETE| `/api/bookings/:id` | Delete booking | ✅ | + +**Booking schema:** +```js +{ + name, email, phone, + date, // 'YYYY-MM-DD' + time, // 'HH:mm' + service, + status, // 'confirmed' | 'done' + createdAt +} +// Unique index prevents double-booking +bookingSchema.index({ date: 1, time: 1 }, { unique: true }); +``` + +--- + +## Production Build + +**Separate hosting:** +```bash +# client +cd client +npm run build +# deploy ./dist to static hosting (Netlify, Vercel, S3, etc.) +``` + +```bash +# server +cd server +node index.js +``` + +**Single server serving the client build** (if you added static serving in the API): +```bash +cd client && npm run build +cd ../server && node index.js +``` + +> Windows note: if `NODE_ENV=production` in scripts causes issues, either install `cross-env` or run `node index.js` directly. + +--- + +## Security + +- Admin JWT stored in **sessionStorage** (clears when closing the tab) +- `helmet`, `cors` (restrict origin), `rate-limit` +- Unique DB index on `date+time` to stop double-booking +- **Never commit `.env`** — include a `.env.example` with placeholders instead + +Recommended **`.gitignore`** (root): +```gitignore +node_modules/ +client/dist/ +server/dist/ +*.log +.env +*.env +client/.env +server/.env +.DS_Store +Thumbs.db +.vscode/ +.idea/ +``` + +--- + +## SEO & UX + +- Proper ``, `meta description`, Open Graph, `site.webmanifest` +- `apple-touch-icon.png` (180×180) in `client/public/` +- Keep brand images in `public/` (e.g. `/logo.png`) +- Good contrast in dark mode; semantic HTML + +--- + +## Troubleshooting + +- **Admin login returns blank / no redirect** + Ensure `JWT_SECRET` is set in `server/.env`; restart the server; check `/api/auth/login` in DevTools → Network. + +- **CORS errors** + `CLIENT_URL` must match the client origin (e.g. `http://localhost:5173`). + +- **MongoDB “EBADNAME / <cluster>”** + Replace placeholder `<cluster>` with the real cluster host in `MONGODB_URI`. + +- **Emails not arriving** + Use Mailtrap **Sandbox** in dev; for production use `live.smtp.mailtrap.io:587` with `SMTP_USER=api` and your `SMTP_PASS` (API token). Avoid free Gmail “from” without SPF/DKIM. + +- **409 “Time already booked”** + Someone took that slot. Choose another. + +- **White screen** + Check console; the React Error Boundary shows UI-friendly error messages. + +--- + +## Roadmap + +- Multi-tenant (multiple salons): add `Salon` model + `salonId` on bookings; per-salon admin & public routes +- Payments (Stripe) +- Reminder emails (cron/queue) X hours before the appointment +- Calendar sync (Google/Outlook) + +## License + +MIT (or your preferred license). \ No newline at end of file diff --git a/backend/.babelrc b/backend/.babelrc deleted file mode 100644 index cedf24f1a5..0000000000 --- a/backend/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": [ - "@babel/preset-env" - ] -} \ No newline at end of file diff --git a/backend/README.md b/backend/README.md deleted file mode 100644 index d1438c9108..0000000000 --- a/backend/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Backend part of Final Project - -This project includes the packages and babel setup for an express server, and is just meant to make things a little simpler to get up and running with. - -## Getting Started - -1. Install the required dependencies using `npm install`. -2. Start the development server using `npm run dev`. \ No newline at end of file diff --git a/backend/package.json b/backend/package.json deleted file mode 100644 index 08f29f2448..0000000000 --- a/backend/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "project-final-backend", - "version": "1.0.0", - "description": "Server part of final project", - "scripts": { - "start": "babel-node server.js", - "dev": "nodemon server.js --exec babel-node" - }, - "author": "", - "license": "ISC", - "dependencies": { - "@babel/core": "^7.17.9", - "@babel/node": "^7.16.8", - "@babel/preset-env": "^7.16.11", - "cors": "^2.8.5", - "express": "^4.17.3", - "mongoose": "^8.4.0", - "nodemon": "^3.0.1" - } -} \ No newline at end of file diff --git a/backend/server.js b/backend/server.js deleted file mode 100644 index 070c875189..0000000000 --- a/backend/server.js +++ /dev/null @@ -1,22 +0,0 @@ -import express from "express"; -import cors from "cors"; -import mongoose from "mongoose"; - -const mongoUrl = process.env.MONGO_URL || "mongodb://localhost/final-project"; -mongoose.connect(mongoUrl); -mongoose.Promise = Promise; - -const port = process.env.PORT || 8080; -const app = express(); - -app.use(cors()); -app.use(express.json()); - -app.get("/", (req, res) => { - res.send("Hello Technigo!"); -}); - -// Start the server -app.listen(port, () => { - console.log(`Server running on http://localhost:${port}`); -}); diff --git a/client/.env.local b/client/.env.local new file mode 100644 index 0000000000..d45ab7198e --- /dev/null +++ b/client/.env.local @@ -0,0 +1,8 @@ +# Var din frontend ska anropa API:t i dev +VITE_API_BASE=http://localhost:5000 + +# Varumärke i UI och flikar +VITE_BRAND_NAME="Bästa barbern" + +# (Valfritt) Om du vill överskrida loggan via URL i stället för import: +# VITE_LOGO_URL=/logo-barber.png \ No newline at end of file diff --git a/client/index.html b/client/index.html new file mode 100644 index 0000000000..78d395e04e --- /dev/null +++ b/client/index.html @@ -0,0 +1,38 @@ +<!-- client/index.html --> +<!doctype html> +<html lang="sv"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <title>Bästa barbern – Boka + + + + + + + + + + + + + + + +
+ + + + + + diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000000..a3617d7328 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,3061 @@ +{ + "name": "booking-client", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "booking-client", + "version": "1.0.0", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.23.1" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "vite": "^5.2.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", + "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", + "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", + "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", + "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", + "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", + "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", + "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", + "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", + "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", + "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", + "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz", + "integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", + "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz", + "integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", + "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", + "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", + "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz", + "integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", + "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", + "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", + "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", + "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001737", + "electron-to-chromium": "^1.5.211", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001739", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001739.tgz", + "integrity": "sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.213", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.213.tgz", + "integrity": "sha512-xr9eRzSLNa4neDO0xVFrkXu3vyIzG4Ay08dApecw42Z1NbmCt+keEpXdvlYGVe0wtvY5dhW0Ay0lY0IOfsCg0Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", + "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.0", + "@rollup/rollup-android-arm64": "4.50.0", + "@rollup/rollup-darwin-arm64": "4.50.0", + "@rollup/rollup-darwin-x64": "4.50.0", + "@rollup/rollup-freebsd-arm64": "4.50.0", + "@rollup/rollup-freebsd-x64": "4.50.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", + "@rollup/rollup-linux-arm-musleabihf": "4.50.0", + "@rollup/rollup-linux-arm64-gnu": "4.50.0", + "@rollup/rollup-linux-arm64-musl": "4.50.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", + "@rollup/rollup-linux-ppc64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-gnu": "4.50.0", + "@rollup/rollup-linux-riscv64-musl": "4.50.0", + "@rollup/rollup-linux-s390x-gnu": "4.50.0", + "@rollup/rollup-linux-x64-gnu": "4.50.0", + "@rollup/rollup-linux-x64-musl": "4.50.0", + "@rollup/rollup-openharmony-arm64": "4.50.0", + "@rollup/rollup-win32-arm64-msvc": "4.50.0", + "@rollup/rollup-win32-ia32-msvc": "4.50.0", + "@rollup/rollup-win32-x64-msvc": "4.50.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000000..7bbf142b84 --- /dev/null +++ b/client/package.json @@ -0,0 +1,23 @@ +{ + "name": "booking-client", + "private": true, + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.23.1" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "vite": "^5.2.0" + } +} \ No newline at end of file diff --git a/client/postcss.config.js b/client/postcss.config.js new file mode 100644 index 0000000000..2e7af2b7f1 --- /dev/null +++ b/client/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/client/public/apple-touch-icon.png b/client/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3862b3f96737a1e8b72a62d567d478b0ce95ceb0 GIT binary patch literal 52009 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 \ No newline at end of file diff --git a/client/public/icon-192.png b/client/public/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef2cd7c874d1f05127fa9de601b381424ecf921 GIT binary patch literal 58537 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

xb8TN=^<+2dLCnRu`?yv#uzWb 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�u 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%0Dj$5zWgzcLbW6_*;G}Xrehb-aqW#A}5 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 ?p+WWB2iX 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
$lzuIG7g`d6aa%|n)fh-OG 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 z z&=soP3J0ozGc@}nEDjUKkHErP=U_m;UWlSVCtFZvb&;C?h8>5nb@x%!%Ex}dy)E;R z0#`z1#iVJibn2*h-AvY%jGwJue=gzt4*S{y~jc^>UHgUMd z1g-vXkRT>UI*=VN1keFrAZWc5C@%)KQV3w*tSW2_|E3bcuRjaq-{KaCVrN&{#^pUuC@lAN-fm^BV&BW;8 z1CW-I0Qsq&-_k}+MAOHflpKeI#8|*)qovx57HZ9IcN@DkDdU)MI_wa0e^yE&a#E9^ zkpUm4OX2+wx8TiXYp`wmK~z=LP}bvo70^B}K<4IP-KeN=#K*@XlYZ{OLwaNM=z-|n zC&v=XiVI6|;ur;iqo;80d_Iaw%TZcgg9eElj7a>B{QQqIU1xv=@cZClz&6sMd5IWh)!ROE#21PjO=`h9_%>D+4yN+xef)J8v?4qpf)s)GNCTh<$VZ7l* zL4^zW1TDO5X7zn9v7=5A8%7f;o7SIP%@{*}NI%@#w_Gf$P|XJy#z!pk#B0ZOyCm3%n0TVEMa?jjcmqMsR{lD*}6m zJFlvo+$>MyVn0n`-BO@%lq}d1iywPCn>*JZ(x8+Gz5yP28de z-0R4jdi^?>jL(ve#>a`E?Pi*AnWgkAQ|C>|Ddyr8QyS4AyYxvf+< z%AhEbgDCX2eu8sG%bFN+dyl_vh- z(Z~~7-aw4gt7AF}b%@-gSiP@~0vm~obRW}ezBjUJFCynZ5Jq3ol_ zS78vXF~4)usQgO>Y;-Q*M4r%v24;l6Ma%!P03`=mj9=tzKb`Z7XCcCA5jOk(R+u_a z8WqI^anvR&J>wxn%?kuOCmU?F{U(pw>JRHY!^-&Q2;wOrz>lvAB1`R5H@q}{o&-82 zdW(ndu;Ow|_-DAr(2`=`I?Lr{qf8K{K6zr~Rd6(k!=(CczvOqm$reZ*-g*JJ!je}T zbE4rinf>Oeo~9eG{gSCrjVjo5ykp-@{B+agnfUo?inKCjq`EN=xMvV)X*G5FFTfwT z=IPDHg5)lCi!qY%3@P5rSrDCBJ4nk~`DP|3H(3c&P-bWw8V8!+k`eWnf1=2w#|;S& zh50^$ye%y}pO2Kk#PswAnLq4bJ8nq(KcUn)tOkR*IRwyPa8PoUu4y0@l{hP;Vk!7c z^{>8W-*2-+ZetOj$n7V(ripYuyL~n!;$*Myd;Mo%@J|nJdX|aTrQfIJny5u@@?~h4 zEd{0aYwehgGuzj5f(dgs^wB2ir1TvH0A@Q1=wW8&D^4om(M)*Gd4wlGca*99U1 z3hLOV;gr+aNxakU=Nm@vdA;Ckh&$4I0;jC2IOiaq$F$ z8W0);cFl4;V>TJz{DG$ zF&vK}w!0K;DTTDl&q^!a4UU-|iNAdqrb?+&L3lHYDA>aXixxE@atd2lt6dn^l~S5@)hdw@i4 zyroQLa+Kh(oD)|Ne_ya2eo^1XpOKQzf?8hA%Az?f(3eq(xEr7 z`z6TMNrA|BRj@G6QP8cG3|ztxiN^`+H-kNNn7+yAS0(br%r4UOzkVVrWKsWi$b5_?|Kc` zwf|lHT8N|MId9>(WWv{U*^O>2UnPET7?i#auZ+kEP(024)`Z#S{O2MM!HJjY6)X5co^>KNgB`EyYZVN?n z{IxFF?npB|1s3^{P~2av;!-<#J}&-m%h+Z1?@{$lP=Udu!D@@SfDbwy)k${+&db$B zalsE?Hiu1G@bX!sWv%7ORK9RqOf?a|v2n7xng3!-CwgZvX^wW8WO=C)9sjst5 z><(OI-r|8^(qX=|x$g8?Cl9bn3Jfgt(G4v9}eVZOGg=?lRCieY+v{uPzJ_^PGZJN!fTC%P&f z75WgXt*1wCgcSh_$%xFGdgHIPqE+q79qTWM&ip>>*vluLvMPxuXwcIoQt0P%z`rQc zVixDf@$L>WRR##z*vQduQ8iXk^jR(Pa=q=Y?4hIJ7%n+H>OFA9Y&m~Y9B3zXV3bP~ zo0!nvU8`qxX!Zir_#<$ag#v_-ms89bE6Y*!FxdFu?gP95EyN5XzY^}Mi;BW`on-x) zj7|fek~AiP5goyOXHCm0*YY^KFz{zo-ppC_ao*^pC}p)9okM7IKJxrzLWkeg+VSqz z@xOci7qoh{?(x7@0$NIlOi6TgrtENN7a>)caPO*Fz3wvP4O< zd`k0!N56-WY}!b|i%~na5z}h$zbnRLiQoCD#9gs6=8n4--I|@UN5&K_acP%Hv3LID z@&w@a#ZbsTm8|b3yqvFeX4S|P2_E`MQPW^-ZJl>zv=)J7J0b`*G_)~`H;GQ|$wQ+K zf_FPG=BxLh8p<5C`Eh6ay6}-C0I!a+RM(4$@2{x3mWJQ1-=?h6zZcHWt%R1a52lKL zCZy5-4ZxH3M0d!Njv8q;>W>P-`YmO8Pq#|{hT7vL;yW)L-Laqk!Qkb#uO%>%tw%jw z00nQ^gM+5!TIgif^m7{wG)3O)*20@*TY9A})Y<$9J--n90dl{p{ve-%Q54}trpBK$7R z$dA{0M4xEVM81#E)-4~KbzMzEl^>GZ)32wz$IX`IDAN|3dliP4loi25N0&s8-wVWT z0m}rBNH;*9R8#ba=v=ejk=>AiE#v$-^9~BJK`^weWQY>tx}t~}L5BGyN}rF@e9C{F zOB0Rlh%Q*ZtfVAVexGdCegW^+G(J2%M}`3z%auzD&Y)RReBM@*H8-Rfl7OPTP|GY8 z+{5LSp-`$W4l7_|{kw=*@?uVvuZ{nauU>BWF7|+3E1|xxwK8R!^E5s<;XTD++$C^6NU4PNgx#aR* zqks1&2~*Y%Ox3zrUo$%ffqB|6UvT^kp7J4X4+}~HAM7^UoXw)!bAx6W1kUi7NzkL#S-W2|;lDP;G+X29qiE#e&?d zR*0zC6XC~z%9AOnIjP4c3n}NOt=J4+q~U#(^~=JSC23?u&kB9ebN9dVwSnzt@#OxEyHN@aUwvBDYd`dkjZRWVY>Gs2&e<|c z-p(84X>CLP>R4LbT~syLts7q)EkMkA!X>1+Q_xxWunZf`c-)V~%^p8xe|b3jAj0Z$Dpo95gZXca zr=2HV&?6{7B8RXo{poLUXqbX*9q^UT*W)*&BqU)pelAs>gMV%&JaW3aueo6!wg|LoBqnj-a}#Is zKwQz<2;M{v_?Y+rG$nk+!4vy*JgMY0ED^67^BRdio<}*IYjMY;k%_S+;l;JV!|d{b)DPW0=I zeJ>goDpw7Pr{DVs1z1SBY!h1#*SOl@JS{KG3N1-QXdzr9GgT2k4_CY|nks_FC4238 zG)doe%-8aIqrpvjlu9yk=lM64$@6N!dWEBJghdfIEcJ0Z(gJzHkqSKayT^<`jJIlf zgoK3=LNap(8zU%(w`7OXheptNj5Rrio)lxqLTm&YkpqFsgqFrYEZAS;xJyd+b=G!I z;Bjj+5)H)W6=05F1_fd+V6kgsftTF8f{Keh@)F;;lfHYavB4wALY0P@5CQS%(&(Hp zUE>^5iY)Zc>5B9=)#KBeH&^|Ef-lEFvX|^Z!Y1Nqw z+0v^F8-2vk=%*;H)rfv&%|FAtH1IIiJ$FU8Y#%-^_wsY|s5_49yNXUgPOP0ylS4DF z6B_7DQx*k^;;Z_qk()nlS%D2=@m3>G9z~6=wT!WP#p8tO=>~ZS{@eyQTX?_SAtRfS zmhk2NI6HiabTuL~TXOfCK-G~>JU5Vf#zA+!0;(V%A!}ufF=>&Bf$9pK@zPq_C}LkR zC7*f$niSJIN74Ocxj0BbQOgghznJ9>`%-pf(+5s34>-U7G3#-8eulj#hbxPlQAjT+ zny`3->U%kO&ui0#A>S`=pswOCJ|KZPNnPUn#({!lBq#7V;E>?%Zb=&axv><>v8|Ox z`VI-`)%i+d?PUnE6%PM~=sG^{9hqS>X!Guwp7fH+9K zla7I3%hd=Tqha;BT&MLm^EdJ4y5%9?zym-a8BcCK`rY>+#)fp+4uez`^t5s`Eb4GA zogf_yt&Cqx&TB1?yziMmOUM$r+x?=XIPbw(tI!liUgX0rDIbx$y?LVtJ=y%AW>q(+ zaKb_d>bH+rK#IigR7?dLA_7E$Pyn*E;N%6;`X^VFslfT|0$XI4QnNtNRQac33OtOm zDJ??bB~t7i^OvgMF~@}{f`N!!RLAjC3r<%ia_JNPSK@|sJXEefMvB(sF90;_mW7Q5C8>N~0%(Ear=dk8n}r!gjAHb-Znd>FiB$bA zSg`hoKX#s{mw3)$Z@#APvRz3M#z{D#w_T3Nd2Zz`@wqLEFclTSsu#-KzSV{z0{z(3 zWkPhrR}{@&!iQ_xT2$@6jM(?yQ;utSV+Q9N@^KjTi%?+j=XbOgBCb%i=9D|XvII=r z9WIMUYUe4(LBd1masSA2c(uC?b?2E)`kAIt8RBOcN%6QFiR&jG$15E1LIx`+ zkQ=7bo)0Li2DPAr`XeR59g5sgc>}Jhj&E8Us7aWXPp)%Wfk!5g91lsY)eb7DUr6=% zA=z$|KMH7(Ri}xtiTA`A2Nlu$TE6QyL0Hu{vAz$f<|bkB)UfrR!CM*EvZX_>mW2;R zEcu2ui_VMnyh^dwEuoJ{j7D8ptyA`{%IEShl;tI%(oeO26}(!r=3S}^S+3+}8j#2Y zT?h5Z-u+Ay%0#g7{;h~I|bFa0%qk8kix~1laoJ_ca#=3vrpu_%Y-`+KStTM+eF|}Yt35X!{jkBGIm*-J zb$8G6_O*;LORrk9QypMucZa87sUT8~AGzI}uLKEeS+2V&zfG0;K$ZJR1Qzh1lm30p zD?l=K(p&58Tg}2j=iy5G7Wp2OSJMnrJ`>Ap)Gv|^TcW$i@#|+ zbdsa=Fab(LVc?l}Uaxq$i7_GpJs&#s1O`e~2iUIviGI0WTMPN&Dpy(rd;LZ`IJ(Bt z@J*j#P{&pzW2uSg*Kcpk$FeQvRgH%=p>_uc6C3XN$h|58)Sreig&Sj!;=MVEw3oWF>$rXJ%<%6?X;o1gMrmgbA z9Vqq1BLj(p(8bNA#hmpN>HV-DI_*zPTBftR?dBFj1KR_E^pF6?W{zLjAQG@^O|~Qo zk9ri)BHzaPl7$N>>l4Cl&@(XkqU<+-JTi}*?L|q?y`B5U;kP9xp$h!771wTFPW6v; zX$NxGqy68T9b}#ZAGJtv`mYE<;wr9R1t?F(TV9ljQezEH;1&?deu4#aL=0^MwtoDg z3kA>*oY{rAYiX(E(;CP*ltQYTY~qir@H8d~KK<+ps}(=#mu?RgPOiwiy(1gV9PUpb zBGodQ>#!1`j9qf5XB1_pvFOL4uWlqa3Ah6i?vZ0aFnibYcS`YYAHGoRBy*vUzg~;@ zHzFUMBLLNu@G^NHd6%dSn=uR`ixyhqAvF(|mT0FMW(PzJO5>k&@?)wh zxz9#NqfdIv{ly6x+6Ag+q)6BWiU`*|o}T{{Kr7}50EA40B(Ae+|2O z5On8X-7)RCg|~79xPFj4{rYIqYd1WrFFkiYiNv((Mm?6?R+< z{$n|NmV+@o%rUWV8~PAbknRZ;R{r2eWVlNbk0&=MRRu?piC?S;X1QMe_ZnFw<8OPc z4L`+S%9gO8`dvM>4v*DU(v*857;}8CfmY~};pe>^c;s_M_7tm;I}{nSa7W+2G9#&? zG&XyKmRmJ9TIsdAPK4Mq>x@OGcSu%nX{|NL;{KXZNsqy4VLG8N0z`f{U3YNR zSVkz=zGx-||FPU@ZrCi7M1!yk4 zNGBCCl7tYHe37SWC@GRv{2I7{jdqby(Ocnv zErv`uzPz!`ldT*iFfD2#&w)lMV1GnnNo}-vYxRIu@2#$x#jxwQ_Pxh!5}W}(pr6GP z=|WB;lBWp2^OKx4FBFdzsgw`Z>#mDzYBfghmn5W&w=(gv#p1fBxqq=)N8C35{0;6$ z<{h|(%G^7o`DG<&1nYUTj*IPQz33+^71Ciw4yj+_q9#(m;z)rDrGFl_J{}!cewcKC-m?l(8WH z5~ao|Q`!y4^LQ!w@X-D~kFGNP%{Ts#@G$efuM^3p7iATa5qym3nm62B=$2aDY#t-le;(7og$S0z~qIo8JaJd14R zby?;W**(CkX>{5j$85P8Lcf_9GwCU`zt>h(jhkABS$ShwY0}0mIi_I}NPSqg%*42P zoUcNPMlZUSkQEPNrx`sn*F?PYft#W&r=|o7Xef2u8q?HueqB|J?3cJ1;*Bo3c$uUC zG5TpUi}XQ0O8jj{r)9!7H8vuqd;vsy+@TJwP3u=^)lSFngynpn+?#0hr(FWSew{;9 z3=1P3YnwSA25;s?bD>iAyp;IUcnk<{0-9s;-1+;356v$B{}y0P+kV(|(ABZl1%J3l z^i>z!jA?Jq%RlLAsKUhK=%p)D6MIuV83m$DPu>e4)R%BK7us85@-3lUmQ5<`^8>|% zM4JQu3bi)hg=Fmf2|9}IIkh!?WTy5R#;Lheem&SD-;L+Y#-s%pi1dJ~=dYIKCzAxi zI^ZJAua!iZ8?m%hItQgD83dwP*9_G@xVzK^TIXYWO+VG^L^;|!gxX+q3lY$ghTb1F zVMf^q(Yz`X%v5Xqn!bNt(H8#0(y)K9hM0@8^==2Ds<{$*?E7fO`QG*A-PIoW^zG6o zDqu<5@L^}~hReT#H(rP>uZW6vWJ0AkQ!C=KD}Xyrl^t-$uxNcJB-%zV;3$1}l7);i z+9JeBM?!t;O%KW$Zz|T>15KW;+^7~ka3GMFarFssq*2mlZ31S0(&-K^uxV`iB4XW33W6qSA>@n-ir5d_j)M^cRqq@P^NcaU2X0 zp1XvuKr7nsfNi(I(g?J$9d0N?;)vJKjrPrA%2B^?`yCzfs2RBb#gNnIQmzHrZ<}x1 z1Pl$_JOXK3q}%;5CRtP@?5w*1JW{&H!yi zF08ZG>OFc;1*U!+w#B{`1igmX8^L3(OA1Gs6GUrv5a$~w_J0Ac(NsTF`PbD^WC3?A zFF?!Q*M$OB8GkHc%IT#S{*K6bU8S7lwoaWUy$5}mUfud=YUEDcd;iNrzdgm###v@J zBbY)$u? zsmKqsGBD9%4d%@&FuLNP&u@8)PfwTd_nyTzH5H;ZGCslh9U}FXXr+*;h9&pwcRL0s zXfN*14+GKk=9wRQLX<>(I6tuI(AM+lw!?FhQd%rjS2z8YLU?kfM(J_!H9|A4Mw{kK;#Khlj@`b}1?i zY|KsiC2F|Run`kNL4m+f<#27FHYHMUs3m5woUr*Ui4)~bR0SHi0(Fi9m)a#=`dp40|d^NNr zqdAfHDI@(O21E(SNl}vW6;Z=?vz04cP+r^l_UWnx0c*pZEmT%9!hiN;ggbeIYaRH8 z(K?L84P5K%tG2e6pE>;pJRa>;VT7bBC;v z)tL(h>e%_iOBoU0ih(*e?&?l9@EMpp-}(RVrDKu61@)Y2>$g?hIQnGcGOd*5+gw{J z$8v9*O>G572=4k3=}E3QOy>S~7OF37E6rCN?nLT05mle9ZQZLdgVWO>$UQ=ViP&IY zEBEbxgAp3Teavq$>YxYnN~-V{QpAxb4=lm~=N(GbItA7Az`Lj1zqltlD&vqz7@_$u zqZ2KrvlfEyw0p02Gjh#TlDjUb`iOu50t$=)8U7H9eU_s}U&UJ9X}u)qA@dW8|0~*c0NJS)d2=UwfLgqc!c`mSlU;qQ=3S z2He4jiL+HE!_Po5dl(=Gd`rZZR|Hwg;uA%TI`XO2rPx5T2w#+xh$SW@%LaHi{Wn12)9UXr?^E5`SL|p%Uf&z* z3s2gZ>wk%4U+CcFe@^8^GutS$7o&LRuX=wy(FNVEG*FWc-S+od=NYj{DoNZ-CrSOp zF%UR&59Jm>F)F#GEj3F^ea-)zVEH6$(bIx9)+324RZyOn47a5={d*{;pLjg{bc@UMZG-Wf&>70>^*`50acJG&yc}Zz zF?HRDxR}1oz0H#zIS!FnM~LU!{NJA;#V>yh;|h%byvLMQp*5ONyn3}mxy~CAf@EA*%~*cel0HH zlvdOeD~0EMmf5xntq@6cVJ;{{FXi`mL_9Wc6R_j6!>lC|=>y72Pc9SeiN zQSf3-d{0l)v_ymRnjoQHi1&Jd5pYHvkV|Ez8_($&O7h-7qCTrDQ?19Gm)wJ!VwstK zN-R`8nAx{L8)J`;ELn?zmio6ia09QWI=U>cki^G>x{p?*K1ceVf7W3+a`LxI!PK2I z<>M)`tGwxncv_k$^TFNvF;JgehCJQQna`EWvAy7yQB{4pPf4L=pc|Zi2X0uBh<`MP z#3Zw(HDT~Dxb`S2A>mb-R6z@gu3fD0e?p#yD-FsAf1bKo2YEnL>9**AOrTB|@f{1> zRu8}(l8X~b;t~JkPn*sTAX~PZFvBhA4Q1pKqT-7lp8jDMoRu+>q7?#utF@lV`^-<| zGbD&AXU^w#Mz$O<#?^4Sot7NWdOy5{_^?JwgjdnpoF;opV_eXIA*Eb-QYa!O+9(#J zdZY>uPAYSxaG1g%>DciCajkN}v}?cq3*yFkcu9sRzx(*pZDy|vZkk(3+|-8NiEv~C z{Da&43itI=|1E`0$_E)9#D9QF5v@kpnrj4*mtrc=sK}2434OD#>UD z$V=3Iripr1)xZ5m`yHY!A5KppEw07SW*gjtZvHZmhA}Xk5njLvkA`GUDRrF9vb&WI zJTHf$5HWm*mrB8o*KzJqv@xk4KTGudh@P664(fI-de}}|IOqIXzff@wo>UUnO&*{gKQQI zJU7-uJ@+S?dF_Yvhg*BT&o1oSb_0*nOdj{BOW(Jn6MxfF`}k|N0lJyBGvmzh2d!HK zT=7gw^?-};jrq3dcDqEjJM^fAd@Q9+eVaf&mg0b*GNlabZpj$f$pq^^#X)v%-$U1At$zCKO9pPf@WXkROYrajMC6R<;36bPO@G{QcP9FO5e>h5i`eX^9p}Pv&5+$>iefcD79+EqQ!9 zgJgZo31X>5LmAOEzOz-3an;63oWfpkp`0nmcuCVqkc^AqZA=wlD@Zx%>T1Vy z-^Z>05q`Tt+U`e8TfXoG3rnL>AZ9E>9Aff(Ca3?~lHU9JI0o5Yy>gI_sAt1L8a1pw zE%{^YSevnPR20x@VcwEysoK44k*dPljmIN?$ITV)>sJ}7W-{`RU#em(Zm~&GpuR3K zfMOilkNx2fEX~x98gg+tM}(~7g-`K(g;FE=Y~CJ45%%H*x_j9Z&c)_VN#?vkp=BT> z#Sl76Oqu-ar-DNMGa?YlQgLSrV?W+sR7y#gef@p+%g(wh){nLF;*o2AehQk0yr# z15&2ctR%F(CPIw2To0(;QIkRLSVC*WDyv0cGO+$eL+TiNu^4=Cq!|9T7D)s?{k4_IK?3v>Jz!aWuFk?VuWYvEXtE0wq7KzF&p^yhXgTeuw!RXH|>{keCVK*Jm#L z6mW=+(}c3EXS${PW$mSi`vs1aaTPf-E_v5d=gNFVBVtxIRWq1R&!ZrvT;D-e?&a$% z!A)59Rz8opCOx-(ku& z1#tOXDxLEESS!lM?_sMcF*jb_fC|vpG0A* zFo@tMp1tf>e}-eDYnYJ6cg*Y6mw43!_=(lOwGTg=YlcR){uSe%-m}gfo23=dN5{xh zrOQkPuyO%`g}3aesC(SJ*6jFpGR@m8oAe-JbB&Ep1g5b{>}cw`P&U^AbQ{BE``r=j zyT|0K+dCsWWSO)*axS@|tM8AG(+vWXs>swS!qEOH4Mkv1kbe3I_T~)*iv~?7I>}gn zqPRmJ+`m=(y+IV-V9$GR3ua`+pBSx%237uGM}O&loi39A{?NixEgdgY?X5;=THl>c zMIJBcA2zpY@(Mlf*O|eD*b+~Vcy(D5p}XuyuY>FlV#mxcLWWJ)cn{0Ay z2gGX8ag!?_&){M*bjTwG^>nd$KyO~S6&6afJ5|RoB-fDg-jDXz+%e4gmFS!VIkrPu zWIt^qCH8S_LbMsKju<{YD&lUX3U`enFDu=!!SwxS_jtEcU71HevhC7X$BfG zmspFJr3(>O_F5Krs3<3&As-%8*kR822pM1plZZXmspZXHRbE6KmJHd73PqGM2fyP2 z7vavE@0r-s-h!Ehz74t$k9rg%C-Tu$FHw+~F{TG+YH&96eYdRKJP`45P0#Yl2REy8 z60gpDc$BfY_-EknG%Xc_4~sl3Aa|_7(=C0-)N2}DVQvO8eatvJ$rjQt2E_-+2%;So z^n2-v8R8~5845(WGE)4UV;sMt3hI2vtH%+N3d9#<1<-$r5AM-$r+xhC-#&I0DRn=2 ze{*g}%aB7+)4mxjqr#3{4KTZ!cJ|zk?7itCx@IUck#2Amzxs+s|E#U`9=|jnpH6y- zfh#;qP2z=ozAAvX_)q<9@W~xJofZb58I3$>fo2`X6bM8wL>(ZL*FQlIN}gpA)yX!n zG?WpT7SP9e2B=T@2px9^QinTd8@B%{M-wAglXn#X;~oT8`0q(Q{0ldsXUu>UO}%2N z1+CqzAD`Y!x5vm$yZhNgxvi@J{aEBt=9+oyux%Kf2buK|VC%d&aSoHEe~5_C(55Sq zDbTG9Eox`#Q&nJGI1@YhY^9uLu zAe65VnN~@e|t>=bat-cO2u-Z_h!ya@Or3S`W{?&Ec#_J49tf06W*tT zg@_!L+dy$~d?D@Hib3<7vp07KXgeomZp3~9;9||9i0fa`AV{yVWX^LH(A;0t561FF(Z@Py$s=k#6df%;xb68*aef&@` zNx_RIeRq}Au)e*ZoF|yOTvpl26fu*6lUY7P9|WJPU@Ybspqxvf7aHa=)xyV5fx%fk zf9idDGa!oIq1(qSkkV}`W;z8$HXRM=J^@0}-j8E`@fzxMZ3gq=MtO5sBNu{}9^<52 zFxH+IEnMG?z$XPt7b>ya?=~rK9&<@Y`7wog3mLA5}B*&SrDDSZ(d)oCBKZ0DRU>y`+Wvcx+ zG{(Q5-R~r??~Jtt)l1LA(-*}q2L5!(MLG5g51JkuAYFzlzfC>Fmij4hx}ae^2lBpl zW*YO1-2lotWpH2PqCiZvBr3tW+4!f#@>Ds5m@&{{U?5)n+5sy$nORTk8stA^e&)s{8220@GDz-EuHTEhm=vZE}6Vi|bAp<$2yaXI4)qvqKA+hYSi!V^DOjX8Tb@|)uQ7*4b z5x0|+=}^EL_{K?R3g<`PhoTZmW$;#!1;fCE>%}PW$dIKoMX4{x1HKlQZ~rvxg}QoB)(#8{K!mTmk7D;z5v8eZ#%39lL|RbPb9N<$Ly zFl%d?B4X(}ei9_C?@m=vI<$VEuo_E;%gEi)iwXjTg4KSPqq0eYjK9-qIia$NfT3Ba zDxa6H`Ri1Rn*@XN3HPX_0(^%NvIrd{9jJ6 zV`!FrWnm4EnmBB&b_}~_Vqj`fStc~IDtWV<4IyF^#3S{GPdB1*#Pb8exNKPpHfAw(yR51&Q$-!m0t}YQpkXV|RuEoooAEH!GKz4ON#l z8i}9tbdcs4Mn_Kd(HXSu@nExTCOEtJbu-8k5RsxaPXRk$;!yKxo9!-efnG(PUKGxY zaE*dY>%bX`l{Ux&2f(zF`imNV%o?v6MhzNtR1mN0o5LWB&zUJvc zn&t8}j~(J2m90Oi?uZH0H&lLpM&6ZHSz4N{&`19gfB!QD4!)0gSH&v&feM9?6u;%A zz=+ip?-gt==pC5q*K|4FiRMUyXRD*nb%6pl@*N++F_Sl^^zp{f$m zD`5LRiewqSWow2yEz@`j1v8WagitdC`4UVfR>0%X==}3i8d9i9 z5rbbuq@-!wk#Stw|Jy^@6mJJPwuY(e`0+u=Hgk|2lT6Tsj=W#ZHul_!wsujRbR{Cg zF*}T%D9o$}?y&ofBBn-*dSVqULaCDXlNW2EiKX%zEk2`{&)j;7V;uj%Qbu+B|0 z<`g^Z;$IfXxmj7##U0BR44r$svFw5IgSO4cL98#9Dx@KmZ2pswUCEM1R#4wlM>k=# zTGEW#8#{E0M6De?k*VCuqUD}8l~A1kR3x8oF}hsRaDLU;U^Xj%@h=+`-VOW#eRu-= z++$hvxxqnVMAUZm|N0G(^~4q9-!ahp-x^mRLVbA`<(T=hqT55Apn-@N4Hs@F*=$x) zKe*mEk0Jx1D8AgssHFqja%|9Bv)qy3u)B9B-tUzpK)WVO~Z z$(OPp9g2n^jk!HGN67by{QN&WOeS(7OSrWeHT5re zHlizOoUA@2GdQXI%gLRNe8PIajSN$N2xAn*b;o)zul?0)PKN5|$rRd-xPTL=|5G;) z60!CpJF6VwO847SmxV#Ewei)=l@-OZBx1++gq|;~l;*NjB zimcBW^&ud1trexsLcUG!_rckiY3{GlwO;s@hpH>_Zdb=M0T}DSx?BoR^Tcg&%Yr%D<4;}3CI*q0OL+NtRex3Veh4rz_gW0yB;2gd(eyFmtwrYL zhtVUVyGmYw?64sJUI=T!Qea7}5mt@>d&^b0Y=drKxe10@Uq9}L6$K>)Ejuc;=c7k` z&wHu?>3@TRf8=@6uZuKkqZ||R{0{ce`Fw^v2c7}?PpgU#(Q5m(AMBj2aL8HuaeuLE zgvhV%Rnl{?5^G8|08IS?Ey(vKAWcgLDYE+c^KTB-qGSj&z^%3Y*sVuvax6Y#N^=*4d6kK4IqkU2TNhs=ac zE&|mlAxMVi9p+9&(C6r!{Bb&`>~*i?M%aM#=vnFK$RK%w6?|suAbH|YJ;D7qou7qUXaJ$|GF8x&M9!JCi57{k@3ZqW%+YO z;F`fkHoH8fv%&Y=$9~iI_NYI_pkC=Y8zTy1lLF%`LfkGesKK`igSMp}^Z6FpR=wX@ z`>t0^wm@FekR#g@*ZzzqaW}vaoy|*CvOpf8p&_rL0cKGn5AJ7I=4v~)viw*mL$sdA zWmF`fiNBzRd0sTr@sAgCkn~YwCPUxIdL!7EI`s03ec?LTkf-gc*XOiDvYvsJgL>n* zesQChR}BhHHedL{b@OPlR&?Tx#VuUM(?is=-@{KUE*=W!h_nJ-cLHyM+TkWk;A_!4 z&vHw51tc7?76guLs>H%wh9S)qdv zGXk|&OzSv0jCP+KI%6gKPc|~_PEv$tVQo1_?ml!M4h1NcBBfhDavvdc&c8*;h`@VC zC952N>*?-2LVyrd7r&TSYti=mAZ5rfZGjz3DZUMu)MK(}W-&YH%%>oO9LergH2Y6? z@kMP*Y3;|=-LXlZX8W^1+x?6ZuSXy10dsfE5-tK634#LXC#0PasJ6DY>^rCcC-W>* zeg^v)x1II&dY(KPIisT`H-2U@+uuq+ z9^C*)06w%0%IUpbNYDBbGtI_XSu;}6)`dxjC?EL)e`@r%ESbJ5IlQ>L9PJvHk>qo~ zfT?Bi6Ml9~jaXW^23?PKPid}(9{V5qKkQu7bdN1Ok3By|-3;Qj!)blb34H&S_?&cX zWH=wF>+*UnYvCNN1wa0vW0#`PCdk8ZTQn^q?kTj%toU6?gabyLdJ}A=&kLf-D-^U}iK?G0#6ORnJUU9qX8NvU{a;gG z85CF3b&G_-Ey3O0ZEy+h4hinT-QC^YAp{9daCi6M?yiG7+{yFSS9NQC&6(=?(S3UN z?zPum%lqLp&VXp0U7*dhRv(57fieK%a&K@@ptzY-o^6kdNn0;SV$jaOCLn-(9-%Y- zTXZfro}z#+uo5eZf+z&IirrIYl4uuCQaL*S6DGrU0T2@j9ZfP z9eR2+0*m<+N9i4QM$c9l2=+ZVb<4LIbvDjey%E7h_nj8WS^b#+XKVJ3N5%#77#!?a z0g)Z%f@;zJcH}&luyC1ea(xx7@<+n zfen*J=`3j#KmDYU0{55XYb&(g*>>k39`1m3RE^L29cqS3eoYewil$KAtEF?xPE@te z`;Yw~5r%{y46{JDY|$f~MDugdk>dc|o=1#u3`}M71B^pagWE~mNiW$ns#asbRam>F z<}9&~&zYH-`AMY0v zv03`_!mW@;FD7pKuT_~Oda|%4Ke^seG<-JVXqe?5SJW&s+P9;Y)yUpX4v#%uBUriF z^j?gi-IVu2j~hSg66~|fm>ULr(SeD&-jxrH)fo1`*d6q+9txZB(4DC5@UipcE^IKu zpZWJt8`Rx#vpOdAeZf!oYcF(#o6yZg#}A^H<`K_rWsc`3C+b~*mS}M-aqQndSOcXl zA`Ft5gxo~`r6Z}}FrIDuC1GDwrQO9ll9e@^c+{P}ef_}==n~L&rmp)2a9NrMe@NRjn; zHXGmuta+bhrjQT8j`Q8QB{(F+KZVa9G7IVfNf{~2tapg;+kpzVR;A&M=@-~h%u#6N z@Tn7p?H_chYd(kvn;gjGq4!NX$eD8CHsM<;N@}slt0>zp7bD07v*KEiYecBY09@88 zg4)U|0802*$?3Tm{#lj{py8g{oX+nofsfVe!rA2hBuI-KkMDSBT^T@72^o1LZC*g$Ya%dX z6h0qd+$|aA%)o&*eukD3`x2>`*Waq11;SqVxVzlwC;oV4((^JV#ND>FUUeamRMZpO zC}K-ipZk@25v$RJeZBfX!f7D-32PQ(Lp&{jP?;lT3^8FDm-a|@G5FQicl6P)ULkrY zFso#@3I@2<*=E~A{;&~BO{5ddJe_#O@pi87Ys8xC;Rv7mllTQUbG@s#xlrKkaeaXq zm&ga?$}dG~2rqx=w#JL!w84$+R2(-1wy|TNTB=rb+cPU6Pq_#?`VHQg+#^yj`c%Wy zBz8Bj;ml8(O%oH9SbfZNRoxa<>lbe&HD-N+?JeHq@2|bE?)PqEpdm08l4DA5@4aZt zoi+AXXfmvnhsx|A6Wq#5Mhyr@fn;Pl`xR8zikC&AucsrE7WGOTqPg)cg3v3rAn@x? zbdIfhRZ-YsO_!rkl&j06?cO~tHrz=0kx;AIfIuwdwiX~4hSie#wm*;q9y$!Ur#A$+ zB^$RH(nh0nf4)wLUe7U-%7FwOGxw~R$J`%=A*Ju`g9#2gqE=!sO%22{TmjBdu4LOo zz|_KFdo7;yC^*1o7&8cfH|hpif=^k8_zr_}WVz#HDEy*R)QaF@xTPNf`LIp5A`dL+ zc|$B~*OpQ%hrk~xto5|$(o%MwQ5qJR7|W+Rc4z^UXoz0#i!j}9f^0CLMt?>fFq*<$ zlVz}!tp0BB*_D0R{Tp^6*7Z{qZLZh8Ov7;36d7OkeAue7???TEneKjp`=9h^K+!Tc z2eNHk+W09MSo#3^eHUD-eG&44$LG2b@vwlAGkl$+`kpR8FSZmk9An;hriN`hd~N8d z0pa8X{cUD33>NTgFIo)&pz_=XagkiUQda2vNsb>2+V`dEsAH zE=3A>Def4Fz+0YX9y5W!#Cr$_h%Dq93x5>|NvR7!JZ**uAs{0U4gs)^>~G`{b705! z^(z6IJa^((QE-=WfpGyzUTMtF5OOMBghVVNqF5F!m24C~YioU4m{EK<6%bslF8bHN z{<=x8AQBH5T5}V3ys=fdv&8)%^L@M&aE*Cs#JghE8G^a97EkDT;MDz~&2MlKPUvkv z>szNYc`OkxvY!vkvsepDNgHt-()`sH33SsP!1kiZUegb`=?kEkrazcYhbMWQ7)@kr z{4cxv#gyz-P~Izim+u8~g;p1|2X>UQ=BCv4G@^$jIofok!;`n*r(;*N0L8QEGe(WPg~&_ng?=;XeJe%08#+s{X1s z>a7Pa9v5h96&dusJx^&6>lQ&Wf|3fISa%o3=nH?y&M*IV$HzZ`x8|VrGpRE@H7oQmFW2n?`bcD8;MO4(60{rrINw{9(Z_V z==aX1=jF!Ed8qRE`c9t`LhCX$(tmzqwlgI32-SJj0B(rAwI^Xf5l8M$pquriRcbw| zC`@vA_7+jo0D=X>oZR;(QXUVw-iY*HdM-h0V9<04osGebUapmrWH%qLbV)cIOLz(n zC^6VzB%F*7=c)AVP~2A@LY=Wyor4-LJ=-R}6y|CVM3PH{*SOLh1u9(N_OafOax z#V@h=eB$x0ZVc3L$sZQh`6$c(8j`mwtN(%Q`cfy#L>1)OfI;xCXC))+uq9JEfN(%%`QK+4SM4fxI*$Z9J->3lnG1#@W;&e zYypf^zWUuK)wQiePvG`~$0HAGk|aNyWx(r6)7aGn@heQ6z#9XR_lf3XucmJp@!Jt* z`}4Kd*^(m;=Rg{|6^F5N8FAA+;!deDZzs!W_l`*SEfK={7Y?zo<$P<`ou$|#CH&BY zr_FW!?aly(S>*6I2yW+ZVJiOqxMHT#xZsZ5$h?measKCVMbJ^2Um&yhTbla;-$zKb z-@|wBJHD>LYTpmMJwIL?43l7i#WsJ5YUnH6jC5Je(K?}bgwCgZSQgV>DX@at&WR|4 zJT;hDX=mQ?1g51#q~JgNY;8oTsiRy*)kJWT)7;UN#4vZT55eElWw^c<@74xs>*1sGRRA1<5DAc-7l98|+ zMg1x0H-uqD9A2fD&6qBtOj}W#(wNi-4gV8GLUV3s6BZkG}y)xOqv0 ztwZ;;+Ltd*a^ok4TZ6eGd@tHfn~kk+5DbRV5j!JFk;)jEW4_K z8|JERyAKdb#<}+6z-219C)FF@&;4DuUD)Q(StQna55EIiXZyio;oz z3s=>l7=O-Wr7uSYx;z*vpb{pT?+~XJPqXWZ%243?g-dLU22p9Ch|h?{yEo5<-qPTQ z7A~=nYZ?+ULX*#8p3)#dAuRN)W8_23iOqUjSWr$ncKmCLwCV2wWF9Y8twuCt_XWI_ zD2W3D8hkO>KF_GIILzP-D}E;K_~07PU^;Ap**KoV9A2MpWu06&CYfHba|iVEIev{GEL1v(o+v zzI@E$Y^mN0t($84>EblwLBj|(qv#3C&f;l7=}9W-OZIw<1Y1JWmc>7~vg|h!c8h*) z@fzr&7xN>Y=(ej|i`BG%e>CXR%jVaVViu)8u0+X_4@z%=MLh!hP>pv7-9|9Cco7{; z&#jhA0>vc66Ab7%W`?>v&r!e%p)%moKd0cg4&)bjm=B za-1xrx-8x7(NTc$=m7iAEqiiNvQ#16qJG(m~yxSMfu!}Z(1w=_3^v! zPRzR>r=VW-$`WreGk1n{wNIl=vA_4qUhawqq-k!6_sTN+4cF3N&6Jme7Ez9(yTk@< zA;;QjK;Wxw);>%Cwov}omEbmXd-rV`tu=#gD}a7uGnnzTX?rR6jYiOgz^2F}+?-Lo zssp8OcP%~n_^{pCN)UL<#!}uE0sp;w3xfox0cL=QDoOIq0u6V0%|DSXX&Hsq*Q6H% z_(B37?L*!p@XYogoWjecm%IHbNFuNx&7ciD9F3A}3;d^|4hGHCl+C{c=Zc8 z&D4s1N3}Sn#SySX!`k4&M_qTLzv#H38qej$;>jq5Lq!ZxLAZt))oMjY$>WZ5)3_}3 zZ-FGPScmxo)x5@pkiok|F6fX>T*M-ifmO*8?KFLdnGCThOwx?I;Y7(`iq<;m#|da% zd07MB67O5aTrt5#YCmiMQWVKTnsuSg(*s$|HGU)E^ z43CNl!DX=z$h0To+&hV+`}R>Ixl$a5p9$pwmE9iam_Db4EH?o-P{q%g?F-$IR-h2$ zM*C_rUu-d5aeeM$^7}duUYj2*jp(VQwjL_0Zi4{;dy2z%pHmWVsgY&p7t2zmRTz55 zN)(sY)DYW02#2)6HQfQhelpHRu>ppqkhhUn;EFO-NfSy{CYu@-*47R<>NtRC?yXnD z+Z(X#W)iPf#)y?<{ZOZ7wLm38AAV;!u-WPZ>+fBM8|$XWy5iz$VrLPY zc*b*L@s$ zT+<4uNb^2kd;{GtCY{VCvom-Rk>U&AUH^ zqGUurm8}P})}?b~af{UpYFThO6!Cr<9H#m-i7=}|~nZ5LUq_ap2 zUDRkn$JGNF<3cXF-VeakTkXt#t8#ZLWx9?MP@8?aa+veQMPyVycs9myDEz<}WG0zg$eE2BimXI|k12I*ZA*~DZ${9g_ z%Rj9_sIss+)SHZ{lk(~TxYMjUOtG1)evSTTp7I4TtTaC0g8=&3`SnnND3`|saxtOq z|FD291Hk>@K9;V8%ehtIS?AKm=ZfDk{o7lPD|LAJ+LejvZwyjDR4}ZUCAthRul8hv za9BJ6^!xV;MKLAw7!+uSjclKoI=AropN4f`&!@V!dtPi0+7Tzo%9e>!i&mRTdXYhY zKo+^@j#~I(S*_e_4#iUs3V}%tX6serTqOjv$?S1miWUDJqWJhLupX_-mGvyk>s5E>GVP{DZ~_Z={9*V z$WFHAVH>QkYj6b;2faiw`uar-1Yv8fxl|1>{?OL(YaQU!Wn?-f*w&^N<5pz4sf!C> zUlG;xAZV?>;wfrSOj}^mU2)GYYp>#U4IRy%g`DIgViJU862h(GNy+cfo(yQ45qaj5?ybr6To?C;yUH|JLu+hmB+?%f(+hdJGabA#MfCw>A-s*r z+}s55x^C)ozD(KG@9#U#d0vxOkFJtwjT6os=Hu2#Cz&H77X1#?E_;ouRl8juw`k0Q zcWCQ&&#ct0{HZ#+^tzzdz!Po$guPkJr&~h76rpyGcsJ@v)5A$J9m&g|Z}JOicHt;T z2Jw`#^EXz1)-ya+@5z!pqEyociUJz& z5h9KcY|RoiD86cFBx7lv3cQS~2332$ZM(VMgoSz8->IkBN9*)!P#}D^+AEt{sF)gO zQ?xmsElN>b)yZ4?Eh+Xx6uFEilOxhmElMJLu9LNda5cG#4S~18;_Hi93&+R^nJl|< z)bIZ3xmu3d;QC$F6#FIJgaQM_>^nZIrTVs1T~lc~V_b`{a!0%lv-;w$1NgT!iDizl ziDLCxh8*Us*vh)&HLfi7xRF%*9}dzb)=WY?QRTdnEse6lr>1buNg|*+b`yeZ3y0GT ztfmpE=5vB5{cLEe^)1uKCtUDvTZ6Mo0?qdr&8_S@q=p}^LvV+#;f@E&$_lnQ0}hM@ z^)_TEoEL-Nm1{XWe{;i{<^SA=2+&HYjJ1e+G83ct z+*8Zo6tV9uQ{y;61?c1p0@jbS+OCi_+AxznDid$22X&6pAq1A#KzkSA2NnsAIqiF9 z-mL~Xum%0e3CXg#j^q=y!%Bq@KVA|OzzLKxa{;IdtwTtiJ`m%BLYLiLI(C1x;OAGGN=g2xQ} z-Cw3YcHk_qFILrl_O%j5KkO;zxy`mKz^eKQB}egC%yyQlwN#X0zpexCTE@U7Lea2D z(zJK+ZG9+_Mw~H1u~GbHjbWu}czbD~C3~q8o|@QnI{C{A*ZxszOMPl}m$X8o*`sp2 z)Jm>6|G6rzTVNQ#Z3KrV+09^V14kRo=h?PynfPwk_X zg&nnRjCmgE0?)t`;!Uz%)(OVS2FZFe;uJS>nOTAy?YfsUsbF4o&Zf`MvI1WiiWp@B zEi699M1w%TdOr15A;CDD`$6VX8w(TsTEc+_&|WDe)-0*P(91AzC2J>BlYL7d&}y<9 z3&GCqs}y=c@8amPntlURwH>f^I+$U{@{}RRIMxO!;JW#lsxzAD`UR%)J|kuHg0AYm zgZ|1iTCa+;rF74FjkGUTK!+6wX8FR#7@**6$8poOYG2NaJ7OdCk3<&~Tf&d1i_;y# z8N%UmSKx#bXmr5yePOG~gG^f*Re2i4R#oRDSk3*-cSYT4cYgK9T7=FJrfK6%-J22_ zBcrXsY{L9NLtTBKRvka^5Gph}XJ9Xb_-eUK{)~xf5m_(@J?1Opvmdsv=V1GN*s48?SIq6{*iku;Dm@r7IDTpcKhvO!$#k z%{0X`duJ%LAE;;;qz#Y)3Pv%C=4o-EaV@`a!Iv8F?w+*go>AzpkXy_>`7{It6jeSO zNyj6TCBP+whx{D8{R3&HKkz%Ki2F0d{7r<^DVckx7)nE2kqz|Yn%;URt*JpUVTatS z`0rplG;4}yJpu25(TDDvu~`od<*;>|T$_5;M$O`X|D| zIz6PedNlW2S*EjpuzTL+b>G-Uo80bsr03aImPPCi&sV>6oII!dUC$IbQQJ1(%jA0O zq_w}Ek@pB?wVXvp@tiapON%>x*ED0T>^5G~N=vXJJg{*ZW_F@YBaKh=P@&cl%zXuCie&aW)_QJ_J0(C)BoY+)-^%v;Ue!<#>2#iIpdxB(aR6*@b=@{i#}p ztgDR;EY>Q$a1oi%Brphe^1XH&fZpw9AWmK^Y-l%3lHp?m=_14ChNYB8Pnqld zm_nPoy3ZN1H@9M7z0#uC*4I6W@@k5GabdbaV2o6iH}_hL(7EZOe_Xe-JM_zaLhfok zrGo#+sJESmazY;GnUB6*{#j8#h4$va%MOP^}Af6Fr+UZ!9%xlP7 zxnX6!Vkx=WS|3-WET$7qad*EGor9}Dc8{l?7ekg%{Xo-*5JqaURbxuR0fDkA`^ELl z0MIxHqE9uXejY({Ct7_|0UlUVt^MazlMn*h`_IBtJqE!y} za8MR?eX`+nVqL6_$l|Xo2gg+^$Nj^Z&hK1|>VnjG3CfTSYzQ(&7L94t%W4Eabd|F? z+jc7$W#YT2MS3=x`2o`R8b5xA^YkY&Nl#?k!0Kprum;9?l(H9#LVBA@E>0fdW=Z{;S@Fh#3){o8BW>x^Q-5)KRt%%RdmAwpzl?kHWD+-oamDNG z5^7jJ!@%Ucj5$_p(T1Yqehl;a+_UQbUaEi9Z)ZF78W$KlL?lk`q5j)0#lTxhMXRSb z?&gTyo=mZWBYb=Jz`z%}r};UkDREK(;zZxYr*w?nBFV<$3wl9SI4jTzThYrE=cg3<4*;}WXwogqCY3Hf$$%{rz^)gQD zNS1cpUd&dg&C{plR#{^`7g*LVLM8mTy1L)Nae}%7(|_1K8aBB%2zWD|qHdNN+LF~) zUS$CA>3YfsKEvoy8Q2LUM;7SSuJ~!m(%s4)G}{odm|JX znnx^5n`RZ+*zAbbsTZzG8pkS(e_ipApb(=2&{N#VBnO3evuP&qfBbFzjw0D$-S1H8 z)L=awJSoXJ;0~vdw%EN@|0~np@@0?>$?^ENqvRNiIb&ab>B?}Ua1gn%SHbXr_jwJQ z?HB}$gm9>3k?{yGbAWN%Cp`rHujLkhm>sd9Bqf!z}w~{TuXXpVqe*!)4sR`;tW< zxB;nc9OIzvycHeAw0DrFKlKZBbL2}`R~R^_$i4J?AX7Mnv? z@Orz`^Zrt82FdBMDvX6g=O|psg3D&#%w`}+8fLZG>l^YfuEJP+rjMd2*AwOyKv^Uz z$6X>=uSP7Q&ZM{eF5EC)$txU$K8=>;RVOX$PRXM-KUZt3N?M1-U^>^|!Uiy7HGB^9 zu6M2!`xUNL`K7HYxTkj5CRy~wwUYa7?o0CyAGU$7+V7!Cp`SzN>&^QIr;i)zX|qq` zb$?a}h89eWQ!g66)%2xAt(d)YWyQJiR%}>(;b+hP?m>25dP>y!X~{fPA;3BNjKQf& z3S^*PPPJTblN#jl8_j)V5q7)BaA)t&Z zqrhI7fVdc^?bvmH>?Cb%^y9NcHuU4;%k|03s8Un(-l8N`DI1kOWq;vvX5*ZhXs3}r zb|2~r$B^2{9?Wm%MI}`a+?Wmt{<8=VjA1D)y|Wtkk_jlrQiipQ>nq!D`m^a`yT5o^ zZ!ElDYGt36V}uGMAMzX}A5L3}R_ED9nRdpjs14s)RTNws2gB-@5pz#A+g-4uQY(zk z=3sgn2!Y@#6y#E^4KPAXN7MnH2&9^)oEJ1|_N&v-Uu;MKo$xbPz`>PK9~6vg!CoL%}-6TVMCi-)ZqM?5efeTvig>=oYQdPbICYjCu*n7 zqF!0qZXtW4StL<0d85nKE{w!viNxJQv-E@w`Rd;2+ zTy}-zDz1&?1%nmm0_d6B;=d>!=Cg1^Dpyixv{RA`wciD7o~djLhFE4XL)e}&FAsX-4!wE zHmz$Gbut%+{*)IrR$Mdo$r$^JE1bkt%=wPdcRkadmS=XXkY-eQ3bbojk?U7VhlxmvABr{~tkaRuI{GaNtGAC7 zI*b$gW03H=hDdU$rJ5Of2AlD7T`K`|W4v=Ms_TJ=P!iGM>ITMAz8IkTzW$=;xrtV_SgdN`Cyoi1=x?B$#3Xl6FeQkT9o=8hAJGn?zL}F1 zeH<$%#})E`e0mB|Q&%5jk=nJ2*?iEwTh+|-nO*mTYI&)o=_Hm1`>YJ&#^(4cUxfIo zE&2kqt<=7gbIQ?RhQhWSN*n(n&hwH&8i>yst{HPKQa?EQwPHMd=4;L+q;&{PN>2xU{LBBd3)Gl zWL;bKF!?H&U6u=6ZgL!dT~^)&R+DIqNQIAd?s^CwWI#hF zbD;r8zd)}5EtqMdenV>?*B4(Nl*c&0d&#equpO&@epuGs{ZrJ7Xm(3~-^{SQ|7nVM zoUSH=DIl+fXF|t=56jN&o3gbs+E@`+3E@PnK*sE3oB!n-h^}>WA?5{{_+foCN5FQk z*me>0M$f$6ZkH=^m=s&0yQ;BM%lcjGqh{O*e`kqd;A~l&^a9B4vM|)n?g;P+lQ+KY zZ^=AoHlBEfx=&6XmCfr;0+9!yIN7)e@PPKMN+4wl%EO`&Hq-vnSejZ)3``*Pj6_rD zvga+;$}1W4Z_bfLqPqI&n>nuIQl&xpz$D{t`~W=zx0r1vH2NXQ${4mG1U{x5qv_pT@w zv##iSF(F2ph6N>A(QM13%51n8JrGFE0vL}&(sfuCf2~+Wb>F(scHip(^EnpXKx44J zBB&AiP59OO*O$7a4(;)&)Hxz$^ATrT=GR7y-_=&qQC&@Me1B5@>NXxUOZ%>^!${pc zp7OIsST9(dPe(A-0VJI;_M(<<7dUU%<`f0eR9r97;jl8( zJSX$#4&rM#F!QR*a$giW^co}A%4#r3_+U5_Saj6fi;@J`SC+-bu81jj5dqh z)e};_-a4A-2@exEQWloMgO{!ti3Isc-`4RaySpInIxypqy&7pZ1Q=@EsnBdLO{9(B zrm9OwP3hPC3%B`D#?qVE810*7x$-ZDl|~!sG*w=Q0aI+p)2XWc1pSAtDMi8Is44zl z{oH5HI6-f0w>6J1Lap~+I**k%JQsURCJj8Xqf*)kNfY1I6UGt+mdDr8_d6KT2Q6%Q zEq_gcyyFZ{bwd%!gA-PW8+v|>OT=AWQ^>9Du}Kg1VHjFMgq3EUvWQ<%7#56Xgk25p z@kM`@sH(&L(+G)jSp^RAe~mpM8P6~a%A9^Qk6i{{Y-T!+7B!WR zme+P;yZnWTgvS|ls7E+iR~;J2?dH0M4oj#Lv4zym&ac^mHozZDj z(Nc;Lc+-cTUQXkUG3<K`7i8i+*tEQS-?cOZsHGl!kIGzww^r~ z@O6)lDB0@uJ1(@{>p5!s?2859-XpWgQ(#1vnZMUKZoO|klSlt!me~F&CC%~TX>%`G zwaszvPmcLo8MLb{ewn$5Ln}O=(K3db=?G%{#K{c9^}X32Z^d9!aSZ{u9n4Yf2H+@f z%Cb&M-@TaeJ?}*6geCGsT=A1K;j#M+ZMMf`hR$;i;?v)_>cW?EASi3|ek(&rNUT~j zcPj^&XSTIEb?ut><8k%oW8jjwB~07y2|mr|g)HJty543zP=Y5E8dZPoDbsO`qc>9Q z)4n!(qD7Xjc#(IzH6e7v-1Qz}(4)&#*X&J;2ojNCj%i+HQCS7jkhF-}f_l)Aaa983 zi+<{T<+Cnj5Lr*v$lTL7P(sH}0GAQFXh%T0B$qNH6FDnVT`tB7AAAOqCkG6p^H$k^ zBZY=#%f|<6evZt0{jN;#S|kd|x)7yepLWaH?>tP~vBLV@B9w{_V9|y~@#LflH*%U5 zj@)@7qFpWKO*L4|RavOm?5$|YV{@N#*7NmZ@Oyh{Yv*+T{H27^r;KVL-ctc9UK0qM<0sHUe2m|o_)el&MjukU?#G-NP)mCYg`_) z=me?c@L-}I2OrB_Y1cC*Q!vacm-&uvhwP!49kajR6=w_z#~sgofj?cuRH`pY&s@P% z$>7M14l@{x3uB<~=?5IF;LMez%wgycVLA&sDL7ml)u!yW(vK{O)~pM7?|cvDxpjq479|VZ}0-Y#|~IqtVb5d5RP5H(ZX8v!q9}3#*PebnY_!z3x^x zmIerY<42*>Ug3gB0>h*6wduhl?BSNbwnl9Tqo|jZ>(f#`S1w1TTKIU9ikcwZ;`3%S zHRuTl*RA|fJz)2GXG^VK8DFpwPfpQHk}90T#P;hlLjOC?&Bup$qhwf~%E*0iaV>*Upx-Dr0Wm0Jxt~~Zt4OZKh}FY zfDV5Cc~{*&$j#r6dDr|drvi5$)}6>7*4JaaE+1*#T)OmZ-oDwq$7k8KXXd@{$@sqZ zjWwTmVLL4s9Xf13{cyPdu6s1|^eI;8!hBrRi!l?}Q?V`iYp~`|f8xQT4Gji@|d;&X;kcVI$HiPMYX3SY)ln_z*fRhar zc9+9Sx@<6UeN54k%8c+|Y*8`FUu;d|m!glYgSpYdegutgu?si=WnI>gOm%v2UFPIO zpuh$k`8okeVx0hEq%a&dkO#myX;VqT=njF-EjGWkn0Tb$9=?~rqY(I*+pzdh$=$gR z=ki6a!QggahDx}Gd3zfIhm>u{L{R;J`mI1}+J=s<>|58*cpk(wR_8T_@eh)tc|Y$h zOdK9xE>)q&bn(0jqk&8)F1z&!g^5tv(X!GqX*5NXLgm<%D~{7U69RLyQ~bvn0ewIq zWwnSJ`x!wdmyO(5>I7wPC2QTK0yS7kH;2!`b8#};$4qll;LzCveR8J&aq3{lF6Ybm z!bJ32qMc8W9qm;3lgB1^j??7H=y8b)%1I^{uQNB@Bc2|8!#YR$1dxo+oo*AZ{OF1j zbdp3J;X-+PKull6&J|&jd9w0}a-WkeTxPl16npHN%ZkwtGl_GSnCk#~gMd3@@kKs= z%6|k2S0HNHDHTxn7OB$mI4jLEWre4J+yombc(CsjuUx$TmPYMmr4&w|6k4AhFkX3L#kFVO{4b&@C6m;-ayHP1Ds?td ztM4lgbjXhpleAhn0^!P#jR{ZzY`tJ)rDEfvbO%`5@_A1xMV{^PpD`qGgeIOuEgrvnp z)XL^(oFydu6%0xldm>E?Gro<%rb6<@p)5w^*DLliL_z8ov=djE&D_~z_z_i=?A|E} zD1s=@M6$kpOQrlpj@La7`lWo=b1Mo0dwLPlmG3$pr`0&xK+YaAnob{O@IO4a@xMCj zU-+H55P25>{k&}<>>hHu&v2ub^S}GLe5dV9^0$Vqcb)FPRhhyb-24xUwblPN({&+6R959gpR`bES86 z@PxkiZ5sF1hm3!(*I_@2v0iFd4b+w?O+~jf9_dyZULu-t<=^bBCHtm`6?k>L@gX}SI``W)w;m$peTmZyi; z`)lfcw@I;Mz)xT`4_lvb(qBY1o%LMwIzvdlEOkW|*$O!n;8R}hK5fMfs_ zu&~sR^9+Ri8mw*CelUuNWfmv`wU$T`b)QS-gaz-MgA*8f=LMfYTw1<&*{fb zY1ciy`{Qr+ls7_J1A&SQXMOFINk0L)Oxm^iMl# z=>~7?$;wYQz_=6C7yEUdueq0=e1+@tfsA%9?>`>qa{t!8DLDnW({50k$iRAl(T{^9 z9Ca-s$buDCiJq zJ^(ons~%|H&mo83r~c!%pGVHyj+EUbo#E9UW=x}k+OJQ;^@66Ly&~I$KlHGWlY~bj zIw!e^RRSi7YkDc#_cAQ@d`y*htC&=ST?Fk{Cj#zP3FjB)+|Xn+X$qc9 zt0T^pdXiL?cAy;X627L(YQ9nKCZ>LFvkyzM7GP^Ap%g;#1c2513);FSDD`V=UIgNQG6`jGx-gWEYO__~IWbd-?Z%`9QKYVI}ANF8ygdB)|4f=M& z!N0K>qv41UQz@r)qb4P=s671|8aFFw2V5#@kFSA|#y>i*^n%*5?jEA(TqZ3yipb;qeZT-$4oOV5h*{8{V4n7Y$lPfUV|F>Rzz`Mft*K#c?XrE>Wtd zf=?&79ss?CapzC22joJ#)(?c$3;e=IFUmYHWQn8UdlR4Gx`n)?U+xjDMMcPK?^xKa z8*n&Gjvob&njIQom3#|{USh2_gSVPT0Z&x#{A$D5ixcy5L+i#E${rOl>_0kaBrXY;a7KOwlp24T|(446hcvt*bS}xPmpT~8vbawjd z&@&>qgebj-Hx0xDKnJC*D0~Z->2qeQHd4iT{6yFRBZb`0#9*wZojbNkb18V2p{LE1IxaSIuM@HQ<8v4C=boIe5lZ9%a@*nr z-eY~J#Rt5zki^QT`sO)2XI4%m)9;6*V?jRC4yt-T$`DtoWeM6jjr{B<(=Ibk^!*jK zj)QaUcAwy5+GMVX211%Q@T?z<;oqG-6ePy%Ph<;fvHuk4^}DspJFb7rmX9)Q6YHwg zqIL=SF9y6av)Fg9@B961sEPPD=>R}9(kMxIO7~<#AyAII@kHJ-RX}t;mYQbu1!Eqw zT1A^PQ_UN))LGD?1ZPokC$ky{Z(x3CR>fMJ)cv!P1L)0L_T_^iT{Ua><5RH|bf6LJ z`6r$aZ{ueJ1DT9RClQLd!g=j7PqRNAAz1;%q1jBUUw8(W<4(jtHwx4jkoNPTSCig>3#I z{0N`Ed~{1zgH6G6jhxnQcVyds@4_BrIld_6{f?VHzM4xf5d*z+RmIp0QGkj}*g^`~ z>7`2!5@pOg1eX!{{(hmpLbJUVVT;%dy3wf-+u^v|y1 zcA$yCPM(}wVO&R1A2m{_K_jGpy04wwrFv|{=E~E^igSi%4GcY{0<9H_X^$cK;$7Z= zl7DQK*mnevmd9!a?W$Y06sXbkHa3+q<2$gGyHqLGu-{;IRl8SQ19q2u9N16nim|I^ zWnDat`7X^FE)(SxDZdNmsXeisO`J;GETL%c5iV=#ek8STi+aO$DfV`N39wH8UiOdd z9ndFI=#NB5V~oQ5G8v=htlPmDiUl7D%RBzW@)DIcE2M_DFcno+|IE>M3i_ANaUJq( z3vni|geoHeY)}BiK8{nOh$P$)8`Ygw&*(SsB}we&LhsQtpyg_is}D&!fgyTz{@R`^%q`miWT= zF3<}XV#zz+eX^0GY7jM~&Ja1qHW5u5j6?xSIeuS{|F;Fg{-KEHan_0p2 z*RWMg_?Itipi5SRPYZB1TJuJqH|cN@O+W9FsjRxjZzu^{zX5jW7gds)0=4XLD>Hot zS*d*o;U`i#g&I};QyJrQCs_$KruUcB>n++-6?_FZ1uefU=5@xLDliwgs`9AKoe)Ti zNJw)BVWa-5`pU5XtNI>~VY>?cgBNgux;3jJCT0Qy%HKRIn({g>VUM$>ERvfGY&6bG zn93ZmQ`M?9Ox+s%$7YZ}C?Dw_w$y zDF`oMg26CSFwDOU1{{7l!T$%U=0TACm)-pDL*RfE4CqF8lkS7`S;vJNA_mVQcpho~ zJ^fjOkqQq!E&uo7?)?u`J_`)(dunAzixmQA1>n43`rlL0U0Mdr|3>~dTI}B{NY3pe z!QQz1AR+Jr=M3Pi;V0X_wHa0W#`NFF|3d8mM&KuC)#h*fgGLZvgcG literal 0 HcmV?d00001 diff --git a/client/public/logo.png b/client/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bff32ef4c37979c41254b9d712576c78c79ec362 GIT binary patch literal 206444 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 A-T(jq literal 0 HcmV?d00001 diff --git a/client/public/robots.txt b/client/public/robots.txt new file mode 100644 index 0000000000..0faed1cdc9 --- /dev/null +++ b/client/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: http://localhost:5000/sitemap.xml diff --git a/client/public/site.webmanifest b/client/public/site.webmanifest new file mode 100644 index 0000000000..99ba14dd12 --- /dev/null +++ b/client/public/site.webmanifest @@ -0,0 +1,11 @@ +{ + "name": "Barber Shop", + "short_name": "Barber", + "icons": [ + { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" } + ], + "theme_color": "#0ea5e9", + "background_color": "#0ea5e9", + "display": "standalone" +} diff --git a/client/public/sitemap.xml b/client/public/sitemap.xml new file mode 100644 index 0000000000..32941dc825 --- /dev/null +++ b/client/public/sitemap.xml @@ -0,0 +1,5 @@ + + + http://localhost:5000/ + http://localhost:5000/admin/login + diff --git a/client/src/App.jsx b/client/src/App.jsx new file mode 100644 index 0000000000..8d2c7c122d --- /dev/null +++ b/client/src/App.jsx @@ -0,0 +1,61 @@ +import React, { Suspense, lazy } from 'react' +import { Routes, Route, Navigate } from 'react-router-dom' +import Header from './components/Header.jsx' +import ProtectedRoute from './components/ProtectedRoute.jsx' + +// Sidor +import SelectTime from './pages/SelectTime.jsx' +import DetailsPage from './pages/DetailsPage.jsx' +import ConfirmPage from './pages/ConfirmPage.jsx' +const AdminLogin = lazy(() => import('./pages/AdminLogin.jsx')) +const AdminDashboard = lazy(() => import('./pages/AdminDashboard.jsx')) + +class ErrorBoundary extends React.Component { + constructor(props){ + super(props) + this.state = { error: null } + } + static getDerivedStateFromError(error) { + return { error } + } + componentDidCatch(error, info) { + console.error('UI ErrorBoundary:', error, info) + } + render() { + if (this.state.error) { + return ( +

+ ) + } + return this.props.children + } +} + +export default function App() { + return ( +
+
+
+ + + + } /> + } /> + } /> + } /> + }> + } /> + + } /> + + + +
+
+ ) +} diff --git a/client/src/auth.jsx b/client/src/auth.jsx new file mode 100644 index 0000000000..b57ec94b9d --- /dev/null +++ b/client/src/auth.jsx @@ -0,0 +1,38 @@ +// src/auth.jsx +import { createContext, useContext, useEffect, useState } from 'react' + +const AuthCtx = createContext(null) + +export function AuthProvider({ children }) { + const [token, setToken] = useState(() => sessionStorage.getItem('token')) + + // Håller i synk om någon annan flik loggar in/ut + useEffect(() => { + const onStorage = () => setToken(sessionStorage.getItem('token')) + window.addEventListener('storage', onStorage) + return () => window.removeEventListener('storage', onStorage) + }, []) + + const login = (t) => { + sessionStorage.setItem('token', t) + setToken(t) + } + + const logout = () => { + sessionStorage.removeItem('token') + localStorage.removeItem('token') // städa ev. gammalt + setToken(null) + } + + return ( + + {children} + + ) +} + +export function useAuth() { + const ctx = useContext(AuthCtx) + if (!ctx) throw new Error('useAuth must be used inside ') + return ctx +} diff --git a/client/src/authStore.js b/client/src/authStore.js new file mode 100644 index 0000000000..7795f9bd17 --- /dev/null +++ b/client/src/authStore.js @@ -0,0 +1,28 @@ +// src/authStore.js +import { useSyncExternalStore } from 'react' + +let _token = sessionStorage.getItem('token') || null +const listeners = new Set() +const notify = () => listeners.forEach(l => l()) + +export function getToken() { return _token } + +export function setToken(next) { + _token = next || null + if (_token) { + sessionStorage.setItem('token', _token) + } else { + sessionStorage.removeItem('token') + localStorage.removeItem('token') // städa ev. gammalt + } + notify() +} + +export function subscribe(cb) { + listeners.add(cb) + return () => listeners.delete(cb) +} + +export function useToken() { + return useSyncExternalStore(subscribe, getToken, getToken) +} diff --git a/client/src/brand.js b/client/src/brand.js new file mode 100644 index 0000000000..3f5bf4cb5a --- /dev/null +++ b/client/src/brand.js @@ -0,0 +1,5 @@ +export const BRAND = import.meta.env.VITE_BRAND_NAME || 'Bästa barbern' + +export function setTitle(suffix = 'Boka') { + document.title = `${BRAND} – ${suffix}` +} diff --git a/client/src/components/Header.jsx b/client/src/components/Header.jsx new file mode 100644 index 0000000000..72ab798eba --- /dev/null +++ b/client/src/components/Header.jsx @@ -0,0 +1,96 @@ +import { Link, useLocation, useNavigate } from 'react-router-dom' +import { useEffect, useState } from 'react' +import ThemeToggle from './ThemeToggle.jsx' +import { getToken, setAuthToken } from '../lib.js' + +// Använd public/logo.png som säkert default +const BRAND = import.meta.env.VITE_BRAND_NAME || 'Bästa barbern' +const LOGO = import.meta.env.VITE_LOGO_URL || '/logo.png' // <— public + +export default function Header() { + const location = useLocation() + const navigate = useNavigate() + const [token, setToken] = useState(getToken()) + const [open, setOpen] = useState(false) + + useEffect(() => { + const onChange = () => setToken(getToken()) + window.addEventListener('auth:change', onChange) + window.addEventListener('storage', onChange) + return () => { + window.removeEventListener('auth:change', onChange) + window.removeEventListener('storage', onChange) + } + }, []) + + function logout() { + setAuthToken(null) + setOpen(false) + if (location.pathname.startsWith('/admin')) { + navigate('/admin/login', { replace: true }) + } + } + + return ( +
+
+ + {/* Bilden laddas från public/, ger aldrig vit sida om saknas */} + {`${BRAND}{ e.currentTarget.style.display='none' }} + /> + {BRAND} + + + + + +
+ + {open && ( +
+
+ + setOpen(false)} to="/">Boka + {!token ? ( + setOpen(false)} to="/admin/login">Admin + ) : ( + <> + setOpen(false)} to="/admin">Adminpanel + + + )} +
+
+ )} +
+ ) +} diff --git a/client/src/components/ProtectedRoute.jsx b/client/src/components/ProtectedRoute.jsx new file mode 100644 index 0000000000..380ce98790 --- /dev/null +++ b/client/src/components/ProtectedRoute.jsx @@ -0,0 +1,18 @@ +import { useEffect, useState } from 'react' +import { Navigate, Outlet } from 'react-router-dom' +import { api, getToken } from '../lib.js' + +export default function ProtectedRoute() { + const [ok, setOk] = useState(null) + + useEffect(() => { + const token = getToken() + if (!token) { setOk(false); return } + api('/api/auth/me', { token }) + .then(() => setOk(true)) + .catch(() => { setOk(false) }) + }, []) + + if (ok === null) return null + return ok ? : +} diff --git a/client/src/components/ThemeToggle.jsx b/client/src/components/ThemeToggle.jsx new file mode 100644 index 0000000000..23bac5ab31 --- /dev/null +++ b/client/src/components/ThemeToggle.jsx @@ -0,0 +1,18 @@ +export default function ThemeToggle() { + function toggle() { + const root = document.documentElement + const isDark = root.classList.toggle('dark') + localStorage.setItem('theme', isDark ? 'dark' : 'light') + } + return ( + + ) +} diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000000..2ac04e60e4 --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,25 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* Grundlayout: ljus bakgrund i light, mörk i dark */ +html, body, #root { + height: 100%; +} +body { + @apply bg-gray-50 text-gray-900 dark:bg-slate-900 dark:text-slate-100; +} + +/* Små hjälparklasser som används i koden */ +.card { + @apply bg-white dark:bg-slate-800 rounded-2xl border border-gray-200 dark:border-slate-700 shadow p-4; +} +.input { + @apply px-3 py-2 rounded-lg border border-gray-300 dark:border-slate-600 bg-white dark:bg-slate-900 outline-none; +} +.btn { + @apply inline-flex items-center justify-center px-4 py-2 rounded-xl bg-blue-600 text-white font-medium hover:bg-blue-700; +} +.muted { + @apply text-gray-600 dark:text-slate-400; +} diff --git a/client/src/lib.js b/client/src/lib.js new file mode 100644 index 0000000000..7d9c3d7e39 --- /dev/null +++ b/client/src/lib.js @@ -0,0 +1,41 @@ +export const API_BASE = + import.meta.env.VITE_API_BASE || + (import.meta.env.DEV ? 'http://localhost:5000' : ''); + +export function getToken() { + return sessionStorage.getItem('token') || null; +} + +export function setAuthToken(token) { + if (token) sessionStorage.setItem('token', token); + else sessionStorage.removeItem('token'); + window.dispatchEvent(new Event('auth:change')); +} + +/** Robust fetch-wrapper */ +export async function api(path, { method = 'GET', body, token } = {}) { + const headers = { 'Content-Type': 'application/json' }; + if (token) headers.Authorization = `Bearer ${token}`; + + const res = await fetch(`${API_BASE}${path}`, { + method, + headers, + body: body ? JSON.stringify(body) : undefined, + credentials: 'include', + }); + + const raw = await res.text(); + let data; + try { data = raw ? JSON.parse(raw) : null; } catch { data = raw; } + + if (!res.ok) { + const msg = + (data && data.message) || + (typeof data === 'string' && data) || + `HTTP ${res.status}`; + const err = new Error(msg); + err.status = res.status; + throw err; + } + return data; +} diff --git a/client/src/main.jsx b/client/src/main.jsx new file mode 100644 index 0000000000..10266690c5 --- /dev/null +++ b/client/src/main.jsx @@ -0,0 +1,21 @@ +import React from 'react' +import { createRoot } from 'react-dom/client' +import { BrowserRouter } from 'react-router-dom' +import App from './App.jsx' +import './index.css' + +// Initierar tema (default: light) +(function () { + const saved = localStorage.getItem('theme') // 'dark' | 'light' | null + const root = document.documentElement + if (saved === 'dark') root.classList.add('dark') + else root.classList.remove('dark') +})() + +createRoot(document.getElementById('root')).render( + + + + + +) diff --git a/client/src/pages/AdminDashboard.jsx b/client/src/pages/AdminDashboard.jsx new file mode 100644 index 0000000000..5368d0c47a --- /dev/null +++ b/client/src/pages/AdminDashboard.jsx @@ -0,0 +1,94 @@ +import React, { useEffect, useState } from 'react' +import { api, getToken } from '../lib.js' + +export default function AdminDashboard(){ + const [items, setItems] = useState([]) + const [error, setError] = useState('') + const [loading, setLoading] = useState(true) + + async function load() { + setLoading(true); setError('') + try { + const token = getToken() + const data = await api('/api/bookings', { token }) + setItems(data) + } catch (e) { + setError(e.message) + } finally { + setLoading(false) + } + } + + useEffect(() => { load() }, []) + + async function toggle(id) { + try { + const token = getToken() + const updated = await api(`/api/bookings/${id}/toggle`, { method:'PATCH', token }) + setItems(prev => prev.map(it => it._id === id ? updated : it)) + } catch (e) { + alert(`Kunde inte uppdatera: ${e.message}`) + } + } + + async function remove(id) { + if (!confirm('Ta bort denna bokning?')) return + try { + const token = getToken() + await api(`/api/bookings/${id}`, { method:'DELETE', token }) + setItems(prev => prev.filter(it => it._id !== id)) + } catch (e) { + alert(`Kunde inte ta bort: ${e.message}`) + } + } + + return ( +
+
+

Adminpanel

+ +
+ + {error &&

{error}

} + {loading ?

Laddar…

: items.length === 0 ? ( +

Inga bokningar ännu.

+ ) : ( +
    + {items.map(b => ( +
  • +
    +
    +
    {b.date} {b.time} — {b.name}
    +
    {b.service} · {b.email} · {b.phone}
    +
    +
    + + +
    +
    +
  • + ))} +
+ )} +
+ ) +} diff --git a/client/src/pages/AdminLogin.jsx b/client/src/pages/AdminLogin.jsx new file mode 100644 index 0000000000..f7e83c01e2 --- /dev/null +++ b/client/src/pages/AdminLogin.jsx @@ -0,0 +1,39 @@ +import React, { useEffect, useState } from 'react' +import { useNavigate } from 'react-router-dom' +import { api, setAuthToken } from '../lib.js' + +export default function AdminLogin() { + const [email, setEmail] = useState('') + const [password, setPassword] = useState('') + const [error, setError] = useState('') + const navigate = useNavigate() + + useEffect(() => { document.title = 'Admin – Logga in' }, []) + + async function submit(e){ + e.preventDefault(); setError('') + try{ + const { token } = await api('/api/auth/login', { method:'POST', body:{ email, password } }) + setAuthToken(token) + navigate('/admin') + }catch(e){ setError(e.message) } + } + + return ( +
+

Logga in

+
+ + + + {error &&

{error}

} +
+
+ ) +} diff --git a/client/src/pages/ConfirmPage.jsx b/client/src/pages/ConfirmPage.jsx new file mode 100644 index 0000000000..b3fc65b22b --- /dev/null +++ b/client/src/pages/ConfirmPage.jsx @@ -0,0 +1,24 @@ +import React from 'react' +import { useLocation, Link } from 'react-router-dom' + +export default function ConfirmPage(){ + const { state } = useLocation() || {} + const mailOk = state?.mailOk !== false // default true + + return ( +
+

Tack! Din bokning är bekräftad.

+ + {mailOk ? ( +

En bekräftelse har skickats till din e-postadress.

+ ) : ( +

+ Din bekräftelse kunde inte skickas just nu – men bokningen är registrerad. + Försök igen senare eller kontakta salongen. +

+ )} + + Gå till startsidan +
+ ) +} diff --git a/client/src/pages/DetailsPage.jsx b/client/src/pages/DetailsPage.jsx new file mode 100644 index 0000000000..d2c94d512d --- /dev/null +++ b/client/src/pages/DetailsPage.jsx @@ -0,0 +1,97 @@ +import React from 'react' +import { useLocation, useNavigate } from 'react-router-dom' +import { api } from '../lib.js' + +export default function DetailsPage(){ + const { state } = useLocation() || {} + const navigate = useNavigate() + const [name, setName] = React.useState('') + const [email, setEmail] = React.useState('') + const [phone, setPhone] = React.useState('') + const [service, setService] = React.useState('Skin fade (300 kr)') + const [other, setOther] = React.useState('') + const [error, setError] = React.useState('') + + if(!state?.date || !state?.time){ + return

Ingen tid vald. Gå tillbaka.

+ } + + async function submit(e){ + e.preventDefault(); setError('') + const chosenService = service === 'Övrigt' ? `Övrigt: ${other}` : service + + try{ + const resp = await api('/api/bookings', { + method:'POST', + body: { name, email, phone, date: state.date, time: state.time, service: chosenService } + }) + + navigate('/confirm', { state: { ok: true, mailOk: !!resp?.mailOk } }) + }catch(e){ + setError(e.message) + } + } + + return ( +
+
+

Dina uppgifter

+ +
+ + + +
+ +
+ Välj tjänst +
+ {[ + 'Skin fade (300 kr)', + 'Skin fade & skägg (400 kr)', + 'Barnklippning (250 kr)', + 'Pensionär (230 kr)', + 'Övrigt' + ].map(opt => ( + + ))} +
+ + {service === 'Övrigt' && ( + setOther(e.target.value)} + required + /> + )} +
+ + + {error &&

{error}

} +
+
+ ) +} diff --git a/client/src/pages/SelectTime.jsx b/client/src/pages/SelectTime.jsx new file mode 100644 index 0000000000..e1fa99c7f6 --- /dev/null +++ b/client/src/pages/SelectTime.jsx @@ -0,0 +1,162 @@ +import React, { useEffect, useMemo, useState } from 'react' +import { useNavigate } from 'react-router-dom' +import { api } from '../lib.js' + +const BRAND = import.meta.env.VITE_BRAND_NAME || 'Bästa barbern' +const LOGO = import.meta.env.VITE_LOGO_URL || '/logo.png' // public + +function startOfMonth(d){ return new Date(d.getFullYear(), d.getMonth(), 1) } +function endOfMonth(d){ return new Date(d.getFullYear(), d.getMonth()+1, 0) } +function fmtISO(d){ const y=d.getFullYear(), m=String(d.getMonth()+1).padStart(2,'0'), da=String(d.getDate()).padStart(2,'0'); return `${y}-${m}-${da}` } + +function MonthGrid({ monthDate, selectedDate, onPick }) { + const first = startOfMonth(monthDate) + const last = endOfMonth(monthDate) + const startIdx = (first.getDay()+6)%7 + const days = [] + for (let i=0;i + {labels.map(lbl =>
{lbl}
)} + {days.map((d,idx)=>{ + if(!d) return
+ const iso = fmtISO(d) + const selected = selectedDate && fmtISO(selectedDate)===iso + const past = d < new Date(new Date().toDateString()) + return ( + + ) + })} +
+ ) +} + +export default function SelectTime(){ + const navigate = useNavigate() + const [month, setMonth] = useState(()=>{ const n=new Date(); n.setHours(0,0,0,0); return n }) + const [pickedDate, setPickedDate] = useState(()=>{ const n=new Date(); n.setHours(0,0,0,0); return n }) + const [slots, setSlots] = useState([]) + const [booked, setBooked] = useState(new Set()) + const [loading, setLoading] = useState(false) + const [error, setError] = useState('') + + useEffect(()=>{ + const iso = fmtISO(pickedDate) + setLoading(true); setError('') + api(`/api/slots?date=${iso}`) + .then(d => { setSlots(d.available); setBooked(new Set(d.booked)) }) + .catch(e => setError(e.message)) + .finally(()=>setLoading(false)) + }, [pickedDate]) + + function toPrev(){ const m=new Date(month); m.setMonth(m.getMonth()-1); setMonth(m) } + function toNext(){ const m=new Date(month); m.setMonth(m.getMonth()+1); setMonth(m) } + function proceed(time){ navigate('/details', { state: { date: fmtISO(pickedDate), time } }) } + + const monthName = month.toLocaleDateString('sv-SE',{month:'long'}) + const yearStr = month.getFullYear() + const headerLabel = useMemo( + ()=> pickedDate.toLocaleDateString('sv-SE',{ weekday:'long', year:'numeric', month:'long', day:'numeric' }), + [pickedDate] + ) + + return ( +
+ + +
+
+
+ + +
+
{monthName}
+
{yearStr}
+
+ + +
+ +
+ Tidszon: {Intl.DateTimeFormat().resolvedOptions().timeZone} +
+
+ + + +

Lediga tider

+ {loading ?

Laddar…

: error ?

{error}

: ( +
+ {slots.length === 0 &&

Inga tider denna dag.

} + {slots.map(t => { + const unavailable = booked.has(t) + return ( + + ) + })} +
+ )} +
+
+ ) +} diff --git a/client/src/seo.js b/client/src/seo.js new file mode 100644 index 0000000000..2a735049b5 --- /dev/null +++ b/client/src/seo.js @@ -0,0 +1,43 @@ +// client/src/seo.js +export function setSEO({ + title, + description, + canonical, + robots, // "index,follow" | "noindex,nofollow" + jsonLd, // valfri strukturdata (objekt) +} = {}) { + if (title) document.title = title; + + upsertMeta('description', description ?? ''); + if (robots) upsertMeta('robots', robots); + + if (canonical) { + let link = document.querySelector('link[rel="canonical"]'); + if (!link) { + link = document.createElement('link'); + link.setAttribute('rel', 'canonical'); + document.head.appendChild(link); + } + link.setAttribute('href', canonical); + } + + // rensa tidigare JSON-LD script vi satt + document.querySelectorAll('script[data-seo-jsonld]').forEach(n => n.remove()); + if (jsonLd) { + const s = document.createElement('script'); + s.type = 'application/ld+json'; + s.dataset.seoJsonld = '1'; + s.text = JSON.stringify(jsonLd); + document.head.appendChild(s); + } +} + +function upsertMeta(name, content) { + let el = document.querySelector(`meta[name="${name}"]`); + if (!el) { + el = document.createElement('meta'); + el.setAttribute('name', name); + document.head.appendChild(el); + } + el.setAttribute('content', content); +} diff --git a/client/tailwind.config.js b/client/tailwind.config.js new file mode 100644 index 0000000000..e2a3493e0c --- /dev/null +++ b/client/tailwind.config.js @@ -0,0 +1,11 @@ +/** @type {import('tailwindcss').Config} */ +export default { + darkMode: 'class', // very important + content: ['./index.html', './src/**/*.{js,jsx,ts,tsx}'], + theme: { + extend: { + screens: { xs: '360px' }, + }, + }, + plugins: [], +} diff --git a/frontend/vite.config.js b/client/vite.config.js similarity index 81% rename from frontend/vite.config.js rename to client/vite.config.js index 5a33944a9b..9ffcc67574 100644 --- a/frontend/vite.config.js +++ b/client/vite.config.js @@ -1,7 +1,6 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' -// https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], }) diff --git a/frontend/README.md b/frontend/README.md deleted file mode 100644 index 5cdb1d9cf3..0000000000 --- a/frontend/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Frontend part of Final Project - -This boilerplate is designed to give you a head start in your React projects, with a focus on understanding the structure and components. As a student of Technigo, you'll find this guide helpful in navigating and utilizing the repository. - -## Getting Started - -1. Install the required dependencies using `npm install`. -2. Start the development server using `npm run dev`. \ No newline at end of file diff --git a/frontend/index.html b/frontend/index.html deleted file mode 100644 index 664410b5b9..0000000000 --- a/frontend/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Technigo React Vite Boiler Plate - - -
- - - diff --git a/frontend/package.json b/frontend/package.json deleted file mode 100644 index 7b2747e949..0000000000 --- a/frontend/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "project-final-backend", - "description": "Client part of final project", - "version": "1.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview" - }, - "dependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@types/react": "^18.2.15", - "@types/react-dom": "^18.2.7", - "@vitejs/plugin-react": "^4.0.3", - "eslint": "^8.45.0", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.3", - "vite": "^6.3.5" - } -} diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg deleted file mode 100644 index e7b8dfb1b2..0000000000 --- a/frontend/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx deleted file mode 100644 index 0a24275e6e..0000000000 --- a/frontend/src/App.jsx +++ /dev/null @@ -1,8 +0,0 @@ -export const App = () => { - - return ( - <> -

Welcome to Final Project!

- - ); -}; diff --git a/frontend/src/assets/boiler-plate.svg b/frontend/src/assets/boiler-plate.svg deleted file mode 100644 index c9252833b4..0000000000 --- a/frontend/src/assets/boiler-plate.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/frontend/src/assets/react.svg b/frontend/src/assets/react.svg deleted file mode 100644 index 6c87de9bb3..0000000000 --- a/frontend/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/assets/technigo-logo.svg b/frontend/src/assets/technigo-logo.svg deleted file mode 100644 index 3f0da3e572..0000000000 --- a/frontend/src/assets/technigo-logo.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/src/index.css b/frontend/src/index.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frontend/src/main.jsx b/frontend/src/main.jsx deleted file mode 100644 index 51294f3998..0000000000 --- a/frontend/src/main.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; -import { App } from "./App.jsx"; -import "./index.css"; - -ReactDOM.createRoot(document.getElementById("root")).render( - - - -); diff --git a/package.json b/package.json deleted file mode 100644 index 680d190772..0000000000 --- a/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "project-final-parent", - "version": "1.0.0", - "scripts": { - "postinstall": "npm install --prefix backend" - } -} \ No newline at end of file diff --git a/server/.env.example b/server/.env.example new file mode 100644 index 0000000000..419398ae2e --- /dev/null +++ b/server/.env.example @@ -0,0 +1,29 @@ +# ----- MongoDB ----- +MONGODB_URI=mongodb+srv://:@.mongodb.net/?retryWrites=true&w=majority&appName= +PORT=5000 +CLIENT_URL=http://localhost:5173 + +# ----- Admininloggning ----- +ADMIN_EMAIL=admin@example.com +ADMIN_PASSWORD=changeme +JWT_SECRET= + +# ----- Mail ----- +# Utveckling: Mailtrap Sandbox (ingen riktig leverans) +SMTP_HOST=sandbox.smtp.mailtrap.io +SMTP_PORT=2525 +SMTP_USER= +SMTP_PASS= +FROM_EMAIL="Bokningsappen " + +# Produktion (om ni kör riktiga utskick) – byt till er riktiga SMTP +# SMTP_HOST=live.smtp.mailtrap.io +# SMTP_PORT=587 +# SMTP_USER=api +# SMTP_PASS= + +# ----- Notiser (valfritt) ----- +BARBER_EMAIL=barber@example.com +BARBER_WHATSAPP=4670XXXXXXXX +WHATSAPP_TOKEN= +WHATSAPP_PHONE_ID= diff --git a/server/index.js b/server/index.js new file mode 100644 index 0000000000..9e3cc314c0 --- /dev/null +++ b/server/index.js @@ -0,0 +1,283 @@ +// ---- Imports ---- +import express from "express"; +import dotenv from "dotenv"; +import mongoose from "mongoose"; +import cors from "cors"; +import helmet from "helmet"; +import rateLimit from "express-rate-limit"; +import jwt from "jsonwebtoken"; +import nodemailer from "nodemailer"; + +// Ladda .env (måste vara före att du läser process.env) +dotenv.config(); + +// ---- App setup ---- +const app = express(); +const PORT = process.env.PORT || 5000; +const CLIENT_URL = process.env.CLIENT_URL || "http://localhost:5173"; + +// Bas-middleware +app.use(helmet()); +app.use( + cors({ + origin: [CLIENT_URL, "http://localhost:5173", "http://localhost:5000"], + credentials: true, + }) +); +app.use(express.json({ limit: "10kb" })); +app.use(rateLimit({ windowMs: 15 * 60 * 1000, max: 300 })); + +// ---- Debug: verifiera att .env läses ---- +app.get("/api/auth/debug", (_req, res) => { + res.json({ + envEmail: (process.env.ADMIN_EMAIL || "").trim(), + hasPassword: Boolean((process.env.ADMIN_PASSWORD || "").trim()), + }); +}); + +// ---- SMTP verify (dev) ---- +app.get("/api/dev/verify-smtp", async (_req, res) => { + try { + const port = Number(process.env.SMTP_PORT || 587); + const secure = port === 465; + const transporter = nodemailer.createTransport({ + host: process.env.SMTP_HOST, port, secure, + auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS }, + }); + const ok = await transporter.verify(); + res.json({ ok }); + } catch (e) { + res.status(500).json({ ok: false, message: e.message }); + } +}); + +// ---- DB ---- +const mongoUri = process.env.MONGODB_URI; +if (!mongoUri) { + console.error("Missing MONGODB_URI in .env"); + process.exit(1); +} +mongoose + .connect(mongoUri) + .then(() => console.log("MongoDB connected")) + .catch((e) => { + console.error("MongoDB error", e); + process.exit(1); + }); + +// ---- Models ---- +const bookingSchema = new mongoose.Schema({ + name: { type: String, required: true, trim: true }, + email: { type: String, required: true, lowercase: true, trim: true }, + phone: { type: String, required: true, trim: true }, + date: { type: String, required: true }, // YYYY-MM-DD + time: { type: String, required: true }, // HH:mm + service: { type: String, required: true }, + status: { type: String, enum: ["confirmed", "done"], default: "confirmed" }, + createdAt: { type: Date, default: Date.now }, +}); +bookingSchema.index({ date: 1, time: 1 }, { unique: true }); +const Booking = mongoose.model("Booking", bookingSchema); + +// ---- Utils ---- +function genSlots(start = "10:00", end = "19:00", step = 30) { + const toMin = (s) => { const [h,m]=s.split(":").map(Number); return h*60+m; }; + const toStr = (t) => String(Math.floor(t/60)).padStart(2,"0")+":"+String(t%60).padStart(2,"0"); + const res = []; + for (let t = toMin(start); t < toMin(end); t += step) res.push(toStr(t)); + return res; +} +function authMiddleware(req, res, next) { + const auth = req.headers.authorization; + if (!auth || !auth.startsWith("Bearer ")) + return res.status(401).json({ message: "Unauthorized" }); + try { + const token = auth.split(" ")[1]; + req.user = jwt.verify(token, process.env.JWT_SECRET || "devsecret"); + next(); + } catch { + return res.status(401).json({ message: "Unauthorized" }); + } +} + +// ---- Mailer ---- +async function sendEmail({ to, subject, text, html, attachments }) { + let transporter; + if (process.env.SMTP_HOST && process.env.SMTP_USER) { + const port = Number(process.env.SMTP_PORT || 587); + const secure = port === 465; // 465 = TLS + transporter = nodemailer.createTransport({ + host: process.env.SMTP_HOST, + port, + secure, + auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS }, + }); + } else { + // Dev-läge utan riktig SMTP + transporter = nodemailer.createTransport({ jsonTransport: true }); + } + const from = process.env.FROM_EMAIL || "no-reply@example.com"; + const info = await transporter.sendMail({ from, to, subject, text, html, attachments }); + console.log("Email queued:", info.messageId || info); + return info; +} + +// ---- ICS helper ---- +function makeICS({ date, time, name, service }) { + const [y, m, d] = date.split("-").map(Number); + const [hh, mm] = time.split(":").map(Number); + const start = new Date(Date.UTC(y, m - 1, d, hh, mm)); + const end = new Date(start.getTime() + 30 * 60 * 1000); + const dt = (dt) => dt.toISOString().replace(/[-:]/g, "").split(".")[0] + "Z"; + const uid = `${Date.now()}-${Math.random().toString(36).slice(2)}@bookingapp`; + return [ + "BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//bookingapp//EN","CALSCALE:GREGORIAN","METHOD:PUBLISH", + "BEGIN:VEVENT", + `UID:${uid}`,`DTSTAMP:${dt(new Date())}`, + `DTSTART:${dt(start)}`,`DTEND:${dt(end)}`, + `SUMMARY:Bokning – ${service}`, + `DESCRIPTION:Bokning för ${name} (${service}) ${date} ${time}`, + "END:VEVENT","END:VCALENDAR", + ].join("\r\n"); +} + +// (valfritt) WhatsApp: inget i dev +async function sendWhatsApp() {} +async function notifyBarber(booking) { + const { name, email, phone, date, time, service } = booking; + const subject = `Ny bokning: ${date} ${time}`; + const text = `Ny bokning +Namn: ${name} +E-post: ${email} +Telefon: ${phone} +Datum: ${date} +Tid: ${time} +Tjänst: ${service}`; + if (process.env.BARBER_EMAIL) { + await sendEmail({ + to: process.env.BARBER_EMAIL, + subject, + text, + html: `
${text}
`, + }).catch((e) => console.error("Barber email error:", e)); + } +} + +// ---- Routes ---- +app.get("/api/health", (_req, res) => res.json({ ok: true })); + +// Fixad login: trim + lowercase jämförelse + bättre fel +app.post("/api/auth/login", (req, res) => { + const email = String(req.body?.email || "").trim().toLowerCase(); + const password = String(req.body?.password || "").trim(); + + const ADMIN_EMAIL = String(process.env.ADMIN_EMAIL || "").trim().toLowerCase(); + const ADMIN_PASSWORD = String(process.env.ADMIN_PASSWORD || "").trim(); + + if (!ADMIN_EMAIL || !ADMIN_PASSWORD) { + return res.status(500).json({ message: "Admin credentials saknas på servern (.env)." }); + } + + if (email === ADMIN_EMAIL && password === ADMIN_PASSWORD) { + const token = jwt.sign( + { role: "admin", email }, + process.env.JWT_SECRET || "devsecret", + { expiresIn: "8h" } + ); + return res.json({ token }); + } + return res.status(401).json({ message: "Fel e-post eller lösenord." }); +}); + +// Verifiera token +app.get("/api/auth/me", authMiddleware, (req, res) => { + res.json({ ok: true, email: req.user?.email || null }); +}); + +// Lediga tider +app.get("/api/slots", async (req, res) => { + const date = req.query.date; + if (!date) return res.status(400).json({ message: "date is required (YYYY-MM-DD)" }); + const slots = genSlots(); + const bookings = await Booking.find({ date }); + const bookedTimes = new Set(bookings.map((b) => b.time)); + const available = slots.filter((s) => !bookedTimes.has(s)); + res.json({ date, available, booked: Array.from(bookedTimes) }); +}); + +// Skapa bokning + skicka e-post (med .ics) + returnera mailOk +app.post("/api/bookings", async (req, res) => { + const { name, email, phone, date, time, service } = req.body || {}; + if (!name || !email || !phone || !date || !time || !service) + return res.status(400).json({ message: "Missing fields" }); + + try { + const booking = await Booking.create({ name, email, phone, date, time, service }); + + const subject = "Din bokning är bekräftad"; + const text = `Hej ${name}, din bokning är bekräftad ${date} kl ${time} (${service}).`; + const html = ` +
+

Din bokning är bekräftad

+

Hej ${name},

+

Här kommer bekräftelsen på din bokning:

+
    +
  • Datum: ${date}
  • +
  • Tid: ${time}
  • +
  • Tjänst: ${service}
  • +
+

Vi ses!

+

Detta är ett automatiskt utskick.

+
`; + const ics = makeICS({ date, time, name, service }); + + let mailOk = true; + try { + await sendEmail({ + to: email, + subject, + text, + html, + attachments: [ + { filename: "bokning.ics", content: ics, contentType: "text/calendar; method=PUBLISH" }, + ], + }); + console.log("Email queued to", email); + } catch (e) { + mailOk = false; + console.error("EMAIL ERROR:", e?.message || e); + } + + // Avisera barberaren (tyst miss) + notifyBarber(booking).catch(() => {}); + + // Skicka tillbaka kvitto + mailOk-flagga + res.status(201).json({ booking, mailOk }); + } catch (e) { + if (e.code === 11000) return res.status(409).json({ message: "Time already booked" }); + console.error(e); + res.status(500).json({ message: "Server error" }); + } +}); + +// Admin: lista / toggla / ta bort bokningar +app.get("/api/bookings", authMiddleware, async (_req, res) => { + const q = await Booking.find().sort({ date: 1, time: 1 }); + res.json(q); +}); +app.patch("/api/bookings/:id/toggle", authMiddleware, async (req, res) => { + const { id } = req.params; + const b = await Booking.findById(id); + if (!b) return res.status(404).json({ message: "Not found" }); + b.status = b.status === "done" ? "confirmed" : "done"; + await b.save(); + res.json(b); +}); +app.delete("/api/bookings/:id", authMiddleware, async (req, res) => { + const { id } = req.params; + await Booking.findByIdAndDelete(id); + res.json({ ok: true }); +}); + +// ---- Start ---- +app.listen(PORT, () => console.log(`Server listening on ${PORT}`)); diff --git a/server/package-lock.json b/server/package-lock.json new file mode 100644 index 0000000000..9ff01165db --- /dev/null +++ b/server/package-lock.json @@ -0,0 +1,1406 @@ +{ + "name": "booking-server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "booking-server", + "version": "1.0.0", + "dependencies": { + "compression": "^1.7.4", + "cors": "^2.8.5", + "dotenv": "^16.4.5", + "express": "^4.19.2", + "express-rate-limit": "^7.1.5", + "helmet": "^7.1.0", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.5.1", + "nodemailer": "^6.9.13" + }, + "devDependencies": { + "cross-env": "^10.0.0" + } + }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.0.tgz", + "integrity": "sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bson": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", + "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-env": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.0.0.tgz", + "integrity": "sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/helmet": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.2.0.tgz", + "integrity": "sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/jwa": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", + "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kareem": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", + "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mongodb": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.18.0.tgz", + "integrity": "sha512-fO5ttN9VC8P0F5fqtQmclAkgXZxbIkYRTUi1j8JO6IYwvamkhtYDilJr35jOPELR49zqCJgXZWwCtW7B+TM8vQ==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.9", + "bson": "^6.10.4", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", + "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", + "license": "Apache-2.0", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^14.1.0 || ^13.0.0" + } + }, + "node_modules/mongoose": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.18.0.tgz", + "integrity": "sha512-3TixPihQKBdyaYDeJqRjzgb86KbilEH07JmzV8SoSjgoskNTpa6oTBmDxeoF9p8YnWQoz7shnCyPkSV/48y3yw==", + "license": "MIT", + "dependencies": { + "bson": "^6.10.4", + "kareem": "2.6.3", + "mongodb": "~6.18.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "17.1.3" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "license": "MIT", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mquery/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nodemailer": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz", + "integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sift": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", + "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", + "license": "MIT" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + } + } +} diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000000..2f8d02343e --- /dev/null +++ b/server/package.json @@ -0,0 +1,20 @@ +{ + "name": "booking-server", + "version": "1.0.0", + "type": "module", + "main": "index.js", + "scripts": { + "dev": "node --watch index.js", + "start": "node index.js" + }, + "dependencies": { + "cors": "^2.8.5", + "dotenv": "^16.4.5", + "express": "^4.19.2", + "express-rate-limit": "^7.1.5", + "helmet": "^7.1.0", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.5.1", + "nodemailer": "^6.9.13" + } +} From 83d1fbc95568bc833acdaa539857bc4806a59744 Mon Sep 17 00:00:00 2001 From: RicardoNicolau Date: Sat, 6 Sep 2025 15:21:52 +0200 Subject: [PATCH 03/20] Add netlify spa redirects --- client/public/_redirects | 1 + 1 file changed, 1 insertion(+) create mode 100644 client/public/_redirects diff --git a/client/public/_redirects b/client/public/_redirects new file mode 100644 index 0000000000..7797f7c6a7 --- /dev/null +++ b/client/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 From e6da951407978950b11b7c194ce33f1205a0caa4 Mon Sep 17 00:00:00 2001 From: RicardoNicolau Date: Sat, 6 Sep 2025 16:09:19 +0200 Subject: [PATCH 04/20] readme --- README.txt | 211 +++++++++-------------------------------------------- 1 file changed, 36 insertions(+), 175 deletions(-) diff --git a/README.txt b/README.txt index f9ea6824c8..aa433b94aa 100644 --- a/README.txt +++ b/README.txt @@ -1,26 +1,46 @@ -# Best barber – Booking App +# Barber Booking – Final Project -A fast, robust booking app for barbershops. Customers book in **two quick steps** (date/time → details), receive a **confirmation email with an .ics calendar attachment**, and the shop manages bookings via an **admin dashboard** (login, mark done/undo, delete). +A full-stack barber appointment app with real-time slot availability, email confirmations (ICS calendar invite), and a protected admin dashboard. -## Features +**Live site:** https://barber-rico.netlify.app +**API (Render):** https://project-final-it0v.onrender.com -- 📅 Two-step flow (Calendly-style): **Pick date/time → Fill details → Confirm** -- ✉️ Confirmation email with **.ics** calendar invite -- 🔐 **Admin** with JWT login, **Mark done / Undo**, **Delete** -- 🌙 **Dark mode** (class-based) & fully responsive UI (Tailwind) -- 🧱 Overbooking protection: DB **unique index** on `date + time` -- 🛡️ Security: `helmet`, `cors`, `rate-limit`, server-side validation -- ⚡ Performance & SEO: compression, semantic HTML, meta tags, PWA manifest +--- + +## ✨ Features + +- Fast client (Vite + React + Tailwind) +- Dark/Light theme toggle (persistent) +- Calendar with available time slots (30-min steps) +- Booking flow with confirmation screen +- Email confirmation with `.ics` calendar attachment +- Admin dashboard (JWT protected): list, toggle status, delete bookings +- Basic rate limiting, Helmet, and CORS +- SEO & PWA essentials (favicons, manifest, social meta) + +--- + +## 🧱 Tech Stack + +**Frontend** +- React, React Router +- Tailwind CSS +- Vite -## Tech Stack +**Backend** +- Node.js, Express +- MongoDB (Mongoose) +- Nodemailer (Mailtrap in dev) +- JWT auth -**Frontend:** React (Vite), React Router, Tailwind CSS -**Backend:** Node.js, Express, Mongoose (MongoDB), Nodemailer (Mailtrap) -**Other:** JWT (admin), .ics generation, optional WhatsApp Cloud API notifications +**Hosting** +- Frontend: Netlify +- Backend: Render --- -## Directory Structure +## 📁 Project Structure + ``` project-final/ @@ -37,141 +57,13 @@ project-final/ └─ .env # 🔒 private environment variables (not in git) ``` ---- - -## Getting Started (Local) - -### 0) Requirements -- Node 18+ -- A MongoDB database (e.g. MongoDB Atlas) -- A Mailtrap account (Sandbox inbox for development) - -### 1) Install -```bash -git clone -cd project-final - -# client -cd client -npm i - -# server -cd ../server -npm i -``` - -### 2) Environment Variables - -Create **`server/.env`** (do **not** commit this file): - -```env -# ----- MongoDB ----- -MONGODB_URI=mongodb+srv://:@.mongodb.net/bookingapp?retryWrites=true&w=majority&appName= -PORT=5000 -CLIENT_URL=http://localhost:5173 - -# ----- Admin ----- -ADMIN_EMAIL=admin@example.com -ADMIN_PASSWORD=changeme -JWT_SECRET= - -# ----- Mail (dev: Mailtrap Sandbox) ----- -SMTP_HOST=sandbox.smtp.mailtrap.io -SMTP_PORT=2525 -SMTP_USER= -SMTP_PASS= -FROM_EMAIL="Bästa barbern " - -# ----- Notifications (optional) ----- -BARBER_EMAIL=barber@example.com -BARBER_WHATSAPP= -WHATSAPP_TOKEN= -WHATSAPP_PHONE_ID= -``` - -Optional **`client/.env`** (mainly for production): -```env -# In dev the client auto-uses http://localhost:5000 -VITE_API_BASE=https://your-api.example.com -VITE_BRAND_NAME=Bästa barbern -VITE_LOGO_URL=/logo.png -``` - -### 3) Run (two terminals) - -**Server:** -```bash -cd server -npm run dev -# -> Server listening on 5000 -``` - -**Client:** -```bash -cd client -npm run dev -# -> http://localhost:5173 -``` - -Open `http://localhost:5173` in your browser. - ---- - -## API Overview - -| Method | Path | Description | Auth | -|------:|----------------------------------|--------------------------------------|------| -| GET | `/api/health` | Health check | - | -| POST | `/api/auth/login` | Admin login (JWT) | - | -| GET | `/api/auth/me` | Verify token | ✅ | -| GET | `/api/slots?date=YYYY-MM-DD` | Free times & booked slots | - | -| POST | `/api/bookings` | Create booking + email + .ics | - | -| GET | `/api/bookings` | List bookings | ✅ | -| PATCH | `/api/bookings/:id/toggle` | Mark **done/undo** | ✅ | -| DELETE| `/api/bookings/:id` | Delete booking | ✅ | - **Booking schema:** -```js -{ - name, email, phone, - date, // 'YYYY-MM-DD' - time, // 'HH:mm' - service, - status, // 'confirmed' | 'done' - createdAt -} // Unique index prevents double-booking bookingSchema.index({ date: 1, time: 1 }, { unique: true }); ``` --- -## Production Build - -**Separate hosting:** -```bash -# client -cd client -npm run build -# deploy ./dist to static hosting (Netlify, Vercel, S3, etc.) -``` - -```bash -# server -cd server -node index.js -``` - -**Single server serving the client build** (if you added static serving in the API): -```bash -cd client && npm run build -cd ../server && node index.js -``` - -> Windows note: if `NODE_ENV=production` in scripts causes issues, either install `cross-env` or run `node index.js` directly. - ---- - ## Security - Admin JWT stored in **sessionStorage** (clears when closing the tab) @@ -179,22 +71,6 @@ cd ../server && node index.js - Unique DB index on `date+time` to stop double-booking - **Never commit `.env`** — include a `.env.example` with placeholders instead -Recommended **`.gitignore`** (root): -```gitignore -node_modules/ -client/dist/ -server/dist/ -*.log -.env -*.env -client/.env -server/.env -.DS_Store -Thumbs.db -.vscode/ -.idea/ -``` - --- ## SEO & UX @@ -222,19 +98,4 @@ Thumbs.db - **409 “Time already booked”** Someone took that slot. Choose another. - -- **White screen** - Check console; the React Error Boundary shows UI-friendly error messages. - ---- - -## Roadmap - -- Multi-tenant (multiple salons): add `Salon` model + `salonId` on bookings; per-salon admin & public routes -- Payments (Stripe) -- Reminder emails (cron/queue) X hours before the appointment -- Calendar sync (Google/Outlook) - -## License - -MIT (or your preferred license). \ No newline at end of file +--- \ No newline at end of file From 5e2ce3b75470c3f6348f905462e1da147796124e Mon Sep 17 00:00:00 2001 From: RicardoNicolau Date: Sat, 6 Sep 2025 16:11:20 +0200 Subject: [PATCH 05/20] readme fix --- README.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.txt b/README.txt index aa433b94aa..333b01724d 100644 --- a/README.txt +++ b/README.txt @@ -41,8 +41,7 @@ A full-stack barber appointment app with real-time slot availability, email conf ## 📁 Project Structure - -``` +```bash project-final/ ├─ client/ # React app (Vite) │ ├─ public/ # favicons, manifest, apple-touch-icon, logo.png @@ -58,13 +57,15 @@ project-final/ ``` **Booking schema:** + +```js // Unique index prevents double-booking bookingSchema.index({ date: 1, time: 1 }, { unique: true }); ``` --- -## Security +## 🔒 Security - Admin JWT stored in **sessionStorage** (clears when closing the tab) - `helmet`, `cors` (restrict origin), `rate-limit` @@ -73,7 +74,7 @@ bookingSchema.index({ date: 1, time: 1 }, { unique: true }); --- -## SEO & UX +## 🌐 SEO & UX - Proper ``, `meta description`, Open Graph, `site.webmanifest` - `apple-touch-icon.png` (180×180) in `client/public/` @@ -82,7 +83,7 @@ bookingSchema.index({ date: 1, time: 1 }, { unique: true }); --- -## Troubleshooting +## 🛠 Troubleshooting - **Admin login returns blank / no redirect** Ensure `JWT_SECRET` is set in `server/.env`; restart the server; check `/api/auth/login` in DevTools → Network. @@ -98,4 +99,3 @@ bookingSchema.index({ date: 1, time: 1 }, { unique: true }); - **409 “Time already booked”** Someone took that slot. Choose another. ---- \ No newline at end of file From 84671a8ec461461c782d4319814a32a4f8394007 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 6 Sep 2025 16:13:45 +0200 Subject: [PATCH 06/20] readme fix1 --- README.txt | 248 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 191 insertions(+), 57 deletions(-) diff --git a/README.txt b/README.txt index 333b01724d..4aa932f98e 100644 --- a/README.txt +++ b/README.txt @@ -1,101 +1,235 @@ -# Barber Booking – Final Project +# Bästa barbern — Booking System -A full-stack barber appointment app with real-time slot availability, email confirmations (ICS calendar invite), and a protected admin dashboard. +> A full‑stack barber appointment system with a smooth customer flow, self‑service booking, and a simple admin dashboard. -**Live site:** https://barber-rico.netlify.app -**API (Render):** https://project-final-it0v.onrender.com +**Live demo** +- Client (Netlify): https://barber-rico.netlify.app +- API (Render): https://project-final-it0v.onrender.com +- Repo: https://github.com/DevByRico/project-final --- ## ✨ Features -- Fast client (Vite + React + Tailwind) -- Dark/Light theme toggle (persistent) -- Calendar with available time slots (30-min steps) -- Booking flow with confirmation screen -- Email confirmation with `.ics` calendar attachment -- Admin dashboard (JWT protected): list, toggle status, delete bookings -- Basic rate limiting, Helmet, and CORS -- SEO & PWA essentials (favicons, manifest, social meta) +- **Customer flow** + - Pick date/time in a responsive calendar. + - Enter details and confirm booking. + - Instant **email confirmation** with **.ics** calendar invite. +- **Admin** + - Login with email + password (JWT in `sessionStorage`). + - List bookings, mark **done/undone**, **delete**, guarded by `ProtectedRoute`. +- **Duplicate-booking protection** — server schema enforces unique `(date, time)`. +- **Dark mode** with a clean Tailwind design. +- **Mobile-first** + accessible controls (labels, roles, focus states). +- **SEO & PWA basics** — titles, meta tags, favicon set, sitemap/robots (optional). --- -## 🧱 Tech Stack +## 🛠 Tech Stack **Frontend** -- React, React Router +- React + React Router - Tailwind CSS - Vite **Backend** -- Node.js, Express -- MongoDB (Mongoose) +- Node.js + Express +- MongoDB + Mongoose - Nodemailer (Mailtrap in dev) -- JWT auth - -**Hosting** -- Frontend: Netlify -- Backend: Render +- Helmet, CORS, Rate-limit, JWT --- ## 📁 Project Structure -```bash +``` project-final/ -├─ client/ # React app (Vite) -│ ├─ public/ # favicons, manifest, apple-touch-icon, logo.png -│ ├─ src/ -│ │ ├─ components/ # Header, ThemeToggle, ProtectedRoute, ... -│ │ ├─ pages/ # SelectTime, DetailsPage, ConfirmPage, Admin* -│ │ ├─ brand.js, lib.js, main.jsx, App.jsx, index.css, ... -│ └─ index.html -└─ server/ # Express API - ├─ index.js # API routes, mail, DB - ├─ package.json - └─ .env # 🔒 private environment variables (not in git) +├── client/ # Frontend (Vite + React) +│ ├── public/ # static assets, _redirects for SPA +│ └── src/ +│ ├── components/ # Header, ThemeToggle, ProtectedRoute +│ ├── pages/ # SelectTime, DetailsPage, ConfirmPage, Admin* +│ ├── brand.js # Title helper + branding +│ ├── lib.js # fetch wrapper (api) +│ └── index.css # Tailwind + theme tokens +└── server/ # Backend (Express) + ├── index.js # API server + └── .env # server secrets (NOT committed) +``` + +--- + +## 🚀 Quick Start (Local) + +### Prerequisites +- Node 18+ (recommended) +- A MongoDB connection string (Atlas works fine) + +### 1) Clone & install +```bash +git clone https://github.com/DevByRico/project-final.git +cd project-final + +# client +cd client +npm install +cd .. + +# server +cd server +npm install ``` -**Booking schema:** +### 2) Configure server environment +Create `server/.env` (do **not** commit this file): + +```ini +# ----- MongoDB ----- +MONGODB_URI=your-mongodb-uri +PORT=5000 +CLIENT_URL=http://localhost:5173 + +# ----- Admin login ----- +ADMIN_EMAIL=admin@example.com +ADMIN_PASSWORD=changeme +JWT_SECRET=replace-with-a-long-random-string + +# ----- Dev email (Mailtrap sandbox) ----- +SMTP_HOST=sandbox.smtp.mailtrap.io +SMTP_PORT=2525 +SMTP_USER=xxxxxxxxxxxxxx +SMTP_PASS=xxxxxxxxxxxxxx +FROM_EMAIL="Bokningsappen <noreply@example.com>" + +# ----- Optional barber notifications ----- +BARBER_EMAIL=barber@example.com +BARBER_WHATSAPP= +WHATSAPP_TOKEN= +WHATSAPP_PHONE_ID= +``` +### 3) Run locally +**Terminal 1 – API** +```bash +cd server +npm run dev +# -> http://localhost:5000 +``` + +**Terminal 2 – Client** +```bash +cd client +npm run dev +# -> http://localhost:5173 +``` + +The client uses `client/src/lib.js` which sets: ```js -// Unique index prevents double-booking -bookingSchema.index({ date: 1, time: 1 }, { unique: true }); +export const API_BASE = + import.meta.env.VITE_API_BASE || + (import.meta.env.DEV ? 'http://localhost:5000' : ''); ``` +So in development it hits `http://localhost:5000` automatically. --- -## 🔒 Security +## ☁️ Deployment + +### 1) Backend (Render) +- Create a **Web Service** from `server/`. +- **Build command**: `npm install` +- **Start command**: `node index.js` +- **Environment**: Add all keys from `server/.env` (except `CLIENT_URL` if not needed). +- After deploy, note your **Render URL**, e.g. + `https://project-final-xxxx.onrender.com` + +### 2) Frontend (Netlify) +- New site → **Import from Git** → repo root. +- **Base directory**: `client` +- **Build command**: `npm ci && npm run build` +- **Publish directory**: `client/dist` +- Add environment variable: + - **Key**: `VITE_API_BASE` + - **Value**: your Render URL (e.g. `https://project-final-xxxx.onrender.com`) +- Ensure SPA redirects in `client/public/_redirects`: + ```text + /* /index.html 200 + ``` +- Redeploy site. + +--- + +## 🔌 API Reference + +All endpoints are relative to `API_BASE` (local: `http://localhost:5000`). + +### Health +`GET /api/health` → `{ ok: true }` + +### Auth +- `POST /api/auth/login` + - Body: `{ "email": "...", "password": "..." }` + - Returns: `{ token }` (store in **sessionStorage**) +- `GET /api/auth/me` (Bearer token) → `{ ok: true, email }` + +### Slots +- `GET /api/slots?date=YYYY-MM-DD` + - Returns: `{ date, available: string[], booked: string[] }` + +### Bookings +- `POST /api/bookings` + - Body: `{ name, email, phone, date, time, service }` + - Creates booking; emails confirmation with `.ics` invite. +- `GET /api/bookings` (admin) +- `PATCH /api/bookings/:id/toggle` (admin) — toggle `confirmed/done` +- `DELETE /api/bookings/:id` (admin) -- Admin JWT stored in **sessionStorage** (clears when closing the tab) -- `helmet`, `cors` (restrict origin), `rate-limit` -- Unique DB index on `date+time` to stop double-booking -- **Never commit `.env`** — include a `.env.example` with placeholders instead +> Duplicate protection is enforced at the database level via a **unique index**: +> ```js +> bookingSchema.index({ date: 1, time: 1 }, { unique: true }); +> ``` +> If a slot is already taken, the server responds with **409 Conflict**. --- -## 🌐 SEO & UX +## 🔐 Security Notes -- Proper `<title>`, `meta description`, Open Graph, `site.webmanifest` -- `apple-touch-icon.png` (180×180) in `client/public/` -- Keep brand images in `public/` (e.g. `/logo.png`) -- Good contrast in dark mode; semantic HTML +- `helmet()` adds sensible HTTP headers. +- `cors()` is restricted to your `CLIENT_URL` (in dev: `http://localhost:5173`). +- Rate limiting: `express-rate-limit` (defaults: 300 req / 15 min). +- JWT auth for admin routes (token lives in `sessionStorage`). +- Never commit `.env` — it’s in `.gitignore`. --- -## 🛠 Troubleshooting +## ♿ Accessibility & 🧠 SEO -- **Admin login returns blank / no redirect** - Ensure `JWT_SECRET` is set in `server/.env`; restart the server; check `/api/auth/login` in DevTools → Network. +- Semantic HTML, associated labels, roles, keyboard focus. +- Page titles via `brand.js` (`setTitle(...)`). +- Favicons & manifest in `client/public/`. +- Optional `robots.txt` & `sitemap.xml` can be added to `public/`. -- **CORS errors** - `CLIENT_URL` must match the client origin (e.g. `http://localhost:5173`). +--- + +## 🧩 Troubleshooting + +**MongoDB error `EBADNAME`** +Check `MONGODB_URI` – it must be a valid connection string (Atlas SRV format usually starts with `mongodb+srv://…`). + +**401 Unauthorized (admin pages)** +Make sure you log in with `ADMIN_EMAIL/ADMIN_PASSWORD`. Token is saved in `sessionStorage`. Protected routes call `/api/auth/me` on load. -- **MongoDB “EBADNAME / <cluster>”** - Replace placeholder `<cluster>` with the real cluster host in `MONGODB_URI`. +**409 Conflict on booking** +The slot is already taken (unique index). Pick another time. + +**Emails not arriving** +Use Mailtrap sandbox creds in dev. For production, add real SMTP credentials. + +**Netlify deploy works but API doesn’t** +Confirm `VITE_API_BASE` on Netlify matches your Render API URL and redeploy. + +--- -- **Emails not arriving** - Use Mailtrap **Sandbox** in dev; for production use `live.smtp.mailtrap.io:587` with `SMTP_USER=api` and your `SMTP_PASS` (API token). Avoid free Gmail “from” without SPF/DKIM. +## 📝 License -- **409 “Time already booked”** - Someone took that slot. Choose another. +MIT © 2025 DevByRico \ No newline at end of file From ee10fd9ea8dcc34b0d41ce72cf9129f69b2d54e9 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 6 Sep 2025 16:16:53 +0200 Subject: [PATCH 07/20] readme fix2 --- README.txt | 256 ++++++++++++----------------------------------------- 1 file changed, 59 insertions(+), 197 deletions(-) diff --git a/README.txt b/README.txt index 4aa932f98e..250ccabb31 100644 --- a/README.txt +++ b/README.txt @@ -1,235 +1,97 @@ -# Bästa barbern — Booking System +# Barber Booking – Final Project -> A full‑stack barber appointment system with a smooth customer flow, self‑service booking, and a simple admin dashboard. +A full-stack barber appointment app with real-time slot availability, email confirmations (ICS calendar invite), and a protected admin dashboard. -**Live demo** -- Client (Netlify): https://barber-rico.netlify.app -- API (Render): https://project-final-it0v.onrender.com -- Repo: https://github.com/DevByRico/project-final +**Live site:** https://barber-rico.netlify.app +**API (Render):** https://project-final-it0v.onrender.com --- ## ✨ Features - -- **Customer flow** - - Pick date/time in a responsive calendar. - - Enter details and confirm booking. - - Instant **email confirmation** with **.ics** calendar invite. -- **Admin** - - Login with email + password (JWT in `sessionStorage`). - - List bookings, mark **done/undone**, **delete**, guarded by `ProtectedRoute`. -- **Duplicate-booking protection** — server schema enforces unique `(date, time)`. -- **Dark mode** with a clean Tailwind design. -- **Mobile-first** + accessible controls (labels, roles, focus states). -- **SEO & PWA basics** — titles, meta tags, favicon set, sitemap/robots (optional). +- Fast client (Vite + React + Tailwind) +- Dark/Light theme toggle (persistent) +- Calendar with available time slots (30-min steps) +- Booking flow with confirmation screen +- Email confirmation with .ics calendar attachment +- Admin dashboard (JWT protected): list, toggle status, delete bookings +- Basic rate limiting, Helmet, and CORS +- SEO & PWA essentials (favicons, manifest, social meta) --- -## 🛠 Tech Stack +## 🧱 Tech Stack **Frontend** -- React + React Router -- Tailwind CSS +- React, React Router +- Tailwind CSS - Vite **Backend** -- Node.js + Express -- MongoDB + Mongoose -- Nodemailer (Mailtrap in dev) -- Helmet, CORS, Rate-limit, JWT - ---- - -## 📁 Project Structure +- Node.js, Express +- MongoDB (Mongoose) +- Nodemailer (Mailtrap in dev) +- JWT auth -``` -project-final/ -├── client/ # Frontend (Vite + React) -│ ├── public/ # static assets, _redirects for SPA -│ └── src/ -│ ├── components/ # Header, ThemeToggle, ProtectedRoute -│ ├── pages/ # SelectTime, DetailsPage, ConfirmPage, Admin* -│ ├── brand.js # Title helper + branding -│ ├── lib.js # fetch wrapper (api) -│ └── index.css # Tailwind + theme tokens -└── server/ # Backend (Express) - ├── index.js # API server - └── .env # server secrets (NOT committed) -``` +**Hosting** +- Frontend: Netlify +- Backend: Render --- -## 🚀 Quick Start (Local) - -### Prerequisites -- Node 18+ (recommended) -- A MongoDB connection string (Atlas works fine) - -### 1) Clone & install -```bash -git clone https://github.com/DevByRico/project-final.git -cd project-final - -# client -cd client -npm install -cd .. - -# server -cd server -npm install -``` - -### 2) Configure server environment -Create `server/.env` (do **not** commit this file): - -```ini -# ----- MongoDB ----- -MONGODB_URI=your-mongodb-uri -PORT=5000 -CLIENT_URL=http://localhost:5173 - -# ----- Admin login ----- -ADMIN_EMAIL=admin@example.com -ADMIN_PASSWORD=changeme -JWT_SECRET=replace-with-a-long-random-string - -# ----- Dev email (Mailtrap sandbox) ----- -SMTP_HOST=sandbox.smtp.mailtrap.io -SMTP_PORT=2525 -SMTP_USER=xxxxxxxxxxxxxx -SMTP_PASS=xxxxxxxxxxxxxx -FROM_EMAIL="Bokningsappen <noreply@example.com>" - -# ----- Optional barber notifications ----- -BARBER_EMAIL=barber@example.com -BARBER_WHATSAPP= -WHATSAPP_TOKEN= -WHATSAPP_PHONE_ID= -``` - -### 3) Run locally -**Terminal 1 – API** -```bash -cd server -npm run dev -# -> http://localhost:5000 -``` +## 📁 Project Structure -**Terminal 2 – Client** ```bash -cd client -npm run dev -# -> http://localhost:5173 +project-final/ +├─ client/ # React app (Vite) +│ ├─ public/ # favicons, manifest, apple-touch-icon, logo.png +│ ├─ src/ +│ │ ├─ components/ # Header, ThemeToggle, ProtectedRoute, ... +│ │ ├─ pages/ # SelectTime, DetailsPage, ConfirmPage, Admin* +│ │ ├─ brand.js, lib.js, main.jsx, App.jsx, index.css, ... +│ └─ index.html +└─ server/ # Express API + ├─ index.js # API routes, mail, DB + ├─ package.json + └─ .env # 🔒 private environment variables (not in git) ``` -The client uses `client/src/lib.js` which sets: +**Booking schema:** ```js -export const API_BASE = - import.meta.env.VITE_API_BASE || - (import.meta.env.DEV ? 'http://localhost:5000' : ''); +// Unique index prevents double-booking +bookingSchema.index({ date: 1, time: 1 }, { unique: true }); ``` -So in development it hits `http://localhost:5000` automatically. --- -## ☁️ Deployment - -### 1) Backend (Render) -- Create a **Web Service** from `server/`. -- **Build command**: `npm install` -- **Start command**: `node index.js` -- **Environment**: Add all keys from `server/.env` (except `CLIENT_URL` if not needed). -- After deploy, note your **Render URL**, e.g. - `https://project-final-xxxx.onrender.com` - -### 2) Frontend (Netlify) -- New site → **Import from Git** → repo root. -- **Base directory**: `client` -- **Build command**: `npm ci && npm run build` -- **Publish directory**: `client/dist` -- Add environment variable: - - **Key**: `VITE_API_BASE` - - **Value**: your Render URL (e.g. `https://project-final-xxxx.onrender.com`) -- Ensure SPA redirects in `client/public/_redirects`: - ```text - /* /index.html 200 - ``` -- Redeploy site. +## 🔒 Security +- Admin JWT stored in **sessionStorage** (clears when closing the tab) +- `helmet`, `cors` (restrict origin), `rate-limit` +- Unique DB index on date+time to stop double-booking +- **Never commit `.env`** — include a `.env.example` with placeholders instead --- -## 🔌 API Reference - -All endpoints are relative to `API_BASE` (local: `http://localhost:5000`). - -### Health -`GET /api/health` → `{ ok: true }` - -### Auth -- `POST /api/auth/login` - - Body: `{ "email": "...", "password": "..." }` - - Returns: `{ token }` (store in **sessionStorage**) -- `GET /api/auth/me` (Bearer token) → `{ ok: true, email }` - -### Slots -- `GET /api/slots?date=YYYY-MM-DD` - - Returns: `{ date, available: string[], booked: string[] }` - -### Bookings -- `POST /api/bookings` - - Body: `{ name, email, phone, date, time, service }` - - Creates booking; emails confirmation with `.ics` invite. -- `GET /api/bookings` (admin) -- `PATCH /api/bookings/:id/toggle` (admin) — toggle `confirmed/done` -- `DELETE /api/bookings/:id` (admin) - -> Duplicate protection is enforced at the database level via a **unique index**: -> ```js -> bookingSchema.index({ date: 1, time: 1 }, { unique: true }); -> ``` -> If a slot is already taken, the server responds with **409 Conflict**. +## 🌐 SEO & UX +- Proper `<title>`, meta description, Open Graph, `site.webmanifest` +- `apple-touch-icon.png` (180×180) in `client/public/` +- Keep brand images in `public/` (e.g. `/logo.png`) +- Good contrast in dark mode; semantic HTML --- -## 🔐 Security Notes - -- `helmet()` adds sensible HTTP headers. -- `cors()` is restricted to your `CLIENT_URL` (in dev: `http://localhost:5173`). -- Rate limiting: `express-rate-limit` (defaults: 300 req / 15 min). -- JWT auth for admin routes (token lives in `sessionStorage`). -- Never commit `.env` — it’s in `.gitignore`. - ---- +## 🛠 Troubleshooting -## ♿ Accessibility & 🧠 SEO +- **Admin login returns blank / no redirect** + Ensure `JWT_SECRET` is set in `server/.env`; restart the server; check `/api/auth/login` in DevTools → Network. -- Semantic HTML, associated labels, roles, keyboard focus. -- Page titles via `brand.js` (`setTitle(...)`). -- Favicons & manifest in `client/public/`. -- Optional `robots.txt` & `sitemap.xml` can be added to `public/`. +- **CORS errors** + `CLIENT_URL` must match the client origin (e.g. `http://localhost:5173`). ---- - -## 🧩 Troubleshooting - -**MongoDB error `EBADNAME`** -Check `MONGODB_URI` – it must be a valid connection string (Atlas SRV format usually starts with `mongodb+srv://…`). - -**401 Unauthorized (admin pages)** -Make sure you log in with `ADMIN_EMAIL/ADMIN_PASSWORD`. Token is saved in `sessionStorage`. Protected routes call `/api/auth/me` on load. - -**409 Conflict on booking** -The slot is already taken (unique index). Pick another time. - -**Emails not arriving** -Use Mailtrap sandbox creds in dev. For production, add real SMTP credentials. - -**Netlify deploy works but API doesn’t** -Confirm `VITE_API_BASE` on Netlify matches your Render API URL and redeploy. - ---- +- **MongoDB “EBADNAME / <cluster>”** + Replace placeholder `<cluster>` with the real cluster host in `MONGODB_URI`. -## 📝 License +- **Emails not arriving** + Use Mailtrap **Sandbox** in dev; for production use `live.smtp.mailtrap.io:587` with `SMTP_USER=api` and your `SMTP_PASS` (API token). Avoid free Gmail “from” without SPF/DKIM. -MIT © 2025 DevByRico \ No newline at end of file +- **409 “Time already booked”** + Someone took that slot. Choose another. \ No newline at end of file From 601efd7be1242477c97e2f8693336f912ee0df3a Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 20:58:25 +0200 Subject: [PATCH 08/20] Refactor: cleaned and organized code structure based on feedback --- .gitignore | 25 +- client/.env.local | 8 - client/package-lock.json | 3061 ---------------------- client/package.json | 9 +- client/public/_redirects | 2 +- client/src/App.jsx | 92 +- client/src/auth.jsx | 38 - client/src/authStore.js | 28 - client/src/brand.js | 5 - client/src/components/Header.jsx | 133 +- client/src/components/ProtectedRoute.jsx | 50 +- client/src/components/ThemeToggle.jsx | 35 +- client/src/index.css | 198 +- client/src/lib.js | 41 - client/src/main.jsx | 31 +- client/src/pages/AdminDashboard.jsx | 202 +- client/src/pages/AdminLogin.jsx | 39 - client/src/pages/ConfirmPage.jsx | 24 - client/src/pages/ConfirmationPage.jsx | 40 + client/src/pages/DetailsPage.jsx | 179 +- client/src/pages/LoginPage.jsx | 73 + client/src/pages/SelectTime.jsx | 333 +-- client/src/seo.js | 43 - client/src/store/auth.jsx | 28 + client/src/store/booking.jsx | 15 + client/src/store/lib.js | 34 + client/vite.config.js | 11 +- server/index.js | 9 +- server/package-lock.json | 1406 ---------- server/package.json | 3 + 30 files changed, 999 insertions(+), 5196 deletions(-) delete mode 100644 client/.env.local delete mode 100644 client/package-lock.json delete mode 100644 client/src/auth.jsx delete mode 100644 client/src/authStore.js delete mode 100644 client/src/brand.js delete mode 100644 client/src/lib.js delete mode 100644 client/src/pages/AdminLogin.jsx delete mode 100644 client/src/pages/ConfirmPage.jsx create mode 100644 client/src/pages/ConfirmationPage.jsx create mode 100644 client/src/pages/LoginPage.jsx delete mode 100644 client/src/seo.js create mode 100644 client/src/store/auth.jsx create mode 100644 client/src/store/booking.jsx create mode 100644 client/src/store/lib.js delete mode 100644 server/package-lock.json diff --git a/.gitignore b/.gitignore index 7089420a3e..edadc3b71f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,29 @@ # --- Node --- node_modules/ -npm-debug.log* -yarn.lock -pnpm-lock.yaml +**/node_modules/ # --- Build artifacts --- +dist/ +build/ client/dist/ server/dist/ +**/dist/ *.log # --- Env (secrets) --- .env *.env +**/.env +**/*.env +.env.local client/.env server/.env +# --- Package locks --- +package-lock.json +yarn.lock +pnpm-lock.yaml + # --- OS cruft --- .DS_Store Thumbs.db @@ -22,3 +31,13 @@ Thumbs.db # --- Editor --- .vscode/ .idea/ + +# --- Vite cache --- +.vite/ +**/.vite/ + +# --- Test coverage --- +coverage/ + +# --- Misc --- +*.local diff --git a/client/.env.local b/client/.env.local deleted file mode 100644 index d45ab7198e..0000000000 --- a/client/.env.local +++ /dev/null @@ -1,8 +0,0 @@ -# Var din frontend ska anropa API:t i dev -VITE_API_BASE=http://localhost:5000 - -# Varumärke i UI och flikar -VITE_BRAND_NAME="Bästa barbern" - -# (Valfritt) Om du vill överskrida loggan via URL i stället för import: -# VITE_LOGO_URL=/logo-barber.png \ No newline at end of file diff --git a/client/package-lock.json b/client/package-lock.json deleted file mode 100644 index a3617d7328..0000000000 --- a/client/package-lock.json +++ /dev/null @@ -1,3061 +0,0 @@ -{ - "name": "booking-client", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "booking-client", - "version": "1.0.0", - "dependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.23.1" - }, - "devDependencies": { - "@vitejs/plugin-react": "^4.2.1", - "autoprefixer": "^10.4.19", - "postcss": "^8.4.38", - "tailwindcss": "^3.4.4", - "vite": "^5.2.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", - "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@remix-run/router": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", - "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.0.tgz", - "integrity": "sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.0.tgz", - "integrity": "sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.0.tgz", - "integrity": "sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.0.tgz", - "integrity": "sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.0.tgz", - "integrity": "sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.0.tgz", - "integrity": "sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.0.tgz", - "integrity": "sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.0.tgz", - "integrity": "sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.0.tgz", - "integrity": "sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.0.tgz", - "integrity": "sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.0.tgz", - "integrity": "sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.0.tgz", - "integrity": "sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.0.tgz", - "integrity": "sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.0.tgz", - "integrity": "sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.0.tgz", - "integrity": "sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.0.tgz", - "integrity": "sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.0.tgz", - "integrity": "sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.0.tgz", - "integrity": "sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.0.tgz", - "integrity": "sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.0.tgz", - "integrity": "sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.0.tgz", - "integrity": "sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.25.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", - "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001737", - "electron-to-chromium": "^1.5.211", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001739", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001739.tgz", - "integrity": "sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.213", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.213.tgz", - "integrity": "sha512-xr9eRzSLNa4neDO0xVFrkXu3vyIzG4Ay08dApecw42Z1NbmCt+keEpXdvlYGVe0wtvY5dhW0Ay0lY0IOfsCg0Q==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.30.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", - "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.23.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.30.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", - "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", - "license": "MIT", - "dependencies": { - "@remix-run/router": "1.23.0", - "react-router": "6.30.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.50.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.0.tgz", - "integrity": "sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.50.0", - "@rollup/rollup-android-arm64": "4.50.0", - "@rollup/rollup-darwin-arm64": "4.50.0", - "@rollup/rollup-darwin-x64": "4.50.0", - "@rollup/rollup-freebsd-arm64": "4.50.0", - "@rollup/rollup-freebsd-x64": "4.50.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.50.0", - "@rollup/rollup-linux-arm-musleabihf": "4.50.0", - "@rollup/rollup-linux-arm64-gnu": "4.50.0", - "@rollup/rollup-linux-arm64-musl": "4.50.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.50.0", - "@rollup/rollup-linux-ppc64-gnu": "4.50.0", - "@rollup/rollup-linux-riscv64-gnu": "4.50.0", - "@rollup/rollup-linux-riscv64-musl": "4.50.0", - "@rollup/rollup-linux-s390x-gnu": "4.50.0", - "@rollup/rollup-linux-x64-gnu": "4.50.0", - "@rollup/rollup-linux-x64-musl": "4.50.0", - "@rollup/rollup-openharmony-arm64": "4.50.0", - "@rollup/rollup-win32-arm64-msvc": "4.50.0", - "@rollup/rollup-win32-ia32-msvc": "4.50.0", - "@rollup/rollup-win32-x64-msvc": "4.50.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "5.4.19", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", - "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - } - } -} diff --git a/client/package.json b/client/package.json index 7bbf142b84..cb160a74e1 100644 --- a/client/package.json +++ b/client/package.json @@ -9,7 +9,11 @@ "preview": "vite preview" }, "dependencies": { + "dayjs": "^1.11.18", + "framer-motion": "^11.0.8", + "lucide-react": "^0.546.0", "react": "^18.2.0", + "react-calendar": "^6.0.0", "react-dom": "^18.2.0", "react-router-dom": "^6.23.1" }, @@ -19,5 +23,6 @@ "postcss": "^8.4.38", "tailwindcss": "^3.4.4", "vite": "^5.2.0" - } -} \ No newline at end of file + }, + "proxy": "http://localhost:5000" +} diff --git a/client/public/_redirects b/client/public/_redirects index 7797f7c6a7..ad37e2c2c9 100644 --- a/client/public/_redirects +++ b/client/public/_redirects @@ -1 +1 @@ -/* /index.html 200 +/* /index.html 200 diff --git a/client/src/App.jsx b/client/src/App.jsx index 8d2c7c122d..72a747c4f7 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,61 +1,39 @@ -import React, { Suspense, lazy } from 'react' -import { Routes, Route, Navigate } from 'react-router-dom' -import Header from './components/Header.jsx' -import ProtectedRoute from './components/ProtectedRoute.jsx' - -// Sidor -import SelectTime from './pages/SelectTime.jsx' -import DetailsPage from './pages/DetailsPage.jsx' -import ConfirmPage from './pages/ConfirmPage.jsx' -const AdminLogin = lazy(() => import('./pages/AdminLogin.jsx')) -const AdminDashboard = lazy(() => import('./pages/AdminDashboard.jsx')) - -class ErrorBoundary extends React.Component { - constructor(props){ - super(props) - this.state = { error: null } - } - static getDerivedStateFromError(error) { - return { error } - } - componentDidCatch(error, info) { - console.error('UI ErrorBoundary:', error, info) - } - render() { - if (this.state.error) { - return ( - <div className="max-w-5xl mx-auto px-4 py-6"> - <div className="bg-red-50 border border-red-200 text-red-800 rounded-xl p-4"> - <div className="font-semibold mb-1">Ett fel uppstod i UI:t</div> - <pre className="whitespace-pre-wrap text-sm">{String(this.state.error?.message || this.state.error)}</pre> - </div> - </div> - ) - } - return this.props.children - } -} +// client/src/App.jsx +import React from "react"; +import { BrowserRouter, Routes, Route } from "react-router-dom"; +import Header from "./components/Header"; +import SelectTime from "./pages/SelectTime"; +import DetailsPage from "./pages/DetailsPage"; +import Confirmation from "./pages/ConfirmationPage"; +import AdminDashboard from "./pages/AdminDashboard"; +import LoginPage from "./pages/LoginPage"; +import { BookingProvider } from "./store/booking"; +import { AuthProvider } from "./store/auth"; +import ProtectedRoute from "./components/ProtectedRoute"; export default function App() { return ( - <div className="min-h-screen flex flex-col"> - <Header /> - <main className="flex-1 w-full max-w-5xl mx-auto px-4 py-6"> - <ErrorBoundary> - <Suspense fallback={null}> - <Routes> - <Route path="/" element={<SelectTime />} /> - <Route path="/details" element={<DetailsPage />} /> - <Route path="/confirm" element={<ConfirmPage />} /> - <Route path="/admin/login" element={<AdminLogin />} /> - <Route element={<ProtectedRoute />}> - <Route path="/admin" element={<AdminDashboard />} /> - </Route> - <Route path="*" element={<Navigate to="/" replace />} /> - </Routes> - </Suspense> - </ErrorBoundary> - </main> - </div> - ) + <BrowserRouter> + <AuthProvider> + <BookingProvider> + <Header /> + <Routes> + <Route path="/" element={<SelectTime />} /> + <Route path="/details" element={<DetailsPage />} /> + <Route path="/confirmation" element={<Confirmation />} /> + <Route path="/login" element={<LoginPage />} /> + <Route + path="/admin" + element={ + <ProtectedRoute> + <AdminDashboard /> + </ProtectedRoute> + } + /> + <Route path="*" element={<p className="p-4">Not found.</p>} /> + </Routes> + </BookingProvider> + </AuthProvider> + </BrowserRouter> + ); } diff --git a/client/src/auth.jsx b/client/src/auth.jsx deleted file mode 100644 index b57ec94b9d..0000000000 --- a/client/src/auth.jsx +++ /dev/null @@ -1,38 +0,0 @@ -// src/auth.jsx -import { createContext, useContext, useEffect, useState } from 'react' - -const AuthCtx = createContext(null) - -export function AuthProvider({ children }) { - const [token, setToken] = useState(() => sessionStorage.getItem('token')) - - // Håller i synk om någon annan flik loggar in/ut - useEffect(() => { - const onStorage = () => setToken(sessionStorage.getItem('token')) - window.addEventListener('storage', onStorage) - return () => window.removeEventListener('storage', onStorage) - }, []) - - const login = (t) => { - sessionStorage.setItem('token', t) - setToken(t) - } - - const logout = () => { - sessionStorage.removeItem('token') - localStorage.removeItem('token') // städa ev. gammalt - setToken(null) - } - - return ( - <AuthCtx.Provider value={{ token, login, logout }}> - {children} - </AuthCtx.Provider> - ) -} - -export function useAuth() { - const ctx = useContext(AuthCtx) - if (!ctx) throw new Error('useAuth must be used inside <AuthProvider>') - return ctx -} diff --git a/client/src/authStore.js b/client/src/authStore.js deleted file mode 100644 index 7795f9bd17..0000000000 --- a/client/src/authStore.js +++ /dev/null @@ -1,28 +0,0 @@ -// src/authStore.js -import { useSyncExternalStore } from 'react' - -let _token = sessionStorage.getItem('token') || null -const listeners = new Set() -const notify = () => listeners.forEach(l => l()) - -export function getToken() { return _token } - -export function setToken(next) { - _token = next || null - if (_token) { - sessionStorage.setItem('token', _token) - } else { - sessionStorage.removeItem('token') - localStorage.removeItem('token') // städa ev. gammalt - } - notify() -} - -export function subscribe(cb) { - listeners.add(cb) - return () => listeners.delete(cb) -} - -export function useToken() { - return useSyncExternalStore(subscribe, getToken, getToken) -} diff --git a/client/src/brand.js b/client/src/brand.js deleted file mode 100644 index 3f5bf4cb5a..0000000000 --- a/client/src/brand.js +++ /dev/null @@ -1,5 +0,0 @@ -export const BRAND = import.meta.env.VITE_BRAND_NAME || 'Bästa barbern' - -export function setTitle(suffix = 'Boka') { - document.title = `${BRAND} – ${suffix}` -} diff --git a/client/src/components/Header.jsx b/client/src/components/Header.jsx index 72ab798eba..a8706289e2 100644 --- a/client/src/components/Header.jsx +++ b/client/src/components/Header.jsx @@ -1,96 +1,51 @@ -import { Link, useLocation, useNavigate } from 'react-router-dom' -import { useEffect, useState } from 'react' -import ThemeToggle from './ThemeToggle.jsx' -import { getToken, setAuthToken } from '../lib.js' - -// Använd public/logo.png som säkert default -const BRAND = import.meta.env.VITE_BRAND_NAME || 'Bästa barbern' -const LOGO = import.meta.env.VITE_LOGO_URL || '/logo.png' // <— public +import React from "react"; +import { Link } from "react-router-dom"; +import ThemeToggle from "./ThemeToggle"; +import { useAuth } from "../store/auth"; export default function Header() { - const location = useLocation() - const navigate = useNavigate() - const [token, setToken] = useState(getToken()) - const [open, setOpen] = useState(false) - - useEffect(() => { - const onChange = () => setToken(getToken()) - window.addEventListener('auth:change', onChange) - window.addEventListener('storage', onChange) - return () => { - window.removeEventListener('auth:change', onChange) - window.removeEventListener('storage', onChange) - } - }, []) - - function logout() { - setAuthToken(null) - setOpen(false) - if (location.pathname.startsWith('/admin')) { - navigate('/admin/login', { replace: true }) - } - } + const { token, logout } = useAuth(); return ( - <header className="sticky top-0 z-10 bg-white/80 dark:bg-slate-900/80 backdrop-blur - border-b border-gray-200 dark:border-slate-700"> - <div className="max-w-5xl mx-auto px-4 py-3 flex items-center justify-between"> - <Link to="/" className="flex items-center gap-2"> - {/* Bilden laddas från public/, ger aldrig vit sida om saknas */} - <img - src={LOGO} - alt={`${BRAND} logo`} - className="h-8 w-8 object-contain" - onError={(e)=>{ e.currentTarget.style.display='none' }} - /> - <span className="font-semibold tracking-tight">{BRAND}</span> - </Link> - - <nav className="hidden sm:flex items-center gap-3"> - <ThemeToggle /> - {!token ? ( - <Link to="/admin/login" className="text-sm underline">Admin</Link> - ) : ( - <> - <Link to="/admin" className="text-sm underline">Adminpanel</Link> - <button - onClick={logout} - className="text-sm px-2 py-1 rounded border - border-gray-300 dark:border-slate-600 - hover:bg-gray-50 dark:hover:bg-slate-800" - > - Logga ut - </button> - </> - )} - </nav> - - <button - className="sm:hidden px-3 py-2 rounded border border-gray-300 dark:border-slate-600" - aria-label="Meny" - onClick={() => setOpen(o => !o)} - > - ☰ - </button> + <header className="flex items-center justify-between px-6 py-3 border-b border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-900"> + <Link + to="/" + className="flex items-center space-x-2 text-xl font-semibold hover:text-blue-600 transition text-gray-900 dark:text-white whitespace-nowrap" + > + <img + src="/logo.png" + alt="Best Barber Logo" + className="w-8 h-8 rounded-full" + /> + <span>Best Barber Booking</span> + </Link> + + <div className="flex items-center gap-4"> + <ThemeToggle /> + {token ? ( + <> + <Link + to="/admin" + className="text-sm font-medium hover:text-blue-500 dark:hover:text-blue-400 transition text-gray-900 dark:text-gray-100" + > + Admin Panel + </Link> + <button + onClick={logout} + className="text-sm text-red-500 hover:text-red-400 transition" + > + Logout + </button> + </> + ) : ( + <Link + to="/login" + className="text-sm font-medium hover:text-blue-500 dark:hover:text-blue-400 transition text-gray-900 dark:text-gray-100" + > + Admin + </Link> + )} </div> - - {open && ( - <div className="sm:hidden border-t border-gray-200 dark:border-slate-700 - bg-white dark:bg-slate-900"> - <div className="max-w-5xl mx-auto px-4 py-3 flex flex-col gap-3"> - <ThemeToggle /> - <Link onClick={()=>setOpen(false)} to="/">Boka</Link> - {!token ? ( - <Link onClick={()=>setOpen(false)} to="/admin/login">Admin</Link> - ) : ( - <> - <Link onClick={()=>setOpen(false)} to="/admin">Adminpanel</Link> - <button onClick={logout} className="text-left">Logga ut</button> - </> - )} - </div> - </div> - )} </header> - ) + ); } diff --git a/client/src/components/ProtectedRoute.jsx b/client/src/components/ProtectedRoute.jsx index 380ce98790..1fcfc61630 100644 --- a/client/src/components/ProtectedRoute.jsx +++ b/client/src/components/ProtectedRoute.jsx @@ -1,18 +1,42 @@ -import { useEffect, useState } from 'react' -import { Navigate, Outlet } from 'react-router-dom' -import { api, getToken } from '../lib.js' +// src/components/ProtectedRoute.jsx +import React, { useEffect, useState } from "react"; +import { Navigate } from "react-router-dom"; +import { useAuth } from "../store/auth"; -export default function ProtectedRoute() { - const [ok, setOk] = useState(null) +export default function ProtectedRoute({ children }) { + const { token, logout } = useAuth(); + const [isValid, setIsValid] = useState(null); useEffect(() => { - const token = getToken() - if (!token) { setOk(false); return } - api('/api/auth/me', { token }) - .then(() => setOk(true)) - .catch(() => { setOk(false) }) - }, []) + if (!token) { + setIsValid(false); + return; + } - if (ok === null) return null - return ok ? <Outlet /> : <Navigate to="/admin/login" replace /> + const checkToken = async () => { + try { + const res = await fetch("/api/auth/me", { + headers: { Authorization: `Bearer ${token}` }, + }); + if (!res.ok) throw new Error("Unauthorized"); + setIsValid(true); + } catch { + logout(); + setIsValid(false); + } + }; + + checkToken(); + }, [token, logout]); + + if (isValid === null) + return ( + <div className="text-center mt-10 text-gray-500 dark:text-gray-300"> + Verifierar inloggning... + </div> + ); + + if (!isValid) return <Navigate to="/login" replace />; + + return children; } diff --git a/client/src/components/ThemeToggle.jsx b/client/src/components/ThemeToggle.jsx index 23bac5ab31..8cb5c34ecf 100644 --- a/client/src/components/ThemeToggle.jsx +++ b/client/src/components/ThemeToggle.jsx @@ -1,18 +1,29 @@ +// src/components/ThemeToggle.jsx +import React, { useEffect, useState } from "react"; + export default function ThemeToggle() { - function toggle() { - const root = document.documentElement - const isDark = root.classList.toggle('dark') - localStorage.setItem('theme', isDark ? 'dark' : 'light') - } + const [isDark, setIsDark] = useState(() => { + return localStorage.getItem("theme") === "dark"; + }); + + useEffect(() => { + const root = window.document.documentElement; + if (isDark) { + root.classList.add("dark"); + localStorage.setItem("theme", "dark"); + } else { + root.classList.remove("dark"); + localStorage.setItem("theme", "light"); + } + }, [isDark]); + return ( <button - type="button" - onClick={toggle} - className="px-2 py-1 rounded border border-gray-300 dark:border-slate-600 hover:bg-gray-50 dark:hover:bg-slate-800" - aria-label="Växla tema" - title="Växla tema" + onClick={() => setIsDark(!isDark)} + className="text-2xl p-2 rounded hover:bg-gray-200 dark:hover:bg-slate-700 transition" + title={isDark ? "Byt till ljust läge" : "Byt till mörkt läge"} > - 🌓 + {isDark ? "🌙" : "☀️"} </button> - ) + ); } diff --git a/client/src/index.css b/client/src/index.css index 2ac04e60e4..6a665845de 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -2,15 +2,24 @@ @tailwind components; @tailwind utilities; -/* Grundlayout: ljus bakgrund i light, mörk i dark */ +/* === Base Layout === */ html, body, #root { height: 100%; } body { - @apply bg-gray-50 text-gray-900 dark:bg-slate-900 dark:text-slate-100; + @apply bg-gray-50 text-gray-900 dark:bg-slate-900 dark:text-slate-100 transition-colors duration-300; } -/* Små hjälparklasser som används i koden */ +/* === Fade-in Animation for Header === */ +@keyframes fadeIn { + from { opacity: 0; transform: translateY(-5px); } + to { opacity: 1; transform: translateY(0); } +} +.animate-fadeIn { + animation: fadeIn 0.4s ease-in-out; +} + +/* === Utilities === */ .card { @apply bg-white dark:bg-slate-800 rounded-2xl border border-gray-200 dark:border-slate-700 shadow p-4; } @@ -18,8 +27,189 @@ body { @apply px-3 py-2 rounded-lg border border-gray-300 dark:border-slate-600 bg-white dark:bg-slate-900 outline-none; } .btn { - @apply inline-flex items-center justify-center px-4 py-2 rounded-xl bg-blue-600 text-white font-medium hover:bg-blue-700; + @apply inline-flex items-center justify-center px-4 py-2 rounded-xl bg-blue-600 text-white font-medium hover:bg-blue-700 transition; } .muted { @apply text-gray-600 dark:text-slate-400; } +textarea { + @apply w-full p-4 min-h-[160px] border border-gray-300 rounded-md bg-white text-black resize-y dark:bg-gray-700 dark:text-white dark:border-gray-600; +} + +/* === React Calendar === */ +.react-calendar { + @apply w-full max-w-lg mx-auto bg-white dark:bg-slate-800 rounded-2xl p-4 + text-gray-900 dark:text-slate-100 shadow-md border border-gray-200 dark:border-slate-700 transition-all; +} + +/* Responsiv fix */ +@media (max-width: 640px) { + .react-calendar { + @apply max-w-full text-sm p-3; + } +} + +/* === Navigation === */ +.react-calendar__navigation { + @apply flex justify-between items-center mb-4; +} +.react-calendar__navigation button { + @apply text-gray-700 dark:text-gray-200 text-sm font-medium bg-transparent rounded-md px-3 py-1 transition; + outline: none !important; + box-shadow: none !important; +} +.react-calendar__navigation button:hover { + @apply text-blue-500 dark:text-blue-400; + filter: drop-shadow(0 0 4px rgba(59,130,246,0.4)); +} +.react-calendar__navigation button:disabled { + @apply opacity-40 cursor-not-allowed text-gray-400 dark:text-slate-500; +} + +/* === Weekdays === */ +.react-calendar__month-view__weekdays { + @apply text-xs text-gray-500 dark:text-slate-400 uppercase font-semibold mb-1 text-center; +} + +/* === Dates === */ +.react-calendar__tile { + @apply text-sm rounded-lg p-2 text-center transition-all bg-gray-50 dark:bg-slate-700 text-gray-700 dark:text-slate-100 hover:bg-blue-100 dark:hover:bg-slate-600; +} +.react-calendar__tile--now { + @apply bg-blue-100 dark:bg-slate-600 font-semibold; +} +.react-calendar__tile--active { + @apply bg-blue-600 text-white hover:bg-blue-700; +} +.react-calendar__tile:focus { + outline: none; + @apply ring-2 ring-blue-400 dark:ring-blue-500; +} +.react-calendar__month-view__days__day--neighboringMonth { + @apply text-gray-400 dark:text-slate-500; +} + +/* === Month & Year view tiles === */ +.react-calendar__year-view__months__month, +.react-calendar__decade-view__years__year, +.react-calendar__century-view__decades__decade { + @apply text-sm sm:text-base rounded-lg py-3 px-2 flex items-center justify-center transition-all bg-gray-100 dark:bg-slate-700 text-gray-800 dark:text-slate-100 hover:bg-blue-100 dark:hover:bg-slate-600; +} +.react-calendar__year-view__months, +.react-calendar__decade-view__years, +.react-calendar__century-view__decades { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 0.75rem; + padding-top: 0.25rem; +} +.react-calendar__tile--active:enabled, +.react-calendar__year-view__months__month--active { + @apply bg-blue-600 text-white font-semibold hover:bg-blue-700; +} + +/* === Time Slot Buttons === */ +.time-slot-grid { + @apply grid grid-cols-2 sm:grid-cols-4 gap-3 mt-4; +} +.time-slot-btn { + @apply border border-gray-400 dark:border-slate-600 rounded-lg py-2 text-sm font-medium text-gray-800 dark:text-slate-100 hover:bg-blue-600 hover:text-white dark:hover:bg-blue-500 transition; +} + +/* === FINAL FIX for Arrow Highlight Bug === */ +.react-calendar__navigation button:enabled:hover, +.react-calendar__navigation button:enabled:focus, +.react-calendar__navigation button:enabled:active { + background: none !important; + color: #60a5fa !important; + filter: drop-shadow(0 0 4px rgba(96,165,250,0.4)); + outline: none !important; + box-shadow: none !important; + transform: scale(0.96); +} +.react-calendar__navigation button:enabled { + background-color: transparent !important; +} + +/* === FINAL RESPONSIVE FIX for Month/Year Layout === */ +.react-calendar__viewContainer { + display: flex; + justify-content: center; +} +.react-calendar__year-view__months, +.react-calendar__decade-view__years, +.react-calendar__century-view__decades { + display: grid; + grid-template-columns: repeat(3, minmax(100px, 1fr)); + gap: 0.75rem; + justify-content: center; + align-items: center; + margin: 0 auto; +} + +/* === MOBILE CALENDAR FIX === */ +@media (max-width: 480px) { + .react-calendar { + @apply w-full max-w-[95%] mx-auto text-sm p-3 rounded-xl bg-white dark:bg-slate-800 shadow-md; + } + + .react-calendar__navigation { + @apply text-sm mb-2 justify-between; + } + + .react-calendar__navigation button { + @apply px-2 py-1 text-xs; + } + + .react-calendar__month-view__weekdays { + @apply text-[10px] font-medium tracking-tight mb-1; + } + + .react-calendar__tile { + @apply text-xs p-2 rounded-md; + } + + .react-calendar__tile--active { + @apply bg-blue-600 text-white font-semibold; + } + + .react-calendar__month-view__days { + @apply grid gap-[3px]; + } + + .time-slot-grid { + @apply grid grid-cols-2 gap-2 mt-3; + } + + .time-slot-btn { + @apply text-xs py-2; + } +} + +/* === MOBILE HEADER FIX === */ +@media (max-width: 480px) { + header { + @apply flex-col items-center text-center gap-2; + } + + header a { + @apply text-base; + } + + header div { + @apply flex justify-center gap-3; + } + + header img { + @apply mx-auto; + } + + header span { + @apply text-sm; + } + + /* Förhindra radbrytning i loggan */ + header a span { + white-space: nowrap; + } +} diff --git a/client/src/lib.js b/client/src/lib.js deleted file mode 100644 index 7d9c3d7e39..0000000000 --- a/client/src/lib.js +++ /dev/null @@ -1,41 +0,0 @@ -export const API_BASE = - import.meta.env.VITE_API_BASE || - (import.meta.env.DEV ? 'http://localhost:5000' : ''); - -export function getToken() { - return sessionStorage.getItem('token') || null; -} - -export function setAuthToken(token) { - if (token) sessionStorage.setItem('token', token); - else sessionStorage.removeItem('token'); - window.dispatchEvent(new Event('auth:change')); -} - -/** Robust fetch-wrapper */ -export async function api(path, { method = 'GET', body, token } = {}) { - const headers = { 'Content-Type': 'application/json' }; - if (token) headers.Authorization = `Bearer ${token}`; - - const res = await fetch(`${API_BASE}${path}`, { - method, - headers, - body: body ? JSON.stringify(body) : undefined, - credentials: 'include', - }); - - const raw = await res.text(); - let data; - try { data = raw ? JSON.parse(raw) : null; } catch { data = raw; } - - if (!res.ok) { - const msg = - (data && data.message) || - (typeof data === 'string' && data) || - `HTTP ${res.status}`; - const err = new Error(msg); - err.status = res.status; - throw err; - } - return data; -} diff --git a/client/src/main.jsx b/client/src/main.jsx index 10266690c5..075a11a8ad 100644 --- a/client/src/main.jsx +++ b/client/src/main.jsx @@ -1,21 +1,18 @@ -import React from 'react' -import { createRoot } from 'react-dom/client' -import { BrowserRouter } from 'react-router-dom' -import App from './App.jsx' -import './index.css' +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; +import "./index.css"; -// Initierar tema (default: light) -(function () { - const saved = localStorage.getItem('theme') // 'dark' | 'light' | null - const root = document.documentElement - if (saved === 'dark') root.classList.add('dark') - else root.classList.remove('dark') -})() +// dina providers +import { AuthProvider } from "./store/auth"; +import { BookingProvider } from "./store/booking"; -createRoot(document.getElementById('root')).render( +ReactDOM.createRoot(document.getElementById("root")).render( <React.StrictMode> - <BrowserRouter> - <App /> - </BrowserRouter> + <AuthProvider> + <BookingProvider> + <App /> + </BookingProvider> + </AuthProvider> </React.StrictMode> -) +); diff --git a/client/src/pages/AdminDashboard.jsx b/client/src/pages/AdminDashboard.jsx index 5368d0c47a..587d17ec03 100644 --- a/client/src/pages/AdminDashboard.jsx +++ b/client/src/pages/AdminDashboard.jsx @@ -1,94 +1,150 @@ -import React, { useEffect, useState } from 'react' -import { api, getToken } from '../lib.js' +import React, { useEffect, useState } from "react"; +import { api } from "../store/lib"; +import { useAuth } from "../store/auth"; +import { CheckCircle, Clock, Trash2, User, Search } from "lucide-react"; -export default function AdminDashboard(){ - const [items, setItems] = useState([]) - const [error, setError] = useState('') - const [loading, setLoading] = useState(true) +export default function AdminDashboard() { + const { token } = useAuth(); + const [bookings, setBookings] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(""); + const [filter, setFilter] = useState("all"); + const [search, setSearch] = useState(""); - async function load() { - setLoading(true); setError('') + useEffect(() => { + loadBookings(); + }, []); + + async function loadBookings() { try { - const token = getToken() - const data = await api('/api/bookings', { token }) - setItems(data) - } catch (e) { - setError(e.message) + const data = await api("/api/bookings", { token }); + setBookings(data); + } catch (err) { + console.error(err); + setError(err.message || "Failed to load bookings."); } finally { - setLoading(false) + setLoading(false); } } - useEffect(() => { load() }, []) - - async function toggle(id) { - try { - const token = getToken() - const updated = await api(`/api/bookings/${id}/toggle`, { method:'PATCH', token }) - setItems(prev => prev.map(it => it._id === id ? updated : it)) - } catch (e) { - alert(`Kunde inte uppdatera: ${e.message}`) - } + async function toggleStatus(id) { + await api(`/api/bookings/${id}/toggle`, { method: "PATCH", token }); + loadBookings(); } - async function remove(id) { - if (!confirm('Ta bort denna bokning?')) return - try { - const token = getToken() - await api(`/api/bookings/${id}`, { method:'DELETE', token }) - setItems(prev => prev.filter(it => it._id !== id)) - } catch (e) { - alert(`Kunde inte ta bort: ${e.message}`) - } + async function deleteBooking(id) { + if (!confirm("Delete this booking?")) return; + await api(`/api/bookings/${id}`, { method: "DELETE", token }); + loadBookings(); } + const filtered = bookings + .filter((b) => (filter === "all" ? true : b.status === filter)) + .filter((b) => { + const q = search.toLowerCase(); + return ( + b.name.toLowerCase().includes(q) || + b.email.toLowerCase().includes(q) || + b.phone.toLowerCase().includes(q) || + b.service.toLowerCase().includes(q) || + b.date.toLowerCase().includes(q) + ); + }); + + if (loading) + return <p className="text-center mt-10 text-gray-500">Loading bookings...</p>; + if (error) + return <p className="text-center mt-10 text-red-500">{error}</p>; + return ( - <section className="space-y-4"> - <div className="flex items-center justify-between"> - <h1 className="text-xl font-semibold">Adminpanel</h1> - <button onClick={load} className="px-3 py-1.5 rounded-lg border border-gray-300 dark:border-slate-600 hover:bg-gray-50 dark:hover:bg-slate-800"> - Uppdatera - </button> + <div className="max-w-5xl mx-auto mt-10 px-4"> + <h1 className="text-3xl font-bold mb-4 text-center">Admin Dashboard</h1> + + {/* Search bar */} + <div className="flex items-center justify-center mb-6 relative w-full sm:w-[60%] mx-auto"> + <Search + size={18} + className="absolute left-3 text-gray-400 dark:text-slate-400" + /> + <input + type="text" + value={search} + onChange={(e) => setSearch(e.target.value)} + placeholder="Search by name, email, date or service..." + className="w-full pl-10 pr-3 py-2 rounded-lg border border-gray-300 dark:border-slate-700 bg-white dark:bg-slate-800 text-gray-800 dark:text-gray-100 placeholder-gray-400 dark:placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-blue-500" + /> + </div> + + {/* Filter buttons */} + <div className="flex justify-center gap-3 mb-6"> + {["all", "done"].map((type) => ( + <button + key={type} + onClick={() => setFilter(type)} + className={`px-4 py-2 rounded-lg text-sm font-medium transition-all ${ + filter === type + ? "bg-blue-600 text-white" + : "bg-gray-200 dark:bg-slate-700 text-gray-800 dark:text-gray-100" + }`} + > + {type === "all" ? "All" : "Done"} + </button> + ))} </div> - {error && <p className="text-red-500">{error}</p>} - {loading ? <p>Laddar…</p> : items.length === 0 ? ( - <p className="muted">Inga bokningar ännu.</p> + {filtered.length === 0 ? ( + <p className="text-center text-gray-500">No bookings found.</p> ) : ( - <ul className="space-y-3"> - {items.map(b => ( - <li key={b._id} className="p-3 rounded-xl border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800"> - <div className="flex items-center justify-between gap-3"> - <div> - <div className="font-medium">{b.date} {b.time} — {b.name}</div> - <div className="text-sm muted">{b.service} · {b.email} · {b.phone}</div> - </div> + <div className="grid gap-4"> + {filtered.map((b) => ( + <div + key={b._id} + className="flex flex-col sm:flex-row justify-between items-start sm:items-center p-5 rounded-2xl border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-800 shadow-sm transition hover:shadow-md" + > + <div className="space-y-1"> <div className="flex items-center gap-2"> - <button - onClick={() => toggle(b._id)} - className={[ - "px-3 py-1.5 rounded-lg text-sm border", - b.status === 'done' - ? "bg-emerald-600 text-white border-emerald-600 hover:bg-emerald-700" - : "bg-yellow-100 text-yellow-900 border-yellow-300 hover:bg-yellow-200 dark:bg-yellow-900/30 dark:text-yellow-200 dark:border-yellow-700" - ].join(' ')} - title="Markera klar / Ångra" - > - {b.status === 'done' ? 'Klar' : 'Bekräftad'} - </button> - <button - onClick={() => remove(b._id)} - className="px-3 py-1.5 rounded-lg text-sm border border-red-300 text-red-700 hover:bg-red-50 dark:border-red-700 dark:text-red-300 dark:hover:bg-red-900/30" - title="Ta bort" - > - Ta bort - </button> + <User size={16} /> + <span className="font-semibold">{b.name}</span> </div> + <p className="text-sm text-gray-500 dark:text-slate-400"> + {b.service} — {b.date} at {b.time} + </p> + <p className="text-sm text-gray-500 dark:text-slate-400"> + {b.email} • {b.phone} + </p> + </div> + + <div className="flex items-center gap-3 mt-3 sm:mt-0"> + <button + onClick={() => toggleStatus(b._id)} + className={`flex items-center gap-1 px-3 py-1 rounded-lg text-sm font-medium transition-all ${ + b.status === "done" + ? "bg-green-600 text-white hover:bg-green-700" + : "bg-yellow-500 text-white hover:bg-yellow-600" + }`} + > + {b.status === "done" ? ( + <> + <CheckCircle size={16} /> Done + </> + ) : ( + <> + <Clock size={16} /> Booked + </> + )} + </button> + + <button + onClick={() => deleteBooking(b._id)} + className="flex items-center gap-1 px-3 py-1 rounded-lg text-sm font-medium bg-red-600 text-white hover:bg-red-700 transition-all" + > + <Trash2 size={16} /> Delete + </button> </div> - </li> + </div> ))} - </ul> + </div> )} - </section> - ) + </div> + ); } diff --git a/client/src/pages/AdminLogin.jsx b/client/src/pages/AdminLogin.jsx deleted file mode 100644 index f7e83c01e2..0000000000 --- a/client/src/pages/AdminLogin.jsx +++ /dev/null @@ -1,39 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { useNavigate } from 'react-router-dom' -import { api, setAuthToken } from '../lib.js' - -export default function AdminLogin() { - const [email, setEmail] = useState('') - const [password, setPassword] = useState('') - const [error, setError] = useState('') - const navigate = useNavigate() - - useEffect(() => { document.title = 'Admin – Logga in' }, []) - - async function submit(e){ - e.preventDefault(); setError('') - try{ - const { token } = await api('/api/auth/login', { method:'POST', body:{ email, password } }) - setAuthToken(token) - navigate('/admin') - }catch(e){ setError(e.message) } - } - - return ( - <section> - <h1 className="text-2xl font-semibold mb-4">Logga in</h1> - <form onSubmit={submit} className="card max-w-md p-4 space-y-4"> - <label className="flex flex-col gap-1"> - <span className="font-medium">E-post</span> - <input className="input" value={email} onChange={e=>setEmail(e.target.value)} required /> - </label> - <label className="flex flex-col gap-1"> - <span className="font-medium">Lösenord</span> - <input type="password" className="input" value={password} onChange={e=>setPassword(e.target.value)} required /> - </label> - <button className="btn">Logga in</button> - {error && <p role="alert" className="text-sm text-red-400">{error}</p>} - </form> - </section> - ) -} diff --git a/client/src/pages/ConfirmPage.jsx b/client/src/pages/ConfirmPage.jsx deleted file mode 100644 index b3fc65b22b..0000000000 --- a/client/src/pages/ConfirmPage.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react' -import { useLocation, Link } from 'react-router-dom' - -export default function ConfirmPage(){ - const { state } = useLocation() || {} - const mailOk = state?.mailOk !== false // default true - - return ( - <section className="card p-4 sm:p-6"> - <h1 className="text-xl font-semibold mb-2">Tack! Din bokning är bekräftad.</h1> - - {mailOk ? ( - <p className="muted">En bekräftelse har skickats till din e-postadress.</p> - ) : ( - <p className="muted"> - Din bekräftelse kunde inte skickas just nu – men bokningen är registrerad. - Försök igen senare eller kontakta salongen. - </p> - )} - - <Link to="/" className="btn mt-4">Gå till startsidan</Link> - </section> - ) -} diff --git a/client/src/pages/ConfirmationPage.jsx b/client/src/pages/ConfirmationPage.jsx new file mode 100644 index 0000000000..ea0b194d00 --- /dev/null +++ b/client/src/pages/ConfirmationPage.jsx @@ -0,0 +1,40 @@ +import React from "react"; +import { useLocation, Link } from "react-router-dom"; + +export default function ConfirmationPage() { + const location = useLocation(); + const { name, date, time, service } = location.state || {}; + + return ( + <div className="flex justify-center items-center min-h-[80vh] px-4"> + <div className="card w-full max-w-md text-center"> + <h1 className="text-3xl font-bold mb-4">Booking Confirmed 🎉</h1> + + {name ? ( + <> + <p className="mb-2">Thank you, <strong>{name}</strong>!</p> + <p className="mb-2"> + Your <strong>{service}</strong> appointment is confirmed for{" "} + <strong>{date}</strong> at <strong>{time}</strong>. + </p> + <p className="muted mb-6"> + A confirmation email has been sent to you. + </p> + <Link to="/" className="btn w-full"> + Back to Home + </Link> + </> + ) : ( + <> + <p className="mb-4"> + Your booking was successful. Thank you! + </p> + <Link to="/" className="btn w-full"> + Back to Home + </Link> + </> + )} + </div> + </div> + ); +} diff --git a/client/src/pages/DetailsPage.jsx b/client/src/pages/DetailsPage.jsx index d2c94d512d..2515dee84b 100644 --- a/client/src/pages/DetailsPage.jsx +++ b/client/src/pages/DetailsPage.jsx @@ -1,97 +1,122 @@ -import React from 'react' -import { useLocation, useNavigate } from 'react-router-dom' -import { api } from '../lib.js' +import React, { useState } from "react"; +import { useNavigate, useLocation } from "react-router-dom"; +import { api } from "../store/lib"; -export default function DetailsPage(){ - const { state } = useLocation() || {} - const navigate = useNavigate() - const [name, setName] = React.useState('') - const [email, setEmail] = React.useState('') - const [phone, setPhone] = React.useState('') - const [service, setService] = React.useState('Skin fade (300 kr)') - const [other, setOther] = React.useState('') - const [error, setError] = React.useState('') +export default function DetailsPage() { + const navigate = useNavigate(); + const location = useLocation(); + const selected = location.state; // date, time, service - if(!state?.date || !state?.time){ - return <p className="muted">Ingen tid vald. Gå tillbaka.</p> + const [name, setName] = useState(""); + const [email, setEmail] = useState(""); + const [phone, setPhone] = useState(""); + const [service, setService] = useState(selected?.service || "Fade"); + const [error, setError] = useState(""); + const [loading, setLoading] = useState(false); + + if (!selected?.date || !selected?.time) { + return ( + <div className="text-center mt-10"> + <p>Please select a date and time first.</p> + </div> + ); } - async function submit(e){ - e.preventDefault(); setError('') - const chosenService = service === 'Övrigt' ? `Övrigt: ${other}` : service + async function handleSubmit(e) { + e.preventDefault(); + setError(""); + setLoading(true); - try{ - const resp = await api('/api/bookings', { - method:'POST', - body: { name, email, phone, date: state.date, time: state.time, service: chosenService } - }) + try { + await api("/api/bookings", { + method: "POST", + body: { + name, + email, + phone, + date: selected.date, + time: selected.time, + service, + }, + }); - navigate('/confirm', { state: { ok: true, mailOk: !!resp?.mailOk } }) - }catch(e){ - setError(e.message) + navigate("/confirmation", { state: { name, date: selected.date, time: selected.time, service } }); + } catch (err) { + console.error(err); + setError(err.message || "Something went wrong. Please try again."); + } finally { + setLoading(false); } } return ( - <section className="grid grid-cols-1 gap-6"> - <form onSubmit={submit} className="card p-4 sm:p-6 space-y-4"> - <h1 className="text-xl font-semibold">Dina uppgifter</h1> + <div className="flex justify-center items-center min-h-[80vh] px-4"> + <div className="card w-full max-w-md"> + <h1 className="text-2xl font-bold mb-4 text-center">Booking Details</h1> + <p className="muted text-center mb-6"> + You’re booking <strong>{service}</strong> on{" "} + <strong>{selected.date}</strong> at <strong>{selected.time}</strong>. + </p> - <div className="grid sm:grid-cols-2 gap-4"> - <label className="flex flex-col gap-1"> - <span className="font-medium">Namn</span> - <input className="input" value={name} onChange={e=>setName(e.target.value)} required /> - </label> - <label className="flex flex-col gap-1"> - <span className="font-medium">E-post</span> - <input type="email" className="input" value={email} onChange={e=>setEmail(e.target.value)} required /> - </label> - <label className="flex flex-col gap-1 sm:col-span-2"> - <span className="font-medium">Telefon</span> - <input className="input" value={phone} onChange={e=>setPhone(e.target.value)} required /> - </label> - </div> + <form onSubmit={handleSubmit} className="space-y-4"> + <div> + <label className="block mb-1 font-medium">Full Name</label> + <input + type="text" + value={name} + onChange={(e) => setName(e.target.value)} + className="input" + placeholder="Your full name" + required + /> + </div> - <div className="space-y-2"> - <span className="font-medium">Välj tjänst</span> - <div className="grid sm:grid-cols-2 gap-2"> - {[ - 'Skin fade (300 kr)', - 'Skin fade & skägg (400 kr)', - 'Barnklippning (250 kr)', - 'Pensionär (230 kr)', - 'Övrigt' - ].map(opt => ( - <label key={opt} - className="flex items-center gap-2 rounded-lg border - border-gray-200 dark:border-slate-700 - bg-white dark:bg-slate-800 px-3 py-2"> - <input - type="radio" - name="service" - value={opt} - checked={service === opt} - onChange={() => setService(opt)} - /> - <span>{opt}</span> - </label> - ))} + <div> + <label className="block mb-1 font-medium">Email</label> + <input + type="email" + value={email} + onChange={(e) => setEmail(e.target.value)} + className="input" + placeholder="you@example.com" + required + /> </div> - {service === 'Övrigt' && ( + <div> + <label className="block mb-1 font-medium">Phone Number</label> <input - placeholder="Skriv önskemål…" - className="input mt-2" - value={other} - onChange={e=>setOther(e.target.value)} + type="tel" + value={phone} + onChange={(e) => setPhone(e.target.value)} + className="input" + placeholder="+46 70 123 45 67" required /> + </div> + + <div> + <label className="block mb-1 font-medium">Service</label> + <select + value={service} + onChange={(e) => setService(e.target.value)} + className="input" + > + <option>Fade</option> + <option>Fade + Beard</option> + <option>Fade + Color</option> + </select> + </div> + + {error && ( + <p className="text-center text-red-500 text-sm">{error}</p> )} - </div> - <button className="btn">Bekräfta bokning</button> - {error && <p className="text-red-400">{error}</p>} - </form> - </section> - ) + <button type="submit" className="btn w-full" disabled={loading}> + {loading ? "Booking..." : "Confirm Booking"} + </button> + </form> + </div> + </div> + ); } diff --git a/client/src/pages/LoginPage.jsx b/client/src/pages/LoginPage.jsx new file mode 100644 index 0000000000..a8bf497d3b --- /dev/null +++ b/client/src/pages/LoginPage.jsx @@ -0,0 +1,73 @@ +import React, { useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { api } from "../store/lib"; +import { useAuth } from "../store/auth"; + +export default function LoginPage() { + const navigate = useNavigate(); + const { login } = useAuth(); + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [error, setError] = useState(""); + + async function handleSubmit(e) { + e.preventDefault(); + setError(""); + try { + const data = await api("/api/auth/login", { + method: "POST", + body: { email, password }, + }); + if (data.token) { + login(data.token); + navigate("/admin"); + } + } catch (err) { + console.error(err); + setError(err.message || "Login failed"); + } + } + + return ( + <div className="flex items-center justify-center min-h-[80vh] px-4"> + <div className="card w-full max-w-md"> + <h1 className="text-2xl font-bold mb-6 text-center"> + Admin Login + </h1> + <form onSubmit={handleSubmit} className="space-y-4"> + <div> + <label className="block mb-1 font-medium">Email</label> + <input + type="email" + value={email} + onChange={(e) => setEmail(e.target.value)} + className="input" + placeholder="admin@example.com" + required + /> + </div> + + <div> + <label className="block mb-1 font-medium">Password</label> + <input + type="password" + value={password} + onChange={(e) => setPassword(e.target.value)} + className="input" + placeholder="Enter password" + required + /> + </div> + + {error && ( + <p className="text-red-500 text-sm text-center">{error}</p> + )} + + <button type="submit" className="btn w-full"> + Log in + </button> + </form> + </div> + </div> + ); +} diff --git a/client/src/pages/SelectTime.jsx b/client/src/pages/SelectTime.jsx index e1fa99c7f6..e32759e31c 100644 --- a/client/src/pages/SelectTime.jsx +++ b/client/src/pages/SelectTime.jsx @@ -1,162 +1,197 @@ -import React, { useEffect, useMemo, useState } from 'react' -import { useNavigate } from 'react-router-dom' -import { api } from '../lib.js' - -const BRAND = import.meta.env.VITE_BRAND_NAME || 'Bästa barbern' -const LOGO = import.meta.env.VITE_LOGO_URL || '/logo.png' // public - -function startOfMonth(d){ return new Date(d.getFullYear(), d.getMonth(), 1) } -function endOfMonth(d){ return new Date(d.getFullYear(), d.getMonth()+1, 0) } -function fmtISO(d){ const y=d.getFullYear(), m=String(d.getMonth()+1).padStart(2,'0'), da=String(d.getDate()).padStart(2,'0'); return `${y}-${m}-${da}` } - -function MonthGrid({ monthDate, selectedDate, onPick }) { - const first = startOfMonth(monthDate) - const last = endOfMonth(monthDate) - const startIdx = (first.getDay()+6)%7 - const days = [] - for (let i=0;i<startIdx;i++) days.push(null) - for (let d=1; d<=last.getDate(); d++) days.push(new Date(monthDate.getFullYear(), monthDate.getMonth(), d)) - - const labels = ['Må','Ti','On','To','Fr','Lö','Sö'] +import React, { useEffect, useMemo, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import Calendar from "react-calendar"; +import "react-calendar/dist/Calendar.css"; +import dayjs from "dayjs"; +import "dayjs/locale/en"; +import { useBooking } from "../store/booking"; +import { api } from "../store/lib"; + +dayjs.locale("en"); + +const ALL_TIMES = [ + "10:00","10:30","11:00","11:30", + "12:00","12:30","13:00","13:30", + "14:00","14:30","15:00","15:30", + "16:00","16:30","17:00","17:30", + "18:00","18:30" +]; + +export default function SelectTime() { + const navigate = useNavigate(); + const { setSelectedBooking: setBooking } = useBooking(); + + + const [selectedDate, setSelectedDate] = useState(new Date()); + const [selectedTime, setSelectedTime] = useState(""); + const [availableTimes, setAvailableTimes] = useState([]); + const [loadingSlots, setLoadingSlots] = useState(false); + const [error, setError] = useState(""); + + const tz = useMemo( + () => Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC", + [] + ); + + const dateString = useMemo( + () => dayjs(selectedDate).format("YYYY-MM-DD"), + [selectedDate] + ); + + // Disable past days + const isDateDisabled = ({ date }) => { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const d = new Date(date); + d.setHours(0, 0, 0, 0); + return d < today; + }; + + // Fetch available slots from backend when date changes + useEffect(() => { + let ignore = false; + async function loadSlots() { + setLoadingSlots(true); + setError(""); + setSelectedTime(""); + try { + const res = await api(`/api/slots?date=${dateString}`); + if (!ignore) { + // res.available = times that are free + setAvailableTimes(res?.available || []); + } + } catch (e) { + if (!ignore) { + setAvailableTimes([]); + setError(e.message || "Failed to load available times."); + } + } finally { + if (!ignore) setLoadingSlots(false); + } + } + loadSlots(); + return () => { ignore = true; }; + }, [dateString]); + + const onSubmit = (e) => { + e.preventDefault(); + if (!selectedTime) return; + setBooking({ date: dateString, time: selectedTime }); + navigate("/details", { state: { date: dateString, time: selectedTime } }); + }; return ( - <div className="grid grid-cols-7 gap-1.5 sm:gap-2 text-center"> - {labels.map(lbl => <div key={lbl} className="text-[11px] sm:text-xs text-gray-600 dark:text-slate-400">{lbl}</div>)} - {days.map((d,idx)=>{ - if(!d) return <div key={idx}/> - const iso = fmtISO(d) - const selected = selectedDate && fmtISO(selectedDate)===iso - const past = d < new Date(new Date().toDateString()) - return ( - <button - key={iso} - disabled={past} - onClick={()=>onPick(d)} - className={[ - "aspect-square rounded-lg border text-sm sm:text-base", - "border-gray-200 dark:border-slate-700", - past - ? "bg-gray-100 dark:bg-slate-900 text-gray-400 cursor-not-allowed" - : selected - ? "bg-blue-600 text-white" - : "bg-white dark:bg-slate-800 hover:bg-blue-50 dark:hover:bg-slate-700" - ].join(" ")} - aria-label={iso} - > - {d.getDate()} - </button> - ) - })} - </div> - ) -} - -export default function SelectTime(){ - const navigate = useNavigate() - const [month, setMonth] = useState(()=>{ const n=new Date(); n.setHours(0,0,0,0); return n }) - const [pickedDate, setPickedDate] = useState(()=>{ const n=new Date(); n.setHours(0,0,0,0); return n }) - const [slots, setSlots] = useState([]) - const [booked, setBooked] = useState(new Set()) - const [loading, setLoading] = useState(false) - const [error, setError] = useState('') - - useEffect(()=>{ - const iso = fmtISO(pickedDate) - setLoading(true); setError('') - api(`/api/slots?date=${iso}`) - .then(d => { setSlots(d.available); setBooked(new Set(d.booked)) }) - .catch(e => setError(e.message)) - .finally(()=>setLoading(false)) - }, [pickedDate]) - - function toPrev(){ const m=new Date(month); m.setMonth(m.getMonth()-1); setMonth(m) } - function toNext(){ const m=new Date(month); m.setMonth(m.getMonth()+1); setMonth(m) } - function proceed(time){ navigate('/details', { state: { date: fmtISO(pickedDate), time } }) } - - const monthName = month.toLocaleDateString('sv-SE',{month:'long'}) - const yearStr = month.getFullYear() - const headerLabel = useMemo( - ()=> pickedDate.toLocaleDateString('sv-SE',{ weekday:'long', year:'numeric', month:'long', day:'numeric' }), - [pickedDate] - ) + <section className="max-w-6xl mx-auto px-4 py-10"> + {/* two-column cards like image #1 */} + <form + onSubmit={onSubmit} + className="grid grid-cols-1 md:grid-cols-2 gap-8 items-start" + > + {/* Left card — brand + selected info */} + <div className="card"> + <div className="flex items-center gap-3 mb-4"> + <img + src="/logo.png" + alt="Best Barber logo" + className="h-12 w-12 rounded-full" + /> + <div> + <div className="text-xs uppercase tracking-wider text-gray-500 dark:text-slate-400"> + BEST + </div> + <h2 className="text-xl font-semibold">Best Barber</h2> + </div> + </div> - return ( - <section className="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-8"> - <aside className="card space-y-4"> - <div className="flex items-center gap-3"> - <img - src={LOGO} - alt={`${BRAND} logo`} - className="w-14 h-14 sm:w-16 sm:h-16 object-contain rounded-lg" - onError={(e)=>{ e.currentTarget.style.display='none' }} - /> - <div> - <div className="text-xs sm:text-sm text-gray-500">BÄSTA</div> - <h2 className="text-lg sm:text-xl font-semibold">{BRAND}</h2> + <div className="space-y-2"> + <h3 className="font-semibold">Selected day</h3> + <p className="text-sm"> + {dayjs(selectedDate).format("dddd D MMMM YYYY")} + </p> + <p className="muted text-sm"> + First choose a date and time. You’ll select the service on the next + page. + </p> + {selectedTime && ( + <p className="text-sm"> + <span className="font-medium">Time:</span> {selectedTime} + </p> + )} </div> </div> - <div className="text-sm"> - <div className="font-medium mb-1 sm:mb-2">Vald dag</div> - <div className="capitalize">{headerLabel}</div> - <p className="mt-2 muted"> - Välj först datum och tid. Du väljer tjänst på nästa sida. - </p> - </div> - </aside> - - <div className="card"> - <div className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 sm:gap-3 mb-3 sm:mb-4"> - <div className="flex items-center justify-between sm:justify-start gap-2"> - <button onClick={toPrev} - className="w-8 h-8 flex items-center justify-center rounded-lg - border border-gray-200 dark:border-slate-700 - bg-white dark:bg-slate-800">‹</button> - - <div className="leading-tight"> - <div className="font-semibold text-base sm:text-lg capitalize">{monthName}</div> - <div className="text-xs sm:text-sm text-gray-600 dark:text-slate-400">{yearStr}</div> + {/* Right card — calendar + timezone + times */} + <div className="card"> + {/* Header row (month header is inside Calendar; we add tz to the right) */} + <div className="flex items-center justify-between mb-3"> + <div className="text-base font-semibold"> + {dayjs(selectedDate).format("MMMM")}{" "} + <span className="text-gray-500 dark:text-slate-400"> + {dayjs(selectedDate).format("YYYY")} + </span> + </div> + <div className="text-sm text-gray-500 dark:text-slate-400"> + Time zone: <span className="font-medium">{tz}</span> </div> - - <button onClick={toNext} - className="w-8 h-8 flex items-center justify-center rounded-lg - border border-gray-200 dark:border-slate-700 - bg-white dark:bg-slate-800">›</button> </div> - <div className="text-xs sm:text-sm muted"> - Tidszon: <span className="font-medium">{Intl.DateTimeFormat().resolvedOptions().timeZone}</span> - </div> - </div> + <Calendar + onChange={setSelectedDate} + value={selectedDate} + tileDisabled={isDateDisabled} + locale="en" + className="mb-4" + /> - <MonthGrid monthDate={month} selectedDate={pickedDate} onPick={setPickedDate} /> - - <h3 className="mt-4 sm:mt-6 mb-2 font-medium">Lediga tider</h3> - {loading ? <p>Laddar…</p> : error ? <p className="text-red-500">{error}</p> : ( - <div className="grid grid-cols-2 xs:grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2"> - {slots.length === 0 && <p className="text-sm muted col-span-full">Inga tider denna dag.</p>} - {slots.map(t => { - const unavailable = booked.has(t) - return ( - <button - key={t} - disabled={unavailable} - onClick={()=>proceed(t)} - className={[ - "py-2 rounded-lg border text-sm sm:text-base", - "border-gray-200 dark:border-slate-700", - unavailable - ? "bg-gray-100 dark:bg-slate-900 text-gray-400 cursor-not-allowed" - : "bg-white dark:bg-slate-800 hover:bg-blue-50 dark:hover:bg-slate-700" - ].join(" ")} - > - {t} - </button> - ) - })} + <div className="mt-2"> + <h4 className="font-semibold mb-2">Available times</h4> + + {loadingSlots && ( + <p className="text-sm text-gray-500 dark:text-slate-400">Loading…</p> + )} + {error && ( + <p className="text-sm text-red-500 mb-2">{error}</p> + )} + + {!loadingSlots && ( + <div className="grid grid-cols-2 sm:grid-cols-4 gap-3"> + {ALL_TIMES.map((time) => { + const isAvailable = availableTimes.includes(time); + const isSelected = selectedTime === time; + return ( + <button + key={time} + type="button" + onClick={() => isAvailable && setSelectedTime(time)} + disabled={!isAvailable} + className={[ + "rounded-lg border px-4 py-2 text-sm font-medium transition", + "disabled:opacity-40 disabled:cursor-not-allowed", + isSelected + ? "bg-blue-600 text-white border-transparent" + : "bg-white dark:bg-slate-800 border-gray-300 dark:border-slate-600 hover:bg-blue-50 dark:hover:bg-slate-700" + ].join(" ")} + > + {time} + </button> + ); + })} + </div> + )} </div> - )} - </div> + + <button + type="submit" + className={[ + "btn w-full mt-6", + !selectedTime ? "opacity-60 cursor-not-allowed" : "" + ].join(" ")} + disabled={!selectedTime} + > + Next + </button> + </div> + </form> </section> - ) + ); } diff --git a/client/src/seo.js b/client/src/seo.js deleted file mode 100644 index 2a735049b5..0000000000 --- a/client/src/seo.js +++ /dev/null @@ -1,43 +0,0 @@ -// client/src/seo.js -export function setSEO({ - title, - description, - canonical, - robots, // "index,follow" | "noindex,nofollow" - jsonLd, // valfri strukturdata (objekt) -} = {}) { - if (title) document.title = title; - - upsertMeta('description', description ?? ''); - if (robots) upsertMeta('robots', robots); - - if (canonical) { - let link = document.querySelector('link[rel="canonical"]'); - if (!link) { - link = document.createElement('link'); - link.setAttribute('rel', 'canonical'); - document.head.appendChild(link); - } - link.setAttribute('href', canonical); - } - - // rensa tidigare JSON-LD script vi satt - document.querySelectorAll('script[data-seo-jsonld]').forEach(n => n.remove()); - if (jsonLd) { - const s = document.createElement('script'); - s.type = 'application/ld+json'; - s.dataset.seoJsonld = '1'; - s.text = JSON.stringify(jsonLd); - document.head.appendChild(s); - } -} - -function upsertMeta(name, content) { - let el = document.querySelector(`meta[name="${name}"]`); - if (!el) { - el = document.createElement('meta'); - el.setAttribute('name', name); - document.head.appendChild(el); - } - el.setAttribute('content', content); -} diff --git a/client/src/store/auth.jsx b/client/src/store/auth.jsx new file mode 100644 index 0000000000..1236846974 --- /dev/null +++ b/client/src/store/auth.jsx @@ -0,0 +1,28 @@ +// src/store/auth.js +import React, { createContext, useContext, useState } from "react"; + +const AuthContext = createContext(); + +export function AuthProvider({ children }) { + const [token, setToken] = useState(localStorage.getItem("token") || null); + + const login = (newToken) => { + localStorage.setItem("token", newToken); + setToken(newToken); + }; + + const logout = () => { + localStorage.removeItem("token"); + setToken(null); + }; + + return ( + <AuthContext.Provider value={{ token, login, logout }}> + {children} + </AuthContext.Provider> + ); +} + +export function useAuth() { + return useContext(AuthContext); +} diff --git a/client/src/store/booking.jsx b/client/src/store/booking.jsx new file mode 100644 index 0000000000..d2268ba678 --- /dev/null +++ b/client/src/store/booking.jsx @@ -0,0 +1,15 @@ +import React, { createContext, useContext, useState } from "react"; + +const BookingContext = createContext(); + +export const BookingProvider = ({ children }) => { + const [booking, setBooking] = useState(null); + + return ( + <BookingContext.Provider value={{ booking, setBooking }}> + {children} + </BookingContext.Provider> + ); +}; + +export const useBooking = () => useContext(BookingContext); diff --git a/client/src/store/lib.js b/client/src/store/lib.js new file mode 100644 index 0000000000..a41a1bce21 --- /dev/null +++ b/client/src/store/lib.js @@ -0,0 +1,34 @@ +export const API_BASE = + import.meta.env.VITE_API_BASE_URL || "http://localhost:5000"; + +export async function api(path, { method = "GET", body, token } = {}) { + const headers = { "Content-Type": "application/json" }; + if (token) headers.Authorization = `Bearer ${token}`; + + const res = await fetch(`${API_BASE}${path}`, { + method, + headers, + body: body ? JSON.stringify(body) : undefined, + credentials: "include", + }); + + const raw = await res.text(); + let data; + try { + data = raw ? JSON.parse(raw) : null; + } catch { + data = raw; + } + + if (!res.ok) { + const msg = + (data && data.message) || + (typeof data === "string" && data) || + `HTTP ${res.status}`; + const err = new Error(msg); + err.status = res.status; + throw err; + } + + return data; +} diff --git a/client/vite.config.js b/client/vite.config.js index 9ffcc67574..d246843e36 100644 --- a/client/vite.config.js +++ b/client/vite.config.js @@ -1,6 +1,11 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], -}) + server: { + proxy: { + '/api': 'http://localhost:5000', + }, + }, +}); diff --git a/server/index.js b/server/index.js index 9e3cc314c0..0cfe4cd141 100644 --- a/server/index.js +++ b/server/index.js @@ -20,9 +20,9 @@ const CLIENT_URL = process.env.CLIENT_URL || "http://localhost:5173"; app.use(helmet()); app.use( cors({ - origin: [CLIENT_URL, "http://localhost:5173", "http://localhost:5000"], - credentials: true, - }) + origin: [CLIENT_URL, "http://localhost:5173", "http://localhost:5000"], + credentials: true, +}), ); app.use(express.json({ limit: "10kb" })); app.use(rateLimit({ windowMs: 15 * 60 * 1000, max: 300 })); @@ -168,6 +168,8 @@ app.get("/api/health", (_req, res) => res.json({ ok: true })); // Fixad login: trim + lowercase jämförelse + bättre fel app.post("/api/auth/login", (req, res) => { + console.log("Login attempt:", req.body); // ✅ rätt sätt att logga body + const email = String(req.body?.email || "").trim().toLowerCase(); const password = String(req.body?.password || "").trim(); @@ -186,6 +188,7 @@ app.post("/api/auth/login", (req, res) => { ); return res.json({ token }); } + return res.status(401).json({ message: "Fel e-post eller lösenord." }); }); diff --git a/server/package-lock.json b/server/package-lock.json deleted file mode 100644 index 9ff01165db..0000000000 --- a/server/package-lock.json +++ /dev/null @@ -1,1406 +0,0 @@ -{ - "name": "booking-server", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "booking-server", - "version": "1.0.0", - "dependencies": { - "compression": "^1.7.4", - "cors": "^2.8.5", - "dotenv": "^16.4.5", - "express": "^4.19.2", - "express-rate-limit": "^7.1.5", - "helmet": "^7.1.0", - "jsonwebtoken": "^9.0.2", - "mongoose": "^8.5.1", - "nodemailer": "^6.9.13" - }, - "devDependencies": { - "cross-env": "^10.0.0" - } - }, - "node_modules/@epic-web/invariant": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", - "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mongodb-js/saslprep": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.0.tgz", - "integrity": "sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==", - "license": "MIT", - "dependencies": { - "sparse-bitfield": "^3.0.3" - } - }, - "node_modules/@types/webidl-conversions": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" - }, - "node_modules/@types/whatwg-url": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", - "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", - "dependencies": { - "@types/webidl-conversions": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/bson": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", - "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.20.1" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "license": "BSD-3-Clause" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.1.0", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-env": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.0.0.tgz", - "integrity": "sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@epic-web/invariant": "^1.0.0", - "cross-spawn": "^7.0.6" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dotenv": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", - "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express-rate-limit": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", - "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": ">= 4.11" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/helmet": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-7.2.0.tgz", - "integrity": "sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==", - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/jwa": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", - "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kareem": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", - "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "license": "MIT" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mongodb": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.18.0.tgz", - "integrity": "sha512-fO5ttN9VC8P0F5fqtQmclAkgXZxbIkYRTUi1j8JO6IYwvamkhtYDilJr35jOPELR49zqCJgXZWwCtW7B+TM8vQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/saslprep": "^1.1.9", - "bson": "^6.10.4", - "mongodb-connection-string-url": "^3.0.0" - }, - "engines": { - "node": ">=16.20.1" - }, - "peerDependencies": { - "@aws-sdk/credential-providers": "^3.188.0", - "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", - "gcp-metadata": "^5.2.0", - "kerberos": "^2.0.1", - "mongodb-client-encryption": ">=6.0.0 <7", - "snappy": "^7.2.2", - "socks": "^2.7.1" - }, - "peerDependenciesMeta": { - "@aws-sdk/credential-providers": { - "optional": true - }, - "@mongodb-js/zstd": { - "optional": true - }, - "gcp-metadata": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "snappy": { - "optional": true - }, - "socks": { - "optional": true - } - } - }, - "node_modules/mongodb-connection-string-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", - "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", - "license": "Apache-2.0", - "dependencies": { - "@types/whatwg-url": "^11.0.2", - "whatwg-url": "^14.1.0 || ^13.0.0" - } - }, - "node_modules/mongoose": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.18.0.tgz", - "integrity": "sha512-3TixPihQKBdyaYDeJqRjzgb86KbilEH07JmzV8SoSjgoskNTpa6oTBmDxeoF9p8YnWQoz7shnCyPkSV/48y3yw==", - "license": "MIT", - "dependencies": { - "bson": "^6.10.4", - "kareem": "2.6.3", - "mongodb": "~6.18.0", - "mpath": "0.9.0", - "mquery": "5.0.0", - "ms": "2.1.3", - "sift": "17.1.3" - }, - "engines": { - "node": ">=16.20.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mpath": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", - "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", - "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", - "license": "MIT", - "dependencies": { - "debug": "4.x" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/mquery/node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mquery/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nodemailer": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz", - "integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==", - "license": "MIT-0", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", - "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sift": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", - "license": "MIT", - "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - } - } -} diff --git a/server/package.json b/server/package.json index 2f8d02343e..6a93eb7873 100644 --- a/server/package.json +++ b/server/package.json @@ -16,5 +16,8 @@ "jsonwebtoken": "^9.0.2", "mongoose": "^8.5.1", "nodemailer": "^6.9.13" + }, + "engines": { + "node": ">=18.0.0" } } From 5e224c493e1fde9875ca0a48b426df195ff1f0a6 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:06:50 +0200 Subject: [PATCH 09/20] Fix: added trust proxy for Render --- server/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/index.js b/server/index.js index 0cfe4cd141..7052128702 100644 --- a/server/index.js +++ b/server/index.js @@ -13,9 +13,12 @@ dotenv.config(); // ---- App setup ---- const app = express(); +app.set("trust proxy", 1); // ✅ Fix for Render proxy warning + const PORT = process.env.PORT || 5000; const CLIENT_URL = process.env.CLIENT_URL || "http://localhost:5173"; + // Bas-middleware app.use(helmet()); app.use( From 388960bd07eaa469db58d96537a3f70b379a21d7 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:09:16 +0200 Subject: [PATCH 10/20] Cleaned middleware duplicates and finalized trust proxy fix --- server/index.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/server/index.js b/server/index.js index 7052128702..51c62053ce 100644 --- a/server/index.js +++ b/server/index.js @@ -13,11 +13,32 @@ dotenv.config(); // ---- App setup ---- const app = express(); -app.set("trust proxy", 1); // ✅ Fix for Render proxy warning +app.set("trust proxy", true); // ✅ final fix for Render proxy warning const PORT = process.env.PORT || 5000; const CLIENT_URL = process.env.CLIENT_URL || "http://localhost:5173"; +// ---- Bas-middleware ---- +app.use(helmet()); +app.use( + cors({ + origin: [CLIENT_URL, "http://localhost:5173", "http://localhost:5000"], + credentials: true, + }) +); +app.use(express.json({ limit: "10kb" })); + +// ---- Rate limiting ---- +app.use( + rateLimit({ + windowMs: 15 * 60 * 1000, // 15 min + max: 300, + standardHeaders: true, + legacyHeaders: false, + }) +); + + // Bas-middleware app.use(helmet()); From f61d97071c997eb1fa0a428b15cee70a3ecd3f07 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:13:43 +0200 Subject: [PATCH 11/20] Add Node engine and finalize server config for Render --- README.txt | 118 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 75 insertions(+), 43 deletions(-) diff --git a/README.txt b/README.txt index 250ccabb31..1ae8b56fa6 100644 --- a/README.txt +++ b/README.txt @@ -1,40 +1,55 @@ -# Barber Booking – Final Project +# 💈 Barber Booking – Final Project -A full-stack barber appointment app with real-time slot availability, email confirmations (ICS calendar invite), and a protected admin dashboard. +A modern full-stack barber appointment app with real-time slot availability, email confirmations (ICS calendar invite), and a protected admin dashboard. +Built with a focus on clean code, accessibility, and responsive design. -**Live site:** https://barber-rico.netlify.app -**API (Render):** https://project-final-it0v.onrender.com +**Live site:** [https://barber-rico.netlify.app](https://barber-rico.netlify.app) +**API (Render):** [https://project-final-it0v.onrender.com](https://project-final-it0v.onrender.com) + +--- + +## 🆕 Project Update (Refactor Summary) + +This version includes a full refactor and code cleanup based on feedback: + +- Converted all components to **functional React** with hooks +- Simplified and reorganized file structure for readability +- Improved responsive design and dark/light theme consistency +- Ensured `.env` and `node_modules` are properly ignored in Git +- Verified all Technigo requirements are met --- ## ✨ Features -- Fast client (Vite + React + Tailwind) -- Dark/Light theme toggle (persistent) -- Calendar with available time slots (30-min steps) -- Booking flow with confirmation screen -- Email confirmation with .ics calendar attachment -- Admin dashboard (JWT protected): list, toggle status, delete bookings -- Basic rate limiting, Helmet, and CORS -- SEO & PWA essentials (favicons, manifest, social meta) + +- Fast frontend (Vite + React + Tailwind) +- Dark/Light theme toggle (saved in localStorage) +- Calendar with selectable time slots (30-min increments) +- Smooth booking flow with confirmation screen +- Email confirmation + downloadable `.ics` calendar invite +- Admin dashboard (JWT-protected): list, mark as done, delete bookings +- Security middleware: rate limiting, Helmet, CORS +- SEO & PWA optimized (favicons, manifest, Open Graph tags) --- ## 🧱 Tech Stack **Frontend** -- React, React Router +- React (functional components) +- React Router - Tailwind CSS -- Vite +- Vite **Backend** -- Node.js, Express +- Node.js + Express - MongoDB (Mongoose) -- Nodemailer (Mailtrap in dev) -- JWT auth +- Nodemailer (Mailtrap for dev) +- JWT authentication **Hosting** -- Frontend: Netlify -- Backend: Render +- Frontend → **Netlify** +- Backend → **Render** --- @@ -43,16 +58,17 @@ A full-stack barber appointment app with real-time slot availability, email conf ```bash project-final/ ├─ client/ # React app (Vite) -│ ├─ public/ # favicons, manifest, apple-touch-icon, logo.png +│ ├─ public/ # Favicon, manifest, logo, SEO assets │ ├─ src/ -│ │ ├─ components/ # Header, ThemeToggle, ProtectedRoute, ... -│ │ ├─ pages/ # SelectTime, DetailsPage, ConfirmPage, Admin* -│ │ ├─ brand.js, lib.js, main.jsx, App.jsx, index.css, ... +│ │ ├─ components/ # Header, ThemeToggle, ProtectedRoute, etc. +│ │ ├─ pages/ # SelectTime, DetailsPage, ConfirmPage, Admin +│ │ ├─ store/ # Contexts (Auth, Booking) +│ │ ├─ App.jsx, main.jsx, index.css, ... │ └─ index.html └─ server/ # Express API - ├─ index.js # API routes, mail, DB + ├─ index.js # Routes, email, DB connection ├─ package.json - └─ .env # 🔒 private environment variables (not in git) + └─ .env # 🔒 private config (not committed) ``` **Booking schema:** @@ -64,34 +80,50 @@ bookingSchema.index({ date: 1, time: 1 }, { unique: true }); --- ## 🔒 Security -- Admin JWT stored in **sessionStorage** (clears when closing the tab) -- `helmet`, `cors` (restrict origin), `rate-limit` -- Unique DB index on date+time to stop double-booking -- **Never commit `.env`** — include a `.env.example` with placeholders instead + +- Admin JWT stored in **sessionStorage** (auto-clears when tab closes) +- Uses `helmet`, `cors`, and rate limiting +- MongoDB unique index on date+time +- `.env` is excluded from Git (with `.env.example` provided) --- ## 🌐 SEO & UX -- Proper `<title>`, meta description, Open Graph, `site.webmanifest` -- `apple-touch-icon.png` (180×180) in `client/public/` -- Keep brand images in `public/` (e.g. `/logo.png`) -- Good contrast in dark mode; semantic HTML + +- Semantic, accessible structure (WCAG friendly) +- `<title>` + meta descriptions and Open Graph tags +- Light/dark contrast verified +- Responsive across all breakpoints (320px → 1920px) +- Smooth transitions and animations for better UX --- ## 🛠 Troubleshooting -- **Admin login returns blank / no redirect** - Ensure `JWT_SECRET` is set in `server/.env`; restart the server; check `/api/auth/login` in DevTools → Network. +- **Admin login not working** + - Ensure `JWT_SECRET` exists in `.env` and restart server. -- **CORS errors** - `CLIENT_URL` must match the client origin (e.g. `http://localhost:5173`). +- **CORS error** + - Check that `CLIENT_URL` in `.env` matches your frontend URL. -- **MongoDB “EBADNAME / <cluster>”** - Replace placeholder `<cluster>` with the real cluster host in `MONGODB_URI`. +- **Email not received** + - Use Mailtrap sandbox credentials in dev; check spam folder. + +- **Duplicate booking** + - MongoDB unique index on date+time prevents double-booking (returns 409). + +--- + +## ✅ Status + +✔ Functional React Components +✔ Responsive and accessible UI +✔ Code cleaned and organized after feedback +✔ Meets all Technigo project requirements + +--- -- **Emails not arriving** - Use Mailtrap **Sandbox** in dev; for production use `live.smtp.mailtrap.io:587` with `SMTP_USER=api` and your `SMTP_PASS` (API token). Avoid free Gmail “from” without SPF/DKIM. +## 🧩 Author -- **409 “Time already booked”** - Someone took that slot. Choose another. \ No newline at end of file +Built by **DevByRico** 🎨💻 +_Refactored & improved based on Technigo feedback 2025._ \ No newline at end of file From b9071041e6f592d6ccd43f5922de1f075283c616 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:19:50 +0200 Subject: [PATCH 12/20] Fix: set trust proxy to 1 for safe rate limit handling on Render --- server/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/index.js b/server/index.js index 51c62053ce..6cbd728c76 100644 --- a/server/index.js +++ b/server/index.js @@ -13,7 +13,7 @@ dotenv.config(); // ---- App setup ---- const app = express(); -app.set("trust proxy", true); // ✅ final fix for Render proxy warning +app.set("trust proxy", 1); // ✅ final fix for Render proxy warning const PORT = process.env.PORT || 5000; const CLIENT_URL = process.env.CLIENT_URL || "http://localhost:5173"; From 257eac30bb2d4e03d33be24b1d6e43a85184db46 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:37:40 +0200 Subject: [PATCH 13/20] Fix: updated API base env variable to match Netlify config --- client/src/store/lib.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/store/lib.js b/client/src/store/lib.js index a41a1bce21..2e8378e403 100644 --- a/client/src/store/lib.js +++ b/client/src/store/lib.js @@ -1,5 +1,5 @@ export const API_BASE = - import.meta.env.VITE_API_BASE_URL || "http://localhost:5000"; + import.meta.env.VITE_API_URL || "http://localhost:5000"; export async function api(path, { method = "GET", body, token } = {}) { const headers = { "Content-Type": "application/json" }; From 29e8e756030b4848749d6611604fa506d7807e63 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:46:09 +0200 Subject: [PATCH 14/20] Fix: remove duplicate providers and restore navigation --- client/src/App.jsx | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/client/src/App.jsx b/client/src/App.jsx index 72a747c4f7..53bed030a4 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -7,33 +7,27 @@ import DetailsPage from "./pages/DetailsPage"; import Confirmation from "./pages/ConfirmationPage"; import AdminDashboard from "./pages/AdminDashboard"; import LoginPage from "./pages/LoginPage"; -import { BookingProvider } from "./store/booking"; -import { AuthProvider } from "./store/auth"; import ProtectedRoute from "./components/ProtectedRoute"; export default function App() { return ( <BrowserRouter> - <AuthProvider> - <BookingProvider> - <Header /> - <Routes> - <Route path="/" element={<SelectTime />} /> - <Route path="/details" element={<DetailsPage />} /> - <Route path="/confirmation" element={<Confirmation />} /> - <Route path="/login" element={<LoginPage />} /> - <Route - path="/admin" - element={ - <ProtectedRoute> - <AdminDashboard /> - </ProtectedRoute> - } - /> - <Route path="*" element={<p className="p-4">Not found.</p>} /> - </Routes> - </BookingProvider> - </AuthProvider> + <Header /> + <Routes> + <Route path="/" element={<SelectTime />} /> + <Route path="/details" element={<DetailsPage />} /> + <Route path="/confirmation" element={<Confirmation />} /> + <Route path="/login" element={<LoginPage />} /> + <Route + path="/admin" + element={ + <ProtectedRoute> + <AdminDashboard /> + </ProtectedRoute> + } + /> + <Route path="*" element={<p className="p-4">Not found.</p>} /> + </Routes> </BrowserRouter> ); } From 17d776599a43e0e00a871008316a62fe323ec4f5 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:51:14 +0200 Subject: [PATCH 15/20] Fix: router context error and update react-router-dom --- client/src/App.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/App.jsx b/client/src/App.jsx index 53bed030a4..fc72774821 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,4 +1,3 @@ -// client/src/App.jsx import React from "react"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import Header from "./components/Header"; @@ -11,7 +10,10 @@ import ProtectedRoute from "./components/ProtectedRoute"; export default function App() { return ( - <BrowserRouter> + <BrowserRouter + basename="/" + future={{ v7_startTransition: true, v7_relativeSplatPath: true }} + > <Header /> <Routes> <Route path="/" element={<SelectTime />} /> From 68864a714253fb6283f9f003ac1bfcb6bfe1914c Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:55:17 +0200 Subject: [PATCH 16/20] Fix: update react-router and react version to resolve navigation bug --- client/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/package.json b/client/package.json index cb160a74e1..d1b1e7d8de 100644 --- a/client/package.json +++ b/client/package.json @@ -12,10 +12,10 @@ "dayjs": "^1.11.18", "framer-motion": "^11.0.8", "lucide-react": "^0.546.0", - "react": "^18.2.0", + "react": "^19.2.0", "react-calendar": "^6.0.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.23.1" + "react-dom": "^19.2.0", + "react-router-dom": "^7.9.4" }, "devDependencies": { "@vitejs/plugin-react": "^4.2.1", From 8069d8ba19e0f0a0582e5a649dfd8657f6ace412 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 21:58:24 +0200 Subject: [PATCH 17/20] Fix router navigation crash (t is not a function) --- package.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000000..433d25c43f --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.28.0" + } +} From 52e59e9564509934251847c481dfdd4df0ac1d80 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 22:03:19 +0200 Subject: [PATCH 18/20] Fix: remove double BrowserRouter to fix navigation --- client/src/main.jsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/client/src/main.jsx b/client/src/main.jsx index 075a11a8ad..f18b0f0d14 100644 --- a/client/src/main.jsx +++ b/client/src/main.jsx @@ -3,16 +3,8 @@ import ReactDOM from "react-dom/client"; import App from "./App"; import "./index.css"; -// dina providers -import { AuthProvider } from "./store/auth"; -import { BookingProvider } from "./store/booking"; - ReactDOM.createRoot(document.getElementById("root")).render( <React.StrictMode> - <AuthProvider> - <BookingProvider> - <App /> - </BookingProvider> - </AuthProvider> + <App /> </React.StrictMode> ); From 593371b93d7d8667da7e11b427a7594687f3fdbe Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 22:06:06 +0200 Subject: [PATCH 19/20] Fix: restore providers but keep single BrowserRouter --- client/src/main.jsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/src/main.jsx b/client/src/main.jsx index f18b0f0d14..e89f37c4e2 100644 --- a/client/src/main.jsx +++ b/client/src/main.jsx @@ -2,9 +2,15 @@ import React from "react"; import ReactDOM from "react-dom/client"; import App from "./App"; import "./index.css"; +import { AuthProvider } from "./store/auth"; +import { BookingProvider } from "./store/booking"; ReactDOM.createRoot(document.getElementById("root")).render( <React.StrictMode> - <App /> + <AuthProvider> + <BookingProvider> + <App /> + </BookingProvider> + </AuthProvider> </React.StrictMode> ); From be2e793805a17a4bb6e6b80b93cbf2ccccd87612 Mon Sep 17 00:00:00 2001 From: RicardoNicolau <ricardonicolau2001@gmail.com> Date: Sat, 18 Oct 2025 22:27:16 +0200 Subject: [PATCH 20/20] Fix booking navigation and add modern styled DetailsPage with 'Other' option --- client/package.json | 6 +-- client/src/pages/DetailsPage.jsx | 63 ++++++++++++++++++++++---------- client/src/pages/SelectTime.jsx | 54 +++++++++------------------ client/src/store/booking.jsx | 12 +++--- 4 files changed, 72 insertions(+), 63 deletions(-) diff --git a/client/package.json b/client/package.json index d1b1e7d8de..31acd7f942 100644 --- a/client/package.json +++ b/client/package.json @@ -12,10 +12,10 @@ "dayjs": "^1.11.18", "framer-motion": "^11.0.8", "lucide-react": "^0.546.0", - "react": "^19.2.0", + "react": "^18.3.1", "react-calendar": "^6.0.0", - "react-dom": "^19.2.0", - "react-router-dom": "^7.9.4" + "react-dom": "^18.3.1", + "react-router-dom": "^6.28.0" }, "devDependencies": { "@vitejs/plugin-react": "^4.2.1", diff --git a/client/src/pages/DetailsPage.jsx b/client/src/pages/DetailsPage.jsx index 2515dee84b..de6e6d03a9 100644 --- a/client/src/pages/DetailsPage.jsx +++ b/client/src/pages/DetailsPage.jsx @@ -5,18 +5,19 @@ import { api } from "../store/lib"; export default function DetailsPage() { const navigate = useNavigate(); const location = useLocation(); - const selected = location.state; // date, time, service + const selected = location.state; const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [phone, setPhone] = useState(""); const [service, setService] = useState(selected?.service || "Fade"); + const [otherService, setOtherService] = useState(""); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); if (!selected?.date || !selected?.time) { return ( - <div className="text-center mt-10"> + <div className="text-center mt-10 text-gray-300"> <p>Please select a date and time first.</p> </div> ); @@ -28,6 +29,11 @@ export default function DetailsPage() { setLoading(true); try { + const chosenService = + service === "Other" && otherService.trim() !== "" + ? otherService + : service; + await api("/api/bookings", { method: "POST", body: { @@ -36,11 +42,13 @@ export default function DetailsPage() { phone, date: selected.date, time: selected.time, - service, + service: chosenService, }, }); - navigate("/confirmation", { state: { name, date: selected.date, time: selected.time, service } }); + navigate("/confirmation", { + state: { name, date: selected.date, time: selected.time, service: chosenService }, + }); } catch (err) { console.error(err); setError(err.message || "Something went wrong. Please try again."); @@ -51,68 +59,85 @@ export default function DetailsPage() { return ( <div className="flex justify-center items-center min-h-[80vh] px-4"> - <div className="card w-full max-w-md"> - <h1 className="text-2xl font-bold mb-4 text-center">Booking Details</h1> - <p className="muted text-center mb-6"> + <div className="bg-slate-800/70 dark:bg-slate-800 rounded-2xl shadow-xl p-8 w-full max-w-md border border-slate-700"> + <h1 className="text-2xl font-bold mb-4 text-center text-white">Booking Details</h1> + <p className="text-center text-gray-300 mb-6 text-sm"> You’re booking <strong>{service}</strong> on{" "} <strong>{selected.date}</strong> at <strong>{selected.time}</strong>. </p> - <form onSubmit={handleSubmit} className="space-y-4"> + <form onSubmit={handleSubmit} className="space-y-5"> <div> - <label className="block mb-1 font-medium">Full Name</label> + <label className="block mb-1 font-medium text-gray-300">Full Name</label> <input type="text" value={name} onChange={(e) => setName(e.target.value)} - className="input" + className="w-full rounded-lg bg-slate-900 text-gray-100 border border-slate-700 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 px-3 py-2 outline-none transition" placeholder="Your full name" required /> </div> <div> - <label className="block mb-1 font-medium">Email</label> + <label className="block mb-1 font-medium text-gray-300">Email</label> <input type="email" value={email} onChange={(e) => setEmail(e.target.value)} - className="input" + className="w-full rounded-lg bg-slate-900 text-gray-100 border border-slate-700 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 px-3 py-2 outline-none transition" placeholder="you@example.com" required /> </div> <div> - <label className="block mb-1 font-medium">Phone Number</label> + <label className="block mb-1 font-medium text-gray-300">Phone Number</label> <input type="tel" value={phone} onChange={(e) => setPhone(e.target.value)} - className="input" + className="w-full rounded-lg bg-slate-900 text-gray-100 border border-slate-700 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 px-3 py-2 outline-none transition" placeholder="+46 70 123 45 67" required /> </div> <div> - <label className="block mb-1 font-medium">Service</label> + <label className="block mb-1 font-medium text-gray-300">Service</label> <select value={service} onChange={(e) => setService(e.target.value)} - className="input" + className="w-full rounded-lg bg-slate-900 text-gray-100 border border-slate-700 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 px-3 py-2 outline-none transition" > <option>Fade</option> <option>Fade + Beard</option> <option>Fade + Color</option> + <option value="Other">Other</option> </select> </div> - {error && ( - <p className="text-center text-red-500 text-sm">{error}</p> + {service === "Other" && ( + <div> + <label className="block mb-1 font-medium text-gray-300">Describe your request</label> + <textarea + value={otherService} + onChange={(e) => setOtherService(e.target.value)} + rows="3" + className="w-full rounded-lg bg-slate-900 text-gray-100 border border-slate-700 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 px-3 py-2 outline-none transition resize-none" + placeholder="Write your custom service or notes here..." + required + /> + </div> )} - <button type="submit" className="btn w-full" disabled={loading}> + {error && <p className="text-center text-red-400 text-sm">{error}</p>} + + <button + type="submit" + className="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-xl py-2.5 transition" + disabled={loading} + > {loading ? "Booking..." : "Confirm Booking"} </button> </form> diff --git a/client/src/pages/SelectTime.jsx b/client/src/pages/SelectTime.jsx index e32759e31c..e992dd0041 100644 --- a/client/src/pages/SelectTime.jsx +++ b/client/src/pages/SelectTime.jsx @@ -10,17 +10,16 @@ import { api } from "../store/lib"; dayjs.locale("en"); const ALL_TIMES = [ - "10:00","10:30","11:00","11:30", - "12:00","12:30","13:00","13:30", - "14:00","14:30","15:00","15:30", - "16:00","16:30","17:00","17:30", - "18:00","18:30" + "10:00", "10:30", "11:00", "11:30", + "12:00", "12:30", "13:00", "13:30", + "14:00", "14:30", "15:00", "15:30", + "16:00", "16:30", "17:00", "17:30", + "18:00", "18:30" ]; export default function SelectTime() { const navigate = useNavigate(); - const { setSelectedBooking: setBooking } = useBooking(); - + const { setSelectedBooking } = useBooking(); const [selectedDate, setSelectedDate] = useState(new Date()); const [selectedTime, setSelectedTime] = useState(""); @@ -47,7 +46,7 @@ export default function SelectTime() { return d < today; }; - // Fetch available slots from backend when date changes + // Fetch available slots useEffect(() => { let ignore = false; async function loadSlots() { @@ -56,10 +55,7 @@ export default function SelectTime() { setSelectedTime(""); try { const res = await api(`/api/slots?date=${dateString}`); - if (!ignore) { - // res.available = times that are free - setAvailableTimes(res?.available || []); - } + if (!ignore) setAvailableTimes(res?.available || []); } catch (e) { if (!ignore) { setAvailableTimes([]); @@ -76,25 +72,20 @@ export default function SelectTime() { const onSubmit = (e) => { e.preventDefault(); if (!selectedTime) return; - setBooking({ date: dateString, time: selectedTime }); + setSelectedBooking({ date: dateString, time: selectedTime }); navigate("/details", { state: { date: dateString, time: selectedTime } }); }; return ( <section className="max-w-6xl mx-auto px-4 py-10"> - {/* two-column cards like image #1 */} <form onSubmit={onSubmit} className="grid grid-cols-1 md:grid-cols-2 gap-8 items-start" > - {/* Left card — brand + selected info */} + {/* Left card */} <div className="card"> <div className="flex items-center gap-3 mb-4"> - <img - src="/logo.png" - alt="Best Barber logo" - className="h-12 w-12 rounded-full" - /> + <img src="/logo.png" alt="Best Barber logo" className="h-12 w-12 rounded-full" /> <div> <div className="text-xs uppercase tracking-wider text-gray-500 dark:text-slate-400"> BEST @@ -105,12 +96,9 @@ export default function SelectTime() { <div className="space-y-2"> <h3 className="font-semibold">Selected day</h3> - <p className="text-sm"> - {dayjs(selectedDate).format("dddd D MMMM YYYY")} - </p> + <p className="text-sm">{dayjs(selectedDate).format("dddd D MMMM YYYY")}</p> <p className="muted text-sm"> - First choose a date and time. You’ll select the service on the next - page. + First choose a date and time. You’ll select the service on the next page. </p> {selectedTime && ( <p className="text-sm"> @@ -120,9 +108,8 @@ export default function SelectTime() { </div> </div> - {/* Right card — calendar + timezone + times */} + {/* Right card */} <div className="card"> - {/* Header row (month header is inside Calendar; we add tz to the right) */} <div className="flex items-center justify-between mb-3"> <div className="text-base font-semibold"> {dayjs(selectedDate).format("MMMM")}{" "} @@ -145,13 +132,8 @@ export default function SelectTime() { <div className="mt-2"> <h4 className="font-semibold mb-2">Available times</h4> - - {loadingSlots && ( - <p className="text-sm text-gray-500 dark:text-slate-400">Loading…</p> - )} - {error && ( - <p className="text-sm text-red-500 mb-2">{error}</p> - )} + {loadingSlots && <p className="text-sm text-gray-500 dark:text-slate-400">Loading…</p>} + {error && <p className="text-sm text-red-500 mb-2">{error}</p>} {!loadingSlots && ( <div className="grid grid-cols-2 sm:grid-cols-4 gap-3"> @@ -169,7 +151,7 @@ export default function SelectTime() { "disabled:opacity-40 disabled:cursor-not-allowed", isSelected ? "bg-blue-600 text-white border-transparent" - : "bg-white dark:bg-slate-800 border-gray-300 dark:border-slate-600 hover:bg-blue-50 dark:hover:bg-slate-700" + : "bg-white dark:bg-slate-800 border-gray-300 dark:border-slate-600 hover:bg-blue-50 dark:hover:bg-slate-700", ].join(" ")} > {time} @@ -184,7 +166,7 @@ export default function SelectTime() { type="submit" className={[ "btn w-full mt-6", - !selectedTime ? "opacity-60 cursor-not-allowed" : "" + !selectedTime ? "opacity-60 cursor-not-allowed" : "", ].join(" ")} disabled={!selectedTime} > diff --git a/client/src/store/booking.jsx b/client/src/store/booking.jsx index d2268ba678..329d4faf9a 100644 --- a/client/src/store/booking.jsx +++ b/client/src/store/booking.jsx @@ -2,14 +2,16 @@ import React, { createContext, useContext, useState } from "react"; const BookingContext = createContext(); -export const BookingProvider = ({ children }) => { - const [booking, setBooking] = useState(null); +export function BookingProvider({ children }) { + const [selectedBooking, setSelectedBooking] = useState(null); return ( - <BookingContext.Provider value={{ booking, setBooking }}> + <BookingContext.Provider value={{ selectedBooking, setSelectedBooking }}> {children} </BookingContext.Provider> ); -}; +} -export const useBooking = () => useContext(BookingContext); +export function useBooking() { + return useContext(BookingContext); +}