diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9998f9d..ad4e0eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,12 +40,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -73,12 +73,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -117,12 +117,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -178,7 +178,7 @@ jobs: - name: Upload coverage report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: test-coverage path: coverage/ @@ -196,12 +196,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -230,7 +230,7 @@ jobs: echo "Build successful - BUILD_ID: $(cat .next/BUILD_ID)" - name: Upload build artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: build-output path: | @@ -267,12 +267,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -281,7 +281,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Download build artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: build-output path: .next/ @@ -325,7 +325,7 @@ jobs: - name: Upload Playwright report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: playwright-report path: playwright-report/ diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index c21e7de..302fae4 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -20,7 +20,7 @@ jobs: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Wait for CI to pass - uses: lewagon/wait-on-check-action@v1.3.4 + uses: lewagon/wait-on-check-action@v1.5.0 with: ref: ${{ github.event.pull_request.head.sha }} repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml index eb98c73..9886355 100644 --- a/.github/workflows/deploy-production.yml +++ b/.github/workflows/deploy-production.yml @@ -114,12 +114,12 @@ jobs: ref: ${{ needs.preflight.outputs.deploy_sha }} - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index d4b113c..610ed5f 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -35,12 +35,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 082cbe3..45017e9 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -40,12 +40,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -81,12 +81,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -118,12 +118,12 @@ jobs: uses: actions/checkout@v4 - name: Setup pnpm - uses: pnpm/action-setup@v3 + uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: ${{ env.NODE_VERSION }} cache: 'pnpm' @@ -141,7 +141,7 @@ jobs: - name: Upload test results if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: security-test-results path: | diff --git a/CLAUDE.md b/CLAUDE.md index f75c271..a33b1c5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,9 +10,9 @@ Multi-Tenant CMS für 3 aktive Websites unter einer Payload CMS 3.x Instanz: ## Tech Stack -- **CMS:** Payload CMS 3.76.1 -- **Framework:** Next.js 16.2.0-canary.41 -- **React:** 19.2.3 +- **CMS:** Payload CMS 3.77.0 +- **Framework:** Next.js 16.2.0-canary.58 +- **React:** 19.2.4 - **Sprache:** TypeScript - **Runtime:** Node.js 22.x - **Datenbank:** PostgreSQL 17.6 (separater Server) @@ -410,4 +410,36 @@ Credentials in `~/.pgpass` (chmod 600), nie Klartext in `.env`. ### Scripts & Backup - `scripts/backup/README.md` - Backup-System Dokumentation -*Letzte Aktualisierung: 14.02.2026* +## Codex CLI — Remote-Orchestrierung (sv-frontend) + +OpenAI Codex CLI (`v0.101.0`, Model `gpt-5.3-codex`) ist auf sv-frontend installiert und kann von sv-payload aus non-interaktiv gesteuert werden. **Nutze Codex für Frontend-Aufgaben um Arbeit zu parallelisieren.** + +**Wichtig:** Mehrere Codex-Sessions können parallel laufen — nutze dies für unabhängige Aufgaben in verschiedenen Projekten. + +```bash +# Einzelne Aufgabe (JSON-Output für Parsing): +ssh sv-frontend "codex exec -s danger-full-access -C ~/frontend.blogwoman.de 'prompt' --json 2>&1" + +# Aufgabe mit Ergebnis-Datei: +ssh sv-frontend "codex exec -s danger-full-access -C ~/projekt -o /tmp/result.txt 'prompt' 2>&1" + +# Parallele Aufgaben (in separaten SSH-Sessions): +ssh sv-frontend "codex exec -s danger-full-access -C ~/frontend.blogwoman.de 'task1' --json" & +ssh sv-frontend "codex exec -s danger-full-access -C ~/frontend.porwoll.de 'task2' --json" & +wait +``` + +**Wann Codex delegieren:** +- Frontend-Komponenten erstellen/ändern +- Lint/Format-Fehler in Frontend-Repos beheben +- Code-Reviews in Frontend-Projekten +- Tests schreiben für Frontend-Code +- Refactoring in Frontend-Repos + +**Einschränkungen:** +- **MUSS** `-s danger-full-access` verwenden (`workspace-write` hat Landlock-Fehler) +- `rg` (ripgrep) nicht installiert — Codex nutzt `find` als Fallback +- Keine `~/.codex/config.toml` — Konfiguration nur via CLI-Flags +- Kein Git-Commit durch Codex — nur Code-Änderungen, Commit/Push über SSH + +*Letzte Aktualisierung: 22.02.2026* diff --git a/docs/zweitmeinung/Website_Guide.md b/docs/zweitmeinung/Website_Guide.md new file mode 100644 index 0000000..0027d14 --- /dev/null +++ b/docs/zweitmeinung/Website_Guide.md @@ -0,0 +1,43 @@ +Hier ist eine kurze Anleitung im Markdown-Format, die du direkt als System-Prompt oder Instruktion für eine Frontend-KI verwenden kannst, um hochwertige ("Premium") Webseiten zu generieren: + +```markdown +# Anleitung für die Frontend-KI: Umsetzung von Premium-Webseiten + +**Ziel:** Deine Aufgabe ist es, Webseiten zu generieren, die sofortiges Vertrauen aufbauen und professionell wirken. Die Website darf niemals "billig" oder hastig zusammengebaut wirken. Eine Premium-Website ist nicht lauter, sondern **klarer, ruhiger und bewusster**. + +Halte dich bei der Generierung von Code, Layouts und Styles strikt an die folgenden Gestaltungsprinzipien: + +## 1. Fundament & Erster Eindruck + +- **Klare Botschaft "Above the Fold":** Der Besucher muss sofort und ohne zu scrollen verstehen, was angeboten wird, für wen es ist und warum es wichtig ist. +- **Absichtsvolles Layout (Kein "DIY-Look"):** Vermeide Layouts, die nach billigen Templates aussehen. Selbst die einfachsten Strukturen müssen bewusst und durchdacht wirken. +- **Vertrauenssignale:** Sorge durch visuelle Klarheit und ein professionelles Auftreten dafür, dass die Seite sofort seriös und sicher wirkt. + +## 2. Visuelle Struktur & Grafiken + +- **Maßgeschneiderte Optik statt Stock-Material:** Verzichte auf generische Stock-Icons. Nutze visuelle Elemente, die exakt zur Tonalität und Farbpalette der Marke passen. +- **Funktion vor reiner Dekoration:** Nutze Grafiken gezielt, um die Aufmerksamkeit zu lenken, Inhalte aufzulockern und Informationen leichter verdaulich zu machen. Vermeide absolutes visuelles Rauschen – jedes Element muss sich seinen Platz verdienen. + +## 3. Markenstrategie (Farben & Typografie) + +- **Farb-Minimalismus:** Implementiere ein kohärentes Farbsystem. Setze auf **Zurückhaltung statt Vielfalt** – wenige Farben, die souverän eingesetzt werden, sorgen für einen hochwertigen Look. +- **Exzellente Typografie:** Wähle anspruchsvolle, professionelle Schriftarten. **Lesbarkeit steht an erster Stelle** – verwende niemals schwer lesbare, veraltete oder unprofessionelle Fonts. + +## 4. Subtile Animationen & Interaktionen + +- **Lebendig, aber nicht chaotisch:** Nutze dezente, scrollbasierte Bewegungen, bei denen Elemente natürlich einblenden. +- **Feedback ohne Reibung:** Buttons und Links müssen auf Hover und Klicks flüssig reagieren. +- **Keine Spielereien:** Verzichte auf alles, was sich grundlos dreht, hüpft oder die Aufmerksamkeit vom eigentlichen Inhalt ablenkt. Animationen sollen den Nutzer führen, nicht verwirren. + +## 5. User Experience (UX) & Call-to-Actions + +- **Klare Nutzerführung (User Journey):** Jede Sektion und jede Seite muss natürlich zum nächsten logischen Schritt führen. +- **Keine Entscheidungsparalyse:** Der Besucher darf nie überlegen müssen, was er als Nächstes tun soll. +- **Sichtbare CTAs:** Call-to-Actions müssen offensichtlich platziert und leicht auffindbar sein. +- **Semantischer Aufbau:** Strukturiere den HTML-Code und die Seitenhierarchie logisch – optimiert für menschliche Besucher und SEO-Algorithmen. + +## 6. Code-Wartbarkeit & Langlebigkeit + +- **Keine "Black-Box":** Entwickle den Code sauber und modular, sodass spätere Aktualisierungen durch den Betreiber leicht möglich sind, ohne dass die Struktur zerbricht. +- Das Setup muss darauf ausgelegt sein, dass Seiten, Services und Inhalte in Zukunft unkompliziert erweitert werden können. +``` diff --git a/docs/zweitmeinung/content-inventory-production.md b/docs/zweitmeinung/content-inventory-production.md new file mode 100644 index 0000000..203a194 --- /dev/null +++ b/docs/zweitmeinung/content-inventory-production.md @@ -0,0 +1,1212 @@ +# Content Inventory: zweitmeinu.ng (Produktion) +## Strapi zu Payload CMS Migration + +**Erstellt:** 2026-02-20 +**Datenquelle:** Produktions-API (https://st.zh3.de) +**Status:** Echte Produktionsdaten + +--- + +## Inhaltsverzeichnis + +1. [Übersicht](#1-übersicht) +2. [Site-Configurations](#2-site-configurations) +3. [Services (Dienstleistungen)](#3-services-dienstleistungen) +4. [FAQs](#4-faqs) +5. [FAQ-Categories](#5-faq-categories) +6. [Pages](#6-pages) +7. [Legal-Pages](#7-legal-pages) +8. [Leere Collections](#8-leere-collections) + +--- + +## 1. Übersicht + +### Produktionsdaten-Status + +| Collection | Einträge | Status | +|------------|----------|--------| +| **Site-Configurations** | 2 | ✅ Daten vorhanden | +| **Services** | 6 | ✅ Daten vorhanden | +| **FAQs** | 24 | ✅ Daten vorhanden | +| **FAQ-Categories** | 7 | ✅ Daten vorhanden | +| **Pages** | 4 | ✅ Daten vorhanden | +| **Legal-Pages** | 2 | ✅ Daten vorhanden | +| Experts | 0 | ⚠️ Leer | +| Blog-Posts | 0 | ⚠️ Leer | +| Blog-Categories | - | 🔒 Zugriff verweigert | +| News-Items | 0 | ⚠️ Leer | +| Appointments | - | Nicht abgefragt | +| Contact-Messages | - | Nicht abgefragt | + +--- + +## 2. Site-Configurations + +### 2.1 Übersicht + +**Anzahl:** 2 Sites + +| # | Site Identifier | Domain | Brand | Specialty | +|---|-----------------|--------|-------|-----------| +| 1 | complexcare-de | complexcaresolutions.de | complexcare | general | +| 2 | zweitmeinu-ng | zweitmein.ng | portal | general | + +--- + +### 2.2 Site: complexcare-de (Complex Care Solutions GmbH) + +```yaml +Basis: + siteIdentifier: "complexcare-de" + domain: "complexcaresolutions.de" + siteName: "complex care solutions GmbH" + tagline: "advancing healthcare" + brand: complexcare + specialty: general + locales: + - code: "de-DE" + name: "German (Germany)" + isDefault: true + +Logo: + name: "Basislogo_mitClaim.png" + url: "/uploads/Basislogo_mit_Claim_8bc0dcadfd.png" + width: 1728 + height: 1296 + +Favicon: + name: "favicon.ico" + url: "/uploads/favicon_af3459ec0b.ico" + +Theme: + primaryColor: "#1278B3" + secondaryColor: "#B3AF09" + accentColor: "#0091BD" + darkColor: "#004166" + backgroundColor: "#f0f1f4" + fontFamily: "Roboto Condensed, Arial Narrow, sans-serif" + +Navigation: + TopBar: + enabled: true + backgroundColor: "#ffffff" + textColor: "#333333" + content: + - icon: clock, type: text, content: "Mo - Fr : 9:00 - 16:00 Uhr" + - type: separator, content: "|" + - icon: envelope, type: email, content: "kontakt@complexcaresolutions.de" + - type: separator, content: "|" + - icon: phone, type: phone, style: bold, content: "0800 80 44 100" + + MainNavigation: + - label: "Patienten", url: "/patienten", icon: users + - label: "Ärzte", url: "/aerzte", icon: user-doctor + - label: "Versicherungen", url: "/versicherungen", icon: shield + - label: "Über uns", url: "/ueber-uns", icon: info-circle + - label: "Motivation", url: "/motivation", icon: heart + - label: "Kontakt", url: "/kontakt", icon: envelope + + SocialMedia: + enabled: true + platforms: + - LinkedIn: "https://de.linkedin.com/company/complex-care-solutions-gmbh" + - Facebook: "https://www.facebook.com/complex-care-solutions-GmbH" + - Instagram: "https://www.instagram.com/c2steam" + - YouTube: "https://www.youtube.com/@complexcaresolutionsgmbh2682" + +Footer: + layout: "multi-column" + style: + backgroundColor: "#004166" + textColor: "#ffffff" + linkColor: "#e2e8f0" + linkHoverColor: "#1278B3" + + columns: + - id: "footer-about" + title: "Über Complex Care Solutions" + logo: "/c2s_master_logo_400x130.png" + description: "Ihr Partner für spezialisierte Gesundheitsdienstleistungen..." + certifications: + - "ISO 9001:2015" + - "TÜV Rheinland" + + - id: "footer-services" + title: "Unsere Leistungen" + links: + - "Medizinische Zweitmeinung" + - "Care Management" + - "Präventivmedizin" + - "Telemedizin (Neu)" + + - id: "footer-info" + title: "Informationen" + links: + - "Für Patienten" + - "Für Ärzte" + - "Für Versicherungen" + - "FAQ" + - "Downloads" + + - id: "footer-contact" + title: "Kontakt & Service" + contactInfo: + phone: "0800 80 44 100" + hours: "Mo - Fr: 9:00 - 16:00 Uhr" + email: "kontakt@complexcaresolutions.de" + +Email-Settings: + fromEmail: "kontakt@complexcaresolutions.de" + fromName: "kontakt@complexcaresolutions.de" + replyToEmail: "kontakt@complexcaresolutions.de" + notificationEmail: "kontakt@complexcaresolutions.de" + emailFooter: "Diese E-Mail wurde automatisch generiert." + notificationSettings: + newAppointment: true + appointmentCancellation: true + newContactMessage: true + expertRegistration: true + systemAlerts: true +``` + +--- + +### 2.3 Site: zweitmeinu-ng (Portal) + +```yaml +Basis: + siteIdentifier: "zweitmeinu-ng" + domain: "zweitmein.ng" + siteName: "zweitmeinu.ng" + tagline: "Beratung wenn sie wirklich wichtig ist" + brand: portal + specialty: general + aliases: + - "deinezweitmeinung.org" + locales: + - code: "de-DE" + name: "German (Germany)" + isDefault: true + +Logo: + name: "Basislogo_ohneClaim.png" + url: "/uploads/Basislogo_ohne_Claim_f755f3734e.png" + width: 1600 + height: 1600 + +Theme: + primaryColor: "#1278B3" + secondaryColor: "#B3AF09" + accentColor: "#0091BD" + darkColor: "#004166" + backgroundColor: "#f0f1f4" + fontFamily: "Roboto Condensed, Arial Narrow, sans-serif" + +Navigation: + TopBar: + enabled: true + backgroundColor: "#004166" + textColor: "#ffffff" + content: + - icon: phone, type: phone, style: bold, content: "+49 800 80 44 100" + - type: separator, content: "|" + - icon: envelope, type: email, style: bold, content: "kontakt@zweitmeinu.ng" + + CTAButton: + label: "Notfall-Zweitmeinung" + url: "/notfall" + icon: emergency + style: primary + animate: true + animationType: pulse + backgroundColor: "#B3AF09" + hoverColor: "#8F8C07" + + SearchBar: + enabled: true + placeholder: "Fachbereich oder Experte suchen..." + suggestions: + - "Kardiologie" + - "Zweitmeinung Herz" + - "Onkologie" + - "Krebstherapie" + - "Neurologie" + + MainNavigation: + - label: "Fachbereiche" + url: "/fachbereiche" + icon: medical-services + highlight: true + subItems: + - label: "Kardiologie", url: "/fachbereiche/kardiologie", icon: heart + - label: "Onkologie", url: "/fachbereiche/onkologie", icon: oncology + - label: "Intensivmedizin", url: "/fachbereiche/intensivmedizin", icon: intensive-care + - label: "Radiologie", url: "/fachbereiche/radiologie", icon: radiology + - label: "Chirurgie", url: "/fachbereiche/chirurgie", icon: surgery + - label: "Alle Fachbereiche →", url: "/fachbereiche", style: link-primary + - label: "So funktioniert's", url: "/so-funktionierts", icon: info-circle + - label: "FAQ", url: "/faq", icon: faq + - label: "Über uns", url: "/ueber-uns", icon: building + - label: "Motivation", url: "/motivation", icon: building + - label: "Kontakt", url: "/kontakt", icon: envelope + +Footer: + columns: + - id: "footer-fachbereiche" + title: "Top Fachbereiche" + links: + - label: "Kardiologie - Herz & Kreislauf", url: "https://zwmk.de", badge: "Beliebt" + - label: "Onkologie - Krebstherapie", url: "https://zwmo.de" + - label: "Intensivmedizin", url: "https://zwmi.de" + - label: "Chirurgie - Operationen", url: "https://zwmop.de" + - label: "Radiologie - Bildgebung", url: "https://zwmr.de" + + - id: "footer-services" + title: "Services" + links: + - "So funktioniert's" + - "Notfall-Zweitmeinung (24/7)" + - "Preise & Kostenübernahme" + - "FAQ" + - "Qualitätsstandards" + - "Für Ärzte" + + - id: "footer-unternehmen" + title: "Unternehmen" + links: + - "Über uns" + - "complex care Solutions GmbH" + - "Karriere (Jobs)" + - "Partner werden" + - "Kontakt" + + - id: "footer-rechtliches" + title: "Rechtliches" + links: + - "Impressum" + - "Datenschutz" + - "AGB" + - "Cookie-Einstellungen" + - "Patientenrechte" + - "Haftungsausschluss" + + newsletter: + enabled: true + title: "Newsletter" + description: "Erhalten Sie wichtige Gesundheitsinformationen und Updates" + + emergencyBanner: + enabled: true + text: "Medizinischer Notfall?" + buttonText: "Jetzt anrufen" + phone: "+49 XXX XXXXXXX" + backgroundColor: "#B3AF09" + textColor: "#001F30" + +Contact: + email: "kontakt@zweitmeinu.ng" + phone: "0800 80 44 100" + fax: "0800 80 44 190" + emergencyHotline: "0174 3032053" + address: | + complex care solutions GmbH + Hans-Böckler-Str. 19 + 46236 Bottrop + openingHours: + monday: "09:00-16:00" + tuesday: "09:00-16:00" + wednesday: "09:00-16:00" + thursday: "09:00-16:00" + friday: "09:00-16:00" + saturday: "geschlossen" + sunday: "geschlossen" + holidays: "An Feiertagen eingeschränkte Verfügbarkeit" + emergency: "24/7 Notfall-Hotline verfügbar" + +SEO: + metaTitle: "Zweitmeinung Portal - Medizinische Zweitmeinung" + metaDescription: "Ihr zentrales Portal für qualifizierte medizinische Zweitmeinungen. Zugang zu über 1000 Experten aus über 50 Fachbereichen. Schnell, sicher, kompetent." + keywords: "zweitmeinung portal, medical second opinion, medizinische zweitmeinung, expertenrat, facharzt zweitmeinung, zweitmeinung online" + canonicalURL: "https://zweitmeinu.ng" + +Features: + showBlog: true + showTeam: false + enableChat: false + enableBooking: false + showDomainGrid: true + enableGlobalSearch: true + showExpertCarousel: true + showLiveStatistics: true + showTrustIndicators: true + +MaintenanceMode: + enabled: false + title: "Wartungsarbeiten" + message: "Wir führen gerade wichtige Wartungsarbeiten durch..." + allowedRoles: ["admin", "developer"] + +Email-Settings: + fromEmail: "noreply@zweitmeinu.ng" + fromName: "zweitmeinu.ng" + replyToEmail: "kontakt@zweitmeinu.ng" + notificationEmail: "kontakt@zweitmeinu.ng" +``` + +--- + +## 3. Services (Dienstleistungen) + +### 3.1 Übersicht + +**Anzahl:** 6 Services + +| # | Name | Kategorie | Status | +|---|------|-----------|--------| +| 1 | Zweitmeinung Intensivmedizin | emergency | Aktiv | +| 2 | Zweitmeinung Gallenblase | consultation | Aktiv | +| 3 | Zweitmeinung Kardiologie | consultation | Aktiv | +| 4 | Zweitmeinung Nephrologie | consultation | Aktiv | +| 5 | Zweitmeinung Onkologie | consultation | Aktiv | +| 6 | Zweitmeinung Schilddrüse | consultation | Aktiv | + +--- + +### 3.2 Service: Zweitmeinung Intensivmedizin + +```yaml +ID: 16 +documentId: "zyd5eohe5iudtb11wsomdd6d" +name: "Zweitmeinung Intensivmedizin" +slug: "zweitmeinung-intensivmedizin" +category: emergency +isActive: true +order: 0 + +shortDescription: | + Unabhängige ärztliche Zweitmeinung bei laufender oder geplanter Intensivbehandlung. + Wir prüfen medizinische Indikation, Patientenwille und Behandlungsalternativen – + empathisch, neutral und fachlich fundiert. + +description: | + # Zweitmeinung Intensiv – fundierte Beratung in kritischen Situationen + + Wenn intensivmedizinische Entscheidungen anstehen, brauchen Patient:innen und ihre + Angehörigen mehr als nur medizinische Information – sie brauchen Orientierung, + Sicherheit und eine unabhängige fachliche Einschätzung. + + **Unsere Dienstleistung „Zweitmeinung Intensiv" richtet sich an Menschen in sehr + schwerer gesundheitlicher Lage**, etwa bei Langzeitbeatmung, Wachkoma oder im + palliativen Kontext. + + ## Was wir leisten: + - Strukturierte Beratung durch erfahrene Case Manager:innen + - Unabhängige ärztliche Zweitmeinung inkl. schriftlichem Gutachten + - Bewertung von Therapiezielen, Indikationen, Patientenverfügung & Prognose + - Unterstützung bei der Umsetzung: von palliativer Umsteuerung bis Pflegeüberleitung + + ## Für wen ist das Angebot gedacht? + Die Zweitmeinung kann von Betroffenen selbst oder ihren rechtlichen Vertreter:innen + beauftragt werden. + + ## Ihr Nutzen: + - Vermeidung nicht indizierter Eingriffe oder fortgesetzter Maximaltherapie + - Sicherung des Patientenwillens in ethisch sensiblen Situationen + - Medizinisch und rechtlich belastbare Entscheidungsgrundlage + - Transparente Kommunikation und datenschutzkonformer Ablauf + +SEO: + metaTitle: "Zweitmeinung Intensivmedizin" + metaDescription: "Unabhängige ärztliche Zweitmeinung bei intensivmedizinischer Behandlung. Jetzt fundierte Empfehlung einholen – mit CCS sicher entscheiden." + keywords: + - Zweitmeinung Intensiv + - ärztliche Zweitmeinung + - Intensivmedizin + - Langzeitbeatmung + - Wachkoma + - palliative Versorgung + - Patientenwille + - Case Management + structuredData: + @type: MedicalService + name: "Zweitmeinung Intensiv" + provider: + @type: Organization + name: "complex care solutions GmbH" + url: "https://www.complexcaresolutions.de" +``` + +--- + +### 3.3 Service: Zweitmeinung Gallenblase + +```yaml +ID: 17 +documentId: "ges2gdv4506vqj1jjavu75a1" +name: "Zweitmeinung Gallenblase" +slug: "zweitmeinung-gallenblase" +category: consultation +isActive: true + +shortDescription: | + Unabhängige ärztliche Zweitmeinung vor einer geplanten Gallenblasen-OP. + Wir prüfen, ob der Eingriff medizinisch notwendig ist – verständlich, + neutral und leitlinienbasiert. + +description: | + # Zweitmeinung Gallenblase – unnötige Operationen vermeiden + + Viele Menschen erhalten bei Gallensteinen die Empfehlung, die Gallenblase + entfernen zu lassen. Doch nicht in jedem Fall ist eine Operation notwendig. + + ## Was wir für Sie tun: + - Bewertung Ihrer Beschwerden und Untersuchungsergebnisse + - Prüfung der OP-Indikation nach medizinischen Leitlinien + - Zweitmeinung durch Fachärzt:innen für Viszeralchirurgie oder Gastroenterologie + - Verständliches Zweitmeinungsgutachten mit klarer Empfehlung + + ## Ihr Nutzen: + - Vermeidung unnötiger Operationen + - Aufklärung über konservative Behandlungsoptionen + - Verständliche Erklärung der Befunde und Risiken + +SEO: + metaTitle: "Zweitmeinung Gallenblase – OP kritisch prüfen lassen" + metaDescription: "Gallenblasen-OP empfohlen? Holen Sie sich eine unabhängige Zweitmeinung von erfahrenen Fachärzt:innen." + keywords: + - Zweitmeinung Gallenblase + - Gallenblasenoperation vermeiden + - Gallensteine Behandlung + - Cholezystektomie Zweitmeinung +``` + +--- + +### 3.4 Service: Zweitmeinung Kardiologie + +```yaml +ID: 18 +documentId: "vkolxn3o6p29kbp3nr6uysmh" +name: "Zweitmeinung Kardiologie" +slug: "zweitmeinung-kardiologie" +category: consultation +isActive: true + +shortDescription: | + Unabhängige ärztliche Zweitmeinung vor Herzkatheter, Stent oder OP. + Fundierte Empfehlung durch erfahrene Kardiolog:innen – verständlich, + sicher, neutral. + +description: | + # Zweitmeinung Kardiologie – klare Empfehlungen bei Herzentscheidungen + + Herzbeschwerden verunsichern – und geplante Eingriffe wie eine Stent-Implantation + werfen viele Fragen auf. + + ## Was wir für Sie tun: + - Bewertung Ihrer Diagnosen und EKG-/Katheterbefunde durch Fachärzt:innen + - Zweitmeinung bei geplanter PCI, Bypass-OP oder medikamentöser Umstellung + - Schriftliches ärztliches Gutachten mit klarer Empfehlung + - Persönliche Erläuterung telefonisch oder per Video + + ## Wann ist eine Zweitmeinung sinnvoll? + Vor planbaren Eingriffen wie Stent-Implantation, Herzoperation oder + interventioneller Ablation. + +SEO: + metaTitle: "Zweitmeinung Kardiologie – Einschätzung vor Eingriffen" + metaDescription: "Unabhängige Zweitmeinung bei geplanter PCI oder Herzoperation." + keywords: + - Zweitmeinung Kardiologie + - Herzkatheter Zweitmeinung + - Zweitmeinung Stent + - Herz-OP Beratung + - Bypass Zweitmeinung +``` + +--- + +### 3.5 Service: Zweitmeinung Nephrologie + +```yaml +ID: 19 +documentId: "e6ipyix9g0vb9okgj5qs6u9u" +name: "Zweitmeinung Nephrologie" +slug: "zweitmeinung-nephrologie" +category: consultation +isActive: true + +shortDescription: | + Unabhängige ärztliche Einschätzung bei Nierenerkrankungen, Dialyseempfehlung + oder Transplantationsvorbereitung. Klar, neutral und verständlich erklärt. + +description: | + # Zweitmeinung Nephrologie – Klarheit bei Nierenentscheidungen + + Die Diagnose einer chronischen Nierenerkrankung oder die Empfehlung zur Dialyse + ist ein gravierender Einschnitt. + + ## Was wir für Sie tun: + - Prüfung der nephrologischen Diagnostik, Laborwerte, Nierenfunktion + - Zweitmeinung durch Fachärzt:innen für Innere Medizin und Nephrologie + - Gutachten zur Notwendigkeit oder zum Zeitpunkt einer Dialyse + - Bewertung konservativer Behandlungsoptionen + +SEO: + metaTitle: "Zweitmeinung Nephrologie – Entscheidung vor Dialyse" + metaDescription: "Unabhängige ärztliche Zweitmeinung bei chronischer Niereninsuffizienz oder Dialyseempfehlung." + keywords: + - Zweitmeinung Nephrologie + - Niereninsuffizienz + - Zweitmeinung Dialyse + - Nierentransplantation Einschätzung +``` + +--- + +### 3.6 Service: Zweitmeinung Onkologie + +```yaml +ID: 20 +documentId: "p0rmism9pb6gepmpc03hwk1e" +name: "Zweitmeinung Onkologie" +slug: "zweitmeinung-onkologie" +category: consultation +isActive: true + +shortDescription: | + Unabhängige ärztliche Zweitmeinung bei Krebs. Fundierte Einschätzung von + Therapieoptionen durch erfahrene Onkolog:innen – empathisch, verständlich, individuell. + +description: | + # Zweitmeinung Onkologie – fundierte Entscheidungshilfe bei Krebsdiagnosen + + Eine Krebsdiagnose ist ein Einschnitt. Neben der seelischen Belastung stellt + sich oft die Frage: Ist die empfohlene Behandlung wirklich die beste Wahl? + + ## Was wir für Sie tun: + - Auswertung Ihrer Diagnose und Befunde durch erfahrene Fachärzt:innen + - Bewertung der geplanten Therapie (Wirksamkeit, Nebenwirkungen, Lebensqualität) + - Schriftliches Zweitmeinungsgutachten + - Optionales Gespräch per Telefon oder Video + - Einbindung von Case Management und Palliativberatung + + ## Wann ist eine Zweitmeinung sinnvoll? + Bei neu gestellter oder fortgeschrittener Krebsdiagnose, z. B. bei Empfehlung + einer Chemotherapie, Operation, Immun- oder Strahlentherapie. + +SEO: + metaTitle: "Zweitmeinung Onkologie – fundierte Einschätzung bei Krebs" + metaDescription: "Unabhängige ärztliche Zweitmeinung bei Krebs. Behandlungsalternativen prüfen." + keywords: + - Zweitmeinung Onkologie + - ärztliche Zweitmeinung Krebs + - Krebsbehandlung Beratung + - Zweitmeinung Chemotherapie +``` + +--- + +### 3.7 Service: Zweitmeinung Schilddrüse + +```yaml +ID: 21 +documentId: "kafaii66xb9xt3voefggk7fk" +name: "Zweitmeinung Schilddrüse" +slug: "zweitmeinung-schilddruese" +category: consultation +isActive: true + +shortDescription: | + Unabhängige ärztliche Einschätzung vor einer geplanten Schilddrüsen-OP. + Fundierte Zweitmeinung durch erfahrene Endokrinolog:innen – individuell, + neutral, verständlich. + +description: | + # Zweitmeinung Schilddrüse – fundierte Einschätzung vor einer Operation + + Die Empfehlung zur Entfernung der Schilddrüse ist für viele Menschen mit + Sorgen verbunden. Doch ist eine Operation wirklich notwendig? + + ## Was wir für Sie tun: + - Prüfung von Ultraschallbefunden, Szintigrammen, Laborwerten + - Zweitmeinung durch Fachärzt:innen für Endokrinologie oder Schilddrüsenchirurgie + - Schriftliches Gutachten mit nachvollziehbarer Empfehlung + + ## Wann ist eine Zweitmeinung sinnvoll? + Bei empfohlener OP wegen Knoten, Struma, Autonomie oder unklarer Laborwerte. + +SEO: + metaTitle: "Zweitmeinung Schilddrüse – OP sinnvoll prüfen lassen" + metaDescription: "Schilddrüsen-OP empfohlen? Lassen Sie die Notwendigkeit von erfahrenen Endokrinolog:innen prüfen." + keywords: + - Zweitmeinung Schilddrüse + - Schilddrüsen-OP vermeiden + - Schilddrüsenknoten Beratung + - Struma Zweitmeinung +``` + +--- + +## 4. FAQs + +### 4.1 Übersicht + +**Anzahl:** 24 FAQs + +### 4.2 FAQ-Liste nach Kategorie + +#### Allgemeine Fragen zur Zweitmeinung + +| Frage | Slug | +|-------|------| +| Was bringt mir eine Zweitmeinung bei Krebs? | was-bringt-mir-eine-zweitmeinung-bei-krebs | +| Muss ich alle meine Unterlagen selbst zusammensuchen? | muss-ich-alle-meine-unterlagen-selbst-zusammensuchen | +| Wie läuft das Zweitmeinungsverfahren ab? | wie-laeuft-das-zweitmeinungsverfahren-ab | +| Kann ich die Zweitmeinung auch einholen, wenn die Therapie schon begonnen hat? | kann-ich-die-zweitmeinung-auch-einholen-wenn-die-therapie-schon-begonnen-hat | +| Beeinflusst die Zweitmeinung meine Behandlung oder meine Ärzt:innen? | beeinflusst-die-zweitmeinung-meine-behandlung-oder-meine-aerzt-innen | + +#### Zweitmeinung Kardiologie + +| Frage | Slug | +|-------|------| +| Wann ist eine Zweitmeinung vor einem Herzkatheter sinnvoll? | wann-ist-eine-zweitmeinung-vor-einem-herzkatheter-sinnvoll | +| Wer erstellt die kardiologische Zweitmeinung? | wer-erstellt-die-kardiologische-zweitmeinung | +| Welche Unterlagen brauche ich für die Zweitmeinung? | welche-unterlagen-brauche-ich-fuer-die-zweitmeinung | +| Muss ich den Eingriff absagen, wenn ich eine Zweitmeinung einhole? | muss-ich-den-eingriff-absagen-wenn-ich-eine-zweitmeinung-einhole | +| Was passiert, wenn die Einschätzung von der ursprünglichen Empfehlung abweicht? | was-passiert-wenn-die-einschaetzung-von-der-urspruenglichen-empfehlung-abweicht | + +#### Zweitmeinung Schilddrüse + +| Frage | Slug | +|-------|------| +| Wann ist eine Zweitmeinung zur Schilddrüsen-OP sinnvoll? | wann-ist-eine-zweitmeinung-zur-schilddruesen-op-sinnvoll | +| Welche Unterlagen werden benötigt? | welche-unterlagen-werden-benoetigt | +| Wer erstellt die Zweitmeinung? | wer-erstellt-die-zweitmeinung | +| Ist die Zweitmeinung verbindlich für meine behandelnden Ärzt:innen? | ist-die-zweitmeinung-verbindlich-fuer-meine-behandelnden-aerzt-innen | +| Kostet mich die Zweitmeinung etwas? | kostet-mich-die-zweitmeinung-etwas | + +#### Zweitmeinung Gallenblase + +| Frage | Slug | +|-------|------| +| Wann ist eine Zweitmeinung zur Gallenblasenentfernung sinnvoll? | wann-ist-eine-zweitmeinung-zur-gallenblasenentfernung-sinnvoll | +| Wer erstellt die Zweitmeinung? | wer-erstellt-die-zweitmeinung-gallenblase | +| Welche Unterlagen brauche ich? | welche-unterlagen-brauche-ich | +| Gibt es Alternativen zur OP? | gibt-es-alternativen-zur-op | +| Was kostet die Zweitmeinung? | was-kostet-die-zweitmeinung | + +#### Zweitmeinung Nephrologie + +| Frage | Slug | +|-------|------| +| Wann ist eine Zweitmeinung bei Nierenerkrankungen sinnvoll? | wann-ist-eine-zweitmeinung-bei-nierenerkrankungen-sinnvoll | +| Welche Unterlagen sind wichtig? | wer-erstellt-die-zweitmeinung-1 | +| Kann ich die Zweitmeinung auch einholen, wenn die Dialyse bereits begonnen hat? | kann-ich-die-zweitmeinung-auch-einholen-wenn-die-dialyse-bereits-begonnen-hat | +| Kostet mich die Zweitmeinung etwas? | kostet-mich-die-zweitmeinung-etwas-nephrologie | + +### 4.3 Beispiel-FAQs (vollständig) + +```yaml +FAQ 1: + id: 5 + question: "Was bringt mir eine Zweitmeinung bei Krebs?" + slug: "was-bringt-mir-eine-zweitmeinung-bei-krebs" + answer: | + Eine Zweitmeinung kann Ihnen Sicherheit geben – vor allem bei schweren + Diagnosen oder belastenden Therapien. Sie hilft, Behandlungsoptionen besser + zu verstehen, Alternativen zu erkennen und eine informierte Entscheidung + zu treffen. Besonders wichtig ist das, wenn mehrere Behandlungswege möglich + sind oder Zweifel an der vorgeschlagenen Therapie bestehen. + priority: medium + helpfulCount: 0 + notHelpfulCount: 0 + +FAQ 2: + id: 9 + question: "Wie läuft das Zweitmeinungsverfahren ab?" + slug: "wie-laeuft-das-zweitmeinungsverfahren-ab" + answer: | + Nach einem telefonischen Vorgespräch prüfen unsere Fachärzt:innen Ihre + Unterlagen. Anschließend erhalten Sie ein schriftliches Gutachten mit + einer klaren, medizinisch fundierten Empfehlung. Wenn gewünscht, besprechen + wir das Ergebnis zusätzlich persönlich mit Ihnen – telefonisch oder per Videocall. + priority: medium + +FAQ 3: + id: 54 + question: "Wann ist eine Zweitmeinung vor einem Herzkatheter sinnvoll?" + slug: "wann-ist-eine-zweitmeinung-vor-einem-herzkatheter-sinnvoll" + answer: | + Immer dann, wenn ein planbarer Eingriff wie eine PCI (Stent) oder eine OP + empfohlen wurde. Auch bei Unsicherheit über Nutzen und Risiken oder wenn + Sie Alternativen in Betracht ziehen möchten, ist eine Zweitmeinung sinnvoll. + priority: medium +``` + +--- + +## 5. FAQ-Categories + +### 5.1 Übersicht + +**Anzahl:** 7 Kategorien + +| # | Name | Slug | Icon | Color | Order | +|---|------|------|------|-------|-------| +| 1 | Allgemeine Fragen zur Zweitmeinung | allgemeine-fragen-zur-zweitmeinung | help-circle | #3B82F6 | 1 | +| 2 | Zweitmeinung Intensivmedizin | zweitmeinung-intensivmedizin | activity | #3B82F6 | 2 | +| 3 | Zweitmeinung Onkologie | zweitmeinung-onkologie | flask-conical | #3B82F6 | 3 | +| 4 | Zweitmeinung Kardiologie | zweitmeinung-kardiologie | heart-pulse | #3B82F6 | 4 | +| 5 | Zweitmeinung Schilddrüse | zweitmeinung-schilddruese | scan-face | #3B82F6 | 5 | +| 6 | Zweitmeinung Gallenblase | zweitmeinung-gallenblase | droplet | #3B82F6 | 6 | +| 7 | Zweitmeinung Nephrologie | zweitmeinung-nephrologie | water | #3B82F6 | 7 | + +### 5.2 Detaillierte Kategorien + +```yaml +Kategorie 1: + id: 1 + documentId: "uzzv4ojnv78fh5ue8hhws6sz" + name: "Allgemeine Fragen zur Zweitmeinung" + slug: "allgemeine-fragen-zur-zweitmeinung" + description: "Antworten auf häufige Fragen rund um Ablauf, Nutzen und Voraussetzungen für die Zweitmeinung durch complex care solutions." + icon: "help-circle" + color: "#3B82F6" + order: 1 + +Kategorie 2: + id: 2 + documentId: "unkvri442wadlscs77l25z4x" + name: "Zweitmeinung Intensivmedizin" + slug: "zweitmeinung-intensivmedizin" + description: "Häufige Fragen zur ärztlichen Zweitmeinung in intensivmedizinischen und intensivpflegerischen Situationen." + icon: "activity" + color: "#3B82F6" + order: 2 + +Kategorie 3: + id: 3 + documentId: "x366ht2ril79ojjowh1z6zd4" + name: "Zweitmeinung Onkologie" + slug: "zweitmeinung-onkologie" + description: "Fragen zur Zweitmeinung bei Krebsdiagnosen, geplanten Chemo- oder Strahlentherapien und alternativen Behandlungswegen." + icon: "flask-conical" + color: "#3B82F6" + order: 3 + +Kategorie 4: + id: 4 + documentId: "cdt6lyhz2bsjdxnz662n8zpy" + name: "Zweitmeinung Kardiologie" + slug: "zweitmeinung-kardiologie" + description: "Alles zur Zweitmeinung bei Herzkatheter, Stent, Bypass oder kardiologischer Diagnostik." + icon: "heart-pulse" + color: "#3B82F6" + order: 4 + +Kategorie 5: + id: 5 + documentId: "cqdqa90qsp7bt0f8dqocqxd2" + name: "Zweitmeinung Schilddrüse" + slug: "zweitmeinung-schilddruese" + description: "Antworten zu OP-Empfehlungen bei Schilddrüsenknoten, Struma oder Autonomie – und möglichen Alternativen." + icon: "scan-face" + color: "#3B82F6" + order: 5 + +Kategorie 6: + id: 6 + documentId: "rw2cq64xi5bxvof3dptc9yk1" + name: "Zweitmeinung Gallenblase" + slug: "zweitmeinung-gallenblase" + description: "Fragen zu Gallenblasenentfernung, Gallensteinen und wann eine Operation wirklich notwendig ist." + icon: "droplet" + color: "#3B82F6" + order: 6 + +Kategorie 7: + id: 7 + documentId: "ya7lbknzu4kat2l6xcm87q6k" + name: "Zweitmeinung Nephrologie" + slug: "zweitmeinung-nephrologie" + description: "Antworten auf häufige Fragen bei chronischen Nierenerkrankungen, Dialyse und Transplantation." + icon: "water" + color: "#3B82F6" + order: 7 +``` + +--- + +## 6. Pages + +### 6.1 Übersicht + +**Anzahl:** 4 Seiten + +| # | Title | Slug | Sections | +|---|-------|------|----------| +| 1 | Startseite zweitmein.ng | home | 1 (hero-carousel) | +| 2 | FAQ - Häufige Fragen | faq | 4 (faq-hero, faq-search-results, faq-categories, faq-cta) | +| 3 | Motivation & Geschichte | motivation | 7 (hero-section, story-section x5, core-values, mission-statement) | +| 4 | So funktioniert's | so-funktionierts | 6 (hero-section, process-steps-detailed, why-choose-cards, service-tiers-timeline, benefits-comparison, process-cta) | + +--- + +### 6.2 Page: Startseite (home) + +```yaml +id: 15 +documentId: "kel6qh6p1wniyax1ng8ctwcy" +title: "Startseite zweitmein.ng" +slug: "home" +isSharedContent: false + +sections: + - __component: "sections.hero-carousel" + id: 5 + autoplay: true + autoplayInterval: 6000 + showDots: true + showArrows: true + transitionType: "fade" + transitionDuration: 800 + pauseOnHover: true + infiniteLoop: true + height: "screen-75" + mobileHeight: "screen-50" + preloadImages: true + lazyLoad: false +``` + +--- + +### 6.3 Page: FAQ - Häufige Fragen + +```yaml +id: 17 +documentId: "kc2z3etkm6iuplnqrlky1tw7" +title: "FAQ - Häufige Fragen" +slug: "faq" +isSharedContent: false + +sections: + - __component: "sections.faq-hero" + id: 2 + title: "FAQ - Häufige Fragen" + subtitle: "Antworten auf die wichtigsten Fragen zur medizinischen Zweitmeinung" + description: "Von Onkologie über Kardiologie bis Intensivmedizin" + showSearch: true + searchPlaceholder: "Suchen Sie nach Stichworten oder Fragen..." + backgroundColor: "bg-primary-600" + + - __component: "sections.faq-search-results" + id: 2 + showResultCount: true + noResultsMessage: "Keine Ergebnisse gefunden. Versuchen Sie es mit anderen Suchbegriffen oder kontaktieren Sie uns direkt." + groupByCategory: true + highlightSearchTerms: true + maxResultsPerCategory: 5 + + - __component: "sections.faq-categories" + id: 2 + description: "Wählen Sie Ihren Fachbereich für spezifische Antworten" + columns: 3 + showQuestionCount: true + + - __component: "sections.faq-cta" + id: 2 + icon: "HelpCircle" + iconColor: "text-yellow-500" + title: "Ihre Frage nicht dabei?" + description: "Unsere Experten beantworten gerne Ihre individuellen Fragen zur medizinischen Zweitmeinung. Kontaktieren Sie uns für eine kostenlose Erstberatung." + additionalInfo: "Kostenlose Hotline • Mo-Fr 9:00-16:00 Uhr • Notfall 24/7" + backgroundColor: "bg-primary-700" + textColor: "text-white" +``` + +--- + +### 6.4 Page: Motivation & Geschichte + +```yaml +id: 25 +documentId: "kkyhnzpo7vjf22kde00p26wf" +title: "Motivation & Geschichte" +slug: "motivation" +isSharedContent: false + +sections: + - __component: "sections.hero-section" + title: "Patientenwohl im Mittelpunkt" + subtitle: "Wir sind Streiter für das Patientenwohl" + backgroundType: "gradient" + backgroundColor: "bg-healthcare-primary" + textAlignment: "center" + + - __component: "sections.story-section" + heading: "Unser Fokus" + content: | + Seit der Gründung konzentrieren wir uns darauf, Versorgungsangebote zu optimieren + und dabei die Bedürfnisse der Patienten in den Mittelpunkt zu stellen. + + = Wir verfolgen einen patientenzentrierten Ansatz. + = Wir legen besonderen Wert auf Transparenz, Unabhängigkeit und Qualitätssicherung. + = Mit unserem nationalen und internationalen Expertennetzwerk entwickeln wir + innovative Lösungen und Dienstleistungen. + imagePosition: "right" + + - __component: "sections.story-section" + heading: "Motivation und Geschichte" + content: | + Complex care solutions wurde von Martin Porwoll, dem Whistleblower des Bottroper + Zytoskandals, gegründet. + imagePosition: "left" + quote: "Aus seinen Erfahrungen und der Erkenntnis um die Bedeutung von Transparenz + und Patientenwohl entstand die Idee, ein unabhängiges Unternehmen zu etablieren..." + quoteHighlight: true + + - __component: "sections.story-section" + heading: "Gründer und Geschäftsführer" + content: | + Seitdem habe ich mich dem Auftrag verschrieben, Patienteninteressen im + Gesundheitswesen zu vertreten. + imagePosition: "right" + quote: "„Der Bottroper Zytoskandal, den ich im Jahr 2016 als Whistleblower + aufgedeckt habe, hat mich zutiefst erschüttert.\"" + attribution: "— Martin Porwoll, Gründer & Geschäftsführer" + + - __component: "sections.story-section" + heading: "Der Zytoskandal Bottrop und Martin Porwoll" + content: | + Die Gründung von complex care solutions ist eng mit der persönlichen Geschichte + des Gründers Martin Porwoll verbunden. + + Im Jahr 2016 deckte er als Whistleblower den sogenannten Zytoskandal in Bottrop auf, + bei dem ein Apotheker über Jahre hinweg Krebsmedikamente für tausende Patienten + gestreckt hatte. + imagePosition: "left" + quote: "Dieser Skandal erschütterte das Vertrauen der Öffentlichkeit in das + Gesundheitswesen..." + quoteHighlight: true + + - __component: "sections.story-section" + heading: "Martin Porwolls Weg zum Streiter für das Patientenwohl" + content: | + Die Erfahrungen mit dem Zytoskandal haben Martin Porwoll zu einem engagierten + Kämpfer für das Patientenwohl und gegen Missstände im Gesundheitswesen gemacht. + imagePosition: "right" + quote: "So gründete er Complex care solutions mit dem Ziel, Patienten in komplexen + Versorgungssituationen bestmöglich zu unterstützen..." + + - __component: "sections.core-values" + heading: "Unsere Grundwerte" + subheading: "Diese Prinzipien leiten uns bei allem, was wir für eine bessere + Patientenversorgung tun." + + - __component: "sections.mission-statement" + icon: "heart" + heading: "Unsere Mission" + quote: | + "Wir setzen uns dafür ein, dass jeder Patient die bestmögliche Versorgung erhält. + Durch innovative Technologie, Transparenz und unabhängige Expertise schaffen wir + Vertrauen und verbessern die Gesundheitsversorgung." + attribution: "— Das Team von zweitmeinung.ng" + backgroundColor: "default" +``` + +--- + +### 6.5 Page: So funktioniert's + +```yaml +id: 28 +documentId: "fthzlwpv8wkus2i0bnwaftqk" +title: "So funktioniert's" +slug: "so-funktionierts" +isSharedContent: false + +sections: + - __component: "sections.hero-section" + title: "So funktioniert's" + subtitle: "Ihr Weg zur medizinischen Zweitmeinung in 6 einfachen Schritten." + description: "Transparent, sicher und patientenorientiert." + backgroundType: "gradient" + backgroundColor: "bg-healthcare-primary" + textAlignment: "center" + minHeight: "lg" + + - __component: "sections.process-steps-detailed" + layout: "horizontal" + showConnectors: true + connectorStyle: "solid" + backgroundColor: "bg-gray-50" + + - __component: "sections.why-choose-cards" + columns: 4 + cardStyle: "elevated" + backgroundColor: "bg-gray-50" + + - __component: "sections.service-tiers-timeline" + layout: "cards" + showPricing: false + backgroundColor: "bg-white" + + - __component: "sections.benefits-comparison" + layout: "equal" + showDividers: true + backgroundColor: "bg-primary-600" + textColor: "text-white" + + - __component: "sections.process-cta" + icon: "Heart" + iconColor: "text-yellow-500" + heading: "Bereit für Ihre Zweitmeinung?" + description: "Starten Sie jetzt und erhalten Sie in kürzester Zeit eine fundierte, + unabhängige Einschätzung Ihres medizinischen Falls." + backgroundColor: "bg-primary-50" + accentColor: "bg-primary-600" + containerStyle: "card" +``` + +--- + +## 7. Legal-Pages + +### 7.1 Übersicht + +**Anzahl:** 2 rechtliche Seiten + +| # | Type | Title | Country | Language | +|---|------|-------|---------|----------| +| 1 | impressum | - | de | de | +| 2 | datenschutz | Datenschutzerklärung | de | de | + +--- + +### 7.2 Impressum + +```yaml +id: 2 +documentId: "cz6spc2ouyuvh1f9ddrelnu5" +type: "impressum" +country: "de" +language: "de" +version: "v1.0" + +content: | + # Impressum + complex care solutions GmbH + Hans-Böckler-Str. 19 + 46236 Bottrop + + Handelsregister: HRB 15753 + Registergericht: Gelsenkirchen + + Vertreten durch: + Martin Porwoll + + ### Kontakt + Telefon: 0800 80 44 100 + Telefax: 0800 80 44 190 + E-Mail: kontakt@complexcaresolutions.de + + ### Umsatzsteuer-ID + Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz: + DE334815479 + + Redaktionell verantwortlich + + Martin Porwoll + Hans-Böckler-Str. 19 + 46236 Bottrop + + ### EU-Streitschlichtung + Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) + bereit: https://ec.europa.eu/consumers/odr/. + Unsere E-Mail-Adresse finden Sie oben im Impressum. + + ### Verbraucherstreitbeilegung/Universalschlichtungsstelle + Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer + Verbraucherschlichtungsstelle teilzunehmen. +``` + +--- + +### 7.3 Datenschutzerklärung + +```yaml +id: 5 +documentId: "jnn8mbgr1grkmjqrdpx2mc33" +type: "datenschutz" +title: "Datenschutzerklärung" +slug: "datenschutzerklaerung" +description: "DSGVO-konforme Datenschutzerklärung bereitgestellt von alfright.eu für zweitmeinung-ng" +country: "de" +language: "de" +version: "v1.0" +isActive: true +siteIdentifier: "zweitmeinung-ng" + +embedType: "iframe" +embedUrl: "https://app.alfright.eu/ext/dps/alfright_schutzteam/9f315103c43245bcb0806dd56c2be757?lang=de-de&headercolor=%23131F64&headerfont=Arial&headersize=21px&subheadersize=18px&fontcolor=%23333333&textfont=Arial&textsize=14px&background=%23ffffff&linkcolor=%23337ab7" +provider: "alfright.eu" +``` + +--- + +## 8. Leere Collections + +Die folgenden Collections haben in der Produktion noch keine Einträge: + +| Collection | Status | Bemerkung | +|------------|--------|-----------| +| **Experts** | 0 Einträge | Keine Experten angelegt | +| **Blog-Posts** | 0 Einträge | Kein Blog-Content | +| **Blog-Categories** | Zugriff verweigert (403) | API nicht öffentlich | +| **News-Items** | 0 Einträge | Keine News | +| **Appointments** | Nicht abgefragt | Datenschutz-sensibel | +| **Contact-Messages** | Nicht abgefragt | Datenschutz-sensibel | +| **Waiting-Lists** | Nicht abgefragt | Datenschutz-sensibel | +| **Appointment-Slots** | Nicht abgefragt | Konfigurationsdaten | +| **Appointment-Exceptions** | Nicht abgefragt | Konfigurationsdaten | + +--- + +## Anhang: API-Endpoints + +### Abgefragte Endpoints + +```bash +# Site Configurations +GET https://st.zh3.de/api/site-configurations?populate=* + +# Services +GET https://st.zh3.de/api/services?populate=* + +# FAQs +GET https://st.zh3.de/api/faqs?populate=* + +# FAQ Categories +GET https://st.zh3.de/api/faq-categories?populate=* + +# Pages +GET https://st.zh3.de/api/pages?populate=* + +# Legal Pages +GET https://st.zh3.de/api/legal-pages?populate=* + +# Blog Posts (leer) +GET https://st.zh3.de/api/blog-posts?populate=* + +# Experts (leer) +GET https://st.zh3.de/api/experts?populate=* + +# News Items (leer) +GET https://st.zh3.de/api/news-items?populate=* +``` + +--- + +*Dokument generiert am 2026-02-20 aus Produktionsdaten* diff --git a/docs/zweitmeinung/migration-strapi-to-payload.md b/docs/zweitmeinung/migration-strapi-to-payload.md new file mode 100644 index 0000000..345c530 --- /dev/null +++ b/docs/zweitmeinung/migration-strapi-to-payload.md @@ -0,0 +1,1618 @@ +# Migration: Strapi zu Payload CMS +## Projekt: zweitmeinu.ng + +**Erstellt:** 2026-02-20 +**Strapi Version:** 5.x +**Ziel:** Payload CMS 3.x + +--- + +## Inhaltsverzeichnis + +1. [Executive Summary](#1-executive-summary) +2. [Content-Types / Collections](#2-content-types--collections) +3. [Components / Blocks](#3-components--blocks) +4. [API-Struktur](#4-api-struktur) +5. [Plugins & Extensions](#5-plugins--extensions) +6. [Datenbank & Relationen](#6-datenbank--relationen) +7. [Migrationsplan](#7-migrationsplan) +8. [Payload CMS Schema-Entwürfe](#8-payload-cms-schema-entwürfe) + +--- + +## 1. Executive Summary + +### Projektumfang + +| Kategorie | Anzahl | +|-----------|--------| +| Content-Types | 16 | +| Components | 43 | +| API-Module | 18 | +| Plugins | 16 | +| Custom Controller Methods | 14 | +| Custom Services | 10 | +| Relationen | 25+ | + +### Komplexitätsbewertung: **MITTEL-HOCH** + +Hauptkomplexität liegt im: +- Termin-Buchungssystem (Appointment) +- Multi-Site-Konfiguration +- Dynamic Zone Page Builder +- Verschachtelte Component-Hierarchien + +--- + +## 2. Content-Types / Collections + +### 2.1 Übersicht aller Content-Types + +| # | Content-Type | Draft/Publish | Felder | Relationen | Komplexität | +|---|--------------|---------------|--------|------------|-------------| +| 1 | appointment | Nein | 26 | 3 | Hoch | +| 2 | appointment-exception | Nein | 15 | 2 | Mittel | +| 3 | appointment-slot | Nein | 16 | 3 | Mittel | +| 4 | blog-category | Ja | 11 | 2 | Niedrig | +| 5 | blog-post | Ja | 15 | 2 | Mittel | +| 6 | contact-message | Nein | 13 | 1 | Niedrig | +| 7 | expert | Ja | 16 | 2 | Mittel | +| 8 | faq | Ja | 17 | 5 | Mittel | +| 9 | faq-category | Nein | 8 | 2 | Niedrig | +| 10 | faq-feedback | Nein | 15 | 3 | Niedrig | +| 11 | legal-page | Ja | 7 | 0 | Niedrig | +| 12 | news-item | Ja | 15 | 2 | Mittel | +| 13 | page | Ja | 5 | 1 | Hoch (Dynamic Zone) | +| 14 | service | Ja | 14 | 2 | Mittel | +| 15 | site-configuration | Ja | 25 | 5 | Hoch | +| 16 | waiting-list | Nein | 20 | 3 | Mittel | + +--- + +### 2.2 Detaillierte Content-Type Definitionen + +#### APPOINTMENT (Terminbuchungen) + +``` +Felder: +├── appointmentId (UUID, unique) +├── patientName (string, required, max 100) +├── patientEmail (email, required) +├── patientPhone (string, required, max 30) +├── patientDateOfBirth (date) +├── patientInsurance (string, max 100) +├── appointmentDate (date, required) +├── appointmentTime (time, required) +├── duration (integer, 15-240, default 30) +├── appointmentType (enum: consultation, examination, treatment, followup, vaccination, other) +├── status (enum: requested, confirmed, cancelled, completed, no-show) +├── confirmationToken (string, unique, private) +├── cancellationToken (string, unique, private) +├── cancellationReason (text, max 500) +├── notes (text, max 1000) +├── internalNotes (text, private) +├── reminderSent (boolean, private) +├── confirmationSent (boolean, private) +├── patientConsent (boolean, required) +├── requestedAt (datetime, private) +├── confirmedAt (datetime, private) +├── cancelledAt (datetime, private) +├── completedAt (datetime, private) +├── ipAddress (string, private) +└── userAgent (string, private) + +Relationen: +├── expert → Expert (manyToOne) +├── service → Service (manyToOne) +└── site → Site-Configuration (manyToOne) +``` + +#### APPOINTMENT-EXCEPTION (Ausnahmen/Urlaub) + +``` +Felder: +├── type (enum: holiday, vacation, sick, conference, training, blocked, other) +├── startDate (datetime, required) +├── endDate (datetime, required) +├── allDay (boolean, default false) +├── reason (string, required, max 200) +├── description (text, max 500) +├── affectsAllSites (boolean, default false) +├── recurring (boolean, default false) +├── recurringPattern (enum: daily, weekly, monthly, yearly) +├── recurringEndDate (date) +├── isActive (boolean, default true) +├── notifyPatients (boolean, default true) +└── color (string, hex format) + +Relationen: +├── expert → Expert (manyToOne, required) +└── site → Site-Configuration (manyToOne) +``` + +#### APPOINTMENT-SLOT (Verfügbare Zeitslots) + +``` +Felder: +├── dayOfWeek (enum: Mo-So, required) +├── startTime (time, required) +├── endTime (time, required) +├── slotDuration (integer, 15-240, default 30) +├── maxAppointments (integer, 1-10, default 1) +├── isActive (boolean, default true) +├── validFrom (date) +├── validUntil (date) +├── breakAfter (integer, 0-60, default 0) +├── bufferBefore (integer, 0-60, default 0) +├── bufferAfter (integer, 0-60, default 0) +├── color (string, hex) +└── notes (text, max 500) + +Relationen: +├── expert → Expert (manyToOne, required) +├── site → Site-Configuration (manyToOne, required) +└── services ↔ Service (manyToMany) +``` + +#### BLOG-CATEGORY + +``` +Felder: +├── name (string, required, unique, max 100) +├── slug (uid, required, targetField: name) +├── description (text, max 500) +├── color (string, hex, default #0070f3) +├── icon (string, max 50) +├── order (integer, default 0) +├── isActive (boolean, default true) +└── seo (component: shared.seo) + +Relationen: +├── blogPosts ← Blog-Post (oneToMany) +├── parent → Blog-Category (manyToOne, self-referential) +└── children ← Blog-Category (oneToMany, self-referential) +``` + +#### BLOG-POST + +``` +Felder: +├── title (string, required, max 200) +├── slug (uid, required, targetField: title) +├── excerpt (text, required, max 300) +├── content (richtext, required) +├── featuredImage (media, images only) +├── author (component: blog.author) +├── tags (json) +├── publishedAt (datetime) +├── readingTime (integer, min 1) +├── featured (boolean, default false) +├── relatedPosts (json) +└── seo (component: shared.seo) + +Relationen: +├── category → Blog-Category (manyToOne) +└── sites ↔ Site-Configuration (manyToMany) +``` + +#### CONTACT-MESSAGE + +``` +Felder: +├── messageId (UUID, unique) +├── name (string, required, max 100) +├── email (email, required) +├── phone (string, max 30) +├── subject (string, required, max 200) +├── message (text, required, max 5000) +├── status (enum: new, read, replied, spam) +├── consentGiven (boolean, required) +├── submittedAt (datetime, private) +├── ipAddress (string, private) +└── userAgent (string, private) + +Relationen: +└── site → Site-Configuration (manyToOne) +``` + +#### EXPERT (Ärzte/Spezialisten) + +``` +Felder: +├── expertId (UUID, unique) +├── firstName (string, required) +├── lastName (string, required) +├── slug (uid, required, targetField: lastName) +├── title (string) +├── specialties (json) +├── bio (richtext) +├── image (media, images only) +├── qualifications (component: expert.qualification, repeatable) +├── availability (component: expert.availability) +├── contactInfo (json) +├── isActive (boolean, default true) +├── order (integer, default 0) +└── seo (component: shared.seo) + +Relationen: +├── services ↔ Service (manyToMany) +└── sites ↔ Site-Configuration (manyToMany) +``` + +#### FAQ + +``` +Felder: +├── question (string, required, max 300) +├── slug (uid, required, targetField: question) +├── answer (richtext, required) +├── shortAnswer (text, max 500) +├── tags (json) +├── priority (enum: low, medium, high, featured) +├── viewCount (integer, private) +├── helpfulCount (integer) +├── notHelpfulCount (integer) +├── attachments (media, multiple) +├── videoUrl (string) +├── searchKeywords (text, private) +├── lastUpdated (datetime) +└── seo (component: shared.seo) + +Relationen: +├── category → FAQ-Category (manyToOne) +├── relatedFaqs ↔ FAQ (manyToMany, self-referential) +├── relatedServices ↔ Service (manyToMany) +├── relatedExperts ↔ Expert (manyToMany) +└── sites ↔ Site-Configuration (manyToMany) +``` + +#### FAQ-CATEGORY + +``` +Felder: +├── name (string, required, unique, max 100) +├── slug (uid, required, targetField: name) +├── description (text, max 300) +├── icon (string, default "question-circle") +├── color (string, hex, default #3B82F6) +└── order (integer, default 0) + +Relationen: +├── faqs ← FAQ (oneToMany) +└── sites ↔ Site-Configuration (manyToMany) +``` + +#### FAQ-FEEDBACK + +``` +Felder: +├── isHelpful (boolean, required) +├── comment (text, max 1000) +├── additionalFeedback (enum: too_technical, not_detailed_enough, outdated, confusing, perfect, needs_examples) +├── userEmail (email) +├── ipAddress (string, private) +├── userAgent (string, private) +├── sessionId (string, private) +├── followUpRequested (boolean, default false) +├── resolved (boolean, default false) +├── resolvedAt (datetime) +└── internalNotes (text, private) + +Relationen: +├── faq → FAQ (manyToOne, required) +├── site → Site-Configuration (manyToOne) +└── resolvedBy → Admin-User (manyToOne) +``` + +#### LEGAL-PAGE + +``` +Felder: +├── type (enum: impressum, datenschutz, agb, cookie-policy, required) +├── content (richtext, required) +├── country (enum: global, de, at, ch, nl, es, uk) +├── language (enum: de, en, nl, es, fr, it) +├── validFrom (date) +├── validUntil (date) +└── version (string) + +Relationen: Keine +``` + +#### NEWS-ITEM + +``` +Felder: +├── title (string, required, max 150) +├── slug (uid, required, targetField: title) +├── summary (text, required, max 250) +├── content (richtext, required) +├── featuredImage (media, images only) +├── newsType (enum: announcement, update, event, press_release, medical_news) +├── priority (enum: normal, important, urgent) +├── publishDate (datetime, required) +├── expiryDate (datetime) +├── author (component: blog.author) +├── tags (json) +├── attachments (media, multiple) +├── externalLink (string) +└── seo (component: shared.seo) + +Relationen: +├── sites ↔ Site-Configuration (manyToMany) +└── relatedServices ↔ Service (manyToMany) +``` + +#### PAGE (Dynamischer Page Builder) + +``` +Felder: +├── title (string, required) +├── slug (uid, required, targetField: title) +├── isSharedContent (boolean, default false) +├── sections (dynamiczone) ← KRITISCH FÜR MIGRATION +└── seo (component: shared.seo) + +Dynamic Zone Components (11): +├── sections.hero +├── sections.text-block +├── sections.cta-banner +├── sections.services-grid +├── sections.team-grid +├── sections.testimonials +├── sections.expert-grid +├── sections.faq +├── sections.contact-form +├── sections.blog-list +└── sections.faq-reference + +Relationen: +└── sites ↔ Site-Configuration (manyToMany) +``` + +#### SERVICE (Medizinische Dienstleistungen) + +``` +Felder: +├── name (string, required) +├── slug (uid, required, targetField: name) +├── description (richtext, required) +├── shortDescription (text, max 300) +├── icon (media, images only) +├── featuredImage (media, images only) +├── price (component: service.pricing) +├── features (component: service.feature, repeatable) +├── duration (string) +├── category (enum: diagnostic, therapeutic, preventive, surgical, emergency, consultation) +├── isActive (boolean, default true) +├── order (integer, default 0) +└── seo (component: shared.seo) + +Relationen: +├── sites ↔ Site-Configuration (manyToMany) +└── experts ↔ Expert (manyToMany) +``` + +#### SITE-CONFIGURATION (Zentrale Domain-Konfiguration) + +``` +Felder: +├── siteIdentifier (string, required, unique) +├── domain (string, required) +├── siteName (string, required, max 100) +├── tagline (string, max 200) +├── logo (media, images only) +├── favicon (media, images only) +├── aliases (json) +├── brand (enum: complexcare, zweitmeinung, portal, required) +├── specialty (enum: general, intensiv, kardiologie, onkologie, chirurgie, radiologie, nephrologie, orthopaedie, polypharmazie, pflege) +├── locales (json, default: de-DE) +├── navigation (json) +├── footer (json) +├── theme (component: site.theme) +├── contact (component: site.contact) +├── features (json) +├── socialMedia (component: site.social-media) +├── analytics (component: site.analytics) +├── seo (component: shared.seo) +├── portalSettings (component: site.portal-settings) +├── maintenanceMode (component: site.maintenance-mode) +├── emailSettings (component: site.email-settings, required) +└── appointmentSettings (component: appointment.appointment-settings) + +Relationen: +├── newsItems ↔ News-Item (manyToMany) +├── blogPosts ↔ Blog-Post (manyToMany) +├── services ↔ Service (manyToMany) +├── experts ↔ Expert (manyToMany) +└── pages ↔ Page (manyToMany) +``` + +#### WAITING-LIST + +``` +Felder: +├── waitingListId (UUID, unique) +├── patientName (string, required, max 100) +├── patientEmail (email, required) +├── patientPhone (string, required, max 30) +├── preferredDates (json, default []) +├── preferredTimeOfDay (enum: morning, afternoon, evening, any) +├── flexibleDates (boolean, default false) +├── priority (enum: normal, urgent, emergency) +├── status (enum: waiting, contacted, appointed, expired, cancelled) +├── notes (text, max 1000) +├── internalNotes (text, private) +├── addedAt (datetime, private) +├── contactedAt (datetime, private) +├── appointedAt (datetime, private) +├── expiresAt (datetime) +├── contactAttempts (integer, private) +├── lastContactAttempt (datetime, private) +├── patientConsent (boolean, required) +└── ipAddress (string, private) + +Relationen: +├── expert → Expert (manyToOne) +├── service → Service (manyToOne) +└── site → Site-Configuration (manyToOne) +``` + +--- + +## 3. Components / Blocks + +### 3.1 Component-Kategorien Übersicht + +| Kategorie | Anzahl | Verwendungszweck | +|-----------|--------|------------------| +| admin | 1 | Analytics Dashboard | +| appointment | 5 | Terminverwaltung-Einstellungen | +| blog | 2 | Blog-Autoren & Kategorien | +| elements | 1 | Wiederverwendbare UI-Elemente | +| expert | 2 | Qualifikationen & Verfügbarkeit | +| layout | 3 | Navigation & Footer | +| sections | 11 | Page Builder Blöcke | +| service | 2 | Preise & Features | +| shared | 3 | SEO & Meta-Daten | +| site | 12 | Site-Konfiguration | + +**Gesamt: 43 Components** + +--- + +### 3.2 Detaillierte Component-Definitionen + +#### SHARED (Wiederverwendbar in mehreren Content-Types) + +**shared.seo** (Verwendet in 7 Content-Types) +``` +├── metaTitle (string, max 60) +├── metaDescription (text, max 160) +├── keywords (text) +├── canonicalURL (string) +├── structuredData (json) +├── metaImage (media, images only) +├── openGraph (component: shared.open-graph) +└── metaSocial (component: shared.meta-social, repeatable) +``` + +**shared.open-graph** +``` +├── type (enum: website, article, profile, book, music, video) +├── title (string, max 95) +├── description (text, max 200) +├── image (media, images only) +├── url (string) +├── siteName (string, max 50) +└── locale (string, default "de_DE") +``` + +**shared.meta-social** +``` +├── socialNetwork (enum: Facebook, Twitter, LinkedIn, required) +├── title (string, max 60) +├── description (text, max 160) +└── image (media, images only) +``` + +--- + +#### ELEMENTS (Basis-Bausteine) + +**elements.button** (Verwendet in 7 Components) +``` +├── label (string, required) +├── url (string) +├── style (enum: primary, secondary, outline) +├── icon (string) +└── openInNewTab (boolean, default false) +``` + +--- + +#### SECTIONS (Page Builder Blöcke) + +**sections.hero** +``` +├── title (string) +├── subtitle (text) +├── backgroundImage (media) +├── alignment (enum: left, center, right) +└── buttons (component: elements.button, repeatable) +``` + +**sections.text-block** +``` +├── content (richtext, required) +├── layout (enum: full-width, centered, two-columns) +└── backgroundColor (enum: white, light, dark, primary) +``` + +**sections.cta-banner** +``` +├── title (string, required) +├── description (text) +├── button (component: elements.button) +└── backgroundStyle (enum: gradient, solid, image) +``` + +**sections.services-grid** +``` +├── title (string) +├── subtitle (text) +├── serviceIds (json) +├── displayMode (enum: all, selected, category) +├── category (enum: diagnostic, therapeutic, preventive, surgical, emergency, consultation) +├── columns (integer, 2-4) +├── showPrices (boolean) +└── cta (component: elements.button) +``` + +**sections.team-grid** +``` +├── title (string) +├── subtitle (text) +├── members (component: sections.team-member, repeatable) +└── columns (integer, 2-4) +``` + +**sections.team-member** +``` +├── name (string, required) +├── role (string, required) +├── bio (text) +├── image (media, images only) +└── socialLinks (json) +``` + +**sections.testimonials** +``` +├── title (string) +├── subtitle (text) +└── testimonials (component: sections.testimonial, repeatable) +``` + +**sections.testimonial** +``` +├── content (text, required) +├── author (string, required) +├── role (string) +├── company (string) +├── rating (integer, 1-5) +└── image (media, images only) +``` + +**sections.expert-grid** +``` +├── title (string) +├── subtitle (text) +├── expertIds (json) +├── displayMode (enum: all, selected, specialty) +├── specialty (string) +├── columns (integer, 2-4) +├── showAvailability (boolean) +└── cta (component: elements.button) +``` + +**sections.faq** +``` +├── title (string) +├── subtitle (text) +└── questions (component: sections.faq-item, repeatable) +``` + +**sections.faq-item** +``` +├── question (string, required) +└── answer (richtext, required) +``` + +**sections.faq-reference** (Referenziert zentrales FAQ-System) +``` +├── title (string) +├── subtitle (text) +├── displayMode (enum: accordion, list, cards, compact) +├── source (enum: selected, category, featured, popular) +├── selectedFaqs (json) +├── categorySlug (string) +├── limit (integer, 1-50) +├── showSearch (boolean) +├── showCategories (boolean) +└── cta (component: elements.button) +``` + +**sections.blog-list** +``` +├── title (string) +├── subtitle (text) +├── contentType (enum: blog_posts, news_items, both) +├── displayMode (enum: grid, list, featured) +├── itemsToShow (integer, 1-12) +├── filterByCategory (string) +├── showPagination (boolean) +└── cta (component: elements.button) +``` + +**sections.contact-form** +``` +├── title (string) +├── subtitle (text) +├── formFields (json) +├── submitButtonText (string) +├── successMessage (text) +├── recipientEmail (email) +└── consentText (text) +``` + +--- + +#### SITE (Konfiguration) + +**site.theme** +``` +├── primaryColor (string, hex, default #2563eb) +├── secondaryColor (string, hex, default #10b981) +├── accentColor (string, hex, default #f59e0b) +├── darkColor (string, hex, default #1f2937) +├── backgroundColor (string, hex, default #f3f4f6) +├── fontFamily (string, default "Inter, sans-serif") +└── customCSS (text) +``` + +**site.contact** +``` +├── email (email, required) +├── phone (string) +├── fax (string) +├── address (text) +├── emergencyHotline (string) +└── openingHours (json) +``` + +**site.social-media** +``` +├── facebook (string, regex validated) +├── twitter (string, regex validated) +├── linkedin (string, regex validated) +├── instagram (string, regex validated) +├── youtube (string, regex validated) +├── xing (string, regex validated) +├── tiktok (string, regex validated) +├── whatsapp (string) +└── telegram (string) +``` + +**site.analytics** +``` +├── googleAnalyticsId (string, regex: UA-* or G-*) +├── googleTagManagerId (string, regex: GTM-*) +├── facebookPixelId (string) +├── matomo (json) +├── hotjar (json) +├── clarity (string) +├── cookieConsent (json) +└── customScripts (json) +``` + +**site.email-settings** +``` +├── fromEmail (email, required) +├── fromName (string, required) +├── replyToEmail (email, required) +├── notificationEmail (email, required) +├── ccEmails (json) +├── emailSignature (richtext) +├── emailFooter (text) +├── notificationSettings (json) +└── emailTemplateStyle (json) +``` + +**site.maintenance-mode** +``` +├── enabled (boolean, required) +├── startDate (datetime) +├── endDate (datetime) +├── title (string) +├── message (richtext, required) +├── allowedIPs (json, private) +├── allowedRoles (json) +├── showProgressBar (boolean) +├── progressPercentage (integer, 0-100) +├── contactInfo (json) +├── customCSS (text) +└── redirectUrl (string) +``` + +**site.portal-settings** +``` +├── isPortal (boolean, required) +├── aggregatedDomains (component: site.domain-reference, repeatable) +├── showDomainGrid (boolean) +├── showLiveStatistics (boolean) +├── showExpertCarousel (boolean) +├── enableGlobalSearch (boolean) +├── showTrustIndicators (boolean) +├── statisticsConfig (component: site.statistics-config) +├── quickAccessCategories (json) +├── featuredExperts (json) +└── highlightedServices (json) +``` + +**site.domain-reference** +``` +├── domain (string, required) +├── siteIdentifier (string, required) +├── displayName (string) +├── category (enum) +├── order (integer) +└── isActive (boolean) +``` + +**site.statistics-config** +``` +├── showTotalOpinions (boolean) +├── showActiveExperts (boolean) +├── showSatisfactionRate (boolean) +├── showResponseTime (boolean) +├── refreshInterval (integer) +├── animateNumbers (boolean) +└── displayFormat (enum: compact, detailed, minimal) +``` + +--- + +#### APPOINTMENT (Terminverwaltung) + +**appointment.appointment-settings** +``` +├── bookingAdvanceDays (integer, 1-365) +├── minBookingHours (integer, 0-168) +├── maxBookingDays (integer, 1-365) +├── cancellationHours (integer, 0-168) +├── defaultDuration (integer, 15-240) +├── workingHours (component: appointment.working-hours) +├── bookingRules (json) +├── reminderHours (integer, 0-168) +├── allowWaitingList (boolean) +├── requireConfirmation (boolean) +├── requirePayment (boolean) +├── autoConfirmHours (integer) +├── maxAppointmentsPerDay (integer) +├── bufferBetweenAppointments (integer) +├── allowOnlineBooking (boolean) +├── showPrices (boolean) +├── termsAndConditions (richtext) +├── emailTemplates (component: appointment.email-templates) +├── smsEnabled (boolean) +└── notificationChannels (json) +``` + +**appointment.working-hours** +``` +├── monday (component: appointment.day-schedule) +├── tuesday (component: appointment.day-schedule) +├── wednesday (component: appointment.day-schedule) +├── thursday (component: appointment.day-schedule) +├── friday (component: appointment.day-schedule) +├── saturday (component: appointment.day-schedule) +└── sunday (component: appointment.day-schedule) +``` + +**appointment.day-schedule** +``` +├── isOpen (boolean) +├── openTime (time) +├── closeTime (time) +└── breaks (component: appointment.break-time, repeatable) +``` + +**appointment.break-time** +``` +├── startTime (time, required) +├── endTime (time, required) +└── description (string) +``` + +**appointment.email-templates** +``` +├── bookingConfirmation (richtext) +├── appointmentReminder (richtext) +├── cancellationConfirmation (richtext) +├── waitingListNotification (richtext) +├── noShowFollowUp (richtext) +├── appointmentRescheduled (richtext) +├── senderName (string) +├── senderEmail (email, required) +└── replyToEmail (email) +``` + +--- + +#### EXPERT + +**expert.qualification** +``` +├── title (string, required) +├── institution (string) +├── year (integer) +├── description (text) +└── type (enum: degree, certification, specialization, award, membership) +``` + +**expert.availability** +``` +├── schedule (json) +├── consultationTypes (json) +├── locations (json) +├── bookingUrl (string) +├── responseTime (string) +└── languages (json) +``` + +--- + +#### BLOG + +**blog.author** +``` +├── name (string, required) +├── bio (text, max 500) +├── avatar (media, images only) +├── role (string) +└── socialLinks (json) +``` + +--- + +#### SERVICE + +**service.pricing** +``` +├── basePrice (decimal, required) +├── currency (string, default EUR) +├── priceNote (text) +├── isStartingPrice (boolean) +└── paymentOptions (json) +``` + +**service.feature** +``` +├── title (string, required) +├── description (text) +└── icon (string) +``` + +--- + +## 4. API-Struktur + +### 4.1 API-Endpoints Übersicht + +| Modul | Custom Logic | Endpoints | Authentifizierung | +|-------|--------------|-----------|-------------------| +| appointment | Ja (14 Methods) | 13 | Nein (Token-basiert) | +| appointment-exception | Nein | 5 | Nein | +| appointment-slot | Nein | 5 | Nein | +| blog-category | Ja (1 Method) | 6 | Nein | +| blog-post | Ja (2 Methods) | 7 | Optional | +| contact-message | Ja (4 Methods) | 8 | Nein | +| expert | Nein | 5 | Optional | +| faq | Nein | 5 | Nein | +| faq-category | Nein | 5 | Nein | +| faq-feedback | Nein | 5 | Nein | +| legal-page | Nein | 5 | Optional | +| news-item | Nein | 5 | Optional | +| page | Nein | 5 | Optional | +| service | Nein | 5 | Optional | +| site-configuration | Nein | 5 | Optional | +| test-email | Ja (2 Methods) | 2 | Nein | +| waiting-list | Nein | 5 | Nein | + +--- + +### 4.2 Custom API-Logik (Migration erforderlich) + +#### Appointment Controller (14 Custom Methods) + +```typescript +// Kritische Business Logic für Payload Migration + +1. getAvailability(expert, service, startDate, endDate) + - Berechnet verfügbare Zeitslots + - Berücksichtigt: Slots, Exceptions, bestehende Termine + - Filtert nach Buchungsfenster (24h-90d) + +2. bookAppointment(patientData, appointmentDetails) + - Validiert alle Felder + - Prüft Slot-Verfügbarkeit + - Generiert Confirmation/Cancellation Tokens + - Sendet Bestätigungs-Email + +3. confirmAppointment(token) + - Validiert Token + - Setzt Status auf 'confirmed' + - Sendet Bestätigungs-Email + +4. cancelAppointment(token, reason) + - Prüft Stornierungsrichtlinie (24h) + - Setzt Status auf 'cancelled' + - Verarbeitet Warteliste + - Benachrichtigt nächsten Patienten + +5. rescheduleAppointment(appointmentId, newSlot) + - Validiert neuen Slot + - Aktualisiert Termin + - Sendet Benachrichtigung + +6. addToWaitingList(patientData, preferences) + - Erstellt Wartelisten-Eintrag + - Sendet Bestätigung + +7. getCalendarView(expert, view, date) + - Erstellt Kalender-Übersicht + - Gruppiert nach Tag/Woche/Monat + +8. getStatistics(period, expert) + - Berechnet Statistiken + - Status-Verteilung, No-Show-Rate, etc. + +9. sendReminders() + - Daily Job für morgige Termine + - Setzt reminderSent Flag + +10. exportAppointments(format, filters) + - CSV-Export + - Gefiltert nach Datum/Expert/Status + +11-14. Email Services + - sendConfirmationEmail() + - sendCancellationEmail() + - sendReminderEmail() + - sendWaitingListNotification() +``` + +#### Contact-Message Controller (4 Custom Methods) + +```typescript +1. create(data) - mit Spam-Schutz + - Honeypot-Feld Prüfung + - Minimum 3 Sekunden Ausfüllzeit + - Email-Benachrichtigung an Site-Admin + +2. markAsRead(id) + - Setzt Status auf 'read' + +3. markAsSpam(id) + - Setzt Status auf 'spam' + +4. stats() + - Statistiken der letzten 30 Tage +``` + +#### Blog-Post Controller (2 Custom Methods) + +```typescript +1. findRelated(postId) + - Findet ähnliche Posts nach Kategorie + +2. findByCategory(categorySlug, pagination) + - Filtert Posts nach Kategorie-Slug +``` + +--- + +### 4.3 Middleware + +**Contact Rate Limiting** (Optional) +```typescript +// /src/middlewares/contact-rate-limit.ts +{ + limit: 5, // Anfragen + interval: 60, // Sekunden + tracking: 'ip+path' +} +``` + +--- + +## 5. Plugins & Extensions + +### 5.1 Installierte Plugins + +| Plugin | Version | Payload Äquivalent | +|--------|---------|-------------------| +| @strapi/plugin-documentation | 5.18.0 | Built-in API Docs | +| @strapi/plugin-graphql | 5.18.0 | @payloadcms/plugin-graphql | +| @strapi/plugin-users-permissions | 5.18.0 | Built-in Auth | +| @strapi/plugin-seo | 2.0.8 | @payloadcms/plugin-seo | +| @strapi/provider-email-nodemailer | 5.18.0 | Nodemailer via Hooks | +| @_sh/strapi-plugin-ckeditor | 6.0.2 | Lexical Editor (built-in) | +| strapi-plugin-navigation | 3.0.16 | @payloadcms/plugin-nested-docs | +| strapi-plugin-superfields | 5.8.2 | Custom Field Types | +| strapi-plugin-multi-select | 2.1.1 | Select Field (built-in) | +| strapi-plugin-country-select | 2.1.0 | Custom Select | +| strapi-plugin-bold-title-editor | 2.0.0 | Custom RichText Config | +| strapi-5-sitemap-plugin | 1.0.7 | afterChange Hook | +| strapi-cache | 1.5.5 | Redis Plugin | +| strapi-advanced-uuid | 2.1.1 | Custom ID Field | +| strapi-5-plugin-responsive-backend | 0.0.4 | Built-in Responsive UI | +| @chartbrew/plugin-strapi | 3.0.0 | External Integration | + +### 5.2 Plugin-Konfigurationen + +**CKEditor 5 Toolbar:** +``` +Heading | Bold, Italic, Underline, Strikethrough | +BulletedList, NumberedList | Blockquote | +Table | Code, CodeBlock | Link | Image +``` + +**Navigation Plugin:** +```typescript +{ + contentTypes: ["page", "service", "expert", "blog-post", "faq"], + allowedLevels: 3 +} +``` + +**Cache Plugin:** +```typescript +{ + type: "mem", + maxAge: 3600000, + cacheRoutes: ["/api/services", "/api/experts", "/api/faq", "/api/blog-posts"] +} +``` + +--- + +## 6. Datenbank & Relationen + +### 6.1 Relationen-Diagramm + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ SITE-CONFIGURATION │ +│ (Zentrale Konfiguration) │ +└─────────────────────────────────────────────────────────────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ + │ Expert │ │Service │ │ Page │ │BlogPost│ │NewsItem│ + └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ + │ │ │ + │ │ ▼ + │ │ ┌─────────────┐ + │ │ │BlogCategory │ + │ │ └─────────────┘ + │ │ + ▼ ▼ + ┌─────────────────────────────────────────┐ + │ APPOINTMENT │ + │ (Termin-Buchungen) │ + └─────────────────────────────────────────┘ + │ + ├──────────────────┐ + ▼ ▼ + ┌───────────────┐ ┌─────────────────────┐ + │Appointment- │ │ Appointment- │ + │Exception │ │ Slot │ + └───────────────┘ └─────────────────────┘ + + ┌─────────────────────────────────────────┐ + │ FAQ SYSTEM │ + └─────────────────────────────────────────┘ + ┌────────────┐ ┌────────┐ ┌─────────────┐ + │FAQ-Category│ ──► │ FAQ │ ◄── │FAQ-Feedback │ + └────────────┘ └────────┘ └─────────────┘ + │ + ▼ + ┌─────────────────────┐ + │ Related: Service, │ + │ Expert, FAQ │ + └─────────────────────┘ + + ┌─────────────────────────────────────────┐ + │ CONTACT & WAITING │ + └─────────────────────────────────────────┘ + ┌────────────────┐ ┌─────────────┐ + │Contact-Message │ │Waiting-List │ + │ → Site │ │→Expert,Svc │ + └────────────────┘ └─────────────┘ +``` + +### 6.2 Bidirektionale Relationen (ManyToMany) + +| Relation | Seite A | Seite B | +|----------|---------|---------| +| 1 | Site-Configuration | Expert | +| 2 | Site-Configuration | Service | +| 3 | Site-Configuration | Page | +| 4 | Site-Configuration | Blog-Post | +| 5 | Site-Configuration | News-Item | +| 6 | Site-Configuration | FAQ | +| 7 | Site-Configuration | FAQ-Category | +| 8 | Expert | Service | +| 9 | FAQ | FAQ (self-referential) | +| 10 | FAQ | Service | +| 11 | FAQ | Expert | +| 12 | Blog-Category | Blog-Category (self-referential) | + +--- + +## 7. Migrationsplan + +### 7.1 Phase 1: Payload CMS Setup (Woche 1) + +```bash +# Installation +npx create-payload-app@latest zweitmeinu-ng-payload +cd zweitmeinu-ng-payload + +# Plugins +npm install @payloadcms/plugin-graphql +npm install @payloadcms/plugin-seo +npm install @payloadcms/plugin-nested-docs +npm install @payloadcms/plugin-form-builder +npm install @payloadcms/richtext-lexical +``` + +### 7.2 Phase 2: Collections erstellen (Woche 2-3) + +**Priorität 1 - Basis Collections:** +1. Users (Admin) +2. Media +3. Site-Configuration → Sites +4. Legal-Page → LegalPages + +**Priorität 2 - Content Collections:** +5. Expert → Experts +6. Service → Services +7. FAQ-Category → FAQCategories +8. FAQ → FAQs +9. Blog-Category → BlogCategories +10. Blog-Post → BlogPosts +11. News-Item → NewsItems + +**Priorität 3 - Page Builder:** +12. Page → Pages (mit Blocks) + +**Priorität 4 - Appointment System:** +13. Appointment → Appointments +14. Appointment-Slot → AppointmentSlots +15. Appointment-Exception → AppointmentExceptions +16. Waiting-List → WaitingList + +**Priorität 5 - Formulare:** +17. Contact-Message → ContactMessages +18. FAQ-Feedback → FAQFeedback + +### 7.3 Phase 3: Blocks erstellen (Woche 3) + +```typescript +// /src/blocks/index.ts +export const blocks = [ + HeroBlock, + TextBlock, + CTABanner, + ServicesGrid, + TeamGrid, + Testimonials, + ExpertGrid, + FAQSection, + FAQReference, + BlogList, + ContactForm, +]; +``` + +### 7.4 Phase 4: Custom Endpoints (Woche 4) + +```typescript +// /src/endpoints/appointments.ts +export const appointmentEndpoints = { + getAvailability, + bookAppointment, + confirmAppointment, + cancelAppointment, + rescheduleAppointment, + getCalendarView, + getStatistics, + sendReminders, + exportAppointments, +}; +``` + +### 7.5 Phase 5: Daten-Migration (Woche 5) + +```typescript +// Migration Script Struktur +const migrationOrder = [ + 'site-configuration', + 'expert', + 'service', + 'faq-category', + 'faq', + 'blog-category', + 'blog-post', + 'news-item', + 'legal-page', + 'page', + 'appointment-slot', + 'appointment-exception', + 'appointment', + 'waiting-list', + 'contact-message', + 'faq-feedback', +]; +``` + +### 7.6 Phase 6: Testing & Go-Live (Woche 6) + +1. API-Kompatibilitätstests +2. Frontend-Integration +3. Performance-Tests +4. Staging-Deployment +5. Production-Migration + +--- + +## 8. Payload CMS Schema-Entwürfe + +### 8.1 Beispiel: Appointments Collection + +```typescript +// /src/collections/Appointments.ts +import { CollectionConfig } from 'payload/types'; + +export const Appointments: CollectionConfig = { + slug: 'appointments', + admin: { + useAsTitle: 'patientName', + defaultColumns: ['patientName', 'appointmentDate', 'status', 'expert'], + group: 'Termine', + }, + access: { + read: () => true, + create: () => true, + update: ({ req: { user } }) => Boolean(user), + delete: ({ req: { user } }) => Boolean(user), + }, + fields: [ + { + name: 'appointmentId', + type: 'text', + unique: true, + admin: { readOnly: true }, + hooks: { + beforeChange: [({ value }) => value || crypto.randomUUID()], + }, + }, + { + type: 'row', + fields: [ + { name: 'patientName', type: 'text', required: true, maxLength: 100 }, + { name: 'patientEmail', type: 'email', required: true }, + { name: 'patientPhone', type: 'text', required: true, maxLength: 30 }, + ], + }, + { + type: 'row', + fields: [ + { name: 'appointmentDate', type: 'date', required: true }, + { name: 'appointmentTime', type: 'text', required: true }, // HH:MM format + { name: 'duration', type: 'number', min: 15, max: 240, defaultValue: 30 }, + ], + }, + { + name: 'appointmentType', + type: 'select', + required: true, + options: [ + { label: 'Beratung', value: 'consultation' }, + { label: 'Untersuchung', value: 'examination' }, + { label: 'Behandlung', value: 'treatment' }, + { label: 'Nachsorge', value: 'followup' }, + { label: 'Impfung', value: 'vaccination' }, + { label: 'Sonstiges', value: 'other' }, + ], + }, + { + name: 'status', + type: 'select', + required: true, + defaultValue: 'requested', + options: [ + { label: 'Angefragt', value: 'requested' }, + { label: 'Bestätigt', value: 'confirmed' }, + { label: 'Storniert', value: 'cancelled' }, + { label: 'Abgeschlossen', value: 'completed' }, + { label: 'Nicht erschienen', value: 'no-show' }, + ], + }, + { + name: 'expert', + type: 'relationship', + relationTo: 'experts', + }, + { + name: 'service', + type: 'relationship', + relationTo: 'services', + }, + { + name: 'site', + type: 'relationship', + relationTo: 'sites', + }, + { + name: 'tokens', + type: 'group', + admin: { condition: () => false }, // Hidden in admin + fields: [ + { name: 'confirmationToken', type: 'text' }, + { name: 'cancellationToken', type: 'text' }, + ], + }, + { + name: 'notes', + type: 'textarea', + maxLength: 1000, + }, + { + name: 'internalNotes', + type: 'textarea', + admin: { condition: ({ req: { user } }) => Boolean(user) }, + }, + { + name: 'patientConsent', + type: 'checkbox', + required: true, + }, + { + name: 'timestamps', + type: 'group', + admin: { readOnly: true }, + fields: [ + { name: 'requestedAt', type: 'date' }, + { name: 'confirmedAt', type: 'date' }, + { name: 'cancelledAt', type: 'date' }, + { name: 'completedAt', type: 'date' }, + ], + }, + ], + hooks: { + beforeChange: [ + async ({ data, operation }) => { + if (operation === 'create') { + data.timestamps = { requestedAt: new Date() }; + data.tokens = { + confirmationToken: crypto.randomUUID(), + cancellationToken: crypto.randomUUID(), + }; + } + return data; + }, + ], + afterChange: [ + async ({ doc, operation }) => { + if (operation === 'create') { + // Send confirmation email + await sendAppointmentConfirmationEmail(doc); + } + }, + ], + }, +}; +``` + +### 8.2 Beispiel: Page Collection mit Blocks + +```typescript +// /src/collections/Pages.ts +import { CollectionConfig } from 'payload/types'; +import { blocks } from '../blocks'; + +export const Pages: CollectionConfig = { + slug: 'pages', + admin: { + useAsTitle: 'title', + group: 'Content', + }, + versions: { + drafts: true, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + }, + { + name: 'slug', + type: 'text', + required: true, + unique: true, + admin: { + position: 'sidebar', + }, + hooks: { + beforeValidate: [({ value, data }) => + value || data?.title?.toLowerCase().replace(/\s+/g, '-') + ], + }, + }, + { + name: 'isSharedContent', + type: 'checkbox', + defaultValue: false, + admin: { position: 'sidebar' }, + }, + { + name: 'sections', + type: 'blocks', + blocks, + }, + { + name: 'sites', + type: 'relationship', + relationTo: 'sites', + hasMany: true, + admin: { position: 'sidebar' }, + }, + { + name: 'seo', + type: 'group', + fields: [ + { name: 'metaTitle', type: 'text', maxLength: 60 }, + { name: 'metaDescription', type: 'textarea', maxLength: 160 }, + { name: 'metaImage', type: 'upload', relationTo: 'media' }, + ], + }, + ], +}; +``` + +### 8.3 Beispiel: Hero Block + +```typescript +// /src/blocks/Hero.ts +import { Block } from 'payload/types'; + +export const HeroBlock: Block = { + slug: 'hero', + labels: { + singular: 'Hero', + plural: 'Heroes', + }, + fields: [ + { + name: 'title', + type: 'text', + }, + { + name: 'subtitle', + type: 'textarea', + }, + { + name: 'backgroundImage', + type: 'upload', + relationTo: 'media', + }, + { + name: 'alignment', + type: 'select', + defaultValue: 'center', + options: [ + { label: 'Links', value: 'left' }, + { label: 'Zentriert', value: 'center' }, + { label: 'Rechts', value: 'right' }, + ], + }, + { + name: 'buttons', + type: 'array', + fields: [ + { name: 'label', type: 'text', required: true }, + { name: 'url', type: 'text' }, + { + name: 'style', + type: 'select', + options: ['primary', 'secondary', 'outline'], + }, + { name: 'openInNewTab', type: 'checkbox' }, + ], + }, + ], +}; +``` + +--- + +## Anhang: Checkliste für Migration + +### Content-Types → Collections +- [ ] appointment → Appointments +- [ ] appointment-exception → AppointmentExceptions +- [ ] appointment-slot → AppointmentSlots +- [ ] blog-category → BlogCategories +- [ ] blog-post → BlogPosts +- [ ] contact-message → ContactMessages +- [ ] expert → Experts +- [ ] faq → FAQs +- [ ] faq-category → FAQCategories +- [ ] faq-feedback → FAQFeedback +- [ ] legal-page → LegalPages +- [ ] news-item → NewsItems +- [ ] page → Pages +- [ ] service → Services +- [ ] site-configuration → Sites +- [ ] waiting-list → WaitingList + +### Components → Blocks/Fields +- [ ] shared.seo → SEO Group Field +- [ ] elements.button → Button Array Field +- [ ] sections.hero → HeroBlock +- [ ] sections.text-block → TextBlock +- [ ] sections.cta-banner → CTABannerBlock +- [ ] sections.services-grid → ServicesGridBlock +- [ ] sections.team-grid → TeamGridBlock +- [ ] sections.testimonials → TestimonialsBlock +- [ ] sections.expert-grid → ExpertGridBlock +- [ ] sections.faq → FAQBlock +- [ ] sections.faq-reference → FAQReferenceBlock +- [ ] sections.blog-list → BlogListBlock +- [ ] sections.contact-form → ContactFormBlock +- [ ] site.theme → ThemeGroup +- [ ] site.contact → ContactGroup +- [ ] site.social-media → SocialMediaGroup +- [ ] site.analytics → AnalyticsGroup +- [ ] site.email-settings → EmailSettingsGroup +- [ ] appointment.appointment-settings → AppointmentSettingsGroup +- [ ] appointment.working-hours → WorkingHoursGroup +- [ ] appointment.email-templates → EmailTemplatesGroup + +### Custom API Logic → Hooks/Endpoints +- [ ] Appointment Availability Calculation +- [ ] Appointment Booking Flow +- [ ] Appointment Confirmation (Token-based) +- [ ] Appointment Cancellation +- [ ] Waiting List Processing +- [ ] Email Notifications +- [ ] Statistics Calculation +- [ ] CSV Export +- [ ] Contact Form Spam Protection +- [ ] Blog Related Posts + +### Plugins → Payload Äquivalente +- [ ] GraphQL Plugin +- [ ] SEO Plugin +- [ ] Nested Docs (Navigation) +- [ ] Rich Text Editor Configuration +- [ ] Caching Strategy +- [ ] Sitemap Generation + +--- + +*Dokument generiert am 2026-02-20* diff --git a/docs/zweitmeinung/screenshots/FAQ.jpeg b/docs/zweitmeinung/screenshots/FAQ.jpeg new file mode 100644 index 0000000..fde540c Binary files /dev/null and b/docs/zweitmeinung/screenshots/FAQ.jpeg differ diff --git a/docs/zweitmeinung/screenshots/Startseite.jpeg b/docs/zweitmeinung/screenshots/Startseite.jpeg new file mode 100644 index 0000000..b2ba2c1 Binary files /dev/null and b/docs/zweitmeinung/screenshots/Startseite.jpeg differ diff --git a/docs/zweitmeinung/screenshots/impressum.jpeg b/docs/zweitmeinung/screenshots/impressum.jpeg new file mode 100644 index 0000000..acb52cb Binary files /dev/null and b/docs/zweitmeinung/screenshots/impressum.jpeg differ diff --git a/docs/zweitmeinung/screenshots/intensivmedizin.jpeg b/docs/zweitmeinung/screenshots/intensivmedizin.jpeg new file mode 100644 index 0000000..f7e9cee Binary files /dev/null and b/docs/zweitmeinung/screenshots/intensivmedizin.jpeg differ diff --git a/docs/zweitmeinung/screenshots/kardiologie.jpeg b/docs/zweitmeinung/screenshots/kardiologie.jpeg new file mode 100644 index 0000000..4650b98 Binary files /dev/null and b/docs/zweitmeinung/screenshots/kardiologie.jpeg differ diff --git a/docs/zweitmeinung/screenshots/kontakt.jpeg b/docs/zweitmeinung/screenshots/kontakt.jpeg new file mode 100644 index 0000000..6787382 Binary files /dev/null and b/docs/zweitmeinung/screenshots/kontakt.jpeg differ diff --git a/docs/zweitmeinung/screenshots/motivation.jpeg b/docs/zweitmeinung/screenshots/motivation.jpeg new file mode 100644 index 0000000..ca5678d Binary files /dev/null and b/docs/zweitmeinung/screenshots/motivation.jpeg differ diff --git a/docs/zweitmeinung/screenshots/news.png b/docs/zweitmeinung/screenshots/news.png new file mode 100644 index 0000000..24d3e7c Binary files /dev/null and b/docs/zweitmeinung/screenshots/news.png differ diff --git a/docs/zweitmeinung/screenshots/onkologie.jpeg b/docs/zweitmeinung/screenshots/onkologie.jpeg new file mode 100644 index 0000000..d699a88 Binary files /dev/null and b/docs/zweitmeinung/screenshots/onkologie.jpeg differ diff --git a/docs/zweitmeinung/screenshots/ueberuns01.png b/docs/zweitmeinung/screenshots/ueberuns01.png new file mode 100644 index 0000000..b953f8a Binary files /dev/null and b/docs/zweitmeinung/screenshots/ueberuns01.png differ diff --git a/docs/zweitmeinung/screenshots/ueberuns02.png b/docs/zweitmeinung/screenshots/ueberuns02.png new file mode 100644 index 0000000..b3df18c Binary files /dev/null and b/docs/zweitmeinung/screenshots/ueberuns02.png differ diff --git a/docs/zweitmeinung/screenshots/ueberuns03.jpeg b/docs/zweitmeinung/screenshots/ueberuns03.jpeg new file mode 100644 index 0000000..d80b2b1 Binary files /dev/null and b/docs/zweitmeinung/screenshots/ueberuns03.jpeg differ diff --git a/docs/zweitmeinung/screenshots/ueberuns04.png b/docs/zweitmeinung/screenshots/ueberuns04.png new file mode 100644 index 0000000..f6e1f3a Binary files /dev/null and b/docs/zweitmeinung/screenshots/ueberuns04.png differ diff --git a/docs/zweitmeinung/screenshots/ueberuns05.png b/docs/zweitmeinung/screenshots/ueberuns05.png new file mode 100644 index 0000000..0d01fd0 Binary files /dev/null and b/docs/zweitmeinung/screenshots/ueberuns05.png differ diff --git a/docs/zweitmeinung/screenshots/warumunswaehlen.png b/docs/zweitmeinung/screenshots/warumunswaehlen.png new file mode 100644 index 0000000..aa9d5cc Binary files /dev/null and b/docs/zweitmeinung/screenshots/warumunswaehlen.png differ diff --git a/package.json b/package.json index afcdb9f..9e54a8e 100644 --- a/package.json +++ b/package.json @@ -27,61 +27,61 @@ "prepare": "test -d .git && (ln -sf ../../scripts/detect-secrets.sh .git/hooks/pre-commit 2>/dev/null || true) || true" }, "dependencies": { - "@anthropic-ai/sdk": "^0.71.2", + "@anthropic-ai/sdk": "^0.78.0", "@fullcalendar/core": "^6.1.20", "@fullcalendar/daygrid": "^6.1.20", "@fullcalendar/interaction": "^6.1.20", "@fullcalendar/list": "^6.1.20", "@fullcalendar/react": "^6.1.20", "@fullcalendar/timegrid": "^6.1.20", - "@payloadcms/db-postgres": "3.76.1", - "@payloadcms/next": "3.76.1", - "@payloadcms/plugin-form-builder": "3.76.1", - "@payloadcms/plugin-multi-tenant": "3.76.1", - "@payloadcms/plugin-nested-docs": "3.76.1", - "@payloadcms/plugin-redirects": "3.76.1", - "@payloadcms/plugin-seo": "3.76.1", - "@payloadcms/richtext-lexical": "3.76.1", - "@payloadcms/translations": "3.76.1", - "@payloadcms/ui": "3.76.1", - "@types/pdfkit": "^0.17.4", - "bullmq": "^5.65.1", - "cross-env": "^7.0.3", + "@payloadcms/db-postgres": "3.77.0", + "@payloadcms/next": "3.77.0", + "@payloadcms/plugin-form-builder": "3.77.0", + "@payloadcms/plugin-multi-tenant": "3.77.0", + "@payloadcms/plugin-nested-docs": "3.77.0", + "@payloadcms/plugin-redirects": "3.77.0", + "@payloadcms/plugin-seo": "3.77.0", + "@payloadcms/richtext-lexical": "3.77.0", + "@payloadcms/translations": "3.77.0", + "@payloadcms/ui": "3.77.0", + "@types/pdfkit": "^0.17.5", + "bullmq": "^5.70.1", + "cross-env": "^10.1.0", "date-fns": "^4.1.0", - "dotenv": "16.4.7", + "dotenv": "17.3.1", "exceljs": "^4.4.0", - "googleapis": "^170.0.0", - "ioredis": "^5.8.2", - "next": "16.2.0-canary.41", + "googleapis": "^171.4.0", + "ioredis": "^5.9.3", + "next": "16.2.0-canary.58", "node-cron": "^4.2.1", - "nodemailer": "^7.0.11", - "payload": "3.76.1", + "nodemailer": "^8.0.1", + "payload": "3.77.0", "payload-oapi": "^0.2.5", "pdfkit": "^0.17.2", - "react": "19.2.3", - "react-dom": "19.2.3", - "recharts": "^3.6.0", + "react": "19.2.4", + "react-dom": "19.2.4", + "recharts": "^3.7.0", "sharp": "0.34.5" }, "devDependencies": { - "@playwright/test": "1.57.0", - "@types/node": "^22.10.2", + "@playwright/test": "1.58.2", + "@types/node": "^25.3.0", "@types/node-cron": "^3.0.11", - "@types/nodemailer": "^7.0.4", - "@types/react": "19.2.7", + "@types/nodemailer": "^7.0.11", + "@types/react": "19.2.14", "@types/react-dom": "19.2.3", - "@vitejs/plugin-react": "4.5.2", - "@vitest/coverage-v8": "4.0.15", - "drizzle-kit": "^0.31.8", - "eslint": "^9.39.2", - "eslint-config-next": "16.2.0-canary.41", - "jsdom": "26.1.0", - "playwright": "1.57.0", - "prettier": "^3.7.4", + "@vitejs/plugin-react": "5.1.4", + "@vitest/coverage-v8": "4.0.18", + "drizzle-kit": "^0.31.9", + "eslint": "^9.39.3", + "eslint-config-next": "16.2.0-canary.58", + "jsdom": "28.1.0", + "playwright": "1.58.2", + "prettier": "^3.8.1", "tsx": "^4.21.0", "typescript": "5.9.3", - "vite-tsconfig-paths": "6.0.0", - "vitest": "4.0.15" + "vite-tsconfig-paths": "6.1.1", + "vitest": "4.0.18" }, "engines": { "node": ">=20.9.0", @@ -92,6 +92,12 @@ "sharp", "esbuild", "unrs-resolver" - ] + ], + "overrides": { + "minimatch": ">=10.2.1", + "esbuild": ">=0.25.0", + "ajv": ">=8.18.0", + "ioredis": "5.9.3" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d402bb4..55cd71e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,13 +4,19 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + minimatch: '>=10.2.1' + esbuild: '>=0.25.0' + ajv: '>=8.18.0' + ioredis: 5.9.3 + importers: .: dependencies: '@anthropic-ai/sdk': - specifier: ^0.71.2 - version: 0.71.2(zod@4.3.6) + specifier: ^0.78.0 + version: 0.78.0(zod@4.3.6) '@fullcalendar/core': specifier: ^6.1.20 version: 6.1.20 @@ -25,137 +31,137 @@ importers: version: 6.1.20(@fullcalendar/core@6.1.20) '@fullcalendar/react': specifier: ^6.1.20 - version: 6.1.20(@fullcalendar/core@6.1.20)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 6.1.20(@fullcalendar/core@6.1.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@fullcalendar/timegrid': specifier: ^6.1.20 version: 6.1.20(@fullcalendar/core@6.1.20) '@payloadcms/db-postgres': - specifier: 3.76.1 - version: 3.76.1(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3)) + specifier: 3.77.0 + version: 3.77.0(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)) '@payloadcms/next': - specifier: 3.76.1 - version: 3.76.1(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 3.77.0 + version: 3.77.0(@types/react@19.2.14)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@payloadcms/plugin-form-builder': - specifier: 3.76.1 - version: 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 3.77.0 + version: 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@payloadcms/plugin-multi-tenant': - specifier: 3.76.1 - version: 3.76.1(@payloadcms/ui@3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3)) + specifier: 3.77.0 + version: 3.77.0(@payloadcms/ui@3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)) '@payloadcms/plugin-nested-docs': - specifier: 3.76.1 - version: 3.76.1(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3)) + specifier: 3.77.0 + version: 3.77.0(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)) '@payloadcms/plugin-redirects': - specifier: 3.76.1 - version: 3.76.1(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3)) + specifier: 3.77.0 + version: 3.77.0(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)) '@payloadcms/plugin-seo': - specifier: 3.76.1 - version: 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 3.77.0 + version: 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@payloadcms/richtext-lexical': - specifier: 3.76.1 - version: 3.76.1(@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@payloadcms/next@3.76.1(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(yjs@13.6.27) + specifier: 3.77.0 + version: 3.77.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.77.0(@types/react@19.2.14)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.27) '@payloadcms/translations': - specifier: 3.76.1 - version: 3.76.1 + specifier: 3.77.0 + version: 3.77.0 '@payloadcms/ui': - specifier: 3.76.1 - version: 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + specifier: 3.77.0 + version: 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@types/pdfkit': - specifier: ^0.17.4 - version: 0.17.4 + specifier: ^0.17.5 + version: 0.17.5 bullmq: - specifier: ^5.65.1 - version: 5.65.1 + specifier: ^5.70.1 + version: 5.70.1 cross-env: - specifier: ^7.0.3 - version: 7.0.3 + specifier: ^10.1.0 + version: 10.1.0 date-fns: specifier: ^4.1.0 version: 4.1.0 dotenv: - specifier: 16.4.7 - version: 16.4.7 + specifier: 17.3.1 + version: 17.3.1 exceljs: specifier: ^4.4.0 version: 4.4.0 googleapis: - specifier: ^170.0.0 - version: 170.0.0 + specifier: ^171.4.0 + version: 171.4.0 ioredis: - specifier: ^5.8.2 - version: 5.8.2 + specifier: 5.9.3 + version: 5.9.3 next: - specifier: 16.2.0-canary.41 - version: 16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4) + specifier: 16.2.0-canary.58 + version: 16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) node-cron: specifier: ^4.2.1 version: 4.2.1 nodemailer: - specifier: ^7.0.11 - version: 7.0.11 + specifier: ^8.0.1 + version: 8.0.1 payload: - specifier: 3.76.1 - version: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + specifier: 3.77.0 + version: 3.77.0(graphql@16.12.0)(typescript@5.9.3) payload-oapi: specifier: ^0.2.5 - version: 0.2.5(@types/json-schema@7.0.15)(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3)) + version: 0.2.5(@types/json-schema@7.0.15)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)) pdfkit: specifier: ^0.17.2 version: 0.17.2 react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 19.2.4 + version: 19.2.4 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 19.2.4 + version: 19.2.4(react@19.2.4) recharts: - specifier: ^3.6.0 - version: 3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@16.13.1)(react@19.2.3)(redux@5.0.1) + specifier: ^3.7.0 + version: 3.7.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react-is@16.13.1)(react@19.2.4)(redux@5.0.1) sharp: specifier: 0.34.5 version: 0.34.5 devDependencies: '@playwright/test': - specifier: 1.57.0 - version: 1.57.0 + specifier: 1.58.2 + version: 1.58.2 '@types/node': - specifier: ^22.10.2 - version: 22.19.1 + specifier: ^25.3.0 + version: 25.3.0 '@types/node-cron': specifier: ^3.0.11 version: 3.0.11 '@types/nodemailer': - specifier: ^7.0.4 - version: 7.0.4 + specifier: ^7.0.11 + version: 7.0.11 '@types/react': - specifier: 19.2.7 - version: 19.2.7 + specifier: 19.2.14 + version: 19.2.14 '@types/react-dom': specifier: 19.2.3 - version: 19.2.3(@types/react@19.2.7) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': - specifier: 4.5.2 - version: 4.5.2(vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0)) + specifier: 5.1.4 + version: 5.1.4(vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0)) '@vitest/coverage-v8': - specifier: 4.0.15 - version: 4.0.15(vitest@4.0.15(@types/node@22.19.1)(jsdom@26.1.0)(sass@1.77.4)(tsx@4.21.0)) + specifier: 4.0.18 + version: 4.0.18(vitest@4.0.18(@types/node@25.3.0)(jsdom@28.1.0)(sass@1.77.4)(tsx@4.21.0)) drizzle-kit: - specifier: ^0.31.8 - version: 0.31.8 + specifier: ^0.31.9 + version: 0.31.9 eslint: - specifier: ^9.39.2 - version: 9.39.2 + specifier: ^9.39.3 + version: 9.39.3 eslint-config-next: - specifier: 16.2.0-canary.41 - version: 16.2.0-canary.41(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3) + specifier: 16.2.0-canary.58 + version: 16.2.0-canary.58(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3)(typescript@5.9.3) jsdom: - specifier: 26.1.0 - version: 26.1.0 + specifier: 28.1.0 + version: 28.1.0 playwright: - specifier: 1.57.0 - version: 1.57.0 + specifier: 1.58.2 + version: 1.58.2 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: ^3.8.1 + version: 3.8.1 tsx: specifier: ^4.21.0 version: 4.21.0 @@ -163,16 +169,19 @@ importers: specifier: 5.9.3 version: 5.9.3 vite-tsconfig-paths: - specifier: 6.0.0 - version: 6.0.0(typescript@5.9.3)(vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0)) + specifier: 6.1.1 + version: 6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0)) vitest: - specifier: 4.0.15 - version: 4.0.15(@types/node@22.19.1)(jsdom@26.1.0)(sass@1.77.4)(tsx@4.21.0) + specifier: 4.0.18 + version: 4.0.18(@types/node@25.3.0)(jsdom@28.1.0)(sass@1.77.4)(tsx@4.21.0) packages: - '@anthropic-ai/sdk@0.71.2': - resolution: {integrity: sha512-TGNDEUuEstk/DKu0/TflXAEt+p+p/WhTlFzEnoosvbaDU2LTjm42igSdlL0VijrKpWejtOKxX0b8A7uc+XiSAQ==} + '@acemir/cssom@0.9.31': + resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} + + '@anthropic-ai/sdk@0.78.0': + resolution: {integrity: sha512-PzQhR715td/m1UaaN5hHXjYB8Gl2lF9UVhrrGrZeysiF6Rb74Wc9GCB8hzLdzmQtBd1qe89F9OptgB9Za1Ib5w==} hasBin: true peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -184,170 +193,40 @@ packages: resolution: {integrity: sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==} engines: {node: '>= 16'} - '@apidevtools/json-schema-ref-parser@15.1.3': - resolution: {integrity: sha512-XvEitlOaU8S+hOrMPuGyCjp6vC51K+syUN4HHrSUdSDLLWRWQJYjInU6xlSoRGCVBCfcoHxbRm+yiaYq2yFR5w==} + '@apidevtools/json-schema-ref-parser@15.2.2': + resolution: {integrity: sha512-54fvjSwWiBTdVviiUItOCeyxtPSBmCrSEjlOl8XFEDuYD3lXY1lOBWKim/WJ3i1EYzdGx6rSOjK5KRDMppLI4Q==} engines: {node: '>=20'} peerDependencies: '@types/json-schema': ^7.0.15 - '@asamuzakjp/css-color@3.2.0': - resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + '@asamuzakjp/css-color@5.0.0': + resolution: {integrity: sha512-SYGMdSLugOBvpa6ciOp9DptcoyluCo0IJln5v47NtadGbSfkhvANzFozKNsuJ0A7ElOuXeIVQcPAd0TMQ1ZCkg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@aws-crypto/sha256-browser@5.2.0': - resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + '@asamuzakjp/dom-selector@6.8.1': + resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} - '@aws-crypto/sha256-js@5.2.0': - resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} - engines: {node: '>=16.0.0'} + '@asamuzakjp/nwsapi@2.3.9': + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@aws-crypto/supports-web-crypto@5.2.0': - resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} - - '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - - '@aws-sdk/client-sesv2@3.946.0': - resolution: {integrity: sha512-JYj3BPqgyRXgBjZ3Xvo4Abd+vLxcsHe4gb0TvwiSM/k7e6MRgBZoYwDOnwbNDs/62X1sn7MPHqqB3miuO4nR5g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/client-sso@3.946.0': - resolution: {integrity: sha512-kGAs5iIVyUz4p6TX3pzG5q3cNxXnVpC4pwRC6DCSaSv9ozyPjc2d74FsK4fZ+J+ejtvCdJk72uiuQtWJc86Wuw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/core@3.946.0': - resolution: {integrity: sha512-u2BkbLLVbMFrEiXrko2+S6ih5sUZPlbVyRPtXOqMHlCyzr70sE8kIiD6ba223rQeIFPcYfW/wHc6k4ihW2xxVg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-env@3.946.0': - resolution: {integrity: sha512-P4l+K6wX1tf8LmWUvZofdQ+BgCNyk6Tb9u1H10npvqpuCD+dCM4pXIBq3PQcv/juUBOvLGGREo+Govuh3lfD0Q==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-http@3.946.0': - resolution: {integrity: sha512-/zeOJ6E7dGZQ/l2k7KytEoPJX0APIhwt0A79hPf/bUpMF4dDs2P6JmchDrotk0a0Y/MIdNF8sBQ/MEOPnBiYoQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-ini@3.946.0': - resolution: {integrity: sha512-Pdgcra3RivWj/TuZmfFaHbqsvvgnSKO0CxlRUMMr0PgBiCnUhyl+zBktdNOeGsOPH2fUzQpYhcUjYUgVSdcSDQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-login@3.946.0': - resolution: {integrity: sha512-5iqLNc15u2Zx+7jOdQkIbP62N7n2031tw5hkmIG0DLnozhnk64osOh2CliiOE9x3c4P9Pf4frAwgyy9GzNTk2g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-node@3.946.0': - resolution: {integrity: sha512-I7URUqnBPng1a5y81OImxrwERysZqMBREG6svhhGeZgxmqcpAZ8z5ywILeQXdEOCuuES8phUp/ojzxFjPXp/eA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-process@3.946.0': - resolution: {integrity: sha512-GtGHX7OGqIeVQ3DlVm5RRF43Qmf3S1+PLJv9svrdvAhAdy2bUb044FdXXqrtSsIfpzTKlHgQUiRo5MWLd35Ntw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-sso@3.946.0': - resolution: {integrity: sha512-LeGSSt2V5iwYey1ENGY75RmoDP3bA2iE/py8QBKW8EDA8hn74XBLkprhrK5iccOvU3UGWY8WrEKFAFGNjJOL9g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.946.0': - resolution: {integrity: sha512-ocBCvjWfkbjxElBI1QUxOnHldsNhoU0uOICFvuRDAZAoxvypJHN3m5BJkqb7gqorBbcv3LRgmBdEnWXOAvq+7Q==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-host-header@3.936.0': - resolution: {integrity: sha512-tAaObaAnsP1XnLGndfkGWFuzrJYuk9W0b/nLvol66t8FZExIAf/WdkT2NNAWOYxljVs++oHnyHBCxIlaHrzSiw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-logger@3.936.0': - resolution: {integrity: sha512-aPSJ12d3a3Ea5nyEnLbijCaaYJT2QjQ9iW+zGh5QcZYXmOGWbKVyPSxmVOboZQG+c1M8t6d2O7tqrwzIq8L8qw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-recursion-detection@3.936.0': - resolution: {integrity: sha512-l4aGbHpXM45YNgXggIux1HgsCVAvvBoqHPkqLnqMl9QVapfuSTjJHfDYDsx1Xxct6/m7qSMUzanBALhiaGO2fA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-sdk-s3@3.946.0': - resolution: {integrity: sha512-0UTFmFd8PX2k/jLu/DBmR+mmLQWAtUGHYps9Rjx3dcXNwaMLaa/39NoV3qn7Dwzfpqc6JZlZzBk+NDOCJIHW9g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/middleware-user-agent@3.946.0': - resolution: {integrity: sha512-7QcljCraeaWQNuqmOoAyZs8KpZcuhPiqdeeKoRd397jVGNRehLFsZbIMOvwaluUDFY11oMyXOkQEERe1Zo2fCw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/nested-clients@3.946.0': - resolution: {integrity: sha512-rjAtEguukeW8mlyEQMQI56vxFoyWlaNwowmz1p1rav948SUjtrzjHAp4TOQWhibb7AR7BUTHBCgIcyCRjBEf4g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/region-config-resolver@3.936.0': - resolution: {integrity: sha512-wOKhzzWsshXGduxO4pqSiNyL9oUtk4BEvjWm9aaq6Hmfdoydq6v6t0rAGHWPjFwy9z2haovGRi3C8IxdMB4muw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/signature-v4-multi-region@3.946.0': - resolution: {integrity: sha512-61FZ685lKiJuQ06g6U7K3PL9EwKCxNm51wNlxyKV57nnl1GrLD0NC8O3/hDNkCQLNBArT9y3IXl2H7TtIxP8Jg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/token-providers@3.946.0': - resolution: {integrity: sha512-a5c+rM6CUPX2ExmUZ3DlbLlS5rQr4tbdoGcgBsjnAHiYx8MuMNAI+8M7wfjF13i2yvUQj5WEIddvLpayfEZj9g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/types@3.936.0': - resolution: {integrity: sha512-uz0/VlMd2pP5MepdrHizd+T+OKfyK4r3OA9JI+L/lPKg0YFQosdJNCKisr6o70E3dh8iMpFYxF1UN/4uZsyARg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-arn-parser@3.893.0': - resolution: {integrity: sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-endpoints@3.936.0': - resolution: {integrity: sha512-0Zx3Ntdpu+z9Wlm7JKUBOzS9EunwKAb4KdGUQQxDqh5Lc3ta5uBoub+FgmVuzwnmBu9U1Os8UuwVTH0Lgu+P5w==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-locate-window@3.893.0': - resolution: {integrity: sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-user-agent-browser@3.936.0': - resolution: {integrity: sha512-eZ/XF6NxMtu+iCma58GRNRxSq4lHo6zHQLOZRIeL/ghqYJirqHdenMOwrzPettj60KWlv827RVebP9oNVrwZbw==} - - '@aws-sdk/util-user-agent-node@3.946.0': - resolution: {integrity: sha512-a2UwwvzbK5AxHKUBupfg4s7VnkqRAHjYsuezHnKCniczmT4HZfP1NnfwwvLKEH8qaTrwenxjKSfq4UWmWkvG+Q==} - engines: {node: '>=18.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - - '@aws-sdk/xml-builder@3.930.0': - resolution: {integrity: sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA==} - engines: {node: '>=18.0.0'} - - '@aws/lambda-invoke-store@0.2.2': - resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} - engines: {node: '>=18.0.0'} - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/code-frame@7.28.6': - resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.5': - resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.5': - resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.5': - resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.6': - resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} '@babel/helper-globals@7.28.0': @@ -358,14 +237,14 @@ packages: resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': @@ -380,17 +259,12 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.28.6': - resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true @@ -406,36 +280,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.6': resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.5': - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.6': - resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.6': - resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': @@ -445,33 +303,40 @@ packages: '@borewit/text-codec@0.2.1': resolution: {integrity: sha512-k7vvKPbf7J2fZ5klGRD9AeKfUvojuZIQ3BT5u7Jfv+puwXkUBUT5PVyMDfJZpy30CBDXGMgw7fguK/lpOMBvgw==} - '@csstools/color-helpers@5.1.0': - resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} - engines: {node: '>=18'} + '@bramus/specificity@2.4.2': + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + hasBin: true - '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} - engines: {node: '>=18'} + '@csstools/color-helpers@6.0.2': + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + engines: {node: '>=20.19.0'} + + '@csstools/css-calc@3.1.1': + resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@3.1.0': - resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} - engines: {node: '>=18'} + '@csstools/css-color-parser@4.0.2': + resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} + '@csstools/css-parser-algorithms@4.0.0': + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} - engines: {node: '>=18'} + '@csstools/css-syntax-patches-for-csstree@1.0.28': + resolution: {integrity: sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==} + + '@csstools/css-tokenizer@4.0.0': + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + engines: {node: '>=20.19.0'} '@date-fns/tz@1.2.0': resolution: {integrity: sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==} @@ -507,11 +372,11 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@emnapi/core@1.7.1': - resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.7.1': - resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -557,6 +422,9 @@ packages: '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + '@epic-web/invariant@1.0.0': + resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} + '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} deprecated: 'Merged into tsx: https://tsx.is' @@ -577,12 +445,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -595,12 +457,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -613,12 +469,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -631,12 +481,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -649,12 +493,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -667,12 +505,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -685,12 +517,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -703,12 +529,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -721,12 +541,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -739,12 +553,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -757,12 +565,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -775,12 +577,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -793,12 +589,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -811,12 +601,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -829,12 +613,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -847,12 +625,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -877,12 +649,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -907,12 +673,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -937,12 +697,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -955,12 +709,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -973,12 +721,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -991,12 +733,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -1009,12 +745,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1041,8 +771,8 @@ packages: resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.39.2': - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + '@eslint/js@9.39.3': + resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.7': @@ -1053,6 +783,15 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@exodus/bytes@1.14.1': + resolution: {integrity: sha512-OhkBFWI6GcRMUroChZiopRiSp2iAMvEBK47NhJooDqz1RERO4QuZIZnjP63TXX8GAiLABkYmX+fuQsdJ1dd2QQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@noble/hashes': ^1.8.0 || ^2.0.0 + peerDependenciesMeta: + '@noble/hashes': + optional: true + '@faceless-ui/modal@3.0.0': resolution: {integrity: sha512-o3oEFsot99EQ8RJc1kL3s/nNMHX+y+WMXVzSSmca9L0l2MR6ez2QM1z1yIelJX93jqkLXQ9tW+R9tmsYa+O4Qg==} peerDependencies: @@ -1077,20 +816,20 @@ packages: '@fast-csv/parse@4.3.6': resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} - '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + '@floating-ui/core@1.7.4': + resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} - '@floating-ui/dom@1.7.4': - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + '@floating-ui/dom@1.7.5': + resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} - '@floating-ui/react-dom@2.1.6': - resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} + '@floating-ui/react-dom@2.1.7': + resolution: {integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react@0.27.16': - resolution: {integrity: sha512-9O8N4SeG2z++TSM8QA/KTeKFBVCNEz/AGS7gWPJf6KFRzmRWixFRnCnkPHRDwSVZW6QPDO6uT0P2SpWNKCc9/g==} + '@floating-ui/react@0.27.18': + resolution: {integrity: sha512-xJWJxvmy3a05j643gQt+pRbht5XnTlGpsEsAPnMi5F5YTOEEJymA90uZKBD8OvIv5XvZ1qi4GcccSlqT3Bq44Q==} peerDependencies: react: '>=17.0.0' react-dom: '>=17.0.0' @@ -1281,8 +1020,8 @@ packages: cpu: [x64] os: [win32] - '@ioredis/commands@1.4.0': - resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} + '@ioredis/commands@1.5.0': + resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -1424,59 +1163,59 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/env@15.5.9': - resolution: {integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==} + '@next/env@15.5.12': + resolution: {integrity: sha512-pUvdJN1on574wQHjaBfNGDt9Mz5utDSZFsIIQkMzPgNS8ZvT4H2mwOrOIClwsQOb6EGx5M76/CZr6G8i6pSpLg==} - '@next/env@16.2.0-canary.41': - resolution: {integrity: sha512-8uuZ2qgNvWhTIJ74PMdQmzGTnrGLFvuB1DpWcRPWvRfa3U3dovN17pj2vR+p9Ps3rZBMLwzMohGOinswzSWfaA==} + '@next/env@16.2.0-canary.58': + resolution: {integrity: sha512-B3+cHat+Z0pOFN6rObiYQG/9MG5ewIYUz1g6Opql1jYWATMxtLwpu8ZeUtCJ84HrhRFqK3MZNG77HwRYMNkDDw==} - '@next/eslint-plugin-next@16.2.0-canary.41': - resolution: {integrity: sha512-bS2nswuxr8QTkDeOj2wpbglTyJFNMcEGXZN03TvMimvmg247PeXLzq7pwe47H+QTiGA4AXL4s4eaaepvYnMMBw==} + '@next/eslint-plugin-next@16.2.0-canary.58': + resolution: {integrity: sha512-YVDf4uCEmEHqg9voFhTbHmpCU8jjtgxx9e+1AkTkH1/azdWUc89FQfDqRF6OrfByDlaBzK6jaqKNXAQIEKshhQ==} - '@next/swc-darwin-arm64@16.2.0-canary.41': - resolution: {integrity: sha512-4Qac/BGzeb/OnrOYI1A6/haz/nWO3JPS0AHKbOkHuJDbBnlBILonxIUgPoMsgVCyDag56Q6Y8XymK89Ew+TYFg==} + '@next/swc-darwin-arm64@16.2.0-canary.58': + resolution: {integrity: sha512-DFPfZwhe5hi9MtPjTld5DCMu0+9SPUxAGnYG2fq293tPIKptCuHUiwkW9Y0ayFiJMXypgj00tIL8v1SVt/oVyw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.0-canary.41': - resolution: {integrity: sha512-/XcxvYwZ6d2UH314HU9QJVH6cVUBq+mf1m0DTNEXt4X0eQA857P6XDEyB7y/EG0Cc/BkgZ9My5bF917va9uBPg==} + '@next/swc-darwin-x64@16.2.0-canary.58': + resolution: {integrity: sha512-CAxS7mCQvVwrrS6z/Mg/3E2Ob3mK2UBRG1lfWEa2bEhs3WwiUVra6pJBuvbt14etWf/1XUoeMvlOtjcA8dXZfg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.0-canary.41': - resolution: {integrity: sha512-0lgtQfJFHlJGFAxee0/gRtk7YZ2uuoxg8pmXRGq43DQv9M+AlsDLmZTDeTUwj9tjaI/dWwcVW59K+CWujUxAQg==} + '@next/swc-linux-arm64-gnu@16.2.0-canary.58': + resolution: {integrity: sha512-3OcrpI3XTW60Eex+uqrBTUVaMxxl7M56dgWjXK7pnQBcmLxItloHpOw+TFRuckZRmn2E/Wtmzjjqde1uPgSXPA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@16.2.0-canary.41': - resolution: {integrity: sha512-V6XA8Nz3IeeA7suNbdPUXHY9hKajCOgPCRZ4dz/yo8CBdG8yGQKO10vQZd4DsCxsMbvvme7JlRmYyz4tmZ1aHw==} + '@next/swc-linux-arm64-musl@16.2.0-canary.58': + resolution: {integrity: sha512-fVnlpIdhBz89sr5O48cwsbC+8Mv6tvAAeRvgw03DtkjpEroIl1Sat5QTvXT/p5P/IbbcgWb/sKvsWrTS76P20Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@16.2.0-canary.41': - resolution: {integrity: sha512-dYHFKaEJTAgNsXEDx3gBmbJb11wQvtzxVpMycVI34Hb1s4MXCcqJoTc7tJpJEWYNJxR4Q5T4fI03P21YzA8cwQ==} + '@next/swc-linux-x64-gnu@16.2.0-canary.58': + resolution: {integrity: sha512-jRKSp8jotY1s8viJq2OtlretSnYeU3N/brFIAgRo887ZIxt7gk/AJgmKzlJW/rVCiWEQwj7E17entjDgNZHQFg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@16.2.0-canary.41': - resolution: {integrity: sha512-qvPaohNhbRuoNJ3bahxffFgWphWGlAg6s5PYXK2XSTzWKpocn4zVQxBjHNSkr5PWDLpiPKBpwz3lJcD9WcUHWw==} + '@next/swc-linux-x64-musl@16.2.0-canary.58': + resolution: {integrity: sha512-OLtsFsyF8sAXypARaNZJ0IVfyAfhxiH4M4uHRR1QG+W9TbjQ1+12UE0W+6ZdXeOnqCz54enphW9yoFXDBT8vTg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@16.2.0-canary.41': - resolution: {integrity: sha512-nbOYWH6rUeiKx77D+yyo6XAVE7Y9x5//XPgyPqO5drhUsf22mZRymqar1Ij6lFfO+LD3NdZRNDRBpSMu84wNkQ==} + '@next/swc-win32-arm64-msvc@16.2.0-canary.58': + resolution: {integrity: sha512-IwqbpA1XMMKhH1vASBSItMmvIqqyIsy/h1gqxjlsF664vQdK9XXSeoGsGzpqwXggGShaiPqeB9k9VlVq5IsKvQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.0-canary.41': - resolution: {integrity: sha512-GNxHp0byV0KS7jnnW71LnuVH7XcwiLNnjVAh1TjDtr6T0o+fDW65+A3GYLLW4zr2o1uosYDAB7EQRWaJ4H0GyQ==} + '@next/swc-win32-x64-msvc@16.2.0-canary.58': + resolution: {integrity: sha512-f7EbASdbWfFDh1O7vlTJszu7eu0uODdL6cxBh8p0UNEhmJG36NdpkHLmj0JrHA+nkZclMmHJdoiN9SVWLbbzWg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1497,88 +1236,88 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@openapi-contrib/json-schema-to-openapi-schema@4.3.0': - resolution: {integrity: sha512-LtGP3j8cvO87R8zUdZ5ZSN9XhLm6a8m47qQ3kbzQNlzQDwAtUQhtw2DRdhdz0Xr9dTcOuTEdI9xQNLaVI7LP1A==} + '@openapi-contrib/json-schema-to-openapi-schema@4.3.1': + resolution: {integrity: sha512-u4tmT1g+XyBCI6yNR4uU7RIP6N6ohWy7lQAL5wQxgob3T4N0iqjv8hje9B41pNG4nzgk3ehyqsPK9uQvABJvUA==} engines: {node: '>=18'} hasBin: true peerDependencies: openapi-types: '*' - '@payloadcms/db-postgres@3.76.1': - resolution: {integrity: sha512-IDsH9du56GS/7UjGqDieBvZTdYFZOhTfeXVkcvFEmRuqEQxDx8yV6/TgLx1WUhY9PMYlwyn3qrRofJxN7zTbOA==} + '@payloadcms/db-postgres@3.77.0': + resolution: {integrity: sha512-/UO5fWMrIZZ5FSlQsDu39I8GYMPcEFUUqQ7qdixJj1iqJPlikNW9vETJy5WNhBHEDYriGYO6KogFjOqbTHuizw==} peerDependencies: - payload: 3.76.1 + payload: 3.77.0 - '@payloadcms/drizzle@3.76.1': - resolution: {integrity: sha512-nv66WckR9ykU8AnUxxHgbsGJPqG1/PUW1RWvyLlIVX9F0fWGHPRhp3P3fjmKTWe/W2SY458nPjejRArVXNZkbw==} + '@payloadcms/drizzle@3.77.0': + resolution: {integrity: sha512-GhcTK7Hp6alDUukCI4C10xX646+9A+24iSnoefIFIWo7F8cApax5ITuUqcYtNTbP2q9Kpu8uFTJ7uddSlEnw3w==} peerDependencies: - payload: 3.76.1 + payload: 3.77.0 - '@payloadcms/graphql@3.76.1': - resolution: {integrity: sha512-zd3IrnHQ1dPYcuZooStIEz8+JgXPweAvKhG7HtPbbCvbbRDu/PoRDgzX29CtuToUZB6H/yrX8gmsjFlgiqCuWQ==} + '@payloadcms/graphql@3.77.0': + resolution: {integrity: sha512-OcJxsf16u38mvgWLawGrGoN4pFlu34vE6gANYAL1TYapiHgO7NerVwMrg3GQHlriSlaI/K9naLbhXdLp8R/nYw==} hasBin: true peerDependencies: graphql: ^16.8.1 - payload: 3.76.1 + payload: 3.77.0 - '@payloadcms/next@3.76.1': - resolution: {integrity: sha512-0d5Irrhr632OToX8hKRqDBZJN/2w9xbJJXcZnGZ73YB67Srcb/UYcdNjItahmCbA9APKqlmK2zihgVoQ5NN2wA==} + '@payloadcms/next@3.77.0': + resolution: {integrity: sha512-6MvRjNdjMTJYoulNXT2XJJbFvzMKT7m1NV7c+l8rMqRc8HeIdi2zSGXuNdFAOFp03cgG5q9U+lrrgh4tll/pjA==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: graphql: ^16.8.1 next: '>=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.0-canary.10 <17.0.0' - payload: 3.76.1 + payload: 3.77.0 - '@payloadcms/plugin-form-builder@3.76.1': - resolution: {integrity: sha512-QNuDfzCm5e/3tpKGNXsIU4B68RsRg7yaC4ossGaKDXW9k08joXPT853qkD/NCvSMbIHXQOA2wb10n693DSUW7Q==} + '@payloadcms/plugin-form-builder@3.77.0': + resolution: {integrity: sha512-E/BKr6tsHUPKPsUKhQsDXaVH/4FCoo4Efwh/q562G6Savgt1nbMemv9LHXIJKSNvwES2POZ+IF1jp/Q2Wuc7yQ==} peerDependencies: - payload: 3.76.1 + payload: 3.77.0 react: ^19.0.1 || ^19.1.2 || ^19.2.1 react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1 - '@payloadcms/plugin-multi-tenant@3.76.1': - resolution: {integrity: sha512-KpA7SUFWrUUCpl/hXdUiS9t4M7FyhLxp2urLLRxrVmfL6joajUgO+lA5mHN6ZV8TfBujgjLFkoV7QkZ8dzXbYQ==} + '@payloadcms/plugin-multi-tenant@3.77.0': + resolution: {integrity: sha512-EQuG/O3xsrN5yyGq2AfErrK/1KKkTXKnBzMq2l60Yl1xVAw5FkjVa+SC+pJJtrvNSBOHQxTy6vsHANPghiu7kw==} peerDependencies: - '@payloadcms/ui': 3.76.1 - payload: 3.76.1 + '@payloadcms/ui': 3.77.0 + payload: 3.77.0 - '@payloadcms/plugin-nested-docs@3.76.1': - resolution: {integrity: sha512-NON+sSq54q42XghhvU73oxdZLOzuZI0SFnVZPtxZVxs9/JYRPWLN0oSezRgGIk5Ak8pJR2jacuSe61Hz8fUVqQ==} + '@payloadcms/plugin-nested-docs@3.77.0': + resolution: {integrity: sha512-PaRnGgs3ehHrd71+u+P+c/ipMuYbG2grc6rALlvEaSpIN1N4s6w5Izbkb0G2H6lcbLfOb6+JQlskXJLjyXu+Kw==} peerDependencies: - payload: 3.76.1 + payload: 3.77.0 - '@payloadcms/plugin-redirects@3.76.1': - resolution: {integrity: sha512-0eXlM/l0hEFE03D9/sDHEjc7kv3YuHTsGg4+79qqM8UJF3w7hg3rzRgJVAgz+gPxv28augAHZBDmNNlX/7b/VA==} + '@payloadcms/plugin-redirects@3.77.0': + resolution: {integrity: sha512-VoAYDvIyKGUtqTxaXnmhump1p34B4TG97SsP3o65oLxHtoZbQ66wuA4FtZZlYnna5OVahhnUXBr9o/L9Ijo+4g==} peerDependencies: - payload: 3.76.1 + payload: 3.77.0 - '@payloadcms/plugin-seo@3.76.1': - resolution: {integrity: sha512-2bHTc9HKx96YsIXpvtvbbx+xDacvIfoWxSge0Pp2wsrxbAzk41JLWeFEPk+7tYDKMRJX0cGRfaER50ICQX183Q==} + '@payloadcms/plugin-seo@3.77.0': + resolution: {integrity: sha512-YYSTdHTccQKRkHrQX4Nq2Ltjqo7UIkMCAOMW3rLsQ+f6/Fp1l23ZaMxaxrtb8tmiY99fg/NGRpTW7dc9/v+s0Q==} peerDependencies: - payload: 3.76.1 + payload: 3.77.0 react: ^19.0.1 || ^19.1.2 || ^19.2.1 react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1 - '@payloadcms/richtext-lexical@3.76.1': - resolution: {integrity: sha512-jtP6oqm+K7N7IjKz+BjzbQi7RSRRXE0+W1nwgQN0lOlVLoKtJuJCLO5Db78bSfebKuT92Gxisvbdx6doKoGDNg==} + '@payloadcms/richtext-lexical@3.77.0': + resolution: {integrity: sha512-hDTAHMRvuEzI1csL4tCw4HK2r7ybYsoQH9enhPXFehfL2uOHIYManqwuBPLxmCpIM7/ia/cF8RXUODvHF+pAgA==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: '@faceless-ui/modal': 3.0.0 '@faceless-ui/scroll-info': 2.0.0 - '@payloadcms/next': 3.76.1 - payload: 3.76.1 + '@payloadcms/next': 3.77.0 + payload: 3.77.0 react: ^19.0.1 || ^19.1.2 || ^19.2.1 react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1 - '@payloadcms/translations@3.76.1': - resolution: {integrity: sha512-oNELMK5ZubeRk+/b3SVru+zbksDMfVbf8Fq03rHxiBeAsS/bPvzpV/oZc+M2HavVVq0meaILinryC1hvE21ukA==} + '@payloadcms/translations@3.77.0': + resolution: {integrity: sha512-vDlliIsB7JJqBKuL/YKnzSPfrgfkROudVohJQcP5wBCJBIAtcPqBAKmGlGf4nfUwexN7brixmg2uV2L1B0DKrQ==} - '@payloadcms/ui@3.76.1': - resolution: {integrity: sha512-v1J6DmcGOEZ6CbdfsOUwlM10nUhbqe8ZnlKZ84V/kHefIouIvujJd33zN8K+XWqG1+RmESQ3Z6wPc4PXIM0k+Q==} + '@payloadcms/ui@3.77.0': + resolution: {integrity: sha512-CCgsehZEyLgS9Njb1NT78ERIW2lC0VEtITaFIa7MBtzGBQ0Uzmk0T7ycE8qbdqz280gNJsPTIocQ9rc237Yy1w==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: next: '>=15.2.9 <15.3.0 || >=15.3.9 <15.4.0 || >=15.4.11 <15.5.0 || >=16.2.0-canary.10 <17.0.0' - payload: 3.76.1 + payload: 3.77.0 react: ^19.0.1 || ^19.1.2 || ^19.2.1 react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1 @@ -1589,8 +1328,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.57.0': - resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} + '@playwright/test@1.58.2': + resolution: {integrity: sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==} engines: {node: '>=18'} hasBin: true @@ -1605,296 +1344,139 @@ packages: react-redux: optional: true - '@rolldown/pluginutils@1.0.0-beta.11': - resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==} + '@rolldown/pluginutils@1.0.0-rc.3': + resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} - '@rollup/rollup-android-arm-eabi@4.53.3': - resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==} + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.53.3': - resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==} + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.53.3': - resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==} + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.53.3': - resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==} + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.53.3': - resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==} + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.53.3': - resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==} + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.53.3': - resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==} + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.53.3': - resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==} + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.53.3': - resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==} + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.53.3': - resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==} + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.53.3': - resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==} + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.53.3': - resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==} + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.53.3': - resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==} + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.53.3': - resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==} + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.53.3': - resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==} + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.53.3': - resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==} + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.53.3': - resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==} + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.53.3': - resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==} + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.53.3': - resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==} + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.53.3': - resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==} + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.53.3': - resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==} + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.53.3': - resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==} + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} cpu: [x64] os: [win32] '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@smithy/abort-controller@4.2.5': - resolution: {integrity: sha512-j7HwVkBw68YW8UmFRcjZOmssE77Rvk0GWAIN1oFBhsaovQmZWYCIcGa9/pwRB0ExI8Sk9MWNALTjftjHZea7VA==} - engines: {node: '>=18.0.0'} - - '@smithy/config-resolver@4.4.3': - resolution: {integrity: sha512-ezHLe1tKLUxDJo2LHtDuEDyWXolw8WGOR92qb4bQdWq/zKenO5BvctZGrVJBK08zjezSk7bmbKFOXIVyChvDLw==} - engines: {node: '>=18.0.0'} - - '@smithy/core@3.18.7': - resolution: {integrity: sha512-axG9MvKhMWOhFbvf5y2DuyTxQueO0dkedY9QC3mAfndLosRI/9LJv8WaL0mw7ubNhsO4IuXX9/9dYGPFvHrqlw==} - engines: {node: '>=18.0.0'} - - '@smithy/credential-provider-imds@4.2.5': - resolution: {integrity: sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ==} - engines: {node: '>=18.0.0'} - - '@smithy/fetch-http-handler@5.3.6': - resolution: {integrity: sha512-3+RG3EA6BBJ/ofZUeTFJA7mHfSYrZtQIrDP9dI8Lf7X6Jbos2jptuLrAAteDiFVrmbEmLSuRG/bUKzfAXk7dhg==} - engines: {node: '>=18.0.0'} - - '@smithy/hash-node@4.2.5': - resolution: {integrity: sha512-DpYX914YOfA3UDT9CN1BM787PcHfWRBB43fFGCYrZFUH0Jv+5t8yYl+Pd5PW4+QzoGEDvn5d5QIO4j2HyYZQSA==} - engines: {node: '>=18.0.0'} - - '@smithy/invalid-dependency@4.2.5': - resolution: {integrity: sha512-2L2erASEro1WC5nV+plwIMxrTXpvpfzl4e+Nre6vBVRR2HKeGGcvpJyyL3/PpiSg+cJG2KpTmZmq934Olb6e5A==} - engines: {node: '>=18.0.0'} - - '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} - - '@smithy/is-array-buffer@4.2.0': - resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-content-length@4.2.5': - resolution: {integrity: sha512-Y/RabVa5vbl5FuHYV2vUCwvh/dqzrEY/K2yWPSqvhFUwIY0atLqO4TienjBXakoy4zrKAMCZwg+YEqmH7jaN7A==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-endpoint@4.3.14': - resolution: {integrity: sha512-v0q4uTKgBM8dsqGjqsabZQyH85nFaTnFcgpWU1uydKFsdyyMzfvOkNum9G7VK+dOP01vUnoZxIeRiJ6uD0kjIg==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-retry@4.4.14': - resolution: {integrity: sha512-Z2DG8Ej7FyWG1UA+7HceINtSLzswUgs2np3sZX0YBBxCt+CXG4QUxv88ZDS3+2/1ldW7LqtSY1UO/6VQ1pND8Q==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-serde@4.2.6': - resolution: {integrity: sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ==} - engines: {node: '>=18.0.0'} - - '@smithy/middleware-stack@4.2.5': - resolution: {integrity: sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ==} - engines: {node: '>=18.0.0'} - - '@smithy/node-config-provider@4.3.5': - resolution: {integrity: sha512-UTurh1C4qkVCtqggI36DGbLB2Kv8UlcFdMXDcWMbqVY2uRg0XmT9Pb4Vj6oSQ34eizO1fvR0RnFV4Axw4IrrAg==} - engines: {node: '>=18.0.0'} - - '@smithy/node-http-handler@4.4.5': - resolution: {integrity: sha512-CMnzM9R2WqlqXQGtIlsHMEZfXKJVTIrqCNoSd/QpAyp+Dw0a1Vps13l6ma1fH8g7zSPNsA59B/kWgeylFuA/lw==} - engines: {node: '>=18.0.0'} - - '@smithy/property-provider@4.2.5': - resolution: {integrity: sha512-8iLN1XSE1rl4MuxvQ+5OSk/Zb5El7NJZ1td6Tn+8dQQHIjp59Lwl6bd0+nzw6SKm2wSSriH2v/I9LPzUic7EOg==} - engines: {node: '>=18.0.0'} - - '@smithy/protocol-http@5.3.5': - resolution: {integrity: sha512-RlaL+sA0LNMp03bf7XPbFmT5gN+w3besXSWMkA8rcmxLSVfiEXElQi4O2IWwPfxzcHkxqrwBFMbngB8yx/RvaQ==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-builder@4.2.5': - resolution: {integrity: sha512-y98otMI1saoajeik2kLfGyRp11e5U/iJYH/wLCh3aTV/XutbGT9nziKGkgCaMD1ghK7p6htHMm6b6scl9JRUWg==} - engines: {node: '>=18.0.0'} - - '@smithy/querystring-parser@4.2.5': - resolution: {integrity: sha512-031WCTdPYgiQRYNPXznHXof2YM0GwL6SeaSyTH/P72M1Vz73TvCNH2Nq8Iu2IEPq9QP2yx0/nrw5YmSeAi/AjQ==} - engines: {node: '>=18.0.0'} - - '@smithy/service-error-classification@4.2.5': - resolution: {integrity: sha512-8fEvK+WPE3wUAcDvqDQG1Vk3ANLR8Px979te96m84CbKAjBVf25rPYSzb4xU4hlTyho7VhOGnh5i62D/JVF0JQ==} - engines: {node: '>=18.0.0'} - - '@smithy/shared-ini-file-loader@4.4.0': - resolution: {integrity: sha512-5WmZ5+kJgJDjwXXIzr1vDTG+RhF9wzSODQBfkrQ2VVkYALKGvZX1lgVSxEkgicSAFnFhPj5rudJV0zoinqS0bA==} - engines: {node: '>=18.0.0'} - - '@smithy/signature-v4@5.3.5': - resolution: {integrity: sha512-xSUfMu1FT7ccfSXkoLl/QRQBi2rOvi3tiBZU2Tdy3I6cgvZ6SEi9QNey+lqps/sJRnogIS+lq+B1gxxbra2a/w==} - engines: {node: '>=18.0.0'} - - '@smithy/smithy-client@4.9.10': - resolution: {integrity: sha512-Jaoz4Jw1QYHc1EFww/E6gVtNjhoDU+gwRKqXP6C3LKYqqH2UQhP8tMP3+t/ePrhaze7fhLE8vS2q6vVxBANFTQ==} - engines: {node: '>=18.0.0'} - - '@smithy/types@4.9.0': - resolution: {integrity: sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA==} - engines: {node: '>=18.0.0'} - - '@smithy/url-parser@4.2.5': - resolution: {integrity: sha512-VaxMGsilqFnK1CeBX+LXnSuaMx4sTL/6znSZh2829txWieazdVxr54HmiyTsIbpOTLcf5nYpq9lpzmwRdxj6rQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-base64@4.3.0': - resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-browser@4.2.0': - resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-body-length-node@4.2.1': - resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} - - '@smithy/util-buffer-from@4.2.0': - resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==} - engines: {node: '>=18.0.0'} - - '@smithy/util-config-provider@4.2.0': - resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-browser@4.3.13': - resolution: {integrity: sha512-hlVLdAGrVfyNei+pKIgqDTxfu/ZI2NSyqj4IDxKd5bIsIqwR/dSlkxlPaYxFiIaDVrBy0he8orsFy+Cz119XvA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-defaults-mode-node@4.2.16': - resolution: {integrity: sha512-F1t22IUiJLHrxW9W1CQ6B9PN+skZ9cqSuzB18Eh06HrJPbjsyZ7ZHecAKw80DQtyGTRcVfeukKaCRYebFwclbg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-endpoints@3.2.5': - resolution: {integrity: sha512-3O63AAWu2cSNQZp+ayl9I3NapW1p1rR5mlVHcF6hAB1dPZUQFfRPYtplWX/3xrzWthPGj5FqB12taJJCfH6s8A==} - engines: {node: '>=18.0.0'} - - '@smithy/util-hex-encoding@4.2.0': - resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==} - engines: {node: '>=18.0.0'} - - '@smithy/util-middleware@4.2.5': - resolution: {integrity: sha512-6Y3+rvBF7+PZOc40ybeZMcGln6xJGVeY60E7jy9Mv5iKpMJpHgRE6dKy9ScsVxvfAYuEX4Q9a65DQX90KaQ3bA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-retry@4.2.5': - resolution: {integrity: sha512-GBj3+EZBbN4NAqJ/7pAhsXdfzdlznOh8PydUijy6FpNIMnHPSMO2/rP4HKu+UFeikJxShERk528oy7GT79YiJg==} - engines: {node: '>=18.0.0'} - - '@smithy/util-stream@4.5.6': - resolution: {integrity: sha512-qWw/UM59TiaFrPevefOZ8CNBKbYEP6wBAIlLqxn3VAIo9rgnTNc4ASbVrqDmhuwI87usnjhdQrxodzAGFFzbRQ==} - engines: {node: '>=18.0.0'} - - '@smithy/util-uri-escape@4.2.0': - resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==} - engines: {node: '>=18.0.0'} - - '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} - - '@smithy/util-utf8@4.2.0': - resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==} - engines: {node: '>=18.0.0'} - - '@smithy/uuid@1.1.0': - resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==} - engines: {node: '>=18.0.0'} - - '@standard-schema/spec@1.0.0': - resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} @@ -1902,6 +1484,9 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.18': + resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} + '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -1992,17 +1577,20 @@ packages: '@types/node@14.18.63': resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} - '@types/node@22.19.1': - resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} + '@types/node@22.19.11': + resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==} - '@types/nodemailer@7.0.4': - resolution: {integrity: sha512-ee8fxWqOchH+Hv6MDDNNy028kwvVnLplrStm4Zf/3uHWw5zzo8FoYYeffpJtGs2wWysEumMH0ZIdMGMY1eMAow==} + '@types/node@25.3.0': + resolution: {integrity: sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==} + + '@types/nodemailer@7.0.11': + resolution: {integrity: sha512-E+U4RzR2dKrx+u3N4DlsmLaDC6mMZOM/TPROxA0UAPiTgI0y4CEFBmZE+coGWTjakDriRsXG368lNk1u9Q0a2g==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/pdfkit@0.17.4': - resolution: {integrity: sha512-odAmVuuguRxKh1X4pbMrJMp8ecwNqHRw6lweupvzK+wuyNmi6wzlUlGVZ9EqMvp3Bs2+L9Ty0sRlrvKL+gsQZg==} + '@types/pdfkit@0.17.5': + resolution: {integrity: sha512-T3ZHnvF91HsEco5ClhBCOuBwobZfPcI2jaiSHybkkKYq4KhVIIurod94JVKvDIG0JXT6o3KiERC0X0//m8dyrg==} '@types/pg@8.10.2': resolution: {integrity: sha512-MKFs9P6nJ+LAeHLU3V0cODEOgyThJ3OAnmOlsZsxux6sfQs3HRXR5bBn7xG5DjckEFhTAxsXi7k7cd0pCMxpJw==} @@ -2017,8 +1605,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.2.7': - resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -2035,63 +1623,63 @@ packages: '@types/uuid@10.0.0': resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@typescript-eslint/eslint-plugin@8.55.0': - resolution: {integrity: sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==} + '@typescript-eslint/eslint-plugin@8.56.0': + resolution: {integrity: sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.55.0 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/parser': ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.55.0': - resolution: {integrity: sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==} + '@typescript-eslint/parser@8.56.0': + resolution: {integrity: sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.55.0': - resolution: {integrity: sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==} + '@typescript-eslint/project-service@8.56.0': + resolution: {integrity: sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.55.0': - resolution: {integrity: sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==} + '@typescript-eslint/scope-manager@8.56.0': + resolution: {integrity: sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.55.0': - resolution: {integrity: sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==} + '@typescript-eslint/tsconfig-utils@8.56.0': + resolution: {integrity: sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.55.0': - resolution: {integrity: sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==} + '@typescript-eslint/type-utils@8.56.0': + resolution: {integrity: sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.55.0': - resolution: {integrity: sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==} + '@typescript-eslint/types@8.56.0': + resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.55.0': - resolution: {integrity: sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==} + '@typescript-eslint/typescript-estree@8.56.0': + resolution: {integrity: sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.55.0': - resolution: {integrity: sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==} + '@typescript-eslint/utils@8.56.0': + resolution: {integrity: sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.55.0': - resolution: {integrity: sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==} + '@typescript-eslint/visitor-keys@8.56.0': + resolution: {integrity: sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -2189,26 +1777,26 @@ packages: cpu: [x64] os: [win32] - '@vitejs/plugin-react@4.5.2': - resolution: {integrity: sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==} - engines: {node: ^14.18.0 || >=16.0.0} + '@vitejs/plugin-react@5.1.4': + resolution: {integrity: sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==} + engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vitest/coverage-v8@4.0.15': - resolution: {integrity: sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==} + '@vitest/coverage-v8@4.0.18': + resolution: {integrity: sha512-7i+N2i0+ME+2JFZhfuz7Tg/FqKtilHjGyGvoHYQ6iLV0zahbsJ9sljC9OcFcPDbhYKCet+sG8SsVqlyGvPflZg==} peerDependencies: - '@vitest/browser': 4.0.15 - vitest: 4.0.15 + '@vitest/browser': 4.0.18 + vitest: 4.0.18 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.0.15': - resolution: {integrity: sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==} + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} - '@vitest/mocker@4.0.15': - resolution: {integrity: sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==} + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0-0 @@ -2218,20 +1806,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.0.15': - resolution: {integrity: sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==} + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} - '@vitest/runner@4.0.15': - resolution: {integrity: sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==} + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} - '@vitest/snapshot@4.0.15': - resolution: {integrity: sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==} + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} - '@vitest/spy@4.0.15': - resolution: {integrity: sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==} + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} - '@vitest/utils@4.0.15': - resolution: {integrity: sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==} + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -2243,8 +1831,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true @@ -2252,11 +1840,8 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -2336,8 +1921,8 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - ast-v8-to-istanbul@0.3.8: - resolution: {integrity: sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==} + ast-v8-to-istanbul@0.3.11: + resolution: {integrity: sha512-Qya9fkoofMjCBNVdWINMjB5KZvkYfaO9/anwkWnjxibpWUxo5iHl2sOdP7/uAqaRuUYuoo8rDwnbaaKVFxoUvw==} async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} @@ -2354,8 +1939,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.11.0: - resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} + axe-core@4.11.1: + resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} axobject-query@4.1.0: @@ -2366,8 +1951,9 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.3: + resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} + engines: {node: 20 || >=22} base64-js@0.0.8: resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} @@ -2376,13 +1962,13 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.31: - resolution: {integrity: sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==} + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} hasBin: true - baseline-browser-mapping@2.9.19: - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} - hasBin: true + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} @@ -2407,14 +1993,9 @@ packages: body-scroll-lock@4.0.0-beta.0: resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - bowser@2.13.1: - resolution: {integrity: sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.2: + resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} + engines: {node: 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -2423,8 +2004,8 @@ packages: brotli@1.3.3: resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - browserslist@4.28.0: - resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2451,8 +2032,8 @@ packages: resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} engines: {node: '>=0.2.0'} - bullmq@5.65.1: - resolution: {integrity: sha512-QgDAzX1G9L5IRy4Orva5CfQTXZT+5K+OfO/kbPrAqN+pmL9LJekCzxijXehlm/u2eXfWPfWvIdJJIqiuz3WJSg==} + bullmq@5.70.1: + resolution: {integrity: sha512-HjfGHfICkAClrFL0Y07qNbWcmiOCv1l+nusupXUjrvTPuDEyPEJ23MP0lUwUs/QEy1a3pWt/P/sCsSZ1RjRK+w==} busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} @@ -2474,14 +2055,14 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001760: - resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==} + caniuse-lite@1.0.30001772: + resolution: {integrity: sha512-mIwLZICj+ntVTw4BT2zfp+yu/AqV6GMKfJVJMx3MwPxs+uk/uj2GLl2dH8LQbjiLDX66amCga5nKFyDgRR43kg==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@6.2.1: - resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} chainsaw@0.1.0: @@ -2510,8 +2091,8 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - ci-info@4.3.1: - resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} client-only@0.0.1: @@ -2550,9 +2131,6 @@ packages: resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} engines: {node: '>= 10'} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - console-table-printer@2.12.1: resolution: {integrity: sha512-wKGOQRRvdnd89pCeH96e2Fn4wkbenSP6LMHfjfyNLMbGuHEFbMqQNuxXqd0oXG9caIOQ1FTvc5Uijp9/4jujnQ==} @@ -2586,9 +2164,9 @@ packages: resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} engines: {node: '>=18.0'} - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} + engines: {node: '>=20'} hasBin: true cross-spawn@7.0.6: @@ -2601,12 +2179,16 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + cssfilter@0.0.10: resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} - cssstyle@4.6.0: - resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} - engines: {node: '>=18'} + cssstyle@6.1.0: + resolution: {integrity: sha512-Ml4fP2UT2K3CUBQnVlbdV/8aFDdlY69E+YnwJM+3VUWl08S3J8c8aRuJqCkD9Py8DHZ7zNNvsfKl8psocHZEFg==} + engines: {node: '>=20'} csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2665,9 +2247,9 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + data-urls@7.0.0: + resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} @@ -2719,8 +2301,8 @@ packages: decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2765,16 +2347,16 @@ packages: dompurify@3.2.7: resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} - dotenv@16.4.7: - resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + dotenv@17.3.1: + resolution: {integrity: sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==} engines: {node: '>=12'} drizzle-kit@0.31.7: resolution: {integrity: sha512-hOzRGSdyKIU4FcTSFYGKdXEjFsncVwHZ43gY3WU5Bz9j5Iadp6Rh6hxLSQ1IWXpKLBKt/d5y1cpSPcV+FcoQ1A==} hasBin: true - drizzle-kit@0.31.8: - resolution: {integrity: sha512-O9EC/miwdnRDY10qRxM8P3Pg8hXe3LyU4ZipReKOgTwn4OqANmftj8XJz1UPUAS6NMHf0E2htjsbQujUTkncCg==} + drizzle-kit@0.31.9: + resolution: {integrity: sha512-GViD3IgsXn7trFyBUUHyTFBpH/FsHTxYJ66qdbVggxef4UBPHRYxQaRzYLTuekYnk9i5FIEL9pbBIwMqX/Uwrg==} hasBin: true drizzle-orm@0.44.7: @@ -2882,8 +2464,8 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - electron-to-chromium@1.5.260: - resolution: {integrity: sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA==} + electron-to-chromium@1.5.302: + resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -2904,8 +2486,8 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -2916,8 +2498,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + es-iterator-helpers@1.2.2: + resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: @@ -2939,18 +2521,13 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - es-toolkit@1.43.0: - resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} + es-toolkit@1.44.0: + resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==} esbuild-register@3.6.0: resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true + esbuild: '>=0.25.0' esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} @@ -2973,8 +2550,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-next@16.2.0-canary.41: - resolution: {integrity: sha512-cR/oxZg451dHiQ/XRwCnXT/MouFWQVDkkhZwkgJh3YuURbkkzF7A3jgKpkVqGbyHm3yOgFTkJEK1ce/HjBXL/g==} + eslint-config-next@16.2.0-canary.58: + resolution: {integrity: sha512-8PPJLUVlTy8Zt1ovE5lSHJdFeq5x6+fT7ax9FFQqYVhwMFSJi+8dEKRqE9l1BlC1QH6/xyv/hS++axBMdW11jA==} peerDependencies: eslint: '>=9.0.0' typescript: '>=3.3.1' @@ -3059,8 +2636,12 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.39.2: - resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@9.39.3: + resolution: {integrity: sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3073,8 +2654,8 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -3098,15 +2679,15 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} exceljs@4.4.0: resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==} engines: {node: '>=8.3.0'} - expect-type@1.2.2: - resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} extend@3.0.2: @@ -3126,9 +2707,6 @@ packages: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -3138,12 +2716,8 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-parser@5.2.5: - resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} - hasBin: true - - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} @@ -3253,8 +2827,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + get-east-asian-width@1.5.0: + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -3269,8 +2843,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} get-tsconfig@4.8.1: resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} @@ -3285,11 +2859,12 @@ packages: glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} @@ -3318,8 +2893,8 @@ packages: resolution: {integrity: sha512-eCzNACUXPb1PW5l0ULTzMHaL/ltPRADoPgjBlT8jWsTbxkCp6siv+qKJ/1ldaybCthGwsYFYallF7u9AkU4L+A==} engines: {node: '>=18.0.0'} - googleapis@170.0.0: - resolution: {integrity: sha512-UJz71WZ3ubMr4NhkEU+CFTS0CMrrXq+ltrFnAQo8Llf9M3cy0AIfKLyFQdUJyhqIpJ4jPW4SRCcBBntrLQ72/A==} + googleapis@171.4.0: + resolution: {integrity: sha512-xybFL2SmmUgIifgsbsRQYRdNrSAYwxWZDmkZTGjUIaRnX5jPqR8el/cEvo6rCqh7iaZx6MfEPS/lrDgZ0bymkg==} engines: {node: '>=18'} gopd@1.2.0: @@ -3391,9 +2966,9 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + html-encoding-sniffer@6.0.0: + resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -3410,10 +2985,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3436,8 +3007,8 @@ packages: immer@10.2.0: resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==} - immer@11.1.3: - resolution: {integrity: sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==} + immer@11.1.4: + resolution: {integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==} immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} @@ -3465,8 +3036,8 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - ioredis@5.8.2: - resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} + ioredis@5.9.3: + resolution: {integrity: sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==} engines: {node: '>=12.22.0'} ipaddr.js@2.2.0: @@ -3629,10 +3200,6 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - istanbul-reports@3.2.0: resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} @@ -3655,19 +3222,19 @@ packages: resolution: {integrity: sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsdom@26.1.0: - resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} - engines: {node: '>=18'} + jsdom@28.1.0: + resolution: {integrity: sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -3697,9 +3264,6 @@ packages: engines: {node: '>=16.0.0'} hasBin: true - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -3828,8 +3392,8 @@ packages: lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3841,6 +3405,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.6: + resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3851,8 +3419,8 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magicast@0.5.1: - resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -3885,6 +3453,9 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + memoize-one@6.0.0: resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} @@ -3968,22 +3539,15 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@10.2.2: + resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==} + engines: {node: 18 || 20 || >=22} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} mkdirp@0.5.6: @@ -4020,8 +3584,8 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - next@16.2.0-canary.41: - resolution: {integrity: sha512-9YEuRpS4ekQGBC0BZliXARD5we9lMBmDiLe293P4D+7LCDrosHwpnIqDutgKKUB4yPTSoTDeUBIEYR/oZWXUpg==} + next@16.2.0-canary.58: + resolution: {integrity: sha512-lJu2Y+2MK4I0kLf1Oq+548kXbyk8pcQncUqnUco5R8Iprc6L9KpJK7k0GkRxwXgNOF4WCnN3j87wh+A9KKWLzw==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -4053,6 +3617,10 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4064,17 +3632,14 @@ packages: node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - nodemailer@7.0.11: - resolution: {integrity: sha512-gnXhNRE0FNhD7wPSCGhdNh46Hs6nm+uTyg+Kq0cZukNQiYdnCsoQjodNP9BQVG9XrcK/v6/MgpAPBUFyzh9pvw==} + nodemailer@8.0.1: + resolution: {integrity: sha512-5kcldIXmaEjZcHR6F28IKGSgpmZHaF1IXLWFTG+Xh3S+Cce4MiakLtWY+PlBU69fLbRa8HlaGIrC/QolUpHkhg==} engines: {node: '>=6.0.0'} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - nwsapi@2.2.22: - resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4162,8 +3727,8 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@8.0.0: + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4199,8 +3764,8 @@ packages: peerDependencies: payload: ^3.0.0 - payload@3.76.1: - resolution: {integrity: sha512-jBpf+p2FH2FDbXWVsPMit5tRt88YYgFsUcHsr/XW4DdwnzOiioHqQ3VfPcMA/u07ILicuKlthOXac7GNstTLpQ==} + payload@3.77.0: + resolution: {integrity: sha512-hIdQ1sWpu0KPb9Okd9HahZxaddhLdFBo476AR5KX/6H9o4NRlQ5a2HZN+pgXO51M9aPbIBkArk8Ph/LvI4U3LQ==} engines: {node: ^18.20.2 || >=20.9.0} hasBin: true peerDependencies: @@ -4216,8 +3781,8 @@ packages: pg-cloudflare@1.3.0: resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} - pg-connection-string@2.10.0: - resolution: {integrity: sha512-ur/eoPKzDx2IjPaYyXS6Y8NSblxM7X64deV2ObV57vhjsWiwLvUD6meukAzogiOsu60GO8m/3Cb6FdJsWNjwXg==} + pg-connection-string@2.11.0: + resolution: {integrity: sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==} pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} @@ -4280,13 +3845,13 @@ packages: resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} hasBin: true - playwright-core@1.57.0: - resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} + playwright-core@1.58.2: + resolution: {integrity: sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==} engines: {node: '>=18'} hasBin: true - playwright@1.57.0: - resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} + playwright@1.58.2: + resolution: {integrity: sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==} engines: {node: '>=18'} hasBin: true @@ -4351,8 +3916,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} engines: {node: '>=14'} hasBin: true @@ -4384,8 +3949,8 @@ packages: resolution: {integrity: sha512-D8NAthKSD7SGn748v+GLaaO6k08Mvpoqroa35PqIQC4gtUa8/Pb/k+r0m0NnGBVbHDP1gKZ2nVywqfMisRhV5A==} engines: {node: '>=18'} - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + qs@6.15.0: + resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -4404,10 +3969,10 @@ packages: react: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc - react-dom@19.2.3: - resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: - react: ^19.2.3 + react: ^19.2.4 react-error-boundary@3.1.4: resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} @@ -4440,8 +4005,8 @@ packages: redux: optional: true - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} engines: {node: '>=0.10.0'} react-select@5.9.0: @@ -4456,8 +4021,8 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' - react@19.2.3: - resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} engines: {node: '>=0.10.0'} readable-stream@2.3.8: @@ -4478,8 +4043,8 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} - recharts@3.6.0: - resolution: {integrity: sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==} + recharts@3.7.0: + resolution: {integrity: sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==} engines: {node: '>=18'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4529,8 +4094,9 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + engines: {node: '>= 0.4'} hasBin: true restructure@3.0.2: @@ -4549,14 +4115,11 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rollup@4.53.3: - resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==} + rollup@4.59.0: + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -4582,9 +4145,6 @@ packages: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} @@ -4614,8 +4174,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} hasBin: true @@ -4675,8 +4235,8 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - sonic-boom@4.2.0: - resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} sonner@1.7.4: resolution: {integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==} @@ -4790,9 +4350,6 @@ packages: resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} engines: {node: '>=14.16'} - strnum@2.1.1: - resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} - strtok3@8.1.0: resolution: {integrity: sha512-ExzDvHYPj6F6QkSNe/JxSlBxTh3OrI6wrAIz53ulxo1c4hBJ1bT9C/JrAthEKHWG9riVH3Xzg7B03Oxty6S2Lw==} engines: {node: '>=16'} @@ -4855,11 +4412,11 @@ packages: resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + tldts-core@7.0.23: + resolution: {integrity: sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==} - tldts@6.1.86: - resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + tldts@7.0.23: + resolution: {integrity: sha512-ASdhgQIBSay0R/eXggAkQ53G4nTJqTXqC2kbaBbdDwM7SkjyZyO0OaaN1/FH7U/yCeqOHDwFO5j8+Os/IS1dXw==} hasBin: true tmp@0.2.5: @@ -4883,13 +4440,13 @@ packages: resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} - tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} engines: {node: '>=16'} - tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} - engines: {node: '>=18'} + tr46@6.0.0: + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + engines: {node: '>=20'} traverse@0.3.9: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} @@ -4955,11 +4512,11 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.55.0: - resolution: {integrity: sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==} + typescript-eslint@8.56.0: + resolution: {integrity: sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' typescript@5.9.3: @@ -4978,10 +4535,17 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici@7.18.2: resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} engines: {node: '>=20.18.1'} + undici@7.22.0: + resolution: {integrity: sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==} + engines: {node: '>=20.18.1'} + unicode-properties@1.4.1: resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} @@ -5000,8 +4564,8 @@ packages: unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} @@ -5009,15 +4573,12 @@ packages: unzipper@0.10.14: resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-template@2.0.8: resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} @@ -5072,16 +4633,13 @@ packages: victory-vendor@37.3.6: resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==} - vite-tsconfig-paths@6.0.0: - resolution: {integrity: sha512-0lGkM62rud1ShKWLbJpbTHPoJuZIL9QW1ecCueDhqxWrStIRsyHapBQ4eV05tBqrW9z6jkp9ybBVgLSWp+Mv1A==} + vite-tsconfig-paths@6.1.1: + resolution: {integrity: sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==} peerDependencies: vite: '*' - peerDependenciesMeta: - vite: - optional: true - vite@7.2.4: - resolution: {integrity: sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==} + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5120,18 +4678,18 @@ packages: yaml: optional: true - vitest@4.0.15: - resolution: {integrity: sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==} + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.15 - '@vitest/browser-preview': 4.0.15 - '@vitest/browser-webdriverio': 4.0.15 - '@vitest/ui': 4.0.15 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5162,21 +4720,17 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + webidl-conversions@8.0.1: + resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} + engines: {node: '>=20'} - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} + whatwg-mimetype@5.0.0: + resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} + engines: {node: '>=20'} - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} + whatwg-url@16.0.1: + resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} @@ -5190,8 +4744,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} which@2.0.2: @@ -5223,18 +4777,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.19.0: resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} engines: {node: '>=10.0.0'} @@ -5308,7 +4850,9 @@ packages: snapshots: - '@anthropic-ai/sdk@0.71.2(zod@4.3.6)': + '@acemir/cssom@0.9.31': {} + + '@anthropic-ai/sdk@0.78.0(zod@4.3.6)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: @@ -5320,442 +4864,48 @@ snapshots: '@types/json-schema': 7.0.15 js-yaml: 4.1.1 - '@apidevtools/json-schema-ref-parser@15.1.3(@types/json-schema@7.0.15)': + '@apidevtools/json-schema-ref-parser@15.2.2(@types/json-schema@7.0.15)': dependencies: '@types/json-schema': 7.0.15 js-yaml: 4.1.1 - '@asamuzakjp/css-color@3.2.0': + '@asamuzakjp/css-color@5.0.0': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - lru-cache: 10.4.3 + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + lru-cache: 11.2.6 - '@aws-crypto/sha256-browser@5.2.0': + '@asamuzakjp/dom-selector@6.8.1': dependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-crypto/supports-web-crypto': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.936.0 - '@aws-sdk/util-locate-window': 3.893.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + '@asamuzakjp/nwsapi': 2.3.9 + bidi-js: 1.0.3 + css-tree: 3.1.0 + is-potential-custom-element-name: 1.0.1 + lru-cache: 11.2.6 - '@aws-crypto/sha256-js@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.936.0 - tslib: 2.8.1 + '@asamuzakjp/nwsapi@2.3.9': {} - '@aws-crypto/supports-web-crypto@5.2.0': - dependencies: - tslib: 2.8.1 - - '@aws-crypto/util@5.2.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 - - '@aws-sdk/client-sesv2@3.946.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.946.0 - '@aws-sdk/credential-provider-node': 3.946.0 - '@aws-sdk/middleware-host-header': 3.936.0 - '@aws-sdk/middleware-logger': 3.936.0 - '@aws-sdk/middleware-recursion-detection': 3.936.0 - '@aws-sdk/middleware-user-agent': 3.946.0 - '@aws-sdk/region-config-resolver': 3.936.0 - '@aws-sdk/signature-v4-multi-region': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@aws-sdk/util-endpoints': 3.936.0 - '@aws-sdk/util-user-agent-browser': 3.936.0 - '@aws-sdk/util-user-agent-node': 3.946.0 - '@smithy/config-resolver': 4.4.3 - '@smithy/core': 3.18.7 - '@smithy/fetch-http-handler': 5.3.6 - '@smithy/hash-node': 4.2.5 - '@smithy/invalid-dependency': 4.2.5 - '@smithy/middleware-content-length': 4.2.5 - '@smithy/middleware-endpoint': 4.3.14 - '@smithy/middleware-retry': 4.4.14 - '@smithy/middleware-serde': 4.2.6 - '@smithy/middleware-stack': 4.2.5 - '@smithy/node-config-provider': 4.3.5 - '@smithy/node-http-handler': 4.4.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/url-parser': 4.2.5 - '@smithy/util-base64': 4.3.0 - '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.13 - '@smithy/util-defaults-mode-node': 4.2.16 - '@smithy/util-endpoints': 3.2.5 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-retry': 4.2.5 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sso@3.946.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.946.0 - '@aws-sdk/middleware-host-header': 3.936.0 - '@aws-sdk/middleware-logger': 3.936.0 - '@aws-sdk/middleware-recursion-detection': 3.936.0 - '@aws-sdk/middleware-user-agent': 3.946.0 - '@aws-sdk/region-config-resolver': 3.936.0 - '@aws-sdk/types': 3.936.0 - '@aws-sdk/util-endpoints': 3.936.0 - '@aws-sdk/util-user-agent-browser': 3.936.0 - '@aws-sdk/util-user-agent-node': 3.946.0 - '@smithy/config-resolver': 4.4.3 - '@smithy/core': 3.18.7 - '@smithy/fetch-http-handler': 5.3.6 - '@smithy/hash-node': 4.2.5 - '@smithy/invalid-dependency': 4.2.5 - '@smithy/middleware-content-length': 4.2.5 - '@smithy/middleware-endpoint': 4.3.14 - '@smithy/middleware-retry': 4.4.14 - '@smithy/middleware-serde': 4.2.6 - '@smithy/middleware-stack': 4.2.5 - '@smithy/node-config-provider': 4.3.5 - '@smithy/node-http-handler': 4.4.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/url-parser': 4.2.5 - '@smithy/util-base64': 4.3.0 - '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.13 - '@smithy/util-defaults-mode-node': 4.2.16 - '@smithy/util-endpoints': 3.2.5 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-retry': 4.2.5 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.946.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@aws-sdk/xml-builder': 3.930.0 - '@smithy/core': 3.18.7 - '@smithy/node-config-provider': 4.3.5 - '@smithy/property-provider': 4.2.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/signature-v4': 5.3.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/util-base64': 4.3.0 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/property-provider': 4.2.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/fetch-http-handler': 5.3.6 - '@smithy/node-http-handler': 4.4.5 - '@smithy/property-provider': 4.2.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/util-stream': 4.5.6 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/credential-provider-env': 3.946.0 - '@aws-sdk/credential-provider-http': 3.946.0 - '@aws-sdk/credential-provider-login': 3.946.0 - '@aws-sdk/credential-provider-process': 3.946.0 - '@aws-sdk/credential-provider-sso': 3.946.0 - '@aws-sdk/credential-provider-web-identity': 3.946.0 - '@aws-sdk/nested-clients': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/credential-provider-imds': 4.2.5 - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-login@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/nested-clients': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/property-provider': 4.2.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.946.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.946.0 - '@aws-sdk/credential-provider-http': 3.946.0 - '@aws-sdk/credential-provider-ini': 3.946.0 - '@aws-sdk/credential-provider-process': 3.946.0 - '@aws-sdk/credential-provider-sso': 3.946.0 - '@aws-sdk/credential-provider-web-identity': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/credential-provider-imds': 4.2.5 - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-process@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.946.0': - dependencies: - '@aws-sdk/client-sso': 3.946.0 - '@aws-sdk/core': 3.946.0 - '@aws-sdk/token-providers': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/nested-clients': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/middleware-host-header@3.936.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.936.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.936.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@aws/lambda-invoke-store': 0.2.2 - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@aws-sdk/util-arn-parser': 3.893.0 - '@smithy/core': 3.18.7 - '@smithy/node-config-provider': 4.3.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/signature-v4': 5.3.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/util-config-provider': 4.2.0 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-stream': 4.5.6 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-user-agent@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@aws-sdk/util-endpoints': 3.936.0 - '@smithy/core': 3.18.7 - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.946.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.946.0 - '@aws-sdk/middleware-host-header': 3.936.0 - '@aws-sdk/middleware-logger': 3.936.0 - '@aws-sdk/middleware-recursion-detection': 3.936.0 - '@aws-sdk/middleware-user-agent': 3.946.0 - '@aws-sdk/region-config-resolver': 3.936.0 - '@aws-sdk/types': 3.936.0 - '@aws-sdk/util-endpoints': 3.936.0 - '@aws-sdk/util-user-agent-browser': 3.936.0 - '@aws-sdk/util-user-agent-node': 3.946.0 - '@smithy/config-resolver': 4.4.3 - '@smithy/core': 3.18.7 - '@smithy/fetch-http-handler': 5.3.6 - '@smithy/hash-node': 4.2.5 - '@smithy/invalid-dependency': 4.2.5 - '@smithy/middleware-content-length': 4.2.5 - '@smithy/middleware-endpoint': 4.3.14 - '@smithy/middleware-retry': 4.4.14 - '@smithy/middleware-serde': 4.2.6 - '@smithy/middleware-stack': 4.2.5 - '@smithy/node-config-provider': 4.3.5 - '@smithy/node-http-handler': 4.4.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/url-parser': 4.2.5 - '@smithy/util-base64': 4.3.0 - '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.13 - '@smithy/util-defaults-mode-node': 4.2.16 - '@smithy/util-endpoints': 3.2.5 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-retry': 4.2.5 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/region-config-resolver@3.936.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@smithy/config-resolver': 4.4.3 - '@smithy/node-config-provider': 4.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.946.0': - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/protocol-http': 5.3.5 - '@smithy/signature-v4': 5.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.946.0': - dependencies: - '@aws-sdk/core': 3.946.0 - '@aws-sdk/nested-clients': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/types@3.936.0': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/util-arn-parser@3.893.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-endpoints@3.936.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@smithy/types': 4.9.0 - '@smithy/url-parser': 4.2.5 - '@smithy/util-endpoints': 3.2.5 - tslib: 2.8.1 - - '@aws-sdk/util-locate-window@3.893.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-browser@3.936.0': - dependencies: - '@aws-sdk/types': 3.936.0 - '@smithy/types': 4.9.0 - bowser: 2.13.1 - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-node@3.946.0': - dependencies: - '@aws-sdk/middleware-user-agent': 3.946.0 - '@aws-sdk/types': 3.936.0 - '@smithy/node-config-provider': 4.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.930.0': - dependencies: - '@smithy/types': 4.9.0 - fast-xml-parser: 5.2.5 - tslib: 2.8.1 - - '@aws/lambda-invoke-store@0.2.2': {} - - '@babel/code-frame@7.27.1': + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/code-frame@7.28.6': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 + '@babel/compat-data@7.29.0': {} - '@babel/compat-data@7.28.5': {} - - '@babel/core@7.28.5': + '@babel/core@7.29.0': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -5765,27 +4915,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.28.5': + '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/generator@7.28.6': + '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.5 + '@babel/compat-data': 7.29.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.0 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -5793,21 +4935,21 @@ snapshots: '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@7.28.6': {} '@babel/helper-string-parser@7.27.1': {} @@ -5815,75 +4957,46 @@ snapshots: '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.28.4': + '@babel/helpers@7.28.6': dependencies: '@babel/template': 7.28.6 - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 - '@babel/parser@7.28.5': + '@babel/parser@7.29.0': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 - '@babel/parser@7.28.6': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/types': 7.28.6 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/runtime@7.28.4': {} + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 '@babel/runtime@7.28.6': {} - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 - '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 - '@babel/traverse@7.28.5': + '@babel/traverse@7.29.0': dependencies: - '@babel/code-frame': 7.28.6 - '@babel/generator': 7.28.6 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.6 + '@babel/parser': 7.29.0 '@babel/template': 7.28.6 - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/traverse@7.28.6': - dependencies: - '@babel/code-frame': 7.28.6 - '@babel/generator': 7.28.6 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.6 - '@babel/template': 7.28.6 - '@babel/types': 7.28.6 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.28.5': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@babel/types@7.28.6': + '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -5892,69 +5005,75 @@ snapshots: '@borewit/text-codec@0.2.1': {} - '@csstools/color-helpers@5.1.0': {} - - '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@bramus/specificity@2.4.2': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + css-tree: 3.1.0 - '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/color-helpers@6.0.2': {} + + '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/color-helpers': 5.1.0 - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/css-tokenizer': 3.0.4 + '@csstools/color-helpers': 6.0.2 + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-tokenizer@3.0.4': {} + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.0.28': {} + + '@csstools/css-tokenizer@4.0.0': {} '@date-fns/tz@1.2.0': {} - '@dnd-kit/accessibility@3.1.1(react@19.2.3)': + '@dnd-kit/accessibility@3.1.1(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@dnd-kit/accessibility': 3.1.1(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) tslib: 2.8.1 - '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 + '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 + '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/utilities@3.2.2(react@19.2.3)': + '@dnd-kit/utilities@3.2.2(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 '@drizzle-team/brocli@0.10.2': {} - '@emnapi/core@1.7.1': + '@emnapi/core@1.8.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.7.1': + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 optional: true @@ -5992,19 +5111,19 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3)': + '@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.6 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.4) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.14 transitivePeerDependencies: - supports-color @@ -6020,23 +5139,25 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.3)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 '@emotion/utils@1.4.2': {} '@emotion/weak-memoize@0.4.0': {} + '@epic-web/invariant@1.0.0': {} + '@esbuild-kit/core-utils@3.3.2': dependencies: - esbuild: 0.18.20 + esbuild: 0.27.3 source-map-support: 0.5.21 '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.6 '@esbuild/aix-ppc64@0.25.12': optional: true @@ -6044,144 +5165,96 @@ snapshots: '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/android-arm64@0.18.20': - optional: true - '@esbuild/android-arm64@0.25.12': optional: true '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm@0.18.20': - optional: true - '@esbuild/android-arm@0.25.12': optional: true '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-x64@0.18.20': - optional: true - '@esbuild/android-x64@0.25.12': optional: true '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.18.20': - optional: true - '@esbuild/darwin-arm64@0.25.12': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-x64@0.18.20': - optional: true - '@esbuild/darwin-x64@0.25.12': optional: true '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.18.20': - optional: true - '@esbuild/freebsd-arm64@0.25.12': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.18.20': - optional: true - '@esbuild/freebsd-x64@0.25.12': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/linux-arm64@0.18.20': - optional: true - '@esbuild/linux-arm64@0.25.12': optional: true '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm@0.18.20': - optional: true - '@esbuild/linux-arm@0.25.12': optional: true '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-ia32@0.18.20': - optional: true - '@esbuild/linux-ia32@0.25.12': optional: true '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-loong64@0.18.20': - optional: true - '@esbuild/linux-loong64@0.25.12': optional: true '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-mips64el@0.18.20': - optional: true - '@esbuild/linux-mips64el@0.25.12': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-ppc64@0.18.20': - optional: true - '@esbuild/linux-ppc64@0.25.12': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.18.20': - optional: true - '@esbuild/linux-riscv64@0.25.12': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-s390x@0.18.20': - optional: true - '@esbuild/linux-s390x@0.25.12': optional: true '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-x64@0.18.20': - optional: true - '@esbuild/linux-x64@0.25.12': optional: true @@ -6194,9 +5267,6 @@ snapshots: '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.18.20': - optional: true - '@esbuild/netbsd-x64@0.25.12': optional: true @@ -6209,9 +5279,6 @@ snapshots: '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.18.20': - optional: true - '@esbuild/openbsd-x64@0.25.12': optional: true @@ -6224,50 +5291,33 @@ snapshots: '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/sunos-x64@0.18.20': - optional: true - '@esbuild/sunos-x64@0.25.12': optional: true '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/win32-arm64@0.18.20': - optional: true - '@esbuild/win32-arm64@0.25.12': optional: true '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-ia32@0.18.20': - optional: true - '@esbuild/win32-ia32@0.25.12': optional: true '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-x64@0.18.20': - optional: true - '@esbuild/win32-x64@0.25.12': optional: true '@esbuild/win32-x64@0.27.3': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2)': + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.3)': dependencies: - eslint: 9.39.2 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2)': - dependencies: - eslint: 9.39.2 + eslint: 9.39.3 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -6276,7 +5326,7 @@ snapshots: dependencies: '@eslint/object-schema': 2.1.7 debug: 4.4.3 - minimatch: 3.1.2 + minimatch: 10.2.2 transitivePeerDependencies: - supports-color @@ -6290,19 +5340,19 @@ snapshots: '@eslint/eslintrc@3.3.3': dependencies: - ajv: 6.12.6 + ajv: 8.18.0 debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 js-yaml: 4.1.1 - minimatch: 3.1.2 + minimatch: 10.2.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.39.2': {} + '@eslint/js@9.39.3': {} '@eslint/object-schema@2.1.7': {} @@ -6311,23 +5361,25 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@exodus/bytes@1.14.1': {} + + '@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: body-scroll-lock: 4.0.0-beta.0 focus-trap: 7.5.4 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@faceless-ui/window-info@3.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@faceless-ui/window-info@3.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@fast-csv/format@4.3.5': dependencies: @@ -6348,27 +5400,27 @@ snapshots: lodash.isundefined: 3.0.1 lodash.uniq: 4.5.0 - '@floating-ui/core@1.7.3': + '@floating-ui/core@1.7.4': dependencies: '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.7.4': + '@floating-ui/dom@1.7.5': dependencies: - '@floating-ui/core': 1.7.3 + '@floating-ui/core': 1.7.4 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react-dom@2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@floating-ui/dom': 1.7.4 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@floating-ui/dom': 1.7.5 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@floating-ui/react@0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react@0.27.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@floating-ui/react-dom': 2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@floating-ui/utils': 0.2.10 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) tabbable: 6.4.0 '@floating-ui/utils@0.2.10': {} @@ -6389,11 +5441,11 @@ snapshots: dependencies: '@fullcalendar/core': 6.1.20 - '@fullcalendar/react@6.1.20(@fullcalendar/core@6.1.20)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@fullcalendar/react@6.1.20(@fullcalendar/core@6.1.20)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@fullcalendar/core': 6.1.20 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@fullcalendar/timegrid@6.1.20(@fullcalendar/core@6.1.20)': dependencies: @@ -6495,7 +5547,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.7.1 + '@emnapi/runtime': 1.8.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -6507,7 +5559,7 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@ioredis/commands@1.4.0': {} + '@ioredis/commands@1.5.0': {} '@isaacs/cliui@8.0.2': dependencies: @@ -6553,7 +5605,7 @@ snapshots: lexical: 0.35.0 prismjs: 1.30.0 - '@lexical/devtools-core@0.35.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@lexical/devtools-core@0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@lexical/html': 0.35.0 '@lexical/link': 0.35.0 @@ -6561,8 +5613,8 @@ snapshots: '@lexical/table': 0.35.0 '@lexical/utils': 0.35.0 lexical: 0.35.0 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@lexical/dragon@0.35.0': dependencies: @@ -6629,10 +5681,10 @@ snapshots: '@lexical/utils': 0.35.0 lexical: 0.35.0 - '@lexical/react@0.35.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(yjs@13.6.27)': + '@lexical/react@0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(yjs@13.6.27)': dependencies: - '@floating-ui/react': 0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@lexical/devtools-core': 0.35.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@floating-ui/react': 0.27.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@lexical/devtools-core': 0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@lexical/dragon': 0.35.0 '@lexical/hashtag': 0.35.0 '@lexical/history': 0.35.0 @@ -6648,9 +5700,9 @@ snapshots: '@lexical/utils': 0.35.0 '@lexical/yjs': 0.35.0(yjs@13.6.27) lexical: 0.35.0 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-error-boundary: 3.1.4(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-error-boundary: 3.1.4(react@19.2.4) transitivePeerDependencies: - yjs @@ -6693,12 +5745,12 @@ snapshots: dependencies: state-local: 1.0.7 - '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@monaco-editor/react@4.7.0(monaco-editor@0.55.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@monaco-editor/loader': 1.7.0 monaco-editor: 0.55.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': optional: true @@ -6720,41 +5772,41 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.7.1 - '@emnapi/runtime': 1.7.1 + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 '@tybys/wasm-util': 0.10.1 optional: true - '@next/env@15.5.9': {} + '@next/env@15.5.12': {} - '@next/env@16.2.0-canary.41': {} + '@next/env@16.2.0-canary.58': {} - '@next/eslint-plugin-next@16.2.0-canary.41': + '@next/eslint-plugin-next@16.2.0-canary.58': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.2.0-canary.41': + '@next/swc-darwin-arm64@16.2.0-canary.58': optional: true - '@next/swc-darwin-x64@16.2.0-canary.41': + '@next/swc-darwin-x64@16.2.0-canary.58': optional: true - '@next/swc-linux-arm64-gnu@16.2.0-canary.41': + '@next/swc-linux-arm64-gnu@16.2.0-canary.58': optional: true - '@next/swc-linux-arm64-musl@16.2.0-canary.41': + '@next/swc-linux-arm64-musl@16.2.0-canary.58': optional: true - '@next/swc-linux-x64-gnu@16.2.0-canary.41': + '@next/swc-linux-x64-gnu@16.2.0-canary.58': optional: true - '@next/swc-linux-x64-musl@16.2.0-canary.41': + '@next/swc-linux-x64-musl@16.2.0-canary.58': optional: true - '@next/swc-win32-arm64-msvc@16.2.0-canary.41': + '@next/swc-win32-arm64-msvc@16.2.0-canary.58': optional: true - '@next/swc-win32-x64-msvc@16.2.0-canary.41': + '@next/swc-win32-x64-msvc@16.2.0-canary.58': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6767,27 +5819,27 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 '@nolyfill/is-core-module@1.0.39': {} - '@openapi-contrib/json-schema-to-openapi-schema@4.3.0(@types/json-schema@7.0.15)(openapi-types@12.1.3)': + '@openapi-contrib/json-schema-to-openapi-schema@4.3.1(@types/json-schema@7.0.15)(openapi-types@12.1.3)': dependencies: - '@apidevtools/json-schema-ref-parser': 15.1.3(@types/json-schema@7.0.15) + '@apidevtools/json-schema-ref-parser': 15.2.2(@types/json-schema@7.0.15) json-schema-walker: 3.2.0(@types/json-schema@7.0.15) openapi-types: 12.1.3 yargs: 18.0.0 transitivePeerDependencies: - '@types/json-schema' - '@payloadcms/db-postgres@3.76.1(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))': + '@payloadcms/db-postgres@3.77.0(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))': dependencies: - '@payloadcms/drizzle': 3.76.1(@types/pg@8.10.2)(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3) + '@payloadcms/drizzle': 3.77.0(@types/pg@8.10.2)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3) '@types/pg': 8.10.2 console-table-printer: 2.12.1 drizzle-kit: 0.31.7 drizzle-orm: 0.44.7(@types/pg@8.10.2)(pg@8.16.3) - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) pg: 8.16.3 prompts: 2.4.2 to-snake-case: 1.0.0 @@ -6823,12 +5875,12 @@ snapshots: - sqlite3 - supports-color - '@payloadcms/drizzle@3.76.1(@types/pg@8.10.2)(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)': + '@payloadcms/drizzle@3.77.0(@types/pg@8.10.2)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)': dependencies: console-table-printer: 2.12.1 dequal: 2.0.3 drizzle-orm: 0.44.7(@types/pg@8.10.2)(pg@8.16.3) - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) prompts: 2.4.2 to-snake-case: 1.0.0 uuid: 9.0.0 @@ -6863,25 +5915,25 @@ snapshots: - sql.js - sqlite3 - '@payloadcms/graphql@3.76.1(graphql@16.12.0)(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)': + '@payloadcms/graphql@3.77.0(graphql@16.12.0)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)': dependencies: graphql: 16.12.0 graphql-scalars: 1.22.2(graphql@16.12.0) - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) pluralize: 8.0.0 ts-essentials: 10.0.3(typescript@5.9.3) tsx: 4.21.0 transitivePeerDependencies: - typescript - '@payloadcms/next@3.76.1(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@payloadcms/next@3.77.0(@types/react@19.2.14)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/modifiers': 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) - '@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) - '@payloadcms/graphql': 3.76.1(graphql@16.12.0)(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3) - '@payloadcms/translations': 3.76.1 - '@payloadcms/ui': 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@dnd-kit/modifiers': 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + '@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + '@payloadcms/graphql': 3.77.0(graphql@16.12.0)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3) + '@payloadcms/translations': 3.77.0 + '@payloadcms/ui': 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) busboy: 1.6.0 dequal: 2.0.3 file-type: 19.3.0 @@ -6889,9 +5941,9 @@ snapshots: graphql-http: 1.22.4(graphql@16.12.0) graphql-playground-html: 1.6.30 http-status: 2.1.0 - next: 16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4) + next: 16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) path-to-regexp: 6.3.0 - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) qs-esm: 7.0.2 sass: 1.77.4 uuid: 10.0.0 @@ -6903,13 +5955,13 @@ snapshots: - supports-color - typescript - '@payloadcms/plugin-form-builder@3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@payloadcms/plugin-form-builder@3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@payloadcms/ui': 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@payloadcms/ui': 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) escape-html: 1.0.3 - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: - '@types/react' - monaco-editor @@ -6917,27 +5969,27 @@ snapshots: - supports-color - typescript - '@payloadcms/plugin-multi-tenant@3.76.1(@payloadcms/ui@3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))': + '@payloadcms/plugin-multi-tenant@3.77.0(@payloadcms/ui@3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))': dependencies: - '@payloadcms/ui': 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + '@payloadcms/ui': 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) - '@payloadcms/plugin-nested-docs@3.76.1(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))': + '@payloadcms/plugin-nested-docs@3.77.0(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))': dependencies: - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) - '@payloadcms/plugin-redirects@3.76.1(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))': + '@payloadcms/plugin-redirects@3.77.0(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))': dependencies: - '@payloadcms/translations': 3.76.1 - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + '@payloadcms/translations': 3.77.0 + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) - '@payloadcms/plugin-seo@3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@payloadcms/plugin-seo@3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: - '@payloadcms/translations': 3.76.1 - '@payloadcms/ui': 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@payloadcms/translations': 3.77.0 + '@payloadcms/ui': 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: - '@types/react' - monaco-editor @@ -6945,24 +5997,24 @@ snapshots: - supports-color - typescript - '@payloadcms/richtext-lexical@3.76.1(@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@payloadcms/next@3.76.1(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(yjs@13.6.27)': + '@payloadcms/richtext-lexical@3.77.0(@faceless-ui/modal@3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@payloadcms/next@3.77.0(@types/react@19.2.14)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3))(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(yjs@13.6.27)': dependencies: - '@faceless-ui/modal': 3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@faceless-ui/modal': 3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@lexical/clipboard': 0.35.0 '@lexical/headless': 0.35.0 '@lexical/html': 0.35.0 '@lexical/link': 0.35.0 '@lexical/list': 0.35.0 '@lexical/mark': 0.35.0 - '@lexical/react': 0.35.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(yjs@13.6.27) + '@lexical/react': 0.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(yjs@13.6.27) '@lexical/rich-text': 0.35.0 '@lexical/selection': 0.35.0 '@lexical/table': 0.35.0 '@lexical/utils': 0.35.0 - '@payloadcms/next': 3.76.1(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@payloadcms/translations': 3.76.1 - '@payloadcms/ui': 3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@payloadcms/next': 3.77.0(@types/react@19.2.14)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@payloadcms/translations': 3.77.0 + '@payloadcms/ui': 3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@types/uuid': 10.0.0 acorn: 8.12.1 bson-objectid: 2.0.4 @@ -6974,11 +6026,11 @@ snapshots: mdast-util-from-markdown: 2.0.2 mdast-util-mdx-jsx: 3.1.3 micromark-extension-mdx-jsx: 3.0.1 - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) qs-esm: 7.0.2 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-error-boundary: 4.1.2(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-error-boundary: 4.1.2(react@19.2.4) ts-essentials: 10.0.3(typescript@5.9.3) uuid: 10.0.0 transitivePeerDependencies: @@ -6989,38 +6041,38 @@ snapshots: - typescript - yjs - '@payloadcms/translations@3.76.1': + '@payloadcms/translations@3.77.0': dependencies: date-fns: 4.1.0 - '@payloadcms/ui@3.76.1(@types/react@19.2.7)(monaco-editor@0.55.1)(next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@payloadcms/ui@3.77.0(@types/react@19.2.14)(monaco-editor@0.55.1)(next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4))(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: '@date-fns/tz': 1.2.0 - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - '@faceless-ui/modal': 3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@faceless-ui/window-info': 3.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@monaco-editor/react': 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@payloadcms/translations': 3.76.1 + '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@dnd-kit/sortable': 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + '@faceless-ui/modal': 3.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@faceless-ui/window-info': 3.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@monaco-editor/react': 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@payloadcms/translations': 3.77.0 bson-objectid: 2.0.4 date-fns: 4.1.0 dequal: 2.0.3 md5: 2.3.0 - next: 16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4) + next: 16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4) object-to-formdata: 4.5.1 - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) qs-esm: 7.0.2 - react: 19.2.3 - react-datepicker: 7.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react-dom: 19.2.3(react@19.2.3) - react-image-crop: 10.1.8(react@19.2.3) - react-select: 5.9.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.4 + react-datepicker: 7.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-dom: 19.2.4(react@19.2.4) + react-image-crop: 10.1.8(react@19.2.4) + react-select: 5.9.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) scheduler: 0.25.0 - sonner: 1.7.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + sonner: 1.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) ts-essentials: 10.0.3(typescript@5.9.3) - use-context-selector: 2.0.0(react@19.2.3)(scheduler@0.25.0) + use-context-selector: 2.0.0(react@19.2.4)(scheduler@0.25.0) uuid: 10.0.0 transitivePeerDependencies: - '@types/react' @@ -7033,367 +6085,102 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.57.0': + '@playwright/test@1.58.2': dependencies: - playwright: 1.57.0 + playwright: 1.58.2 - '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1))(react@19.2.3)': + '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1))(react@19.2.4)': dependencies: - '@standard-schema/spec': 1.0.0 + '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 - immer: 11.1.3 + immer: 11.1.4 redux: 5.0.1 redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.1.1 optionalDependencies: - react: 19.2.3 - react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1) + react: 19.2.4 + react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1) - '@rolldown/pluginutils@1.0.0-beta.11': {} + '@rolldown/pluginutils@1.0.0-rc.3': {} - '@rollup/rollup-android-arm-eabi@4.53.3': + '@rollup/rollup-android-arm-eabi@4.59.0': optional: true - '@rollup/rollup-android-arm64@4.53.3': + '@rollup/rollup-android-arm64@4.59.0': optional: true - '@rollup/rollup-darwin-arm64@4.53.3': + '@rollup/rollup-darwin-arm64@4.59.0': optional: true - '@rollup/rollup-darwin-x64@4.53.3': + '@rollup/rollup-darwin-x64@4.59.0': optional: true - '@rollup/rollup-freebsd-arm64@4.53.3': + '@rollup/rollup-freebsd-arm64@4.59.0': optional: true - '@rollup/rollup-freebsd-x64@4.53.3': + '@rollup/rollup-freebsd-x64@4.59.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.53.3': + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.53.3': + '@rollup/rollup-linux-arm-musleabihf@4.59.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.53.3': + '@rollup/rollup-linux-arm64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.53.3': + '@rollup/rollup-linux-arm64-musl@4.59.0': optional: true - '@rollup/rollup-linux-loong64-gnu@4.53.3': + '@rollup/rollup-linux-loong64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.53.3': + '@rollup/rollup-linux-loong64-musl@4.59.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.53.3': + '@rollup/rollup-linux-ppc64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.53.3': + '@rollup/rollup-linux-ppc64-musl@4.59.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.53.3': + '@rollup/rollup-linux-riscv64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.53.3': + '@rollup/rollup-linux-riscv64-musl@4.59.0': optional: true - '@rollup/rollup-linux-x64-musl@4.53.3': + '@rollup/rollup-linux-s390x-gnu@4.59.0': optional: true - '@rollup/rollup-openharmony-arm64@4.53.3': + '@rollup/rollup-linux-x64-gnu@4.59.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.53.3': + '@rollup/rollup-linux-x64-musl@4.59.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.53.3': + '@rollup/rollup-openbsd-x64@4.59.0': optional: true - '@rollup/rollup-win32-x64-gnu@4.53.3': + '@rollup/rollup-openharmony-arm64@4.59.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.53.3': + '@rollup/rollup-win32-arm64-msvc@4.59.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.59.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.59.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true '@rtsao/scc@1.1.0': {} - '@smithy/abort-controller@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/config-resolver@4.4.3': - dependencies: - '@smithy/node-config-provider': 4.3.5 - '@smithy/types': 4.9.0 - '@smithy/util-config-provider': 4.2.0 - '@smithy/util-endpoints': 3.2.5 - '@smithy/util-middleware': 4.2.5 - tslib: 2.8.1 - - '@smithy/core@3.18.7': - dependencies: - '@smithy/middleware-serde': 4.2.6 - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - '@smithy/util-base64': 4.3.0 - '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-stream': 4.5.6 - '@smithy/util-utf8': 4.2.0 - '@smithy/uuid': 1.1.0 - tslib: 2.8.1 - - '@smithy/credential-provider-imds@4.2.5': - dependencies: - '@smithy/node-config-provider': 4.3.5 - '@smithy/property-provider': 4.2.5 - '@smithy/types': 4.9.0 - '@smithy/url-parser': 4.2.5 - tslib: 2.8.1 - - '@smithy/fetch-http-handler@5.3.6': - dependencies: - '@smithy/protocol-http': 5.3.5 - '@smithy/querystring-builder': 4.2.5 - '@smithy/types': 4.9.0 - '@smithy/util-base64': 4.3.0 - tslib: 2.8.1 - - '@smithy/hash-node@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - '@smithy/util-buffer-from': 4.2.0 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - - '@smithy/invalid-dependency@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/is-array-buffer@2.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/is-array-buffer@4.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/middleware-content-length@4.2.5': - dependencies: - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/middleware-endpoint@4.3.14': - dependencies: - '@smithy/core': 3.18.7 - '@smithy/middleware-serde': 4.2.6 - '@smithy/node-config-provider': 4.3.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - '@smithy/url-parser': 4.2.5 - '@smithy/util-middleware': 4.2.5 - tslib: 2.8.1 - - '@smithy/middleware-retry@4.4.14': - dependencies: - '@smithy/node-config-provider': 4.3.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/service-error-classification': 4.2.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-retry': 4.2.5 - '@smithy/uuid': 1.1.0 - tslib: 2.8.1 - - '@smithy/middleware-serde@4.2.6': - dependencies: - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/middleware-stack@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/node-config-provider@4.3.5': - dependencies: - '@smithy/property-provider': 4.2.5 - '@smithy/shared-ini-file-loader': 4.4.0 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/node-http-handler@4.4.5': - dependencies: - '@smithy/abort-controller': 4.2.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/querystring-builder': 4.2.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/property-provider@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/protocol-http@5.3.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/querystring-builder@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - '@smithy/util-uri-escape': 4.2.0 - tslib: 2.8.1 - - '@smithy/querystring-parser@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/service-error-classification@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - - '@smithy/shared-ini-file-loader@4.4.0': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/signature-v4@5.3.5': - dependencies: - '@smithy/is-array-buffer': 4.2.0 - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - '@smithy/util-hex-encoding': 4.2.0 - '@smithy/util-middleware': 4.2.5 - '@smithy/util-uri-escape': 4.2.0 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - - '@smithy/smithy-client@4.9.10': - dependencies: - '@smithy/core': 3.18.7 - '@smithy/middleware-endpoint': 4.3.14 - '@smithy/middleware-stack': 4.2.5 - '@smithy/protocol-http': 5.3.5 - '@smithy/types': 4.9.0 - '@smithy/util-stream': 4.5.6 - tslib: 2.8.1 - - '@smithy/types@4.9.0': - dependencies: - tslib: 2.8.1 - - '@smithy/url-parser@4.2.5': - dependencies: - '@smithy/querystring-parser': 4.2.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/util-base64@4.3.0': - dependencies: - '@smithy/util-buffer-from': 4.2.0 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - - '@smithy/util-body-length-browser@4.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-body-length-node@4.2.1': - dependencies: - tslib: 2.8.1 - - '@smithy/util-buffer-from@2.2.0': - dependencies: - '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-buffer-from@4.2.0': - dependencies: - '@smithy/is-array-buffer': 4.2.0 - tslib: 2.8.1 - - '@smithy/util-config-provider@4.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-defaults-mode-browser@4.3.13': - dependencies: - '@smithy/property-provider': 4.2.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/util-defaults-mode-node@4.2.16': - dependencies: - '@smithy/config-resolver': 4.4.3 - '@smithy/credential-provider-imds': 4.2.5 - '@smithy/node-config-provider': 4.3.5 - '@smithy/property-provider': 4.2.5 - '@smithy/smithy-client': 4.9.10 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/util-endpoints@3.2.5': - dependencies: - '@smithy/node-config-provider': 4.3.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/util-hex-encoding@4.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-middleware@4.2.5': - dependencies: - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/util-retry@4.2.5': - dependencies: - '@smithy/service-error-classification': 4.2.5 - '@smithy/types': 4.9.0 - tslib: 2.8.1 - - '@smithy/util-stream@4.5.6': - dependencies: - '@smithy/fetch-http-handler': 5.3.6 - '@smithy/node-http-handler': 4.4.5 - '@smithy/types': 4.9.0 - '@smithy/util-base64': 4.3.0 - '@smithy/util-buffer-from': 4.2.0 - '@smithy/util-hex-encoding': 4.2.0 - '@smithy/util-utf8': 4.2.0 - tslib: 2.8.1 - - '@smithy/util-uri-escape@4.2.0': - dependencies: - tslib: 2.8.1 - - '@smithy/util-utf8@2.3.0': - dependencies: - '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 - - '@smithy/util-utf8@4.2.0': - dependencies: - '@smithy/util-buffer-from': 4.2.0 - tslib: 2.8.1 - - '@smithy/uuid@1.1.0': - dependencies: - tslib: 2.8.1 - - '@standard-schema/spec@1.0.0': {} + '@standard-schema/spec@1.1.0': {} '@standard-schema/utils@0.3.0': {} @@ -7401,6 +6188,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@swc/helpers@0.5.18': + dependencies: + tslib: 2.8.1 + '@tokenizer/token@0.3.0': {} '@tybys/wasm-util@0.10.1': @@ -7414,28 +6205,28 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.29.0 '@types/busboy@1.5.4': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.11 '@types/chai@5.2.3': dependencies: @@ -7498,38 +6289,39 @@ snapshots: '@types/node@14.18.63': {} - '@types/node@22.19.1': + '@types/node@22.19.11': dependencies: undici-types: 6.21.0 - '@types/nodemailer@7.0.4': + '@types/node@25.3.0': dependencies: - '@aws-sdk/client-sesv2': 3.946.0 - '@types/node': 22.19.1 - transitivePeerDependencies: - - aws-crt + undici-types: 7.18.2 + + '@types/nodemailer@7.0.11': + dependencies: + '@types/node': 22.19.11 '@types/parse-json@4.0.2': {} - '@types/pdfkit@0.17.4': + '@types/pdfkit@0.17.5': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.11 '@types/pg@8.10.2': dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.11 pg-protocol: 1.11.0 pg-types: 4.1.0 - '@types/react-dom@19.2.3(@types/react@19.2.7)': + '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.14 - '@types/react-transition-group@4.4.12(@types/react@19.2.7)': + '@types/react-transition-group@4.4.12(@types/react@19.2.14)': dependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.14 - '@types/react@19.2.7': + '@types/react@19.2.14': dependencies: csstype: 3.2.3 @@ -7544,15 +6336,15 @@ snapshots: '@types/uuid@10.0.0': {} - '@typescript-eslint/eslint-plugin@8.55.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.55.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.55.0 - '@typescript-eslint/type-utils': 8.55.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/utils': 8.55.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.55.0 - eslint: 9.39.2 + '@typescript-eslint/parser': 8.56.0(eslint@9.39.3)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.0 + '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.0 + eslint: 9.39.3 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -7560,80 +6352,80 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.55.0 - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.55.0 + '@typescript-eslint/scope-manager': 8.56.0 + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.0 debug: 4.4.3 - eslint: 9.39.2 + eslint: 9.39.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.55.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.56.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.55.0(typescript@5.9.3) - '@typescript-eslint/types': 8.55.0 + '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3) + '@typescript-eslint/types': 8.56.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.55.0': + '@typescript-eslint/scope-manager@8.56.0': dependencies: - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/visitor-keys': 8.55.0 + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/visitor-keys': 8.56.0 - '@typescript-eslint/tsconfig-utils@8.55.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.56.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.55.0(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.56.0(eslint@9.39.3)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.55.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.2 + eslint: 9.39.3 ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.55.0': {} + '@typescript-eslint/types@8.56.0': {} - '@typescript-eslint/typescript-estree@8.55.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.56.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.55.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.55.0(typescript@5.9.3) - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/visitor-keys': 8.55.0 + '@typescript-eslint/project-service': 8.56.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3) + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/visitor-keys': 8.56.0 debug: 4.4.3 - minimatch: 9.0.5 - semver: 7.7.3 + minimatch: 10.2.2 + semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.55.0(eslint@9.39.2)(typescript@5.9.3)': + '@typescript-eslint/utils@8.56.0(eslint@9.39.3)(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) - '@typescript-eslint/scope-manager': 8.55.0 - '@typescript-eslint/types': 8.55.0 - '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) - eslint: 9.39.2 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3) + '@typescript-eslint/scope-manager': 8.56.0 + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) + eslint: 9.39.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.55.0': + '@typescript-eslint/visitor-keys@8.56.0': dependencies: - '@typescript-eslint/types': 8.55.0 - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.56.0 + eslint-visitor-keys: 5.0.1 '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -7694,92 +6486,82 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-react@4.5.2(vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0))': + '@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0))': dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5) - '@rolldown/pluginutils': 1.0.0-beta.11 + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0) + react-refresh: 0.18.0 + vite: 7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.0.15(vitest@4.0.15(@types/node@22.19.1)(jsdom@26.1.0)(sass@1.77.4)(tsx@4.21.0))': + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@25.3.0)(jsdom@28.1.0)(sass@1.77.4)(tsx@4.21.0))': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.0.15 - ast-v8-to-istanbul: 0.3.8 + '@vitest/utils': 4.0.18 + ast-v8-to-istanbul: 0.3.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 - magicast: 0.5.1 + magicast: 0.5.2 obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.15(@types/node@22.19.1)(jsdom@26.1.0)(sass@1.77.4)(tsx@4.21.0) - transitivePeerDependencies: - - supports-color + vitest: 4.0.18(@types/node@25.3.0)(jsdom@28.1.0)(sass@1.77.4)(tsx@4.21.0) - '@vitest/expect@4.0.15': + '@vitest/expect@4.0.18': dependencies: - '@standard-schema/spec': 1.0.0 + '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.15 - '@vitest/utils': 4.0.15 - chai: 6.2.1 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.15(vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0))': + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0))': dependencies: - '@vitest/spy': 4.0.15 + '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0) + vite: 7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0) - '@vitest/pretty-format@4.0.15': + '@vitest/pretty-format@4.0.18': dependencies: tinyrainbow: 3.0.3 - '@vitest/runner@4.0.15': + '@vitest/runner@4.0.18': dependencies: - '@vitest/utils': 4.0.15 + '@vitest/utils': 4.0.18 pathe: 2.0.3 - '@vitest/snapshot@4.0.15': + '@vitest/snapshot@4.0.18': dependencies: - '@vitest/pretty-format': 4.0.15 + '@vitest/pretty-format': 4.0.18 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.15': {} + '@vitest/spy@4.0.18': {} - '@vitest/utils@4.0.15': + '@vitest/utils@4.0.18': dependencies: - '@vitest/pretty-format': 4.0.15 + '@vitest/pretty-format': 4.0.18 tinyrainbow: 3.0.3 - acorn-jsx@5.3.2(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn@8.12.1: {} - acorn@8.15.0: {} + acorn@8.16.0: {} agent-base@7.1.4: {} - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.0 @@ -7851,7 +6633,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 @@ -7861,7 +6643,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -7871,7 +6653,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -7880,21 +6662,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -7903,7 +6685,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -7912,11 +6694,11 @@ snapshots: ast-types-flow@0.0.8: {} - ast-v8-to-istanbul@0.3.8: + ast-v8-to-istanbul@0.3.11: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 - js-tokens: 9.0.1 + js-tokens: 10.0.0 async-function@1.0.0: {} @@ -7928,7 +6710,7 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axe-core@4.11.0: {} + axe-core@4.11.1: {} axobject-query@4.1.0: {} @@ -7938,15 +6720,17 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.11 - balanced-match@1.0.2: {} + balanced-match@4.0.3: {} base64-js@0.0.8: {} base64-js@1.5.1: {} - baseline-browser-mapping@2.8.31: {} + baseline-browser-mapping@2.10.0: {} - baseline-browser-mapping@2.9.19: {} + bidi-js@1.0.3: + dependencies: + require-from-string: 2.0.2 big-integer@1.6.52: {} @@ -7969,16 +6753,9 @@ snapshots: body-scroll-lock@4.0.0-beta.0: {} - bowser@2.13.1: {} - - brace-expansion@1.1.12: + brace-expansion@5.0.2: dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 + balanced-match: 4.0.3 braces@3.0.3: dependencies: @@ -7988,13 +6765,13 @@ snapshots: dependencies: base64-js: 1.5.1 - browserslist@4.28.0: + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.8.31 - caniuse-lite: 1.0.30001760 - electron-to-chromium: 1.5.260 + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001772 + electron-to-chromium: 1.5.302 node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.28.0) + update-browserslist-db: 1.2.3(browserslist@4.28.1) bson-objectid@2.0.4: {} @@ -8013,13 +6790,13 @@ snapshots: buffers@0.1.1: {} - bullmq@5.65.1: + bullmq@5.70.1: dependencies: cron-parser: 4.9.0 - ioredis: 5.8.2 + ioredis: 5.9.3 msgpackr: 1.11.5 node-abort-controller: 3.1.1 - semver: 7.7.3 + semver: 7.7.4 tslib: 2.8.1 uuid: 11.1.0 transitivePeerDependencies: @@ -8048,11 +6825,11 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001760: {} + caniuse-lite@1.0.30001772: {} ccount@2.0.1: {} - chai@6.2.1: {} + chai@6.2.2: {} chainsaw@0.1.0: dependencies: @@ -8085,7 +6862,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - ci-info@4.3.1: {} + ci-info@4.4.0: {} client-only@0.0.1: {} @@ -8118,8 +6895,6 @@ snapshots: normalize-path: 3.0.0 readable-stream: 3.6.2 - concat-map@0.0.1: {} - console-table-printer@2.12.1: dependencies: simple-wcswidth: 1.1.2 @@ -8151,8 +6926,9 @@ snapshots: croner@9.1.0: {} - cross-env@7.0.3: + cross-env@10.1.0: dependencies: + '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 cross-spawn@7.0.6: @@ -8165,12 +6941,19 @@ snapshots: crypto-js@4.2.0: {} + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + cssfilter@0.0.10: {} - cssstyle@4.6.0: + cssstyle@6.1.0: dependencies: - '@asamuzakjp/css-color': 3.2.0 - rrweb-cssom: 0.8.0 + '@asamuzakjp/css-color': 5.0.0 + '@csstools/css-syntax-patches-for-csstree': 1.0.28 + css-tree: 3.1.0 + lru-cache: 11.2.6 csstype@3.1.3: {} @@ -8218,10 +7001,12 @@ snapshots: data-uri-to-buffer@4.0.1: {} - data-urls@5.0.0: + data-urls@7.0.0: dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1 + transitivePeerDependencies: + - '@noble/hashes' data-view-buffer@1.0.2: dependencies: @@ -8263,7 +7048,7 @@ snapshots: decimal.js@10.6.0: {} - decode-named-character-reference@1.2.0: + decode-named-character-reference@1.3.0: dependencies: character-entities: 2.0.2 @@ -8308,18 +7093,18 @@ snapshots: optionalDependencies: '@types/trusted-types': 2.0.7 - dotenv@16.4.7: {} + dotenv@17.3.1: {} drizzle-kit@0.31.7: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 - esbuild: 0.25.12 - esbuild-register: 3.6.0(esbuild@0.25.12) + esbuild: 0.27.3 + esbuild-register: 3.6.0(esbuild@0.27.3) transitivePeerDependencies: - supports-color - drizzle-kit@0.31.8: + drizzle-kit@0.31.9: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 @@ -8349,7 +7134,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - electron-to-chromium@1.5.260: {} + electron-to-chromium@1.5.302: {} emoji-regex@10.6.0: {} @@ -8367,7 +7152,7 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.0: + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -8422,18 +7207,18 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.2.1: + es-iterator-helpers@1.2.2: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -8470,7 +7255,7 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - es-toolkit@1.43.0: {} + es-toolkit@1.44.0: {} esbuild-register@3.6.0(esbuild@0.25.12): dependencies: @@ -8479,30 +7264,12 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + esbuild-register@3.6.0(esbuild@0.27.3): + dependencies: + debug: 4.4.3 + esbuild: 0.27.3 + transitivePeerDependencies: + - supports-color esbuild@0.25.12: optionalDependencies: @@ -8568,18 +7335,18 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@16.2.0-canary.41(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3): + eslint-config-next@16.2.0-canary.58(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3)(typescript@5.9.3): dependencies: - '@next/eslint-plugin-next': 16.2.0-canary.41 - eslint: 9.39.2 + '@next/eslint-plugin-next': 16.2.0-canary.58 + eslint: 9.39.3 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2) - eslint-plugin-react: 7.37.5(eslint@9.39.2) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3))(eslint@9.39.3) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.3) + eslint-plugin-react: 7.37.5(eslint@9.39.3) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.3) globals: 16.4.0 - typescript-eslint: 8.55.0(eslint@9.39.2)(typescript@5.9.3) + typescript-eslint: 8.56.0(eslint@9.39.3)(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -8596,33 +7363,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3))(eslint@9.39.3): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 9.39.2 - get-tsconfig: 4.13.0 + eslint: 9.39.3 + get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3))(eslint@9.39.3))(eslint@9.39.3): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.55.0(eslint@9.39.2)(typescript@5.9.3) - eslint: 9.39.2 + '@typescript-eslint/parser': 8.56.0(eslint@9.39.3)(typescript@5.9.3) + eslint: 9.39.3 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3))(eslint@9.39.3) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.3): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8631,13 +7398,13 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.2 + eslint: 9.39.3 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3))(eslint@9.39.3))(eslint@9.39.3) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 - minimatch: 3.1.2 + minimatch: 10.2.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 @@ -8645,60 +7412,60 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.55.0(eslint@9.39.2)(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.0(eslint@9.39.3)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.3): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.0 + axe-core: 4.11.1 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.39.2 + eslint: 9.39.3 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 - minimatch: 3.1.2 + minimatch: 10.2.2 object.fromentries: 2.0.8 safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@7.0.1(eslint@9.39.2): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.3): dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.6 - eslint: 9.39.2 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + eslint: 9.39.3 hermes-parser: 0.25.1 zod: 4.3.6 zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@9.39.2): + eslint-plugin-react@7.37.5(eslint@9.39.3): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.39.2 + es-iterator-helpers: 1.2.2 + eslint: 9.39.3 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 + minimatch: 10.2.2 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.6 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 @@ -8712,21 +7479,23 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.39.2: + eslint-visitor-keys@5.0.1: {} + + eslint@9.39.3: dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.3) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.39.2 + '@eslint/js': 9.39.3 '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.12.6 + ajv: 8.18.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3 @@ -8734,7 +7503,7 @@ snapshots: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - esquery: 1.6.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -8745,7 +7514,7 @@ snapshots: is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 10.2.2 natural-compare: 1.4.0 optionator: 0.9.4 transitivePeerDependencies: @@ -8753,11 +7522,11 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -8780,7 +7549,7 @@ snapshots: esutils@2.0.3: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} exceljs@4.4.0: dependencies: @@ -8794,7 +7563,7 @@ snapshots: unzipper: 0.10.14 uuid: 8.3.2 - expect-type@1.2.2: {} + expect-type@1.3.0: {} extend@3.0.2: {} @@ -8815,19 +7584,13 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} - fast-levenshtein@2.0.6: {} fast-safe-stringify@2.1.1: {} fast-uri@3.1.0: {} - fast-xml-parser@5.2.5: - dependencies: - strnum: 2.1.1 - - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -8874,7 +7637,7 @@ snapshots: fontkit@2.0.4: dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.18 brotli: 1.3.3 clone: 2.1.2 dfa: 1.2.0 @@ -8950,7 +7713,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.4.0: {} + get-east-asian-width@1.5.0: {} get-intrinsic@1.3.0: dependencies: @@ -8976,7 +7739,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: + get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -8996,8 +7759,8 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 + minimatch: 10.2.2 + minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -9006,7 +7769,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 10.2.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -9040,12 +7803,12 @@ snapshots: extend: 3.0.2 gaxios: 7.1.3 google-auth-library: 10.5.0 - qs: 6.14.1 + qs: 6.15.0 url-template: 2.0.8 transitivePeerDependencies: - supports-color - googleapis@170.0.0: + googleapis@171.4.0: dependencies: google-auth-library: 10.5.0 googleapis-common: 8.0.1 @@ -9112,9 +7875,11 @@ snapshots: dependencies: react-is: 16.13.1 - html-encoding-sniffer@4.0.0: + html-encoding-sniffer@6.0.0: dependencies: - whatwg-encoding: 3.1.1 + '@exodus/bytes': 1.14.1 + transitivePeerDependencies: + - '@noble/hashes' html-escaper@2.0.2: {} @@ -9134,10 +7899,6 @@ snapshots: transitivePeerDependencies: - supports-color - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - ieee754@1.2.1: {} ignore@5.3.2: {} @@ -9150,7 +7911,7 @@ snapshots: immer@10.2.0: {} - immer@11.1.3: {} + immer@11.1.4: {} immutable@4.3.7: {} @@ -9176,9 +7937,9 @@ snapshots: internmap@2.0.3: {} - ioredis@5.8.2: + ioredis@5.9.3: dependencies: - '@ioredis/commands': 1.4.0 + '@ioredis/commands': 1.5.0 cluster-key-slot: 1.1.2 debug: 4.4.3 denque: 2.1.0 @@ -9237,7 +7998,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 is-callable@1.2.7: {} @@ -9319,7 +8080,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 is-weakmap@2.0.2: {} @@ -9348,14 +8109,6 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.6: - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 @@ -9382,40 +8135,40 @@ snapshots: jpeg-exif@1.1.4: {} - js-tokens@4.0.0: {} + js-tokens@10.0.0: {} - js-tokens@9.0.1: {} + js-tokens@4.0.0: {} js-yaml@4.1.1: dependencies: argparse: 2.0.1 - jsdom@26.1.0: + jsdom@28.1.0: dependencies: - cssstyle: 4.6.0 - data-urls: 5.0.0 + '@acemir/cssom': 0.9.31 + '@asamuzakjp/dom-selector': 6.8.1 + '@bramus/specificity': 2.4.2 + '@exodus/bytes': 1.14.1 + cssstyle: 6.1.0 + data-urls: 7.0.0 decimal.js: 10.6.0 - html-encoding-sniffer: 4.0.0 + html-encoding-sniffer: 6.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.22 - parse5: 7.3.0 - rrweb-cssom: 0.8.0 + parse5: 8.0.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.1.2 + tough-cookie: 6.0.0 + undici: 7.22.0 w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 - ws: 8.18.3 + webidl-conversions: 8.0.1 + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1 xml-name-validator: 5.0.0 transitivePeerDependencies: - - bufferutil + - '@noble/hashes' - supports-color - - utf-8-validate jsesc@3.1.0: {} @@ -9429,7 +8182,7 @@ snapshots: json-schema-to-ts@3.1.1: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.28.6 ts-algebra: 2.0.0 json-schema-to-typescript@15.0.3: @@ -9439,18 +8192,16 @@ snapshots: '@types/lodash': 4.17.23 is-glob: 4.0.3 js-yaml: 4.1.1 - lodash: 4.17.21 + lodash: 4.17.23 minimist: 1.2.8 - prettier: 3.7.4 + prettier: 3.8.1 tinyglobby: 0.2.15 - json-schema-traverse@0.4.1: {} - json-schema-traverse@1.0.0: {} json-schema-walker@3.2.0(@types/json-schema@7.0.15): dependencies: - '@apidevtools/json-schema-ref-parser': 15.1.3(@types/json-schema@7.0.15) + '@apidevtools/json-schema-ref-parser': 15.2.2(@types/json-schema@7.0.15) transitivePeerDependencies: - '@types/json-schema' @@ -9563,7 +8314,7 @@ snapshots: lodash.uniq@4.5.0: {} - lodash@4.17.21: {} + lodash@4.17.23: {} longest-streak@3.1.0: {} @@ -9573,6 +8324,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.6: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -9583,15 +8336,15 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.5.1: + magicast@0.5.2: dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 source-map-js: 1.2.1 make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 marked@14.0.0: {} @@ -9607,7 +8360,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -9651,20 +8404,22 @@ snapshots: mdast-util-to-string: 4.0.0 micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 zwitch: 2.0.4 mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 + mdn-data@2.12.2: {} + memoize-one@6.0.0: {} merge2@1.4.1: {} micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -9765,7 +8520,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -9813,7 +8568,7 @@ snapshots: dependencies: '@types/debug': 4.1.12 debug: 4.4.3 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -9836,21 +8591,13 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - minimatch@3.1.2: + minimatch@10.2.2: dependencies: - brace-expansion: 1.1.12 - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.2 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.2 minimist@1.2.8: {} - minipass@7.1.2: {} + minipass@7.1.3: {} mkdirp@0.5.6: dependencies: @@ -9887,26 +8634,26 @@ snapshots: natural-compare@1.4.0: {} - next@16.2.0-canary.41(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4): + next@16.2.0-canary.58(@babel/core@7.29.0)(@playwright/test@1.58.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.77.4): dependencies: - '@next/env': 16.2.0-canary.41 + '@next/env': 16.2.0-canary.58 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001760 + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001772 postcss: 8.4.31 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.0-canary.41 - '@next/swc-darwin-x64': 16.2.0-canary.41 - '@next/swc-linux-arm64-gnu': 16.2.0-canary.41 - '@next/swc-linux-arm64-musl': 16.2.0-canary.41 - '@next/swc-linux-x64-gnu': 16.2.0-canary.41 - '@next/swc-linux-x64-musl': 16.2.0-canary.41 - '@next/swc-win32-arm64-msvc': 16.2.0-canary.41 - '@next/swc-win32-x64-msvc': 16.2.0-canary.41 - '@playwright/test': 1.57.0 + '@next/swc-darwin-arm64': 16.2.0-canary.58 + '@next/swc-darwin-x64': 16.2.0-canary.58 + '@next/swc-linux-arm64-gnu': 16.2.0-canary.58 + '@next/swc-linux-arm64-musl': 16.2.0-canary.58 + '@next/swc-linux-x64-gnu': 16.2.0-canary.58 + '@next/swc-linux-x64-musl': 16.2.0-canary.58 + '@next/swc-win32-arm64-msvc': 16.2.0-canary.58 + '@next/swc-win32-x64-msvc': 16.2.0-canary.58 + '@playwright/test': 1.58.2 sass: 1.77.4 sharp: 0.34.5 transitivePeerDependencies: @@ -9919,6 +8666,13 @@ snapshots: node-domexception@1.0.0: {} + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 @@ -9932,12 +8686,10 @@ snapshots: node-releases@2.0.27: {} - nodemailer@7.0.11: {} + nodemailer@8.0.1: {} normalize-path@3.0.0: {} - nwsapi@2.2.22: {} - object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -9966,14 +8718,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 object.values@1.2.1: dependencies: @@ -10032,19 +8784,19 @@ snapshots: '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@7.3.0: + parse5@8.0.0: dependencies: entities: 6.0.1 @@ -10059,7 +8811,7 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 path-to-regexp@6.3.0: {} @@ -10067,25 +8819,25 @@ snapshots: pathe@2.0.3: {} - payload-oapi@0.2.5(@types/json-schema@7.0.15)(payload@3.76.1(graphql@16.12.0)(typescript@5.9.3)): + payload-oapi@0.2.5(@types/json-schema@7.0.15)(payload@3.77.0(graphql@16.12.0)(typescript@5.9.3)): dependencies: - '@openapi-contrib/json-schema-to-openapi-schema': 4.3.0(@types/json-schema@7.0.15)(openapi-types@12.1.3) + '@openapi-contrib/json-schema-to-openapi-schema': 4.3.1(@types/json-schema@7.0.15)(openapi-types@12.1.3) mutative: 1.3.0 openapi-types: 12.1.3 - payload: 3.76.1(graphql@16.12.0)(typescript@5.9.3) + payload: 3.77.0(graphql@16.12.0)(typescript@5.9.3) util: 0.12.5 transitivePeerDependencies: - '@types/json-schema' - payload@3.76.1(graphql@16.12.0)(typescript@5.9.3): + payload@3.77.0(graphql@16.12.0)(typescript@5.9.3): dependencies: - '@next/env': 15.5.9 - '@payloadcms/translations': 3.76.1 + '@next/env': 15.5.12 + '@payloadcms/translations': 3.77.0 '@types/busboy': 1.5.4 - ajv: 8.17.1 + ajv: 8.18.0 bson-objectid: 2.0.4 busboy: 1.6.0 - ci-info: 4.3.1 + ci-info: 4.4.0 console-table-printer: 2.12.1 croner: 9.1.0 dataloader: 2.2.3 @@ -10129,7 +8881,7 @@ snapshots: pg-cloudflare@1.3.0: optional: true - pg-connection-string@2.10.0: {} + pg-connection-string@2.11.0: {} pg-int8@1.0.1: {} @@ -10161,7 +8913,7 @@ snapshots: pg@8.16.3: dependencies: - pg-connection-string: 2.10.0 + pg-connection-string: 2.11.0 pg-pool: 3.11.0(pg@8.16.3) pg-protocol: 1.11.0 pg-types: 2.2.0 @@ -10196,7 +8948,7 @@ snapshots: pino-abstract-transport: 2.0.0 pump: 3.0.3 secure-json-parse: 4.1.0 - sonic-boom: 4.2.0 + sonic-boom: 4.2.1 strip-json-comments: 5.0.3 pino-std-serializers@7.1.0: {} @@ -10212,14 +8964,14 @@ snapshots: quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.0 + sonic-boom: 4.2.1 thread-stream: 3.1.0 - playwright-core@1.57.0: {} + playwright-core@1.58.2: {} - playwright@1.57.0: + playwright@1.58.2: dependencies: - playwright-core: 1.57.0 + playwright-core: 1.58.2 optionalDependencies: fsevents: 2.3.2 @@ -10267,7 +9019,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.7.4: {} + prettier@3.8.1: {} prismjs@1.30.0: {} @@ -10295,7 +9047,7 @@ snapshots: qs-esm@7.0.2: {} - qs@6.14.1: + qs@6.15.0: dependencies: side-channel: 1.1.0 @@ -10305,73 +9057,73 @@ snapshots: range-parser@1.2.1: {} - react-datepicker@7.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-datepicker@7.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@floating-ui/react': 0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@floating-ui/react': 0.27.18(react-dom@19.2.4(react@19.2.4))(react@19.2.4) clsx: 2.1.1 date-fns: 3.6.0 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - react-dom@19.2.3(react@19.2.3): + react-dom@19.2.4(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 scheduler: 0.27.0 - react-error-boundary@3.1.4(react@19.2.3): + react-error-boundary@3.1.4(react@19.2.4): dependencies: '@babel/runtime': 7.28.6 - react: 19.2.3 + react: 19.2.4 - react-error-boundary@4.1.2(react@19.2.3): + react-error-boundary@4.1.2(react@19.2.4): dependencies: '@babel/runtime': 7.28.6 - react: 19.2.3 + react: 19.2.4 - react-image-crop@10.1.8(react@19.2.3): + react-image-crop@10.1.8(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 react-is@16.13.1: {} - react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1): + react-redux@9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 - react: 19.2.3 - use-sync-external-store: 1.6.0(react@19.2.3) + react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4) optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.14 redux: 5.0.1 - react-refresh@0.17.0: {} + react-refresh@0.18.0: {} - react-select@5.9.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-select@5.9.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@babel/runtime': 7.28.6 '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3) - '@floating-ui/dom': 1.7.4 - '@types/react-transition-group': 4.4.12(@types/react@19.2.7) + '@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.4) + '@floating-ui/dom': 1.7.5 + '@types/react-transition-group': 4.4.12(@types/react@19.2.14) memoize-one: 6.0.0 prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - '@types/react' - supports-color - react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-transition-group@4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@babel/runtime': 7.28.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - react@19.2.3: {} + react@19.2.4: {} readable-stream@2.3.8: dependencies: @@ -10391,7 +9143,7 @@ snapshots: readdir-glob@1.1.3: dependencies: - minimatch: 5.1.6 + minimatch: 10.2.2 readdirp@3.6.0: dependencies: @@ -10399,21 +9151,21 @@ snapshots: real-require@0.2.0: {} - recharts@3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@16.13.1)(react@19.2.3)(redux@5.0.1): + recharts@3.7.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react-is@16.13.1)(react@19.2.4)(redux@5.0.1): dependencies: - '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1))(react@19.2.3) + '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1))(react@19.2.4) clsx: 2.1.1 decimal.js-light: 2.5.1 - es-toolkit: 1.43.0 - eventemitter3: 5.0.1 + es-toolkit: 1.44.0 + eventemitter3: 5.0.4 immer: 10.2.0 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) react-is: 16.13.1 - react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1) + react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1) reselect: 5.1.1 tiny-invariant: 1.3.3 - use-sync-external-store: 1.6.0(react@19.2.3) + use-sync-external-store: 1.6.0(react@19.2.4) victory-vendor: 37.3.6 transitivePeerDependencies: - '@types/react' @@ -10435,7 +9187,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -10465,9 +9217,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + resolve@2.0.0-next.6: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10483,36 +9238,37 @@ snapshots: dependencies: glob: 10.5.0 - rollup@4.53.3: + rollup@4.59.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.53.3 - '@rollup/rollup-android-arm64': 4.53.3 - '@rollup/rollup-darwin-arm64': 4.53.3 - '@rollup/rollup-darwin-x64': 4.53.3 - '@rollup/rollup-freebsd-arm64': 4.53.3 - '@rollup/rollup-freebsd-x64': 4.53.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.53.3 - '@rollup/rollup-linux-arm-musleabihf': 4.53.3 - '@rollup/rollup-linux-arm64-gnu': 4.53.3 - '@rollup/rollup-linux-arm64-musl': 4.53.3 - '@rollup/rollup-linux-loong64-gnu': 4.53.3 - '@rollup/rollup-linux-ppc64-gnu': 4.53.3 - '@rollup/rollup-linux-riscv64-gnu': 4.53.3 - '@rollup/rollup-linux-riscv64-musl': 4.53.3 - '@rollup/rollup-linux-s390x-gnu': 4.53.3 - '@rollup/rollup-linux-x64-gnu': 4.53.3 - '@rollup/rollup-linux-x64-musl': 4.53.3 - '@rollup/rollup-openharmony-arm64': 4.53.3 - '@rollup/rollup-win32-arm64-msvc': 4.53.3 - '@rollup/rollup-win32-ia32-msvc': 4.53.3 - '@rollup/rollup-win32-x64-gnu': 4.53.3 - '@rollup/rollup-win32-x64-msvc': 4.53.3 + '@rollup/rollup-android-arm-eabi': 4.59.0 + '@rollup/rollup-android-arm64': 4.59.0 + '@rollup/rollup-darwin-arm64': 4.59.0 + '@rollup/rollup-darwin-x64': 4.59.0 + '@rollup/rollup-freebsd-arm64': 4.59.0 + '@rollup/rollup-freebsd-x64': 4.59.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 + '@rollup/rollup-linux-arm64-musl': 4.59.0 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 + '@rollup/rollup-linux-loong64-musl': 4.59.0 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 + '@rollup/rollup-linux-x64-gnu': 4.59.0 + '@rollup/rollup-linux-x64-musl': 4.59.0 + '@rollup/rollup-openbsd-x64': 4.59.0 + '@rollup/rollup-openharmony-arm64': 4.59.0 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 + '@rollup/rollup-win32-x64-gnu': 4.59.0 + '@rollup/rollup-win32-x64-msvc': 4.59.0 fsevents: 2.3.3 - rrweb-cssom@0.8.0: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -10542,8 +9298,6 @@ snapshots: safe-stable-stringify@2.5.0: {} - safer-buffer@2.1.2: {} - sanitize-filename@1.6.3: dependencies: truncate-utf8-bytes: 1.0.2 @@ -10570,7 +9324,7 @@ snapshots: semver@6.3.1: {} - semver@7.7.3: {} + semver@7.7.4: {} set-function-length@1.2.2: dependencies: @@ -10600,7 +9354,7 @@ snapshots: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 - semver: 7.7.3 + semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -10669,14 +9423,14 @@ snapshots: sisteransi@1.0.5: {} - sonic-boom@4.2.0: + sonic-boom@4.2.1: dependencies: atomic-sleep: 1.0.0 - sonner@1.7.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + sonner@1.7.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) source-map-js@1.2.1: {} @@ -10723,21 +9477,21 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.5.0 strip-ansi: 7.1.2 string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -10751,7 +9505,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 string.prototype.trim@1.2.10: dependencies: @@ -10759,7 +9513,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -10803,19 +9557,17 @@ snapshots: strip-json-comments@5.0.3: {} - strnum@2.1.1: {} - strtok3@8.1.0: dependencies: '@tokenizer/token': 0.3.0 peek-readable: 5.4.2 - styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.4): dependencies: client-only: 0.0.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 stylis@4.2.0: {} @@ -10856,11 +9608,11 @@ snapshots: tinyrainbow@3.0.3: {} - tldts-core@6.1.86: {} + tldts-core@7.0.23: {} - tldts@6.1.86: + tldts@7.0.23: dependencies: - tldts-core: 6.1.86 + tldts-core: 7.0.23 tmp@0.2.5: {} @@ -10884,11 +9636,11 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - tough-cookie@5.1.2: + tough-cookie@6.0.0: dependencies: - tldts: 6.1.86 + tldts: 7.0.23 - tr46@5.1.1: + tr46@6.0.0: dependencies: punycode: 2.3.1 @@ -10924,7 +9676,7 @@ snapshots: tsx@4.21.0: dependencies: esbuild: 0.27.3 - get-tsconfig: 4.13.0 + get-tsconfig: 4.13.6 optionalDependencies: fsevents: 2.3.3 @@ -10965,13 +9717,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.55.0(eslint@9.39.2)(typescript@5.9.3): + typescript-eslint@8.56.0(eslint@9.39.3)(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.55.0(@typescript-eslint/parser@8.55.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/parser': 8.55.0(eslint@9.39.2)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.55.0(eslint@9.39.2)(typescript@5.9.3) - eslint: 9.39.2 + '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.3)(typescript@5.9.3))(eslint@9.39.3)(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.0(eslint@9.39.3)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.0(eslint@9.39.3)(typescript@5.9.3) + eslint: 9.39.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -10989,8 +9741,12 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.18.2: {} + undici@7.18.2: {} + undici@7.22.0: {} + unicode-properties@1.4.1: dependencies: base64-js: 1.5.1 @@ -11018,7 +9774,7 @@ snapshots: '@types/unist': 3.0.3 unist-util-is: 6.0.1 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 @@ -11061,32 +9817,28 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 - update-browserslist-db@1.1.4(browserslist@4.28.0): + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - url-template@2.0.8: {} - use-context-selector@2.0.0(react@19.2.3)(scheduler@0.25.0): + use-context-selector@2.0.0(react@19.2.4)(scheduler@0.25.0): dependencies: - react: 19.2.3 + react: 19.2.4 scheduler: 0.25.0 - use-isomorphic-layout-effect@1.2.1(@types/react@19.2.7)(react@19.2.3): + use-isomorphic-layout-effect@1.2.1(@types/react@19.2.14)(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.7 + '@types/react': 19.2.14 - use-sync-external-store@1.6.0(react@19.2.3): + use-sync-external-store@1.6.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 utf8-byte-length@1.0.5: {} @@ -11098,7 +9850,7 @@ snapshots: is-arguments: 1.2.0 is-generator-function: 1.1.2 is-typed-array: 1.1.15 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 uuid@10.0.0: {} @@ -11130,42 +9882,41 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-tsconfig-paths@6.0.0(typescript@5.9.3)(vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0)): + vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) - optionalDependencies: - vite: 7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0) + vite: 7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0) transitivePeerDependencies: - supports-color - typescript - vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0): + vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0): dependencies: - esbuild: 0.25.12 + esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.53.3 + rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.1 + '@types/node': 25.3.0 fsevents: 2.3.3 sass: 1.77.4 tsx: 4.21.0 - vitest@4.0.15(@types/node@22.19.1)(jsdom@26.1.0)(sass@1.77.4)(tsx@4.21.0): + vitest@4.0.18(@types/node@25.3.0)(jsdom@28.1.0)(sass@1.77.4)(tsx@4.21.0): dependencies: - '@vitest/expect': 4.0.15 - '@vitest/mocker': 4.0.15(vite@7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0)) - '@vitest/pretty-format': 4.0.15 - '@vitest/runner': 4.0.15 - '@vitest/snapshot': 4.0.15 - '@vitest/spy': 4.0.15 - '@vitest/utils': 4.0.15 + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 es-module-lexer: 1.7.0 - expect-type: 1.2.2 + expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 @@ -11175,11 +9926,11 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.2.4(@types/node@22.19.1)(sass@1.77.4)(tsx@4.21.0) + vite: 7.3.1(@types/node@25.3.0)(sass@1.77.4)(tsx@4.21.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.19.1 - jsdom: 26.1.0 + '@types/node': 25.3.0 + jsdom: 28.1.0 transitivePeerDependencies: - jiti - less @@ -11199,18 +9950,17 @@ snapshots: web-streams-polyfill@3.3.3: {} - webidl-conversions@7.0.0: {} + webidl-conversions@8.0.1: {} - whatwg-encoding@3.1.1: + whatwg-mimetype@5.0.0: {} + + whatwg-url@16.0.1: dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@4.0.0: {} - - whatwg-url@14.2.0: - dependencies: - tr46: 5.1.1 - webidl-conversions: 7.0.0 + '@exodus/bytes': 1.14.1 + tr46: 6.0.0 + webidl-conversions: 8.0.1 + transitivePeerDependencies: + - '@noble/hashes' which-boxed-primitive@1.1.1: dependencies: @@ -11234,7 +9984,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 which-collection@1.0.2: dependencies: @@ -11243,7 +9993,7 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.19: + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -11284,8 +10034,6 @@ snapshots: wrappy@1.0.2: {} - ws@8.18.3: {} - ws@8.19.0: {} xml-name-validator@5.0.0: {} diff --git a/scripts/seed-zweitmeinung.ts b/scripts/seed-zweitmeinung.ts index 9a2fb0c..2ec331b 100644 --- a/scripts/seed-zweitmeinung.ts +++ b/scripts/seed-zweitmeinung.ts @@ -208,8 +208,21 @@ async function seed() { categorySlug: 'emergency', order: 1, isFeatured: true, + icon: 'activity', shortDescription: 'Unabhängige ärztliche Zweitmeinung bei laufender oder geplanter Intensivbehandlung. Wir prüfen medizinische Indikation, Patientenwille und Behandlungsalternativen – empathisch, neutral und fachlich fundiert.', + features: [ + { title: 'Unabhängige Beurteilung durch erfahrene Intensivmediziner', description: 'Neutrale Einschätzung ohne wirtschaftliche Eigeninteressen – ausschließlich in Ihrem Interesse.', icon: 'shield' }, + { title: 'Vermeidung unnötiger Eingriffe bei fehlender Indikation', description: 'Schutz vor überflüssigen invasiven Behandlungen durch fundierte medizinische Bewertung.', icon: 'file-check' }, + { title: 'Besseres Verständnis der Risiken und Therapieziele', description: 'Umfassende Aufklärung über alle Behandlungsoptionen und deren Auswirkungen.', icon: 'users' }, + { title: 'Stärkung Ihrer Entscheidungssicherheit und Eigenverantwortung', description: 'Fundierte Basis für selbstbestimmte Entscheidungen über Ihre Versorgung.', icon: 'heart-handshake' }, + ], + detailSections: [ + { title: 'Strukturierte Beratung durch erfahrene Case Manager:innen', content: createRichText('Individuelle Betreuung für Ihre weitere Behandlungsplanung.') }, + { title: 'Unabhängige ärztliche Zweitmeinung inkl. schriftlichem Gutachten', content: createRichText('Fundierte Einschätzung durch Fachärzt:innen für Intensivmedizin.') }, + { title: 'Bewertung von Therapiezielen, Indikationen und Prognose', content: createRichText('Umfassende Analyse aller relevanten medizinischen Aspekte.') }, + { title: 'Unterstützung bei palliativer Umsteuerung bis Pflegeüberleitung', content: createRichText('Begleitung bei der Umsetzung der empfohlenen Maßnahmen.') }, + ], description: createRichTextComplex([ { type: 'heading', tag: 'h2', text: 'Zweitmeinung Intensiv – fundierte Beratung in kritischen Situationen' }, { @@ -256,8 +269,21 @@ async function seed() { categorySlug: 'consultation', order: 2, isFeatured: true, + icon: 'heart', shortDescription: 'Unabhängige ärztliche Zweitmeinung vor Herzkatheter, Stent oder OP. Fundierte Empfehlung durch erfahrene Kardiolog:innen – verständlich, sicher, neutral.', + features: [ + { title: 'Unabhängige Beurteilung durch erfahrene Kardiolog:innen', description: 'Neutrale Einschätzung Ihrer kardiologischen Befunde ohne wirtschaftliche Interessen.', icon: 'shield' }, + { title: 'Vermeidung unnötiger Eingriffe bei fehlender Indikation', description: 'Schutz vor überflüssigen invasiven Behandlungen durch fundierte Bewertung.', icon: 'file-check' }, + { title: 'Besseres Verständnis der Risiken und Therapieziele', description: 'Umfassende Aufklärung über alle Behandlungsoptionen.', icon: 'users' }, + { title: 'Stärkung Ihrer Entscheidungssicherheit', description: 'Fundierte Basis für selbstbestimmte Entscheidungen über Ihre Herzgesundheit.', icon: 'heart-handshake' }, + ], + detailSections: [ + { title: 'Bewertung Ihrer Diagnosen und EKG-/Katheterbefunde', content: createRichText('Sach- und leitliniengerechte Beurteilung durch Fachärzt:innen.') }, + { title: 'Zweitmeinung bei geplanter PCI, Bypass-OP oder Umstellung', content: createRichText('Unabhängige Einschätzung aller kardiologischen Behandlungsoptionen.') }, + { title: 'Schriftliches ärztliches Gutachten mit klarer Empfehlung', content: createRichText('Nachvollziehbare, fundierte Empfehlung für Ihre Entscheidung.') }, + { title: 'Persönliche Erläuterung telefonisch oder per Video', content: createRichText('Direkter Austausch mit unseren Kardiologie-Expert:innen.') }, + ], description: createRichTextComplex([ { type: 'heading', tag: 'h2', text: 'Zweitmeinung Kardiologie – klare Empfehlungen bei Herzentscheidungen' }, { @@ -289,8 +315,21 @@ async function seed() { categorySlug: 'consultation', order: 3, isFeatured: true, + icon: 'flask-conical', shortDescription: 'Unabhängige ärztliche Zweitmeinung bei Krebs. Fundierte Einschätzung von Therapieoptionen durch erfahrene Onkolog:innen – empathisch, verständlich, individuell.', + features: [ + { title: 'Unabhängige Beurteilung durch erfahrene Onkolog:innen', description: 'Neutrale Einschätzung Ihrer Krebsdiagnose und Therapieoptionen.', icon: 'shield' }, + { title: 'Bewertung von Wirksamkeit und Nebenwirkungen', description: 'Transparente Analyse aller Behandlungswege und deren Auswirkungen auf Ihre Lebensqualität.', icon: 'file-check' }, + { title: 'Einbindung von Case Management und Palliativberatung', description: 'Ganzheitliche Betreuung über die reine Diagnose hinaus.', icon: 'users' }, + { title: 'Stärkung Ihrer Entscheidungssicherheit', description: 'Fundierte Grundlage für informierte Therapieentscheidungen.', icon: 'heart-handshake' }, + ], + detailSections: [ + { title: 'Auswertung Ihrer Diagnose und Befunde', content: createRichText('Umfassende Prüfung durch erfahrene Fachärzt:innen.') }, + { title: 'Bewertung der geplanten Therapie', content: createRichText('Analyse von Wirksamkeit, Nebenwirkungen und Lebensqualität.') }, + { title: 'Schriftliches Zweitmeinungsgutachten', content: createRichText('Nachvollziehbare, medizinisch fundierte Empfehlung.') }, + { title: 'Optionales Gespräch per Telefon oder Video', content: createRichText('Persönliche Erläuterung und Beantwortung Ihrer Fragen.') }, + ], description: createRichTextComplex([ { type: 'heading', @@ -327,8 +366,21 @@ async function seed() { categorySlug: 'consultation', order: 4, isFeatured: false, + icon: 'stethoscope', shortDescription: 'Unabhängige ärztliche Einschätzung bei Nierenerkrankungen, Dialyseempfehlung oder Transplantationsvorbereitung. Klar, neutral und verständlich erklärt.', + features: [ + { title: 'Unabhängige Beurteilung durch erfahrene Nephrolog:innen', description: 'Neutrale Einschätzung Ihrer nephrologischen Diagnostik.', icon: 'shield' }, + { title: 'Prüfung der Dialyse-Notwendigkeit', description: 'Bewertung ob und wann eine Dialyse tatsächlich erforderlich ist.', icon: 'file-check' }, + { title: 'Bewertung konservativer Behandlungsoptionen', description: 'Prüfung alternativer Therapiewege vor invasiven Maßnahmen.', icon: 'users' }, + { title: 'Stärkung Ihrer Entscheidungssicherheit', description: 'Fundierte Basis für selbstbestimmte Entscheidungen.', icon: 'heart-handshake' }, + ], + detailSections: [ + { title: 'Prüfung der nephrologischen Diagnostik und Laborwerte', content: createRichText('Umfassende Analyse Ihrer Nierenfunktionswerte.') }, + { title: 'Zweitmeinung durch Fachärzt:innen für Nephrologie', content: createRichText('Unabhängige Einschätzung erfahrener Spezialist:innen.') }, + { title: 'Gutachten zur Notwendigkeit einer Dialyse', content: createRichText('Klare Empfehlung zum Zeitpunkt und zur Art der Behandlung.') }, + { title: 'Bewertung konservativer Behandlungsoptionen', content: createRichText('Prüfung aller verfügbaren Therapiealternativen.') }, + ], description: createRichTextComplex([ { type: 'heading', tag: 'h2', text: 'Zweitmeinung Nephrologie – Klarheit bei Nierenentscheidungen' }, { @@ -356,8 +408,21 @@ async function seed() { categorySlug: 'consultation', order: 5, isFeatured: false, + icon: 'pill', shortDescription: 'Unabhängige ärztliche Zweitmeinung vor einer geplanten Gallenblasen-OP. Wir prüfen, ob der Eingriff medizinisch notwendig ist – verständlich, neutral und leitlinienbasiert.', + features: [ + { title: 'Unabhängige Beurteilung durch erfahrene Chirurg:innen', description: 'Neutrale Einschätzung der OP-Indikation.', icon: 'shield' }, + { title: 'Vermeidung unnötiger Operationen', description: 'Schutz vor überflüssigen Eingriffen durch fundierte Bewertung.', icon: 'file-check' }, + { title: 'Aufklärung über konservative Alternativen', description: 'Information über nicht-operative Behandlungsmöglichkeiten.', icon: 'users' }, + { title: 'Verständliche Erklärung der Befunde', description: 'Klare Darstellung von Risiken und Nutzen.', icon: 'heart-handshake' }, + ], + detailSections: [ + { title: 'Bewertung Ihrer Beschwerden und Untersuchungsergebnisse', content: createRichText('Sorgfältige Analyse aller vorliegenden Befunde.') }, + { title: 'Prüfung der OP-Indikation nach medizinischen Leitlinien', content: createRichText('Leitlinienbasierte Bewertung der Operationsnotwendigkeit.') }, + { title: 'Zweitmeinung durch Viszeralchirurg:innen oder Gastroenterolog:innen', content: createRichText('Unabhängige Einschätzung spezialisierter Fachärzt:innen.') }, + { title: 'Verständliches Gutachten mit klarer Empfehlung', content: createRichText('Nachvollziehbare Entscheidungsgrundlage.') }, + ], description: createRichTextComplex([ { type: 'heading', tag: 'h2', text: 'Zweitmeinung Gallenblase – unnötige Operationen vermeiden' }, { @@ -394,8 +459,21 @@ async function seed() { categorySlug: 'consultation', order: 6, isFeatured: false, + icon: 'brain', shortDescription: 'Unabhängige ärztliche Einschätzung vor einer geplanten Schilddrüsen-OP. Fundierte Zweitmeinung durch erfahrene Endokrinolog:innen – individuell, neutral, verständlich.', + features: [ + { title: 'Unabhängige Beurteilung durch erfahrene Endokrinolog:innen', description: 'Neutrale Einschätzung Ihrer Schilddrüsenbefunde.', icon: 'shield' }, + { title: 'Prüfung der OP-Notwendigkeit', description: 'Bewertung ob eine Operation tatsächlich indiziert ist.', icon: 'file-check' }, + { title: 'Bewertung konservativer Alternativen', description: 'Prüfung medikamentöser oder abwartender Therapieoptionen.', icon: 'users' }, + { title: 'Verständliche Erklärung der Befunde', description: 'Nachvollziehbare Darstellung aller Optionen.', icon: 'heart-handshake' }, + ], + detailSections: [ + { title: 'Prüfung von Ultraschallbefunden, Szintigrammen, Laborwerten', content: createRichText('Umfassende Analyse aller diagnostischen Ergebnisse.') }, + { title: 'Zweitmeinung durch Endokrinolog:innen oder Schilddrüsenchirurg:innen', content: createRichText('Spezialisierte Fachärzt:innen bewerten Ihren Fall.') }, + { title: 'Schriftliches Gutachten mit nachvollziehbarer Empfehlung', content: createRichText('Fundierte Entscheidungsgrundlage für Sie und Ihre Ärzt:innen.') }, + { title: 'Bei Bedarf: telefonische Erläuterung', content: createRichText('Persönliches Gespräch zu allen offenen Fragen.') }, + ], description: createRichTextComplex([ { type: 'heading', diff --git a/scripts/setup-github-protection.sh b/scripts/setup-github-protection.sh new file mode 100755 index 0000000..8d4e4c0 --- /dev/null +++ b/scripts/setup-github-protection.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +# Setup GitHub branch protection and auto-merge for Dependabot +# Repository: complexcaresolutions/cms.c2sgmbh +# +# Voraussetzungen: +# - gh CLI installiert und authentifiziert (gh auth login) +# - Admin-Rechte auf das Repository + +set -euo pipefail + +REPO="complexcaresolutions/cms.c2sgmbh" +BRANCH="main" + +echo "=== GitHub Repository Setup für Dependabot ===" +echo "Repository: $REPO" +echo "Branch: $BRANCH" +echo "" + +# 1. Prüfe gh CLI Auth +echo "[1/4] Prüfe GitHub CLI Authentifizierung..." +if ! gh auth status &>/dev/null; then + echo "FEHLER: gh CLI nicht authentifiziert. Bitte 'gh auth login' ausführen." + exit 1 +fi +echo " OK" + +# 2. Auto-Merge aktivieren +echo "[2/4] Aktiviere Auto-Merge in Repository-Settings..." +gh api "repos/$REPO" \ + --method PATCH \ + --field allow_auto_merge=true \ + --silent +echo " OK" + +# 3. Branch Protection setzen +echo "[3/4] Setze Branch Protection auf '$BRANCH'..." +gh api "repos/$REPO/branches/$BRANCH/protection" \ + --method PUT \ + --input - <<'EOF' +{ + "required_status_checks": { + "strict": true, + "contexts": ["CI Success"] + }, + "enforce_admins": false, + "required_pull_request_reviews": { + "required_approving_review_count": 0, + "dismiss_stale_reviews": false, + "require_code_owner_reviews": false + }, + "restrictions": null, + "allow_force_pushes": false, + "allow_deletions": false +} +EOF +echo " OK" + +# 4. Verifizierung +echo "[4/4] Verifiziere Konfiguration..." +echo "" +echo "--- Auto-Merge ---" +gh api "repos/$REPO" --jq '" allow_auto_merge: \(.allow_auto_merge)"' + +echo "" +echo "--- Branch Protection ($BRANCH) ---" +gh api "repos/$REPO/branches/$BRANCH/protection/required_status_checks" \ + --jq '" strict: \(.strict)\n checks: \(.contexts | join(", "))"' + +echo "" +echo "=== Setup abgeschlossen ===" +echo "" +echo "Nächste Schritte:" +echo " - Dependabot erstellt ab morgen 04:00 automatisch PRs" +echo " - Patch-Updates werden nach CI-Success auto-gemergt" +echo " - Major/Minor-Updates erfordern manuelles Review" diff --git a/src/collections/Users.ts b/src/collections/Users.ts index ee403cc..0a79164 100644 --- a/src/collections/Users.ts +++ b/src/collections/Users.ts @@ -58,6 +58,7 @@ export const Users: CollectionConfig = { type: 'checkbox', label: 'Super Admin', defaultValue: false, + saveToJWT: true, access: { read: superAdminFieldAccess, create: superAdminFieldAccess, diff --git a/src/payload.config.ts b/src/payload.config.ts index be93b0f..cf2d1af 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -193,6 +193,8 @@ export default buildConfig({ 'https://porwoll.de', 'https://www.porwoll.de', 'https://pl.porwoll.tech', + 'https://pl.c2sgmbh.de', + 'https://cms.c2sgmbh.de', ], // CSRF Protection csrf: [ @@ -205,6 +207,8 @@ export default buildConfig({ 'https://porwoll.de', 'https://www.porwoll.de', 'https://pl.porwoll.tech', + 'https://pl.c2sgmbh.de', + 'https://cms.c2sgmbh.de', ], collections: [ Users,