diff --git a/frontend/node_modules/.pnpm/is-map@2.0.3/node_modules/is-map/.editorconfig b/.editorconfig
similarity index 75%
rename from frontend/node_modules/.pnpm/is-map@2.0.3/node_modules/is-map/.editorconfig
rename to .editorconfig
index 8f9d77e2..a186cd20 100644
--- a/frontend/node_modules/.pnpm/is-map@2.0.3/node_modules/is-map/.editorconfig
+++ b/.editorconfig
@@ -1,15 +1,18 @@
root = true
[*]
-indent_style = tab
-end_of_line = lf
charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[{package.json,*.yml}]
+end_of_line = lf
+indent_size = 4
indent_style = space
-indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
+
+[*.{yml,yaml}]
+indent_size = 2
+
+[compose.yaml]
+indent_size = 4
diff --git a/.env b/.env
index 23ce3fdf..bab5a173 100644
--- a/.env
+++ b/.env
@@ -1,10 +1,65 @@
-# Production Environment Configuration
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=base64:FabRZZvfMqwKRSPj2KYehBzYNrYI+hX247oLw58LRVs=
+APP_DEBUG=true
+APP_URL=http://localhost
-# Database Configuration
-DB_PASSWORD=h3LvCItcZKcyRdsmeH1X+nVams7RAf89
+APP_LOCALE=en
+APP_FALLBACK_LOCALE=en
+APP_FAKER_LOCALE=en_US
-# JWT Configuration
-JWT_SECRET=ut02ymAdoHdrWAPgPsX25PMuhgqO54/Tow5JvgRdWeM=
+APP_MAINTENANCE_DRIVER=file
+# APP_MAINTENANCE_STORE=database
-# Email Configuration (Keep existing working values)
-GOOGLE_APP_PASSWORD=ojvlysraxwjriwzy
+# PHP_CLI_SERVER_WORKERS=4
+
+BCRYPT_ROUNDS=12
+
+LOG_CHANNEL=stack
+LOG_STACK=single
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
+
+DB_CONNECTION=sqlite
+# DB_HOST=127.0.0.1
+# DB_PORT=3306
+# DB_DATABASE=laravel
+# DB_USERNAME=root
+# DB_PASSWORD=
+
+SESSION_DRIVER=database
+SESSION_LIFETIME=120
+SESSION_ENCRYPT=false
+SESSION_PATH=/
+SESSION_DOMAIN=null
+
+BROADCAST_CONNECTION=log
+FILESYSTEM_DISK=local
+QUEUE_CONNECTION=database
+
+CACHE_STORE=database
+# CACHE_PREFIX=
+
+MEMCACHED_HOST=127.0.0.1
+
+REDIS_CLIENT=phpredis
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=log
+MAIL_SCHEME=null
+MAIL_HOST=127.0.0.1
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_FROM_ADDRESS="hello@example.com"
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
+
+VITE_APP_NAME="${APP_NAME}"
diff --git a/.env.example b/.env.example
new file mode 100644
index 00000000..c0660ea1
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,65 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+APP_LOCALE=en
+APP_FALLBACK_LOCALE=en
+APP_FAKER_LOCALE=en_US
+
+APP_MAINTENANCE_DRIVER=file
+# APP_MAINTENANCE_STORE=database
+
+# PHP_CLI_SERVER_WORKERS=4
+
+BCRYPT_ROUNDS=12
+
+LOG_CHANNEL=stack
+LOG_STACK=single
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
+
+DB_CONNECTION=sqlite
+# DB_HOST=127.0.0.1
+# DB_PORT=3306
+# DB_DATABASE=laravel
+# DB_USERNAME=root
+# DB_PASSWORD=
+
+SESSION_DRIVER=database
+SESSION_LIFETIME=120
+SESSION_ENCRYPT=false
+SESSION_PATH=/
+SESSION_DOMAIN=null
+
+BROADCAST_CONNECTION=log
+FILESYSTEM_DISK=local
+QUEUE_CONNECTION=database
+
+CACHE_STORE=database
+# CACHE_PREFIX=
+
+MEMCACHED_HOST=127.0.0.1
+
+REDIS_CLIENT=phpredis
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=log
+MAIL_SCHEME=null
+MAIL_HOST=127.0.0.1
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_FROM_ADDRESS="hello@example.com"
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
+
+VITE_APP_NAME="${APP_NAME}"
diff --git a/.env.prod b/.env.prod
deleted file mode 100644
index 10f37882..00000000
--- a/.env.prod
+++ /dev/null
@@ -1,16 +0,0 @@
-# Production Environment Configuration
-# Copy this file and set your actual production values
-
-# Database Configuration
-DB_PASSWORD=your_secure_database_password_here
-
-# JWT Configuration (Generate a secure random string)
-JWT_SECRET=your_secure_jwt_secret_here_minimum_32_characters
-
-# Email Configuration (Keep existing working values)
-GOOGLE_APP_PASSWORD=ojvlysraxwjriwzy
-
-# Optional: Override other settings if needed
-# SMTP_HOST=smtp.gmail.com
-# SMTP_PORT=587
-# GOOGLE_EMAIL=system@deafgain.org
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..fcb21d39
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,11 @@
+* text=auto eol=lf
+
+*.blade.php diff=html
+*.css diff=css
+*.html diff=html
+*.md diff=markdown
+*.php diff=php
+
+/.github export-ignore
+CHANGELOG.md export-ignore
+.styleci.yml export-ignore
diff --git a/.gitignore b/.gitignore
index 45f8a699..120f7e1f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,47 +1,70 @@
-# macOS
+# Laravel & PHP
+*.log
.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-ehthumbs.db
+.env
+.env.backup
+.env.production
+.phpactor.json
+.phpunit.result.cache
+/.fleet
+/.idea
+/.nova
+/.phpunit.cache
+/.vscode
+/.zed
+/auth.json
+/vendor
+Homestead.json
+Homestead.yaml
Thumbs.db
-# Node modules
-node_modules/
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
+# Node & NPM
+/node_modules
+/public/build
+/public/hot
-# Environment variables
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
+# Storage & Uploads
+/public/storage
+/storage/*.key
+/storage/pail
+/storage/app/public/*
+!/storage/app/public/.gitkeep
-# Logs
-logs
-*.log
+# Database
+/database/*.sqlite
+/database/*.sqlite-journal
+*.db
+*.db-shm
+*.db-wal
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Coverage directory used by tools like istanbul
-coverage/
-
-# Build outputs
-dist/
-build/
-.next/
+# Build artifacts
+/public/hot
+/public/storage
+/storage/*.key
+/bootstrap/cache/*
+!/bootstrap/cache/.gitkeep
# IDE
.vscode/
.idea/
*.swp
*.swo
-
-# OS generated files
*~
+
+# OS
+.DS_Store
+Thumbs.db
+
+# Composer
+/vendor/
+composer.lock
+
+# NPM/Yarn
+node_modules/
+npm-debug.log
+yarn-error.log
+package-lock.json
+pnpm-lock.yaml
+
+# TypeScript
+*.tsbuildinfo
diff --git a/Caddyfile.example b/Caddyfile.example
deleted file mode 100644
index e517a69b..00000000
--- a/Caddyfile.example
+++ /dev/null
@@ -1,143 +0,0 @@
-# Caddyfile for Eliza Kragh v. MAD Court Docket Website
-# This file should be placed in the Caddy configuration directory on the remote server
-
-# Replace with your actual domain
-docket.example.com {
- # Enable automatic HTTPS
- tls {
- # Use Let's Encrypt for SSL certificates
- # email admin@example.com
- }
-
- # Security headers
- header {
- # Security headers for legal document website
- Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- X-Content-Type-Options "nosniff"
- X-Frame-Options "SAMEORIGIN"
- X-XSS-Protection "1; mode=block"
- Referrer-Policy "strict-origin-when-cross-origin"
-
- # Remove server information
- -Server
- -X-Powered-By
- }
-
- # Rate limiting for API endpoints
- rate_limit {
- zone api {
- key {remote_host}
- events 100
- window 1m
- }
- zone auth {
- key {remote_host}
- events 10
- window 1m
- }
- }
-
- # API routes with rate limiting
- @api path /api/*
- rate_limit @api api
-
- @auth path /api/auth/*
- rate_limit @auth auth
-
- # Reverse proxy to frontend container
- reverse_proxy frontend:3000 {
- # Health check
- health_uri /
- health_interval 30s
- health_timeout 10s
-
- # Load balancing (if multiple instances)
- lb_policy round_robin
-
- # Headers for proper forwarding
- header_up Host {host}
- header_up X-Real-IP {remote_host}
- header_up X-Forwarded-For {remote_host}
- header_up X-Forwarded-Proto {scheme}
- header_up X-Forwarded-Host {host}
- }
-
- # Logging for legal compliance
- log {
- output file /var/log/caddy/docket-access.log {
- roll_size 100mb
- roll_keep 10
- roll_keep_for 720h
- }
- format json
- level INFO
- }
-
- # Error handling
- handle_errors {
- @5xx expression {http.error.status_code} >= 500
- respond @5xx "Service temporarily unavailable" 503
-
- @4xx expression {http.error.status_code} >= 400 && {http.error.status_code} < 500
- respond @4xx "Page not found" 404
- }
-}
-
-# Admin subdomain (optional - for enhanced security)
-admin.docket.example.com {
- tls {
- # email admin@example.com
- }
-
- # Additional security for admin interface
- header {
- Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- X-Content-Type-Options "nosniff"
- X-Frame-Options "DENY"
- X-XSS-Protection "1; mode=block"
- Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'"
- }
-
- # Stricter rate limiting for admin
- rate_limit {
- zone admin {
- key {remote_host}
- events 20
- window 1m
- }
- }
- rate_limit admin
-
- # Only allow admin routes
- @admin path /admin*
- handle @admin {
- reverse_proxy frontend:3000 {
- header_up Host {host}
- header_up X-Real-IP {remote_host}
- header_up X-Forwarded-For {remote_host}
- header_up X-Forwarded-Proto {scheme}
- }
- }
-
- # Redirect non-admin requests to main site
- redir https://docket.example.com{uri} permanent
-
- log {
- output file /var/log/caddy/admin-access.log {
- roll_size 50mb
- roll_keep 20
- roll_keep_for 2160h # 90 days
- }
- format json
- level INFO
- }
-}
-
-# HTTP to HTTPS redirect
-http://docket.example.com {
- redir https://docket.example.com{uri} permanent
-}
-
-http://admin.docket.example.com {
- redir https://admin.docket.example.com{uri} permanent
-}
diff --git a/DESIGN_SPECIFICATION.md b/DESIGN_SPECIFICATION.md
deleted file mode 100644
index cc096531..00000000
--- a/DESIGN_SPECIFICATION.md
+++ /dev/null
@@ -1,510 +0,0 @@
-# Eliza Kragh v. MAD Court Docket Website - Design Specification
-
-## Project Overview
-A public-facing website to display court documents and filings for the ongoing lawsuit: **Eliza Kragh v. Montana Association of the Deaf**. The system provides public transparency for court proceedings while allowing administrative management of documents and user notifications.
-
-## Technical Architecture
-
-### System Components
-```
-┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
-│ Next.js 15.4 │ │ Express.js 6 │ │ PostgreSQL 17.5 │
-│ Frontend │◄──►│ Backend API │◄──►│ Database │
-│ (Port 3000) │ │ (Port 3001) │ │ (Port 5432) │
-└─────────────────┘ └─────────────────┘ └─────────────────┘
- │ │ │
- │ ┌─────────────────┐ │
- │ │ Redis │ │
- └──────────────►│ Cache/Session │◄─────────────┘
- │ (Port 6379) │
- └─────────────────┘
- │
- ┌─────────────────┐
- │ File System │
- │ /uploads/ │
- └─────────────────┘
-```
-
-**Technology Stack (June 2025 Latest Versions):**
-- **Frontend**: Next.js 15.4.0 with React 19, TypeScript 6.0, Tailwind CSS
-- **Backend**: Node.js 22 LTS, Express.js 6.0, TypeScript 6.0, Prisma 5.0
-- **Database**: PostgreSQL 17.5 with Redis caching
-- **Infrastructure**: Docker Engine 28.1.1, Nginx reverse proxy
-
-## Database Schema
-
-### Tables Structure
-```sql
--- Docket Entries (main court filings)
-CREATE TABLE docket_entries (
- id SERIAL PRIMARY KEY,
- date DATE NOT NULL,
- document_type VARCHAR(100) NOT NULL,
- summary TEXT NOT NULL,
- court_notes TEXT,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-);
-
--- Documents (PDFs associated with entries)
-CREATE TABLE documents (
- id SERIAL PRIMARY KEY,
- docket_entry_id INTEGER REFERENCES docket_entries(id) ON DELETE CASCADE,
- original_filename VARCHAR(255) NOT NULL,
- stored_filename VARCHAR(255) NOT NULL UNIQUE,
- file_path VARCHAR(500) NOT NULL,
- title VARCHAR(255) NOT NULL,
- summary TEXT,
- notes TEXT,
- is_primary BOOLEAN DEFAULT FALSE,
- file_size INTEGER NOT NULL,
- display_order INTEGER DEFAULT 0,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-);
-
--- Email Subscriptions
-CREATE TABLE subscriptions (
- id SERIAL PRIMARY KEY,
- email VARCHAR(255) NOT NULL UNIQUE,
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- unsubscribe_token VARCHAR(255) UNIQUE
-);
-
--- Admin Users
-CREATE TABLE admin_users (
- id SERIAL PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- password_hash VARCHAR(255) NOT NULL,
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- last_login TIMESTAMP
-);
-
--- Indexes for performance
-CREATE INDEX idx_docket_entries_date ON docket_entries(date DESC);
-CREATE INDEX idx_documents_docket_entry ON documents(docket_entry_id);
-CREATE INDEX idx_documents_display_order ON documents(docket_entry_id, display_order);
-CREATE INDEX idx_subscriptions_active ON subscriptions(is_active);
-```
-
-## API Endpoints
-
-### Public Endpoints
-```
-GET /api/docket-entries
- Response: Array of docket entries with associated documents
- {
- "entries": [
- {
- "id": 1,
- "date": "2024-12-15",
- "document_type": "Motion to Dismiss",
- "summary": "Defendant's motion...",
- "court_notes": "Motion filed within deadline...",
- "documents": [
- {
- "id": 1,
- "title": "Main Document",
- "summary": "Primary motion document",
- "notes": "Filed by defendant's counsel",
- "is_primary": true,
- "display_order": 0
- }
- ]
- }
- ]
- }
-
-GET /api/documents/:id/download
- Response: PDF file stream
- Headers: Content-Type: application/pdf
-
-POST /api/subscribe
- Body: { "email": "user@example.com" }
- Response: { "success": true, "message": "Subscribed successfully" }
-
-GET /api/unsubscribe/:token
- Response: Unsubscribe confirmation page
-```
-
-### Admin Endpoints (Protected)
-```
-POST /api/auth/login
- Body: { "username": "admin", "password": "password" }
- Response: { "token": "jwt-token", "expires": "timestamp" }
-
-POST /api/docket-entries
- Body: {
- "date": "2024-12-15",
- "document_type": "Motion",
- "summary": "Entry summary",
- "court_notes": "Court notes",
- "documents": [
- {
- "title": "Main Document",
- "summary": "Document summary",
- "notes": "Document notes",
- "is_primary": true,
- "file": "base64-encoded-pdf"
- }
- ]
- }
-
-PUT /api/docket-entries/:id
- Body: Updated entry data
- Response: Updated entry object
-
-DELETE /api/docket-entries/:id
- Response: { "success": true }
-
-POST /api/documents
- Body: FormData with file and metadata
- Response: Created document object
-
-PUT /api/documents/:id
- Body: Updated document metadata
- Response: Updated document object
-
-PUT /api/documents/:id/replace
- Body: FormData with new file
- Response: Updated document object
-
-DELETE /api/documents/:id
- Response: { "success": true }
-```
-
-## File Management System
-
-### UUID-Based Naming Scheme
-```
-Format: {entry-id}_{document-type}_{uuid}.pdf
-
-Examples:
-001_main_a7b3c9d2-4e5f-6789-abcd-ef0123456789.pdf
-001_exhibit_b8c4d0e3-5f60-789a-bcde-f01234567890.pdf
-002_main_c9d5e1f4-6071-890b-cdef-012345678901.pdf
-```
-
-### Directory Structure
-```
-uploads/
-├── 2024/
-│ ├── 12/
-│ │ ├── 001_main_a7b3c9d2-4e5f-6789-abcd-ef0123456789.pdf
-│ │ ├── 001_exhibit_b8c4d0e3-5f60-789a-bcde-f01234567890.pdf
-│ │ └── 002_main_c9d5e1f4-6071-890b-cdef-012345678901.pdf
-│ └── 11/
-│ └── [previous month files]
-└── 2025/
- └── [future files]
-```
-
-### File Upload Process
-1. Validate file type (PDF only) and size (max 10MB)
-2. Generate UUID for filename
-3. Create year/month directory structure
-4. Save file with UUID-based name
-5. Store metadata in database
-6. Return success response with document ID
-
-## Frontend Components
-
-### Public Interface Components
-```
-components/
-├── Layout/
-│ ├── Header.tsx # Site header with title and subscribe button
-│ ├── Footer.tsx # Site footer
-│ └── Layout.tsx # Main layout wrapper
-├── Docket/
-│ ├── DocketList.tsx # List of all docket entries
-│ ├── DocketEntry.tsx # Individual entry display
-│ ├── DocumentList.tsx # Documents within an entry
-│ └── DocumentViewer.tsx # PDF viewing modal
-├── Subscription/
-│ ├── SubscribeForm.tsx # Email subscription form
-│ └── SubscribeModal.tsx # Subscription confirmation modal
-└── Common/
- ├── LoadingSpinner.tsx # Loading states
- ├── ErrorMessage.tsx # Error display
- └── Button.tsx # Reusable button component
-```
-
-### Admin Interface Components
-```
-components/admin/
-├── Auth/
-│ └── LoginForm.tsx # Admin login form
-├── Dashboard/
-│ ├── Dashboard.tsx # Main admin dashboard
-│ ├── EntryList.tsx # Manage existing entries
-│ └── Stats.tsx # Basic statistics
-├── Entry/
-│ ├── CreateEntry.tsx # New docket entry form
-│ ├── EditEntry.tsx # Edit existing entry
-│ └── DeleteEntry.tsx # Delete confirmation
-├── Document/
-│ ├── DocumentUpload.tsx # Multi-file upload component
-│ ├── DocumentEdit.tsx # Edit document metadata
-│ └── DocumentReplace.tsx # Replace PDF file
-└── Layout/
- ├── AdminLayout.tsx # Admin layout wrapper
- └── AdminNav.tsx # Admin navigation
-```
-
-## User Interface Layouts
-
-### Public Docket Page
-```
-┌─────────────────────────────────────────────────────────────┐
-│ ELIZA KRAGH v. MAD DOCKET │
-│ [Subscribe] │
-└─────────────────────────────────────────────────────────────┘
-┌─────────────────────────────────────────────────────────────┐
-│ Case Information │
-│ ───────────────── │
-│ Case: Eliza Kragh v. Montana Association of the Deaf │
-│ Status: Ongoing │
-│ Last Updated: December 15, 2024 │
-└─────────────────────────────────────────────────────────────┘
-┌─────────────────────────────────────────────────────────────┐
-│ Docket Entries │
-│ ───────────────── │
-│ [Date] | [Document Type] | [Summary] | [View] │
-│ ──────────────────────────────────────────────────────── │
-│ 12/15/24 | Motion to Dismiss | Defendant's motion... |[+] │
-│ └─ 📄 Main Document │
-│ └─ 📄 Exhibit A - Financial Records │
-│ └─ 📄 Exhibit B - Email Correspondence │
-│ ──────────────────────────────────────────────────────── │
-│ 12/10/24 | Complaint | Plaintiff's initial filing... |[+] │
-│ └─ 📄 Main Document │
-│ └─ 📄 Exhibit 1 - Contract Agreement │
-│ ──────────────────────────────────────────────────────── │
-│ [More entries...] │
-└─────────────────────────────────────────────────────────────┘
-```
-
-### Admin Dashboard
-```
-┌─────────────────────────────────────────────────────────────┐
-│ ADMIN DASHBOARD [Logout] │
-└─────────────────────────────────────────────────────────────┘
-┌─────────────────────────────────────────────────────────────┐
-│ [+ New Docket Entry] │
-└─────────────────────────────────────────────────────────────┘
-┌─────────────────────────────────────────────────────────────┐
-│ Manage Existing Entries │
-│ ────────────────────── │
-│ 12/15/24 | Motion to Dismiss | [Edit] [Delete] │
-│ └─ 📄 Main Document [Edit] [Replace] [Del] │
-│ └─ 📄 Exhibit A [Edit] [Replace] [Del] │
-│ └─ 📄 Exhibit B [Edit] [Replace] [Del] │
-│ └─ [+ Add Document to Entry] │
-│ ──────────────────────────────────────────────────────── │
-│ 12/10/24 | Complaint | [Edit] [Delete] │
-│ └─ 📄 Main Document [Edit] [Replace] [Del] │
-│ └─ 📄 Exhibit 1 [Edit] [Replace] [Del] │
-│ └─ [+ Add Document to Entry] │
-└─────────────────────────────────────────────────────────────┘
-```
-
-## Docker Configuration
-
-### docker-compose.yml
-```yaml
-version: '3.8'
-
-services:
- frontend:
- build:
- context: ./frontend
- dockerfile: Dockerfile
- ports:
- - "3000:3000"
- environment:
- - NEXT_PUBLIC_API_URL=http://backend:3001/api
- depends_on:
- - backend
-
- backend:
- build:
- context: ./backend
- dockerfile: Dockerfile
- ports:
- - "3001:3001"
- environment:
- - DATABASE_URL=postgresql://docket_user:docket_pass@postgres:5432/docket_db
- - REDIS_URL=redis://redis:6379
- - JWT_SECRET=your-secret-key
- - UPLOAD_DIR=/app/uploads
- volumes:
- - uploads:/app/uploads
- depends_on:
- - postgres
- - redis
-
- postgres:
- image: postgres:15
- environment:
- - POSTGRES_DB=docket_db
- - POSTGRES_USER=docket_user
- - POSTGRES_PASSWORD=docket_pass
- volumes:
- - postgres_data:/var/lib/postgresql/data
- ports:
- - "5432:5432"
-
- redis:
- image: redis:7-alpine
- ports:
- - "6379:6379"
-
- nginx:
- image: nginx:alpine
- ports:
- - "80:80"
- - "443:443"
- volumes:
- - ./nginx/nginx.conf:/etc/nginx/nginx.conf
- - ./nginx/ssl:/etc/nginx/ssl
- depends_on:
- - frontend
- - backend
-
-volumes:
- postgres_data:
- uploads:
-```
-
-## Security Implementation
-
-### Authentication & Authorization
-- JWT tokens for admin authentication
-- Token expiration and refresh mechanism
-- Protected routes middleware
-- Role-based access control
-
-### File Security
-- Files served through API endpoints only
-- No direct file system access
-- File type validation (PDF only)
-- File size limits (10MB max)
-- UUID-based naming prevents enumeration
-
-### Input Validation
-- All API inputs validated with Joi/Zod
-- SQL injection prevention with Prisma ORM
-- XSS protection with input sanitization
-- CSRF protection for admin forms
-
-### Rate Limiting
-- API endpoint rate limiting
-- File upload rate limiting
-- Login attempt limiting
-- Email subscription rate limiting
-
-## Email Notification System
-
-### Subscription Process
-1. User enters email on public site
-2. Email validated and stored in database
-3. Confirmation email sent with unsubscribe token
-4. User added to active subscribers list
-
-### Notification Trigger
-1. Admin uploads new docket entry
-2. System checks for active subscribers
-3. Email notification queued for each subscriber
-4. Background job processes email queue
-5. Emails sent with entry summary and link
-
-### Email Template
-```
-Subject: New Filing in Eliza Kragh v. Montana Association of the Deaf
-
-Dear Subscriber,
-
-A new document has been filed in the case of Eliza Kragh v. Montana Association of the Deaf:
-
-Date: December 15, 2024
-Document Type: Motion to Dismiss
-Summary: Defendant's motion to dismiss based on lack of jurisdiction...
-
-View the complete filing and all documents at:
-https://docket-site.com
-
-To unsubscribe from these notifications, click here:
-https://docket-site.com/unsubscribe/[token]
-
-Best regards,
-Court Docket Notification System
-```
-
-## Performance Optimization
-
-### Frontend Optimization
-- Next.js static generation for public pages
-- Image optimization for any graphics
-- Code splitting and lazy loading
-- PDF.js worker for document rendering
-- Caching strategies for API responses
-
-### Backend Optimization
-- Database query optimization with indexes
-- Redis caching for frequently accessed data
-- File streaming for PDF downloads
-- Connection pooling for database
-- Compression middleware for API responses
-
-### Infrastructure Optimization
-- Nginx reverse proxy with caching
-- Gzip compression for static assets
-- CDN integration for file serving
-- Database connection pooling
-- Redis session storage
-
-## Deployment Strategy
-
-### Development Environment
-- Docker Compose for local development
-- Hot reloading for both frontend and backend
-- Development database with sample data
-- Email testing with local SMTP server
-
-### Production Environment
-- Docker Swarm or Kubernetes deployment
-- SSL/TLS certificates with Let's Encrypt
-- Production database with backups
-- Real SMTP service for email notifications
-- Monitoring and logging with ELK stack
-
-### CI/CD Pipeline
-- GitHub Actions for automated testing
-- Docker image building and pushing
-- Automated deployment to staging
-- Manual approval for production deployment
-- Database migration automation
-
-## Testing Strategy
-
-### Unit Testing
-- Backend API endpoints with Jest
-- Frontend components with React Testing Library
-- Database operations with test database
-- File upload functionality testing
-
-### Integration Testing
-- End-to-end user workflows with Cypress
-- API integration testing
-- Email notification testing
-- File serving and download testing
-
-### Security Testing
-- Authentication and authorization testing
-- Input validation testing
-- File upload security testing
-- SQL injection prevention testing
-
-This comprehensive design specification serves as the complete technical reference for implementing the Eliza Kragh v. MAD court docket website.
diff --git a/README.md b/README.md
index 17d1c8f3..0165a773 100644
--- a/README.md
+++ b/README.md
@@ -1,278 +1,59 @@
-# Elizabeth Kragh v. Montana Association of the Deaf - Court Docket Website
+
-A public-facing website to display court documents and filings for the ongoing lawsuit: **Elizabeth Kragh v. Montana Association of the Deaf**. The system provides public transparency for court proceedings while allowing administrative management of documents and user notifications.
+
+
+
+
+
+
-## 🌐 Live Website
+## About Laravel
-- **Public Access**: https://mad-lawsuit.org
-- **Admin Panel**: https://mad-lawsuit.org/admin
-- **Status**: LIVE AND OPERATIONAL ✅
+Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
-## 🏗️ Architecture
+- [Simple, fast routing engine](https://laravel.com/docs/routing).
+- [Powerful dependency injection container](https://laravel.com/docs/container).
+- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
+- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
+- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
+- [Robust background job processing](https://laravel.com/docs/queues).
+- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
-- **Frontend**: Next.js 15.4.0 with React 19, TypeScript 6.0, Tailwind CSS
-- **Backend**: Node.js 22 LTS, Express.js 6.0, TypeScript 6.0, Prisma 5.0
-- **Database**: PostgreSQL 17.5 with Redis caching
-- **Infrastructure**: Docker Engine 28.1.1, Nginx reverse proxy
+Laravel is accessible, powerful, and provides tools required for large, robust applications.
-## 🚀 Quick Start
+## Learning Laravel
-### Prerequisites
+Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. You can also check out [Laravel Learn](https://laravel.com/learn), where you will be guided through building a modern Laravel application.
-- Node.js 22 LTS
-- Docker Engine 28.1.1 & Docker Compose
-- pnpm (recommended package manager)
+If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
-### Development Setup
+## Laravel Sponsors
-1. **Clone the repository**
- ```bash
- git clone
- cd eliza-mad-docket-website
- ```
+We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).
-2. **Start the development environment**
- ```bash
- docker-compose up -d
- ```
+### Premium Partners
-3. **Install dependencies**
- ```bash
- # Backend
- cd backend
- pnpm install
-
- # Frontend
- cd ../frontend
- pnpm install
- ```
+- **[Vehikl](https://vehikl.com)**
+- **[Tighten Co.](https://tighten.co)**
+- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
+- **[64 Robots](https://64robots.com)**
+- **[Curotec](https://www.curotec.com/services/technologies/laravel)**
+- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
+- **[Redberry](https://redberry.international/laravel-development)**
+- **[Active Logic](https://activelogic.com)**
-4. **Set up the database**
- ```bash
- cd backend
- pnpm prisma migrate dev
- pnpm prisma generate
- ```
+## Contributing
-5. **Start development servers**
- ```bash
- # Backend (in backend directory)
- pnpm dev
-
- # Frontend (in frontend directory)
- pnpm dev
- ```
+Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
-6. **Access the application**
- - Frontend: http://localhost:3000
- - Backend API: http://localhost:3001
- - Database: localhost:5432
- - Redis: localhost:6379
+## Code of Conduct
-## 📁 Project Structure
+In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
-```
-eliza-mad-docket/
-├── backend/ # Express.js API
-│ ├── src/
-│ │ ├── routes/ # API routes
-│ │ ├── middleware/ # Express middleware
-│ │ ├── utils/ # Utility functions
-│ │ └── index.ts # Main server file
-│ ├── prisma/ # Database schema & migrations
-│ ├── Dockerfile # Backend container
-│ └── package.json
-├── frontend/ # Next.js application
-│ ├── src/
-│ │ ├── app/ # Next.js 13+ app directory
-│ │ ├── components/ # React components
-│ │ └── lib/ # Utility libraries
-│ ├── Dockerfile # Frontend container
-│ └── package.json
-├── cline_docs/ # Memory Bank documentation
-├── docker-compose.yml # Container orchestration
-└── DESIGN_SPECIFICATION.md # Complete technical spec
-```
+## Security Vulnerabilities
-## 🔧 Environment Variables
+If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
-### Backend (.env)
-```env
-DATABASE_URL=postgresql://docket_user:docket_pass@localhost:5432/docket_db
-REDIS_URL=redis://localhost:6379
-JWT_SECRET=your-secret-key-change-in-production
-JWT_EXPIRES_IN=24h
-UPLOAD_DIR=/app/uploads
-MAX_FILE_SIZE=10485760
-NODE_ENV=development
-```
+## License
-### Frontend (.env.local)
-```env
-NEXT_PUBLIC_API_URL=http://localhost:3001/api
-```
-
-## 🗄️ Database Schema
-
-The application uses PostgreSQL with the following main tables:
-
-- **docket_entries**: Main court filings
-- **documents**: PDF files associated with entries
-- **subscriptions**: Email subscriptions for notifications
-- **admin_users**: Administrative users
-
-## 🔐 Security Features
-
-- JWT authentication for admin access
-- File access control through API endpoints
-- UUID-based file naming for security
-- Input validation and sanitization
-- Rate limiting on API endpoints
-- CORS protection
-
-## 📄 File Management
-
-- **Storage**: Local filesystem with Docker volumes
-- **Naming**: UUID-based scheme: `{entry-id}_{document-type}_{uuid}.pdf`
-- **Structure**: Organized by year/month directories
-- **Security**: Files served only through API endpoints
-- **Limits**: 10MB maximum file size, PDF only
-
-## 🚀 Deployment
-
-### Production Deployment
-
-For production deployment with Portainer and Caddy, see the complete [DEPLOYMENT.md](./DEPLOYMENT.md) guide.
-
-**Quick Production Setup:**
-
-1. **Prepare environment**
- ```bash
- cp .env.prod .env
- # Edit .env with secure values
- ```
-
-2. **Deploy with production compose**
- ```bash
- docker-compose -f docker-compose.prod.yml up -d
- ```
-
-3. **Set up admin user for Elizabeth**
- ```bash
- docker exec -it backend_container node setup-admin-fixed.js
- ```
-
-## 🔐 Admin Access
-
-### Current Production Credentials
-- **URL**: https://mad-lawsuit.org/admin
-- **Username**: `eliza`
-- **Password**: `AXEoZWk2AMAD0naw`
-- **Status**: Active and functional ✅
-
-**⚠️ Security Note**: These credentials were generated during production deployment. Change them immediately after first login for enhanced security.
-
-### Development Setup
-
-1. **Build containers**
- ```bash
- docker-compose build
- ```
-
-2. **Run development stack**
- ```bash
- docker-compose up -d
- ```
-
-3. **Run database migrations**
- ```bash
- docker-compose exec backend pnpm prisma migrate deploy
- ```
-
-### Environment-specific configurations
-
-- **Development**: Hot reloading, detailed logging, demo credentials
-- **Production**: Optimized builds, security headers, SSL/TLS, secure credentials
-
-## 🧪 Testing
-
-```bash
-# Backend tests
-cd backend
-pnpm test
-
-# Frontend tests
-cd frontend
-pnpm test
-
-# Type checking
-pnpm type-check
-```
-
-## 📊 API Endpoints
-
-### Public Endpoints
-- `GET /api/docket-entries` - Get all docket entries with documents
-- `GET /api/documents/:id/download` - Download PDF file
-- `POST /api/subscribe` - Subscribe to email notifications
-- `GET /api/unsubscribe/:token` - Unsubscribe from notifications
-
-### Admin Endpoints (Protected)
-- `POST /api/auth/login` - Admin authentication
-- `POST /api/docket-entries` - Create new docket entry
-- `PUT /api/docket-entries/:id` - Update docket entry
-- `DELETE /api/docket-entries/:id` - Delete docket entry
-- `POST /api/documents` - Upload document
-- `PUT /api/documents/:id` - Update document metadata
-- `DELETE /api/documents/:id` - Delete document
-
-## 🎨 UI Features
-
-### Public Interface
-- Clean, responsive design
-- Document viewing with PDF.js
-- Email subscription system
-- Mobile-friendly layout
-- Accessibility compliant
-
-### Admin Interface
-- Secure login system
-- Multi-file upload support
-- Document management (CRUD operations)
-- File replacement capability
-- Metadata editing
-
-## 📧 Email Notifications
-
-- Automatic notifications for new filings
-- Unsubscribe functionality
-- HTML email templates
-- Background job processing
-
-## 🔍 Monitoring & Logging
-
-- Structured logging with Winston
-- Request/response logging
-- Error tracking and reporting
-- Health check endpoints
-- Performance monitoring
-
-## 🤝 Contributing
-
-1. Fork the repository
-2. Create a feature branch
-3. Make your changes
-4. Add tests if applicable
-5. Submit a pull request
-
-## 📝 License
-
-This project is licensed under the MIT License - see the LICENSE file for details.
-
-## 📞 Support
-
-For questions or issues, please contact the development team or create an issue in the repository.
-
----
-
-**Note**: This is a public transparency tool for court proceedings. All uploaded documents become publicly accessible through this website.
+The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php
new file mode 100644
index 00000000..d44fe974
--- /dev/null
+++ b/app/Http/Controllers/Auth/AuthenticatedSessionController.php
@@ -0,0 +1,52 @@
+ Route::has('password.request'),
+ 'status' => session('status'),
+ ]);
+ }
+
+ /**
+ * Handle an incoming authentication request.
+ */
+ public function store(LoginRequest $request): RedirectResponse
+ {
+ $request->authenticate();
+
+ $request->session()->regenerate();
+
+ return redirect()->intended(route('dashboard', absolute: false));
+ }
+
+ /**
+ * Destroy an authenticated session.
+ */
+ public function destroy(Request $request): RedirectResponse
+ {
+ Auth::guard('web')->logout();
+
+ $request->session()->invalidate();
+
+ $request->session()->regenerateToken();
+
+ return redirect('/');
+ }
+}
diff --git a/app/Http/Controllers/Auth/ConfirmablePasswordController.php b/app/Http/Controllers/Auth/ConfirmablePasswordController.php
new file mode 100644
index 00000000..d2b1f14b
--- /dev/null
+++ b/app/Http/Controllers/Auth/ConfirmablePasswordController.php
@@ -0,0 +1,41 @@
+validate([
+ 'email' => $request->user()->email,
+ 'password' => $request->password,
+ ])) {
+ throw ValidationException::withMessages([
+ 'password' => __('auth.password'),
+ ]);
+ }
+
+ $request->session()->put('auth.password_confirmed_at', time());
+
+ return redirect()->intended(route('dashboard', absolute: false));
+ }
+}
diff --git a/app/Http/Controllers/Auth/EmailVerificationNotificationController.php b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php
new file mode 100644
index 00000000..f64fa9ba
--- /dev/null
+++ b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php
@@ -0,0 +1,24 @@
+user()->hasVerifiedEmail()) {
+ return redirect()->intended(route('dashboard', absolute: false));
+ }
+
+ $request->user()->sendEmailVerificationNotification();
+
+ return back()->with('status', 'verification-link-sent');
+ }
+}
diff --git a/app/Http/Controllers/Auth/EmailVerificationPromptController.php b/app/Http/Controllers/Auth/EmailVerificationPromptController.php
new file mode 100644
index 00000000..b42e0d53
--- /dev/null
+++ b/app/Http/Controllers/Auth/EmailVerificationPromptController.php
@@ -0,0 +1,22 @@
+user()->hasVerifiedEmail()
+ ? redirect()->intended(route('dashboard', absolute: false))
+ : Inertia::render('Auth/VerifyEmail', ['status' => session('status')]);
+ }
+}
diff --git a/app/Http/Controllers/Auth/NewPasswordController.php b/app/Http/Controllers/Auth/NewPasswordController.php
new file mode 100644
index 00000000..394cc4af
--- /dev/null
+++ b/app/Http/Controllers/Auth/NewPasswordController.php
@@ -0,0 +1,69 @@
+ $request->email,
+ 'token' => $request->route('token'),
+ ]);
+ }
+
+ /**
+ * Handle an incoming new password request.
+ *
+ * @throws \Illuminate\Validation\ValidationException
+ */
+ public function store(Request $request): RedirectResponse
+ {
+ $request->validate([
+ 'token' => 'required',
+ 'email' => 'required|email',
+ 'password' => ['required', 'confirmed', Rules\Password::defaults()],
+ ]);
+
+ // Here we will attempt to reset the user's password. If it is successful we
+ // will update the password on an actual user model and persist it to the
+ // database. Otherwise we will parse the error and return the response.
+ $status = Password::reset(
+ $request->only('email', 'password', 'password_confirmation', 'token'),
+ function ($user) use ($request) {
+ $user->forceFill([
+ 'password' => Hash::make($request->password),
+ 'remember_token' => Str::random(60),
+ ])->save();
+
+ event(new PasswordReset($user));
+ }
+ );
+
+ // If the password was successfully reset, we will redirect the user back to
+ // the application's home authenticated view. If there is an error we can
+ // redirect them back to where they came from with their error message.
+ if ($status == Password::PASSWORD_RESET) {
+ return redirect()->route('login')->with('status', __($status));
+ }
+
+ throw ValidationException::withMessages([
+ 'email' => [trans($status)],
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/Auth/PasswordController.php b/app/Http/Controllers/Auth/PasswordController.php
new file mode 100644
index 00000000..57a82b58
--- /dev/null
+++ b/app/Http/Controllers/Auth/PasswordController.php
@@ -0,0 +1,29 @@
+validate([
+ 'current_password' => ['required', 'current_password'],
+ 'password' => ['required', Password::defaults(), 'confirmed'],
+ ]);
+
+ $request->user()->update([
+ 'password' => Hash::make($validated['password']),
+ ]);
+
+ return back();
+ }
+}
diff --git a/app/Http/Controllers/Auth/PasswordResetLinkController.php b/app/Http/Controllers/Auth/PasswordResetLinkController.php
new file mode 100644
index 00000000..b22c5441
--- /dev/null
+++ b/app/Http/Controllers/Auth/PasswordResetLinkController.php
@@ -0,0 +1,51 @@
+ session('status'),
+ ]);
+ }
+
+ /**
+ * Handle an incoming password reset link request.
+ *
+ * @throws \Illuminate\Validation\ValidationException
+ */
+ public function store(Request $request): RedirectResponse
+ {
+ $request->validate([
+ 'email' => 'required|email',
+ ]);
+
+ // We will send the password reset link to this user. Once we have attempted
+ // to send the link, we will examine the response then see the message we
+ // need to show to the user. Finally, we'll send out a proper response.
+ $status = Password::sendResetLink(
+ $request->only('email')
+ );
+
+ if ($status == Password::RESET_LINK_SENT) {
+ return back()->with('status', __($status));
+ }
+
+ throw ValidationException::withMessages([
+ 'email' => [trans($status)],
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php
new file mode 100644
index 00000000..53a546b1
--- /dev/null
+++ b/app/Http/Controllers/Auth/RegisteredUserController.php
@@ -0,0 +1,51 @@
+validate([
+ 'name' => 'required|string|max:255',
+ 'email' => 'required|string|lowercase|email|max:255|unique:'.User::class,
+ 'password' => ['required', 'confirmed', Rules\Password::defaults()],
+ ]);
+
+ $user = User::create([
+ 'name' => $request->name,
+ 'email' => $request->email,
+ 'password' => Hash::make($request->password),
+ ]);
+
+ event(new Registered($user));
+
+ Auth::login($user);
+
+ return redirect(route('dashboard', absolute: false));
+ }
+}
diff --git a/app/Http/Controllers/Auth/VerifyEmailController.php b/app/Http/Controllers/Auth/VerifyEmailController.php
new file mode 100644
index 00000000..784765e3
--- /dev/null
+++ b/app/Http/Controllers/Auth/VerifyEmailController.php
@@ -0,0 +1,27 @@
+user()->hasVerifiedEmail()) {
+ return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
+ }
+
+ if ($request->user()->markEmailAsVerified()) {
+ event(new Verified($request->user()));
+ }
+
+ return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
+ }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
new file mode 100644
index 00000000..8677cd5c
--- /dev/null
+++ b/app/Http/Controllers/Controller.php
@@ -0,0 +1,8 @@
+orderBy('date', 'desc')
+ ->get();
+
+ return Inertia::render('Home', [
+ 'docketEntries' => $docketEntries,
+ 'caseInfo' => [
+ 'title' => 'Elizabeth Kragh v. Montana Association of the Deaf',
+ 'status' => 'Active Litigation',
+ 'lastUpdated' => $docketEntries->first()?->date?->format('F j, Y') ?? 'No entries yet',
+ ],
+ ]);
+ }
+}
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
new file mode 100644
index 00000000..873b4f7d
--- /dev/null
+++ b/app/Http/Controllers/ProfileController.php
@@ -0,0 +1,63 @@
+ $request->user() instanceof MustVerifyEmail,
+ 'status' => session('status'),
+ ]);
+ }
+
+ /**
+ * Update the user's profile information.
+ */
+ public function update(ProfileUpdateRequest $request): RedirectResponse
+ {
+ $request->user()->fill($request->validated());
+
+ if ($request->user()->isDirty('email')) {
+ $request->user()->email_verified_at = null;
+ }
+
+ $request->user()->save();
+
+ return Redirect::route('profile.edit');
+ }
+
+ /**
+ * Delete the user's account.
+ */
+ public function destroy(Request $request): RedirectResponse
+ {
+ $request->validate([
+ 'password' => ['required', 'current_password'],
+ ]);
+
+ $user = $request->user();
+
+ Auth::logout();
+
+ $user->delete();
+
+ $request->session()->invalidate();
+ $request->session()->regenerateToken();
+
+ return Redirect::to('/');
+ }
+}
diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php
new file mode 100644
index 00000000..3867f225
--- /dev/null
+++ b/app/Http/Middleware/HandleInertiaRequests.php
@@ -0,0 +1,39 @@
+
+ */
+ public function share(Request $request): array
+ {
+ return [
+ ...parent::share($request),
+ 'auth' => [
+ 'user' => $request->user(),
+ ],
+ ];
+ }
+}
diff --git a/app/Http/Requests/Auth/LoginRequest.php b/app/Http/Requests/Auth/LoginRequest.php
new file mode 100644
index 00000000..25746424
--- /dev/null
+++ b/app/Http/Requests/Auth/LoginRequest.php
@@ -0,0 +1,85 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'email' => ['required', 'string', 'email'],
+ 'password' => ['required', 'string'],
+ ];
+ }
+
+ /**
+ * Attempt to authenticate the request's credentials.
+ *
+ * @throws \Illuminate\Validation\ValidationException
+ */
+ public function authenticate(): void
+ {
+ $this->ensureIsNotRateLimited();
+
+ if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) {
+ RateLimiter::hit($this->throttleKey());
+
+ throw ValidationException::withMessages([
+ 'email' => trans('auth.failed'),
+ ]);
+ }
+
+ RateLimiter::clear($this->throttleKey());
+ }
+
+ /**
+ * Ensure the login request is not rate limited.
+ *
+ * @throws \Illuminate\Validation\ValidationException
+ */
+ public function ensureIsNotRateLimited(): void
+ {
+ if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) {
+ return;
+ }
+
+ event(new Lockout($this));
+
+ $seconds = RateLimiter::availableIn($this->throttleKey());
+
+ throw ValidationException::withMessages([
+ 'email' => trans('auth.throttle', [
+ 'seconds' => $seconds,
+ 'minutes' => ceil($seconds / 60),
+ ]),
+ ]);
+ }
+
+ /**
+ * Get the rate limiting throttle key for the request.
+ */
+ public function throttleKey(): string
+ {
+ return Str::transliterate(Str::lower($this->string('email')).'|'.$this->ip());
+ }
+}
diff --git a/app/Http/Requests/ProfileUpdateRequest.php b/app/Http/Requests/ProfileUpdateRequest.php
new file mode 100644
index 00000000..3622a8f3
--- /dev/null
+++ b/app/Http/Requests/ProfileUpdateRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ 'name' => ['required', 'string', 'max:255'],
+ 'email' => [
+ 'required',
+ 'string',
+ 'lowercase',
+ 'email',
+ 'max:255',
+ Rule::unique(User::class)->ignore($this->user()->id),
+ ],
+ ];
+ }
+}
diff --git a/app/Models/AdminUser.php b/app/Models/AdminUser.php
new file mode 100644
index 00000000..d263f364
--- /dev/null
+++ b/app/Models/AdminUser.php
@@ -0,0 +1,34 @@
+attributes['password'] = Hash::make($value);
+ }
+
+ /**
+ * Verify password.
+ */
+ public function verifyPassword($password): bool
+ {
+ return Hash::check($password, $this->password);
+ }
+}
diff --git a/app/Models/DocketEntry.php b/app/Models/DocketEntry.php
new file mode 100644
index 00000000..8c0e8365
--- /dev/null
+++ b/app/Models/DocketEntry.php
@@ -0,0 +1,28 @@
+ 'date',
+ ];
+
+ /**
+ * Get the documents for the docket entry.
+ */
+ public function documents(): HasMany
+ {
+ return $this->hasMany(Document::class)->orderBy('display_order');
+ }
+}
diff --git a/app/Models/Document.php b/app/Models/Document.php
new file mode 100644
index 00000000..a229ac0e
--- /dev/null
+++ b/app/Models/Document.php
@@ -0,0 +1,35 @@
+ 'integer',
+ 'display_order' => 'integer',
+ ];
+
+ /**
+ * Get the docket entry that owns the document.
+ */
+ public function docketEntry(): BelongsTo
+ {
+ return $this->belongsTo(DocketEntry::class);
+ }
+}
diff --git a/app/Models/Subscription.php b/app/Models/Subscription.php
new file mode 100644
index 00000000..21bbe83a
--- /dev/null
+++ b/app/Models/Subscription.php
@@ -0,0 +1,33 @@
+ 'boolean',
+ ];
+
+ /**
+ * Generate a unique unsubscribe token.
+ */
+ protected static function boot()
+ {
+ parent::boot();
+
+ static::creating(function ($subscription) {
+ if (empty($subscription->unsubscribe_token)) {
+ $subscription->unsubscribe_token = Str::random(64);
+ }
+ });
+ }
+}
diff --git a/app/Models/User.php b/app/Models/User.php
new file mode 100644
index 00000000..749c7b77
--- /dev/null
+++ b/app/Models/User.php
@@ -0,0 +1,48 @@
+ */
+ use HasFactory, Notifiable;
+
+ /**
+ * The attributes that are mass assignable.
+ *
+ * @var list
+ */
+ protected $fillable = [
+ 'name',
+ 'email',
+ 'password',
+ ];
+
+ /**
+ * The attributes that should be hidden for serialization.
+ *
+ * @var list
+ */
+ protected $hidden = [
+ 'password',
+ 'remember_token',
+ ];
+
+ /**
+ * Get the attributes that should be cast.
+ *
+ * @return array
+ */
+ protected function casts(): array
+ {
+ return [
+ 'email_verified_at' => 'datetime',
+ 'password' => 'hashed',
+ ];
+ }
+}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
new file mode 100644
index 00000000..96e9f6c0
--- /dev/null
+++ b/app/Providers/AppServiceProvider.php
@@ -0,0 +1,25 @@
+handleCommand(new ArgvInput);
+
+exit($status);
diff --git a/backend/.env b/backend/.env
deleted file mode 100644
index 19a5d1a9..00000000
--- a/backend/.env
+++ /dev/null
@@ -1,28 +0,0 @@
-# Database
-DATABASE_URL=postgresql://docket_user:docket_pass@localhost:5432/docket_db
-REDIS_URL=redis://localhost:6379
-
-# Email Configuration (Gmail Smuggler)
-SMTP_HOST=smtp.gmail.com
-SMTP_PORT=2525
-SMTP_SECURE=false
-SMTP_USER=system@deafgain.org
-SMTP_PASS=ojvlysraxwjriwzy
-FROM_EMAIL=system@deafgain.org
-RECIPIENT_EMAIL=eliza@deafgain.org
-GOOGLE_EMAIL=system@deafgain.org
-GOOGLE_APP_PASSWORD=ojvlysraxwjriwzy
-
-# Authentication
-JWT_SECRET=your-secret-key-change-in-production
-JWT_EXPIRES_IN=24h
-
-# File Upload
-UPLOAD_DIR=./uploads
-MAX_FILE_SIZE=10485760
-
-# Environment
-NODE_ENV=development
-PORT=3001
-LOG_LEVEL=info
-FRONTEND_URL=https://mad-lawsuit.org
diff --git a/backend/Dockerfile b/backend/Dockerfile
deleted file mode 100644
index 32c84ca7..00000000
--- a/backend/Dockerfile
+++ /dev/null
@@ -1,50 +0,0 @@
-# Use Node.js 22 Alpine image to match package.json engines requirement
-FROM node:22-alpine
-
-WORKDIR /app
-
-# Install system dependencies
-RUN apk add --no-cache openssl curl python3 make g++
-
-# Install pnpm
-RUN npm install -g pnpm
-
-# Copy package files
-COPY package.json pnpm-lock.yaml* ./
-
-# Install all dependencies
-RUN pnpm install --frozen-lockfile
-
-# Copy Prisma schema
-COPY prisma ./prisma/
-
-# Generate Prisma client
-RUN pnpm prisma generate
-
-# Copy source code and build
-COPY . .
-RUN pnpm build
-
-# Remove dev dependencies to reduce image size
-ENV CI=true
-RUN pnpm prune --prod
-
-# Generate Prisma client after prune (prisma CLI now available in production deps)
-RUN pnpm prisma generate
-
-# Create uploads directory
-RUN mkdir -p /app/uploads
-
-# Set environment variables
-ENV NODE_ENV=production
-ENV PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1
-
-# Expose port
-EXPOSE 3001
-
-# Health check
-HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
- CMD curl -f http://localhost:3001/api/health || exit 1
-
-# Start the application
-CMD ["pnpm", "start"]
diff --git a/backend/dist/index.js b/backend/dist/index.js
deleted file mode 100644
index dbaa1319..00000000
--- a/backend/dist/index.js
+++ /dev/null
@@ -1,130 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.redis = exports.prisma = void 0;
-const express_1 = __importDefault(require("express"));
-const cors_1 = __importDefault(require("cors"));
-const helmet_1 = __importDefault(require("helmet"));
-const compression_1 = __importDefault(require("compression"));
-const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
-const dotenv_1 = __importDefault(require("dotenv"));
-const client_1 = require("@prisma/client");
-const adapter_pg_1 = require("@prisma/adapter-pg");
-const pg_1 = __importDefault(require("pg"));
-const redis_1 = require("redis");
-const logger_1 = require("./utils/logger");
-const errorHandler_1 = require("./middleware/errorHandler");
-const requestLogger_1 = require("./middleware/requestLogger");
-const auth_1 = __importDefault(require("./routes/auth"));
-const docket_1 = __importDefault(require("./routes/docket"));
-const documents_1 = __importDefault(require("./routes/documents"));
-const subscriptions_1 = __importDefault(require("./routes/subscriptions"));
-const health_1 = __importDefault(require("./routes/health"));
-const notifications_1 = __importDefault(require("./routes/notifications"));
-dotenv_1.default.config();
-const app = (0, express_1.default)();
-const PORT = process.env.PORT || 3001;
-app.set('trust proxy', true);
-const connectionString = process.env.DATABASE_URL;
-const pool = new pg_1.default.Pool({ connectionString });
-const adapter = new adapter_pg_1.PrismaPg(pool);
-exports.prisma = new client_1.PrismaClient({
- adapter,
- log: ['query', 'info', 'warn', 'error'],
-});
-exports.redis = (0, redis_1.createClient)({
- url: process.env.REDIS_URL || 'redis://localhost:6379',
-});
-exports.redis.connect().catch((error) => {
- logger_1.logger.error('Redis connection failed:', error);
-});
-exports.redis.on('error', (error) => {
- logger_1.logger.error('Redis error:', error);
-});
-exports.redis.on('connect', () => {
- logger_1.logger.info('Connected to Redis');
-});
-app.use((0, helmet_1.default)({
- crossOriginResourcePolicy: { policy: "cross-origin" }
-}));
-app.use((0, cors_1.default)({
- origin: process.env.NODE_ENV === 'production'
- ? [
- process.env.FRONTEND_URL,
- 'https://mad-lawsuit.org',
- 'https://files.mad-lawsuit.org',
- 'http://frontend:806',
- 'http://localhost:806'
- ]
- : [
- 'http://localhost:3000',
- 'http://localhost:806',
- 'http://frontend:806',
- 'http://frontend:3000',
- 'https://mad-lawsuit.org',
- 'https://files.mad-lawsuit.org'
- ],
- credentials: true,
-}));
-const limiter = (0, express_rate_limit_1.default)({
- windowMs: 15 * 60 * 1000,
- max: 100,
- message: 'Too many requests from this IP, please try again later.',
- standardHeaders: true,
- legacyHeaders: false,
- skip: (req) => {
- return false;
- },
- keyGenerator: (req) => {
- return req.ip || 'unknown';
- },
-});
-app.use('/api', limiter);
-const authLimiter = (0, express_rate_limit_1.default)({
- windowMs: 15 * 60 * 1000,
- max: 5,
- message: 'Too many authentication attempts, please try again later.',
- standardHeaders: true,
- legacyHeaders: false,
- keyGenerator: (req) => {
- return req.ip || 'unknown';
- },
-});
-app.use('/api/auth', authLimiter);
-app.use((0, compression_1.default)());
-app.use(express_1.default.json({ limit: '10mb' }));
-app.use(express_1.default.urlencoded({ extended: true, limit: '10mb' }));
-app.use(requestLogger_1.requestLogger);
-app.use('/api/health', health_1.default);
-app.use('/api/auth', auth_1.default);
-app.use('/api/docket-entries', docket_1.default);
-app.use('/api/documents', documents_1.default);
-app.use('/api/subscriptions', subscriptions_1.default);
-app.use('/api/notifications', notifications_1.default);
-app.use('*', (req, res) => {
- res.status(404).json({
- success: false,
- message: 'Route not found',
- });
-});
-app.use(errorHandler_1.errorHandler);
-process.on('SIGTERM', async () => {
- logger_1.logger.info('SIGTERM received, shutting down gracefully');
- await exports.prisma.$disconnect();
- await exports.redis.quit();
- process.exit(0);
-});
-process.on('SIGINT', async () => {
- logger_1.logger.info('SIGINT received, shutting down gracefully');
- await exports.prisma.$disconnect();
- await exports.redis.quit();
- process.exit(0);
-});
-app.listen(PORT, () => {
- logger_1.logger.info(`Server running on port ${PORT}`);
- logger_1.logger.info(`Environment: ${process.env.NODE_ENV || 'development'}`);
-});
-exports.default = app;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/backend/dist/index.js.map b/backend/dist/index.js.map
deleted file mode 100644
index 5a9a41f0..00000000
--- a/backend/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,oDAA4B;AAC5B,8DAAsC;AACtC,4EAA2C;AAC3C,oDAA4B;AAC5B,2CAA8C;AAC9C,mDAA8C;AAC9C,4CAAoB;AACpB,iCAAqC;AACrC,2CAAwC;AACxC,4DAAyD;AACzD,8DAA2D;AAG3D,yDAAuC;AACvC,6DAA2C;AAC3C,mEAAgD;AAChD,2EAAwD;AACxD,6DAA2C;AAC3C,2EAAwD;AAGxD,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAGtC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAG7B,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAClD,MAAM,IAAI,GAAG,IAAI,YAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC/C,MAAM,OAAO,GAAG,IAAI,qBAAQ,CAAC,IAAI,CAAC,CAAC;AAEtB,QAAA,MAAM,GAAG,IAAI,qBAAY,CAAC;IACrC,OAAO;IACP,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;CACxC,CAAC,CAAC;AAGU,QAAA,KAAK,GAAG,IAAA,oBAAY,EAAC;IAChC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,wBAAwB;CACvD,CAAC,CAAC;AAGH,aAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC9B,eAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;IAC1B,eAAM,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,aAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,eAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAGH,GAAG,CAAC,GAAG,CAAC,IAAA,gBAAM,EAAC;IACb,yBAAyB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;CACtD,CAAC,CAAC,CAAC;AAGJ,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC;IACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAC3C,CAAC,CAAC;YACE,OAAO,CAAC,GAAG,CAAC,YAAY;YACxB,yBAAyB;YACzB,+BAA+B;YAC/B,qBAAqB;YACrB,sBAAsB;SACvB;QACH,CAAC,CAAC;YACE,uBAAuB;YACvB,sBAAsB;YACtB,qBAAqB;YACrB,sBAAsB;YACtB,yBAAyB;YACzB,+BAA+B;SAChC;IACL,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC,CAAC;AAGJ,MAAM,OAAO,GAAG,IAAA,4BAAS,EAAC;IACxB,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACxB,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,yDAAyD;IAClE,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;IAEpB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;QAEZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;QAEpB,OAAO,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGzB,MAAM,WAAW,GAAG,IAAA,4BAAS,EAAC;IAC5B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACxB,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,2DAA2D;IACpE,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;IACpB,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,OAAO,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC;IAC7B,CAAC;CACF,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGlC,GAAG,CAAC,GAAG,CAAC,IAAA,qBAAW,GAAE,CAAC,CAAC;AACvB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAG/D,GAAG,CAAC,GAAG,CAAC,6BAAa,CAAC,CAAC;AAGvB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,cAAU,CAAC,CAAC;AACjC,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,gBAAY,CAAC,CAAC;AAC7C,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,mBAAc,CAAC,CAAC;AAC1C,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,uBAAkB,CAAC,CAAC;AAClD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,uBAAkB,CAAC,CAAC;AAGlD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,GAAG,CAAC,GAAG,CAAC,2BAAY,CAAC,CAAC;AAGtB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC/B,eAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAG1D,MAAM,cAAM,CAAC,WAAW,EAAE,CAAC;IAG3B,MAAM,aAAK,CAAC,IAAI,EAAE,CAAC;IAEnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;IAC9B,eAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAGzD,MAAM,cAAM,CAAC,WAAW,EAAE,CAAC;IAG3B,MAAM,aAAK,CAAC,IAAI,EAAE,CAAC;IAEnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAGH,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACpB,eAAM,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAC9C,eAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/middleware/auth.js b/backend/dist/middleware/auth.js
deleted file mode 100644
index 00a654ee..00000000
--- a/backend/dist/middleware/auth.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.authenticateToken = void 0;
-const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
-const index_1 = require("../index");
-const authenticateToken = async (req, res, next) => {
- const authHeader = req.headers['authorization'];
- const token = authHeader && authHeader.split(' ')[1];
- if (!token) {
- return res.status(401).json({
- success: false,
- message: 'Access token required',
- });
- }
- try {
- const jwtSecret = process.env['JWT_SECRET'];
- if (!jwtSecret) {
- return res.status(500).json({
- success: false,
- message: 'Server configuration error',
- });
- }
- const decoded = jsonwebtoken_1.default.verify(token, jwtSecret);
- const user = await index_1.prisma.adminUser.findUnique({
- where: { id: decoded.userId },
- });
- if (!user) {
- return res.status(401).json({
- success: false,
- message: 'Invalid token - user not found',
- });
- }
- req.user = {
- userId: decoded.userId,
- username: decoded.username,
- };
- next();
- }
- catch (error) {
- return res.status(403).json({
- success: false,
- message: 'Invalid or expired token',
- });
- }
-};
-exports.authenticateToken = authenticateToken;
-//# sourceMappingURL=auth.js.map
\ No newline at end of file
diff --git a/backend/dist/middleware/auth.js.map b/backend/dist/middleware/auth.js.map
deleted file mode 100644
index 4ed585dd..00000000
--- a/backend/dist/middleware/auth.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":";;;;;;AACA,gEAA+B;AAC/B,oCAAkC;AAS3B,MAAM,iBAAiB,GAAG,KAAK,EACpC,GAAyB,EACzB,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,4BAA4B;aACtC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAQ,CAAC;QAGpD,MAAM,IAAI,GAAG,MAAM,cAAM,CAAC,SAAS,CAAC,UAAU,CAAC;YAC7C,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,gCAAgC;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,GAAG,CAAC,IAAI,GAAG;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;QAEF,IAAI,EAAE,CAAC;IACT,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAlDW,QAAA,iBAAiB,qBAkD5B"}
\ No newline at end of file
diff --git a/backend/dist/middleware/errorHandler.js b/backend/dist/middleware/errorHandler.js
deleted file mode 100644
index 7f3daa6a..00000000
--- a/backend/dist/middleware/errorHandler.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.asyncHandler = exports.createError = exports.errorHandler = void 0;
-const logger_1 = require("../utils/logger");
-const errorHandler = (error, req, res, next) => {
- const statusCode = error.statusCode || 500;
- const message = error.message || 'Internal Server Error';
- logger_1.logger.error('Error occurred:', {
- error: error.message,
- stack: error.stack,
- url: req.url,
- method: req.method,
- ip: req.ip,
- userAgent: req.get('User-Agent'),
- });
- const isDevelopment = process.env.NODE_ENV === 'development';
- res.status(statusCode).json({
- success: false,
- message: isDevelopment ? message : 'Something went wrong',
- ...(isDevelopment && { stack: error.stack }),
- });
-};
-exports.errorHandler = errorHandler;
-const createError = (message, statusCode = 500) => {
- const error = new Error(message);
- error.statusCode = statusCode;
- error.isOperational = true;
- return error;
-};
-exports.createError = createError;
-const asyncHandler = (fn) => {
- return (req, res, next) => {
- Promise.resolve(fn(req, res, next)).catch(next);
- };
-};
-exports.asyncHandler = asyncHandler;
-//# sourceMappingURL=errorHandler.js.map
\ No newline at end of file
diff --git a/backend/dist/middleware/errorHandler.js.map b/backend/dist/middleware/errorHandler.js.map
deleted file mode 100644
index 4a8ff8e9..00000000
--- a/backend/dist/middleware/errorHandler.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/middleware/errorHandler.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAOlC,MAAM,YAAY,GAAG,CAC1B,KAAe,EACf,GAAY,EACZ,GAAa,EACb,IAAkB,EACZ,EAAE;IACR,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,uBAAuB,CAAC;IAGzD,eAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;QAC9B,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;KACjC,CAAC,CAAC;IAGH,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;IAE7D,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAC1B,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB;QACzD,GAAG,CAAC,aAAa,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC,CAAC;AA3BW,QAAA,YAAY,gBA2BvB;AAEK,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,aAAqB,GAAG,EAAY,EAAE;IACjF,MAAM,KAAK,GAAa,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEK,MAAM,YAAY,GAAG,CAAC,EAAY,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,YAAY,gBAIvB"}
\ No newline at end of file
diff --git a/backend/dist/middleware/requestLogger.js b/backend/dist/middleware/requestLogger.js
deleted file mode 100644
index a63930a8..00000000
--- a/backend/dist/middleware/requestLogger.js
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.requestLogger = void 0;
-const logger_1 = require("../utils/logger");
-const requestLogger = (req, res, next) => {
- const start = Date.now();
- logger_1.logger.info('Incoming request', {
- method: req.method,
- url: req.url,
- ip: req.ip,
- userAgent: req.get('User-Agent'),
- });
- const originalEnd = res.end;
- res.end = function (chunk, encoding) {
- const duration = Date.now() - start;
- logger_1.logger.info('Request completed', {
- method: req.method,
- url: req.url,
- statusCode: res.statusCode,
- duration: `${duration}ms`,
- ip: req.ip,
- });
- return originalEnd.call(this, chunk, encoding);
- };
- next();
-};
-exports.requestLogger = requestLogger;
-//# sourceMappingURL=requestLogger.js.map
\ No newline at end of file
diff --git a/backend/dist/middleware/requestLogger.js.map b/backend/dist/middleware/requestLogger.js.map
deleted file mode 100644
index afd18170..00000000
--- a/backend/dist/middleware/requestLogger.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../src/middleware/requestLogger.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAElC,MAAM,aAAa,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;IACrF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAGzB,eAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;KACjC,CAAC,CAAC;IAGH,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC;IAC5B,GAAG,CAAC,GAAG,GAAG,UAAS,KAAW,EAAE,QAAc;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAEpC,eAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,QAAQ,EAAE,GAAG,QAAQ,IAAI;YACzB,EAAE,EAAE,GAAG,CAAC,EAAE;SACX,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAQ,CAAC;IAET,IAAI,EAAE,CAAC;AACT,CAAC,CAAC;AA5BW,QAAA,aAAa,iBA4BxB"}
\ No newline at end of file
diff --git a/backend/dist/routes/auth.js b/backend/dist/routes/auth.js
deleted file mode 100644
index 16b8d074..00000000
--- a/backend/dist/routes/auth.js
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const bcryptjs_1 = __importDefault(require("bcryptjs"));
-const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
-const index_1 = require("../index");
-const errorHandler_1 = require("../middleware/errorHandler");
-const auth_1 = require("../middleware/auth");
-const joi_1 = __importDefault(require("joi"));
-const router = (0, express_1.Router)();
-const loginSchema = joi_1.default.object({
- username: joi_1.default.string().required(),
- password: joi_1.default.string().required(),
-});
-router.post('/login', (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const { error, value } = loginSchema.validate(req.body);
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
- const { username, password } = value;
- const admin = await index_1.prisma.adminUser.findUnique({
- where: { username },
- });
- if (!admin) {
- return res.status(401).json({
- success: false,
- message: 'Invalid credentials',
- });
- }
- const isValidPassword = await bcryptjs_1.default.compare(password, admin.passwordHash);
- if (!isValidPassword) {
- return res.status(401).json({
- success: false,
- message: 'Invalid credentials',
- });
- }
- await index_1.prisma.adminUser.update({
- where: { id: admin.id },
- data: { lastLogin: new Date() },
- });
- const jwtSecret = process.env['JWT_SECRET'];
- const jwtExpiresIn = process.env['JWT_EXPIRES_IN'] || '24h';
- if (!jwtSecret) {
- return res.status(500).json({
- success: false,
- message: 'Server configuration error',
- });
- }
- const token = jsonwebtoken_1.default.sign({
- userId: admin.id,
- username: admin.username
- }, jwtSecret, {
- expiresIn: jwtExpiresIn
- });
- res.json({
- success: true,
- message: 'Login successful',
- token,
- user: {
- id: admin.id,
- username: admin.username,
- },
- });
-}));
-router.get('/verify', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- res.json({
- success: true,
- message: 'Token is valid',
- user: req.user,
- });
-}));
-router.post('/logout', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- res.json({
- success: true,
- message: 'Logged out successfully',
- });
-}));
-exports.default = router;
-//# sourceMappingURL=auth.js.map
\ No newline at end of file
diff --git a/backend/dist/routes/auth.js.map b/backend/dist/routes/auth.js.map
deleted file mode 100644
index ab501b4c..00000000
--- a/backend/dist/routes/auth.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":";;;;;AAAA,qCAAoD;AACpD,wDAA8B;AAC9B,gEAA+B;AAC/B,oCAAkC;AAClC,6DAA0D;AAC1D,6CAA6E;AAC7E,8CAAsB;AAEtB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAGxB,MAAM,WAAW,GAAG,aAAG,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAGH,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACvE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAGrC,MAAM,KAAK,GAAG,MAAM,cAAM,CAAC,SAAS,CAAC,UAAU,CAAC;QAC9C,KAAK,EAAE,EAAE,QAAQ,EAAE;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,eAAe,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAE3E,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,cAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;QACvB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE;KAChC,CAAC,CAAC;IAGH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;IAE5D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,4BAA4B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,sBAAG,CAAC,IAAI,CACpB;QACE,MAAM,EAAE,KAAK,CAAC,EAAE;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,EACD,SAAS,EACT;QACE,SAAS,EAAE,YAAY;KACL,CACrB,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,kBAAkB;QAC3B,KAAK;QACL,IAAI,EAAE;YACJ,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACvG,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACxG,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,yBAAyB;KACnC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAEJ,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/routes/docket.js b/backend/dist/routes/docket.js
deleted file mode 100644
index 53cd05b9..00000000
--- a/backend/dist/routes/docket.js
+++ /dev/null
@@ -1,190 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const index_1 = require("../index");
-const errorHandler_1 = require("../middleware/errorHandler");
-const auth_1 = require("../middleware/auth");
-const joi_1 = __importDefault(require("joi"));
-const router = (0, express_1.Router)();
-function normalizeDate(dateInput) {
- if (typeof dateInput === 'string') {
- const [year, month, day] = dateInput.split('-');
- return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
- }
- if (dateInput instanceof Date) {
- const year = dateInput.getFullYear();
- const month = dateInput.getMonth();
- const day = dateInput.getDate();
- return new Date(year, month, day);
- }
- return dateInput;
-}
-const createDocketEntrySchema = joi_1.default.object({
- date: joi_1.default.date().required(),
- title: joi_1.default.string().required().max(500),
- summary: joi_1.default.string().required(),
- notes: joi_1.default.string().optional().allow(''),
-});
-const updateDocketEntrySchema = joi_1.default.object({
- date: joi_1.default.date().optional(),
- title: joi_1.default.string().optional().max(500),
- summary: joi_1.default.string().optional(),
- notes: joi_1.default.string().optional().allow(''),
-});
-router.get('/', (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const entries = await index_1.prisma.docketEntry.findMany({
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- orderBy: {
- date: 'asc',
- },
- });
- res.json({
- success: true,
- entries,
- });
-}));
-router.get('/:id', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const entryId = parseInt(req.params.id);
- if (isNaN(entryId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid entry ID',
- });
- }
- const entry = await index_1.prisma.docketEntry.findUnique({
- where: { id: entryId },
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- });
- if (!entry) {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
- res.json({
- success: true,
- entry,
- });
-}));
-router.post('/', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const { error, value } = createDocketEntrySchema.validate(req.body);
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
- const normalizedData = { ...value };
- if (value.date) {
- normalizedData.date = normalizeDate(value.date);
- }
- const entry = await index_1.prisma.docketEntry.create({
- data: normalizedData,
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- });
- res.status(201).json({
- success: true,
- message: 'Docket entry created successfully',
- entry,
- });
-}));
-router.put('/:id', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const entryId = parseInt(req.params.id);
- if (isNaN(entryId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid entry ID',
- });
- }
- const { error, value } = updateDocketEntrySchema.validate(req.body);
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
- const normalizedData = { ...value };
- if (value.date) {
- normalizedData.date = normalizeDate(value.date);
- }
- try {
- const entry = await index_1.prisma.docketEntry.update({
- where: { id: entryId },
- data: normalizedData,
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- });
- res.json({
- success: true,
- message: 'Docket entry updated successfully',
- entry,
- });
- }
- catch (error) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
- throw error;
- }
-}));
-router.delete('/:id', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const entryId = parseInt(req.params.id);
- if (isNaN(entryId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid entry ID',
- });
- }
- try {
- await index_1.prisma.document.deleteMany({
- where: { docketEntryId: entryId },
- });
- await index_1.prisma.docketEntry.delete({
- where: { id: entryId },
- });
- res.json({
- success: true,
- message: 'Docket entry deleted successfully',
- });
- }
- catch (error) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
- throw error;
- }
-}));
-exports.default = router;
-//# sourceMappingURL=docket.js.map
\ No newline at end of file
diff --git a/backend/dist/routes/docket.js.map b/backend/dist/routes/docket.js.map
deleted file mode 100644
index 234050f7..00000000
--- a/backend/dist/routes/docket.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"docket.js","sourceRoot":"","sources":["../../src/routes/docket.ts"],"names":[],"mappings":";;;;;AAAA,qCAAoD;AACpD,oCAAkC;AAClC,6DAA0D;AAC1D,6CAA6E;AAE7E,8CAAsB;AAEtB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAGxB,SAAS,aAAa,CAAC,SAAc;IACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAElC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,SAAS,YAAY,IAAI,EAAE,CAAC;QAE9B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,MAAM,uBAAuB,GAAG,aAAG,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,aAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,aAAG,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,aAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;CACzC,CAAC,CAAC;AAGH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACjE,MAAM,OAAO,GAAG,MAAM,cAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QAChD,OAAO,EAAE;YACP,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,KAAK;iBACpB;aACF;SACF;QACD,OAAO,EAAE;YACP,IAAI,EAAE,KAAK;SACZ;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACpG,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAM,CAAC,WAAW,CAAC,UAAU,CAAC;QAChD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;QACtB,OAAO,EAAE;YACP,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,KAAK;iBACpB;aACF;SACF;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,wBAAwB;SAClC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IAClG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,cAAc,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,cAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC5C,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE;YACP,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,YAAY,EAAE,KAAK;iBACpB;aACF;SACF;KACF,CAAC,CAAC;IAKH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,mCAAmC;QAC5C,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACpG,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,uBAAuB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;IAGD,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,cAAc,CAAC,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;YACtB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,SAAS,EAAE;oBACT,OAAO,EAAE;wBACP,YAAY,EAAE,KAAK;qBACpB;iBACF;aACF;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mCAAmC;YAC5C,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,wBAAwB;aAClC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACvG,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QAEH,MAAM,cAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/B,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;SAClC,CAAC,CAAC;QAGH,MAAM,cAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YAC9B,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mCAAmC;SAC7C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,wBAAwB;aAClC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC,CAAC;AAEJ,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/routes/documents.js b/backend/dist/routes/documents.js
deleted file mode 100644
index 525cc85e..00000000
--- a/backend/dist/routes/documents.js
+++ /dev/null
@@ -1,231 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const index_1 = require("../index");
-const errorHandler_1 = require("../middleware/errorHandler");
-const auth_1 = require("../middleware/auth");
-const multer_1 = __importDefault(require("multer"));
-const uuid_1 = require("uuid");
-const path_1 = __importDefault(require("path"));
-const fs_1 = __importDefault(require("fs"));
-const joi_1 = __importDefault(require("joi"));
-const router = (0, express_1.Router)();
-const storage = multer_1.default.diskStorage({
- destination: (req, file, cb) => {
- const uploadDir = process.env['UPLOAD_DIR'] || './uploads';
- if (!fs_1.default.existsSync(uploadDir)) {
- fs_1.default.mkdirSync(uploadDir, { recursive: true });
- }
- cb(null, uploadDir);
- },
- filename: (req, file, cb) => {
- const uuid = (0, uuid_1.v4)();
- const extension = path_1.default.extname(file.originalname);
- cb(null, `${uuid}${extension}`);
- },
-});
-const upload = (0, multer_1.default)({
- storage,
- limits: {
- fileSize: parseInt(process.env['MAX_FILE_SIZE'] || '262144000'),
- },
- fileFilter: (req, file, cb) => {
- const allowedMimeTypes = [
- 'application/pdf',
- 'application/x-pdf',
- 'application/acrobat',
- 'applications/vnd.pdf',
- 'text/pdf',
- 'text/x-pdf'
- ];
- const isValidPDF = allowedMimeTypes.includes(file.mimetype) ||
- file.originalname.toLowerCase().endsWith('.pdf');
- console.log('Upload attempt:', {
- mimetype: file.mimetype,
- filename: file.originalname,
- isValid: isValidPDF
- });
- if (isValidPDF) {
- cb(null, true);
- }
- else {
- cb(new Error(`Only PDF files are allowed. Received: ${file.mimetype} for file: ${file.originalname}`));
- }
- },
-});
-const createDocumentSchema = joi_1.default.object({
- docketEntryId: joi_1.default.number().integer().required(),
- title: joi_1.default.string().required().max(500),
- summary: joi_1.default.string().optional().allow(''),
- notes: joi_1.default.string().optional().allow(''),
- displayOrder: joi_1.default.number().integer().min(0).optional(),
-});
-const updateDocumentSchema = joi_1.default.object({
- title: joi_1.default.string().optional().max(500),
- summary: joi_1.default.string().optional().allow(''),
- notes: joi_1.default.string().optional().allow(''),
- displayOrder: joi_1.default.number().integer().min(0).optional(),
-});
-router.get('/:id/download', (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const documentId = parseInt(req.params['id'] || '');
- if (isNaN(documentId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid document ID',
- });
- }
- const document = await index_1.prisma.document.findUnique({
- where: { id: documentId },
- });
- if (!document) {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
- const filePath = document.filePath;
- if (!fs_1.default.existsSync(filePath)) {
- return res.status(404).json({
- success: false,
- message: 'File not found on server',
- });
- }
- res.setHeader('Content-Type', document.mimeType);
- res.setHeader('Content-Disposition', `inline; filename="${document.originalFilename}"`);
- const fileStream = fs_1.default.createReadStream(filePath);
- fileStream.pipe(res);
-}));
-router.post('/upload', auth_1.authenticateToken, upload.single('file'), (0, errorHandler_1.asyncHandler)(async (req, res) => {
- if (!req.file) {
- return res.status(400).json({
- success: false,
- message: 'No file uploaded',
- });
- }
- const { error, value } = createDocumentSchema.validate(req.body);
- if (error) {
- fs_1.default.unlinkSync(req.file.path);
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
- const { docketEntryId, title, summary, notes, displayOrder } = value;
- const docketEntry = await index_1.prisma.docketEntry.findUnique({
- where: { id: docketEntryId },
- });
- if (!docketEntry) {
- fs_1.default.unlinkSync(req.file.path);
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
- let finalDisplayOrder = displayOrder;
- if (finalDisplayOrder === undefined) {
- const lastDocument = await index_1.prisma.document.findFirst({
- where: { docketEntryId },
- orderBy: { displayOrder: 'desc' },
- });
- finalDisplayOrder = lastDocument ? lastDocument.displayOrder + 1 : 0;
- }
- const document = await index_1.prisma.document.create({
- data: {
- docketEntryId,
- title,
- originalFilename: req.file.originalname,
- storedFilename: req.file.filename,
- filePath: req.file.path,
- fileSize: req.file.size,
- mimeType: req.file.mimetype,
- summary: summary || '',
- notes: notes || '',
- displayOrder: finalDisplayOrder,
- },
- });
- res.status(201).json({
- success: true,
- message: 'Document uploaded successfully',
- document,
- });
-}));
-router.put('/:id', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const documentId = parseInt(req.params['id'] || '');
- if (isNaN(documentId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid document ID',
- });
- }
- const { error, value } = updateDocumentSchema.validate(req.body);
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
- try {
- const document = await index_1.prisma.document.update({
- where: { id: documentId },
- data: value,
- });
- res.json({
- success: true,
- message: 'Document updated successfully',
- document,
- });
- }
- catch (error) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
- throw error;
- }
-}));
-router.delete('/:id', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const documentId = parseInt(req.params['id'] || '');
- if (isNaN(documentId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid document ID',
- });
- }
- try {
- const document = await index_1.prisma.document.findUnique({
- where: { id: documentId },
- });
- if (!document) {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
- if (fs_1.default.existsSync(document.filePath)) {
- fs_1.default.unlinkSync(document.filePath);
- }
- await index_1.prisma.document.delete({
- where: { id: documentId },
- });
- res.json({
- success: true,
- message: 'Document deleted successfully',
- });
- }
- catch (error) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
- throw error;
- }
-}));
-exports.default = router;
-//# sourceMappingURL=documents.js.map
\ No newline at end of file
diff --git a/backend/dist/routes/documents.js.map b/backend/dist/routes/documents.js.map
deleted file mode 100644
index cef070c1..00000000
--- a/backend/dist/routes/documents.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/routes/documents.ts"],"names":[],"mappings":";;;;;AAAA,qCAAoD;AACpD,oCAAkC;AAClC,6DAA0D;AAC1D,6CAA6E;AAC7E,oDAA4B;AAC5B,+BAAoC;AACpC,gDAAwB;AACxB,4CAAoB;AACpB,8CAAsB;AAEtB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAGxB,MAAM,OAAO,GAAG,gBAAM,CAAC,WAAW,CAAC;IACjC,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC;QAC3D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtB,CAAC;IACD,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,IAAA,SAAM,GAAE,CAAC;QACtB,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;IAClC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC;IACpB,OAAO;IACP,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC;KAChE;IACD,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAE5B,MAAM,gBAAgB,GAAG;YACvB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,sBAAsB;YACtB,UAAU;YACV,YAAY;SACb,CAAC;QAGF,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAGpE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACf,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAGH,MAAM,oBAAoB,GAAG,aAAG,CAAC,MAAM,CAAC;IACtC,aAAa,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChD,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1C,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACxC,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,aAAG,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1C,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACxC,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC;AAGH,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,cAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChD,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;KAC1B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAEnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAExF,MAAM,UAAU,GAAG,YAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACjD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,wBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IAC/H,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEjE,IAAI,KAAK,EAAE,CAAC;QAEV,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAGrE,MAAM,WAAW,GAAG,MAAM,cAAM,CAAC,WAAW,CAAC,UAAU,CAAC;QACtD,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE;KAC7B,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjB,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,wBAAwB;SAClC,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,iBAAiB,GAAG,YAAY,CAAC;IACrC,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,MAAM,cAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACnD,KAAK,EAAE,EAAE,aAAa,EAAE;YACxB,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;SAClC,CAAC,CAAC;QACH,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,cAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,IAAI,EAAE;YACJ,aAAa;YACb,KAAK;YACL,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY;YACvC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YACjC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;YACvB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;YACvB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC3B,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,YAAY,EAAE,iBAAiB;SAChC;KACF,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gCAAgC;QACzC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACpG,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEjE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,cAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YACzB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,+BAA+B;YACxC,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACvG,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,cAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;YAChD,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAC;QACL,CAAC;QAGD,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAGD,MAAM,cAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;SAC1B,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,+BAA+B;SACzC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,oBAAoB;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC,CAAC;AAEJ,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/routes/health.js b/backend/dist/routes/health.js
deleted file mode 100644
index 2db1b65c..00000000
--- a/backend/dist/routes/health.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const index_1 = require("../index");
-const index_2 = require("../index");
-const router = (0, express_1.Router)();
-router.get('/', async (req, res) => {
- try {
- await index_1.prisma.$queryRaw `SELECT 1`;
- await index_2.redis.ping();
- res.json({
- success: true,
- message: 'API is healthy',
- timestamp: new Date().toISOString(),
- services: {
- database: 'connected',
- redis: 'connected',
- },
- });
- }
- catch (error) {
- res.status(503).json({
- success: false,
- message: 'Service unavailable',
- timestamp: new Date().toISOString(),
- services: {
- database: 'disconnected',
- redis: 'disconnected',
- },
- });
- }
-});
-exports.default = router;
-//# sourceMappingURL=health.js.map
\ No newline at end of file
diff --git a/backend/dist/routes/health.js.map b/backend/dist/routes/health.js.map
deleted file mode 100644
index 02c7d5df..00000000
--- a/backend/dist/routes/health.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/routes/health.ts"],"names":[],"mappings":";;AAAA,qCAAoD;AACpD,oCAAkC;AAClC,oCAAiC;AAEjC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACpD,IAAI,CAAC;QAEH,MAAM,cAAM,CAAC,SAAS,CAAA,UAAU,CAAC;QAGjC,MAAM,aAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE;gBACR,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,WAAW;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB;YAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE;gBACR,QAAQ,EAAE,cAAc;gBACxB,KAAK,EAAE,cAAc;aACtB;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/routes/subscriptions.js b/backend/dist/routes/subscriptions.js
deleted file mode 100644
index 42bb9019..00000000
--- a/backend/dist/routes/subscriptions.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-const express_1 = require("express");
-const index_1 = require("../index");
-const errorHandler_1 = require("../middleware/errorHandler");
-const auth_1 = require("../middleware/auth");
-const joi_1 = __importDefault(require("joi"));
-const uuid_1 = require("uuid");
-const router = (0, express_1.Router)();
-const subscribeSchema = joi_1.default.object({
- email: joi_1.default.string().email().required(),
-});
-router.post('/subscribe', (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const { error, value } = subscribeSchema.validate(req.body);
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
- const { email } = value;
- const existing = await index_1.prisma.subscription.findUnique({
- where: { email },
- });
- if (existing) {
- if (existing.isActive) {
- return res.status(400).json({
- success: false,
- message: 'Email is already subscribed',
- });
- }
- else {
- await index_1.prisma.subscription.update({
- where: { email },
- data: { isActive: true },
- });
- }
- }
- else {
- await index_1.prisma.subscription.create({
- data: {
- email,
- unsubscribeToken: (0, uuid_1.v4)(),
- },
- });
- }
- res.json({
- success: true,
- message: 'Successfully subscribed to notifications',
- });
-}));
-router.get('/', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const subscribers = await index_1.prisma.subscription.findMany({
- orderBy: { createdAt: 'desc' },
- select: {
- id: true,
- email: true,
- isActive: true,
- createdAt: true,
- },
- });
- const stats = {
- total: subscribers.length,
- active: subscribers.filter(sub => sub.isActive).length,
- inactive: subscribers.filter(sub => !sub.isActive).length,
- };
- res.json({
- success: true,
- subscribers,
- stats,
- });
-}));
-router.put('/:id/toggle', auth_1.authenticateToken, (0, errorHandler_1.asyncHandler)(async (req, res) => {
- const subscriberId = parseInt(req.params.id);
- if (isNaN(subscriberId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid subscriber ID',
- });
- }
- const subscriber = await index_1.prisma.subscription.findUnique({
- where: { id: subscriberId },
- });
- if (!subscriber) {
- return res.status(404).json({
- success: false,
- message: 'Subscriber not found',
- });
- }
- const updated = await index_1.prisma.subscription.update({
- where: { id: subscriberId },
- data: { isActive: !subscriber.isActive },
- });
- res.json({
- success: true,
- message: `Subscriber ${updated.isActive ? 'activated' : 'deactivated'} successfully`,
- subscriber: updated,
- });
-}));
-exports.default = router;
-//# sourceMappingURL=subscriptions.js.map
\ No newline at end of file
diff --git a/backend/dist/routes/subscriptions.js.map b/backend/dist/routes/subscriptions.js.map
deleted file mode 100644
index 903eeb45..00000000
--- a/backend/dist/routes/subscriptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/routes/subscriptions.ts"],"names":[],"mappings":";;;;;AAAA,qCAAoD;AACpD,oCAAkC;AAClC,6DAA0D;AAC1D,6CAA6E;AAC7E,8CAAsB;AACtB,+BAAoC;AAEpC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAGxB,MAAM,eAAe,GAAG,aAAG,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAGH,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAC3E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE5D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;SAClC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAGxB,MAAM,QAAQ,GAAG,MAAM,cAAM,CAAC,YAAY,CAAC,UAAU,CAAC;QACpD,KAAK,EAAE,EAAE,KAAK,EAAE;KACjB,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,6BAA6B;aACvC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YAEN,MAAM,cAAM,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC/B,KAAK,EAAE,EAAE,KAAK,EAAE;gBAChB,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,CAAC;QAEN,MAAM,cAAM,CAAC,YAAY,CAAC,MAAM,CAAC;YAC/B,IAAI,EAAE;gBACJ,KAAK;gBACL,gBAAgB,EAAE,IAAA,SAAM,GAAE;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,0CAA0C;KACpD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IACjG,MAAM,WAAW,GAAG,MAAM,cAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QACrD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,WAAW,CAAC,MAAM;QACzB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM;QACtD,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM;KAC1D,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,WAAW;QACX,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,wBAAiB,EAAE,IAAA,2BAAY,EAAC,KAAK,EAAE,GAAyB,EAAE,GAAa,EAAE,EAAE;IAC3G,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,cAAM,CAAC,YAAY,CAAC,UAAU,CAAC;QACtD,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,sBAAsB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAM,CAAC,YAAY,CAAC,MAAM,CAAC;QAC/C,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE;QAC3B,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;KACzC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,cAAc,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,eAAe;QACpF,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,CAAC;AAEJ,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/services/emailService.js b/backend/dist/services/emailService.js
deleted file mode 100644
index 5320387c..00000000
--- a/backend/dist/services/emailService.js
+++ /dev/null
@@ -1,240 +0,0 @@
-"use strict";
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
-}) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
-}));
-var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
- o["default"] = v;
-});
-var __importStar = (this && this.__importStar) || (function () {
- var ownKeys = function(o) {
- ownKeys = Object.getOwnPropertyNames || function (o) {
- var ar = [];
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
- return ar;
- };
- return ownKeys(o);
- };
- return function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
- __setModuleDefault(result, mod);
- return result;
- };
-})();
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.emailService = exports.EmailService = void 0;
-const logger_1 = require("../utils/logger");
-const nodemailer_1 = __importDefault(require("nodemailer"));
-class EmailService {
- static instance;
- transporter;
- constructor() {
- this.transporter = nodemailer_1.default.createTransport({
- host: process.env['SMTP_HOST'] || 'smtp.gmail.com',
- port: parseInt(process.env['SMTP_PORT'] || '587'),
- secure: process.env['SMTP_SECURE'] === 'true',
- auth: {
- user: process.env['GOOGLE_EMAIL'],
- pass: process.env['GOOGLE_APP_PASSWORD'],
- },
- });
- this.verifyConnection();
- }
- static getInstance() {
- if (!EmailService.instance) {
- EmailService.instance = new EmailService();
- }
- return EmailService.instance;
- }
- async verifyConnection() {
- try {
- await this.transporter.verify();
- logger_1.logger.info('SMTP connection verified successfully');
- }
- catch (error) {
- logger_1.logger.error('SMTP connection failed:', error);
- }
- }
- async sendEmail(options) {
- try {
- const mailOptions = {
- from: {
- name: 'Court Docket System',
- address: process.env['GOOGLE_EMAIL'] || 'system@deafgain.org',
- },
- to: options.to,
- subject: options.subject,
- html: options.html,
- };
- if (options.bcc && options.bcc.length > 0) {
- mailOptions.bcc = options.bcc;
- }
- const result = await this.transporter.sendMail(mailOptions);
- logger_1.logger.info('Email sent successfully:', {
- to: options.to,
- bcc: options.bcc ? `${options.bcc.length} recipients` : 'none',
- subject: options.subject,
- messageId: result.messageId,
- });
- return true;
- }
- catch (error) {
- logger_1.logger.error('Failed to send email:', error);
- return false;
- }
- }
- async notifySubscribersOfNewEntry(entryTitle, entryDate, entrySummary) {
- try {
- const { prisma } = await Promise.resolve().then(() => __importStar(require('../index')));
- const subscribers = await prisma.subscription.findMany({
- where: { isActive: true },
- });
- if (subscribers.length === 0) {
- logger_1.logger.info('No active subscribers to notify');
- return;
- }
- const subject = `New Court Filing: ${entryTitle}`;
- const html = this.generateNotificationEmail(entryTitle, entryDate, entrySummary);
- const subscriberEmails = subscribers.map((subscriber) => subscriber.email);
- const success = await this.sendEmail({
- to: process.env['GOOGLE_EMAIL'] || 'system@deafgain.org',
- bcc: subscriberEmails,
- subject,
- html,
- });
- if (success) {
- logger_1.logger.info(`Email notification sent successfully to ${subscriberEmails.length} subscribers via BCC`);
- }
- else {
- logger_1.logger.error(`Failed to send BCC email notification to ${subscriberEmails.length} subscribers`);
- }
- }
- catch (error) {
- logger_1.logger.error('Failed to notify subscribers:', error);
- }
- }
- generateNotificationEmail(title, date, summary) {
- const formattedDate = new Date(date).toLocaleDateString('en-US', {
- year: 'numeric',
- month: 'long',
- day: 'numeric',
- });
- return `
-
-
-
-
-
- New Court Filing Notification
-
-
-
-
-
-
-
A new filing has been added to the court docket:
-
-
-
${formattedDate}
-
${title}
-
${summary}
-
-
-
You can view the complete docket and any associated documents by visiting the website :
-
-
- View Court Docket
-
-
-
-
-
-
- `;
- }
-}
-exports.EmailService = EmailService;
-exports.emailService = EmailService.getInstance();
-//# sourceMappingURL=emailService.js.map
\ No newline at end of file
diff --git a/backend/dist/services/emailService.js.map b/backend/dist/services/emailService.js.map
deleted file mode 100644
index 16586554..00000000
--- a/backend/dist/services/emailService.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"emailService.js","sourceRoot":"","sources":["../../src/services/emailService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAyC;AACzC,4DAAoC;AASpC,MAAa,YAAY;IACf,MAAM,CAAC,QAAQ,CAAe;IAC9B,WAAW,CAAyB;IAE5C;QAEE,IAAI,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC;YAC5C,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,gBAAgB;YAClD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YACjD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,MAAM;YAC7C,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBACjC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;aACzC;SACF,CAAC,CAAC;QAGH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAChC,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAqB;QACnC,IAAI,CAAC;YACH,MAAM,WAAW,GAAQ;gBACvB,IAAI,EAAE;oBACJ,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,qBAAqB;iBAC9D;gBACD,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;YAGF,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YAChC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE5D,eAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACtC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,MAAM;gBAC9D,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,UAAkB,EAAE,SAAiB,EAAE,YAAoB;QAC3F,IAAI,CAAC;YAEH,MAAM,EAAE,MAAM,EAAE,GAAG,wDAAa,UAAU,GAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;gBACrD,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC1B,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,qBAAqB,UAAU,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACjF,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAe,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAGhF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;gBACnC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,qBAAqB;gBACxD,GAAG,EAAE,gBAAgB;gBACrB,OAAO;gBACP,IAAI;aACL,CAAC,CAAC;YAEH,IAAI,OAAO,EAAE,CAAC;gBACZ,eAAM,CAAC,IAAI,CAAC,2CAA2C,gBAAgB,CAAC,MAAM,sBAAsB,CAAC,CAAC;YACxG,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,KAAK,CAAC,4CAA4C,gBAAgB,CAAC,MAAM,cAAc,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,KAAa,EAAE,IAAY,EAAE,OAAe;QAC5E,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;YAC/D,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;QAEH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgFqB,aAAa;iCACZ,KAAK;mCACH,OAAO;;;;;;;;;;;;;;;;;KAiBrC,CAAC;IACJ,CAAC;CACF;AApND,oCAoNC;AAEY,QAAA,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC"}
\ No newline at end of file
diff --git a/backend/dist/utils/logger.js b/backend/dist/utils/logger.js
deleted file mode 100644
index e72af587..00000000
--- a/backend/dist/utils/logger.js
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.logger = void 0;
-const winston_1 = __importDefault(require("winston"));
-const logFormat = winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.json());
-exports.logger = winston_1.default.createLogger({
- level: process.env.LOG_LEVEL || 'info',
- format: logFormat,
- defaultMeta: { service: 'docket-api' },
- transports: [
- new winston_1.default.transports.File({
- filename: 'logs/error.log',
- level: 'error',
- maxsize: 5242880,
- maxFiles: 5,
- }),
- new winston_1.default.transports.File({
- filename: 'logs/combined.log',
- maxsize: 5242880,
- maxFiles: 5,
- }),
- ],
-});
-if (process.env.NODE_ENV !== 'production') {
- exports.logger.add(new winston_1.default.transports.Console({
- format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple())
- }));
-}
-exports.default = exports.logger;
-//# sourceMappingURL=logger.js.map
\ No newline at end of file
diff --git a/backend/dist/utils/logger.js.map b/backend/dist/utils/logger.js.map
deleted file mode 100644
index d24a094e..00000000
--- a/backend/dist/utils/logger.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,MAAM,SAAS,GAAG,iBAAO,CAAC,MAAM,CAAC,OAAO,CACtC,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB,CAAC;AAEW,QAAA,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;IACzC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;IACtC,UAAU,EAAE;QACV,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,CAAC;SACZ,CAAC;QACF,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,mBAAmB;YAC7B,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,CAAC;SACZ,CAAC;KACH;CACF,CAAC,CAAC;AAGH,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,cAAM,CAAC,GAAG,CAAC,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,kBAAe,cAAM,CAAC"}
\ No newline at end of file
diff --git a/backend/logs/combined.log b/backend/logs/combined.log
deleted file mode 100644
index 994cf250..00000000
--- a/backend/logs/combined.log
+++ /dev/null
@@ -1,809 +0,0 @@
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:13:09.977Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:13:09.980Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:13:09.984Z"}
-{"ip":"::ffff:127.0.0.1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:13:57.178Z","url":"/","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:138.0) Gecko/20100101 Firefox/138.0"}
-{"duration":"2ms","ip":"::ffff:127.0.0.1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:13:57.180Z","url":"/"}
-{"ip":"::ffff:127.0.0.1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:13:57.204Z","url":"/favicon.ico","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:138.0) Gecko/20100101 Firefox/138.0"}
-{"duration":"1ms","ip":"::ffff:127.0.0.1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:13:57.205Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:14:07.942Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:14:07.944Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:15:56.009Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:15:56.010Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:15:56.012Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:20:19.862Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:20:19.863Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:20:19.866Z"}
-{"ip":"::ffff:127.0.0.1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:21:02.794Z","url":"/","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::ffff:127.0.0.1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:21:02.796Z","url":"/"}
-{"ip":"::ffff:127.0.0.1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:21:02.815Z","url":"/favicon.ico","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"1ms","ip":"::ffff:127.0.0.1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:21:02.816Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:21:14.796Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:21:14.799Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:21:25.211Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:21:25.212Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:21:25.214Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:21:37.049Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:21:37.066Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:24:18.294Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:24:18.295Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:28:23.634Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:28:23.636Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:28:23.637Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:30:45.172Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:30:45.174Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:30:45.175Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:31:04.950Z","url":"/api/docket","userAgent":"curl/8.7.1"}
-{"duration":"0ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:31:04.950Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:31:07.099Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"19ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:31:07.119Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:31:14.621Z","url":"/api/docket-entries","userAgent":"curl/8.7.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:31:14.625Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T21:31:23.756Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"249ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:31:24.004Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T21:31:35.716Z","url":"/api/subscriptions/subscribe","userAgent":"curl/8.7.1"}
-{"duration":"0ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:31:35.716Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T21:31:54.377Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T21:31:54.799Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T21:31:54.801Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T21:31:54.802Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T21:32:04.251Z","url":"/api/subscriptions/subscribe","userAgent":"curl/8.7.1"}
-{"duration":"21ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:32:04.272Z","url":"/subscribe"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:36:37.203Z","url":"/api/docket-entries","userAgent":"curl/8.7.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:36:37.209Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:36:44.997Z","url":"/api/subscriptions/subscribe","userAgent":"curl/8.7.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":404,"timestamp":"2025-06-24T21:36:44.997Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T21:36:52.430Z","url":"/api/subscriptions/subscribe","userAgent":"curl/8.7.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":400,"timestamp":"2025-06-24T21:36:52.434Z","url":"/subscribe"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:43:55.707Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-24T21:43:55.725Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T21:44:26.328Z","url":"/api/auth/login","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"266ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T21:44:26.593Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:44:26.803Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-24T21:44:26.806Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:44:26.809Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-24T21:44:26.812Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T21:45:50.519Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-24T21:45:50.523Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:41:20.733Z","url":"/api/auth/login","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"268ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:41:21.001Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T22:41:21.120Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-24T22:41:21.127Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T22:41:21.130Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:41:21.132Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:43:07.980Z","url":"/api/documents/upload","userAgent":"curl/8.7.1"}
-{"error":"Only PDF files are allowed","ip":"::1","level":"error","message":"Error occurred:","method":"POST","service":"docket-api","stack":"Error: Only PDF files are allowed\n at fileFilter (/Users/chaulmark/Eliza-MAD-docket-website/backend/src/routes/documents.ts:39:10)\n at wrappedFileFilter (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/index.js:44:7)\n at Multipart. (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/lib/make-middleware.js:109:7)\n at Multipart.emit (node:events:507:28)\n at HeaderParser.cb (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:358:14)\n at HeaderParser.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:162:20)\n at SBMH.ssCb [as _cb] (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:394:37)\n at feed (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:219:14)\n at SBMH.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:104:16)\n at Multipart._write (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:567:19)","timestamp":"2025-06-24T22:43:07.987Z","url":"/api/documents/upload","userAgent":"curl/8.7.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":500,"timestamp":"2025-06-24T22:43:07.987Z","url":"/api/documents/upload"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T22:44:10.109Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T22:44:10.520Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T22:44:10.522Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T22:44:10.524Z"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T22:44:23.926Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T22:44:24.304Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T22:44:24.306Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T22:44:24.308Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:44:33.165Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"250ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:44:33.415Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:44:33.425Z","url":"/api/docket-entries","userAgent":"curl/8.7.1"}
-{"html":"\n \n \n \n \n \n \n \n \n \n \n \n \n (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/lib/make-middleware.js:109:7)\n at Multipart.emit (node:events:507:28)\n at HeaderParser.cb (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:358:14)\n at HeaderParser.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:162:20)\n at SBMH.ssCb [as _cb] (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:394:37)\n at feed (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:219:14)\n at SBMH.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:104:16)\n at Multipart._write (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:567:19)","timestamp":"2025-06-24T22:47:43.556Z","url":"/api/documents/upload","userAgent":"curl/8.7.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":500,"timestamp":"2025-06-24T22:47:43.556Z","url":"/api/documents/upload"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:47:43.570Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"231ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":401,"timestamp":"2025-06-24T22:47:43.801Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T22:47:43.809Z","url":"/api/auth/verify","userAgent":"curl/8.7.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":403,"timestamp":"2025-06-24T22:47:43.810Z","url":"/verify"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T22:47:43.817Z","url":"/api/health","userAgent":"curl/8.7.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:47:43.822Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-24T22:49:20.164Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-24T22:49:32.273Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-24T22:49:32.275Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-24T22:49:32.278Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-24T22:49:32.777Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:49:42.212Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"248ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:49:42.460Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:49:42.470Z","url":"/api/docket-entries","userAgent":"curl/8.7.1"}
-{"level":"info","message":"Email sent successfully:","messageId":"","service":"docket-api","subject":"New Court Filing: Real Email Test - Settlement Conference Scheduled","timestamp":"2025-06-24T22:49:43.978Z","to":"test1750805262@example.com"}
-{"level":"info","message":"Email sent successfully:","messageId":"","service":"docket-api","subject":"New Court Filing: Real Email Test - Settlement Conference Scheduled","timestamp":"2025-06-24T22:49:44.022Z","to":"test@example.com"}
-{"level":"info","message":"Email notifications sent: 2 successful, 0 failed","service":"docket-api","timestamp":"2025-06-24T22:49:44.024Z"}
-{"duration":"1555ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":201,"timestamp":"2025-06-24T22:49:44.025Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T22:51:06.241Z","url":"/api/docket-entries","userAgent":"curl/8.7.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:51:06.247Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:51:50.975Z","url":"/api/subscriptions/subscribe","userAgent":"curl/8.7.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:51:50.982Z","url":"/subscribe"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:52:01.178Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"229ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:52:01.407Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-24T22:52:01.415Z","url":"/api/docket-entries","userAgent":"curl/8.7.1"}
-{"level":"info","message":"Email sent successfully:","messageId":"<2d07ac41-147a-1249-5fde-395dd03b18f5@deafgain.org>","service":"docket-api","subject":"New Court Filing: Email Test for Chris - Motion for Summary Judgment Filed","timestamp":"2025-06-24T22:52:02.630Z","to":"test@example.com"}
-{"level":"info","message":"Email sent successfully:","messageId":"<87a974f7-0735-ef00-8f83-bae865916422@deafgain.org>","service":"docket-api","subject":"New Court Filing: Email Test for Chris - Motion for Summary Judgment Filed","timestamp":"2025-06-24T22:52:02.631Z","to":"test1750805262@example.com"}
-{"level":"info","message":"Email sent successfully:","messageId":"<3e6a094c-9cb0-0e95-b5cd-9de97df11e33@deafgain.org>","service":"docket-api","subject":"New Court Filing: Email Test for Chris - Motion for Summary Judgment Filed","timestamp":"2025-06-24T22:52:04.474Z","to":"chris@sigd.net"}
-{"level":"info","message":"Email notifications sent: 3 successful, 0 failed","service":"docket-api","timestamp":"2025-06-24T22:52:04.475Z"}
-{"duration":"3061ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":201,"timestamp":"2025-06-24T22:52:04.476Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T22:58:48.528Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"19ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-24T22:58:48.547Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-24T23:01:13.428Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-24T23:01:13.432Z","url":"/"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T13:38:31.483Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T13:38:31.485Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T13:38:31.489Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T13:38:31.965Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T13:38:50.881Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"21ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T13:38:50.902Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:00:26.370Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"12ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:00:26.382Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:01:04.654Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:01:04.658Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:06:46.367Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"17ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:06:46.384Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T14:06:52.974Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T14:06:53.436Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T14:06:53.437Z"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T14:06:53.439Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T14:06:53.440Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T14:07:10.448Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T14:07:10.449Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T14:07:10.452Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T14:07:10.927Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:07:14.281Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"19ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:07:14.300Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:09:11.796Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:09:11.801Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:16:36.010Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"17ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:16:36.027Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:19:59.753Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:19:59.756Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:20:26.607Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:20:26.612Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:21:36.853Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"17ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:21:36.870Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:29:05.803Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:29:05.821Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:29:22.453Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:29:22.458Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:32:10.797Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:32:10.801Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T14:38:43.507Z","url":"/api/auth/login","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"266ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T14:38:43.773Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:38:44.159Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:38:44.165Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:38:44.167Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T14:38:44.170Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:39:39.010Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:39:39.014Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:40:55.724Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:40:55.729Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:41:42.699Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:41:42.702Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:42:29.563Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:42:29.567Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:42:42.320Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:42:42.323Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:42:42.326Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:42:42.328Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:42:49.326Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:42:49.330Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:42:49.333Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T14:42:49.336Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:44:45.354Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:44:45.362Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"24ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:44:45.378Z","url":"/"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T14:44:45.380Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:49:49.872Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"16ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:49:49.888Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:50:39.092Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:50:39.096Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:50:39.101Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T14:50:39.103Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T14:56:27.090Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"17ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T14:56:27.107Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:00:01.999Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:00:02.003Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:00:17.453Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:00:17.457Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:00:27.417Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:00:27.420Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:00:27.422Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:00:27.425Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:00:29.988Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:00:29.991Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:00:29.994Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:00:29.997Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T15:00:53.837Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T15:00:53.837Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T15:01:10.606Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T15:01:10.607Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T15:01:10.609Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T15:01:11.462Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:15.919Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"19ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:15.938Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:19.275Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:19.279Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:19.284Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:01:19.288Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:20.890Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:20.893Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:20.897Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:20.900Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:22.797Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:22.800Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:22.805Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:22.807Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:24.249Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:24.253Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:01:24.258Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:01:24.261Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:55:43.733Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:55:43.751Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:55:54.282Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:55:54.285Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:55:54.289Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:55:54.291Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:55:56.034Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:55:56.037Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:55:56.040Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:55:56.043Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"PUT","service":"docket-api","timestamp":"2025-06-25T15:56:15.070Z","url":"/api/docket-entries/8","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"14ms","ip":"::1","level":"info","message":"Request completed","method":"PUT","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:56:15.084Z","url":"/8"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:56:15.089Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:56:15.091Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:56:32.552Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:56:32.554Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"PUT","service":"docket-api","timestamp":"2025-06-25T15:57:01.882Z","url":"/api/docket-entries/8","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"15ms","ip":"::1","level":"info","message":"Request completed","method":"PUT","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:57:01.897Z","url":"/8"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:57:01.906Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:57:01.909Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:57:06.435Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:57:06.438Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"PUT","service":"docket-api","timestamp":"2025-06-25T15:57:14.812Z","url":"/api/docket-entries/8","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"10ms","ip":"::1","level":"info","message":"Request completed","method":"PUT","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:57:14.822Z","url":"/8"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:57:14.828Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T15:57:14.831Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:57:18.727Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:57:18.731Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:57:26.740Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:57:26.743Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T15:57:26.747Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T15:57:26.749Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T15:58:15.130Z","url":"/api/documents/upload","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T15:58:52.409Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T15:58:52.410Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T15:58:52.413Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T15:58:52.891Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T15:59:55.718Z","url":"/api/documents/upload","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T16:00:54.943Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T16:00:54.945Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T16:00:54.947Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T16:00:55.507Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T16:01:00.397Z","url":"/api/documents/upload","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"42ms","ip":"::1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":201,"timestamp":"2025-06-25T16:01:00.439Z","url":"/upload"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:01:07.043Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:01:07.049Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:01:16.880Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"12ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:01:16.892Z","url":"/1/download"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:01:45.528Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:01:45.532Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T16:10:56.757Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T16:10:56.758Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T16:10:56.760Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T16:10:57.292Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:11:12.710Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:11:12.713Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T16:12:30.150Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T16:12:30.151Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T16:12:30.153Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T16:12:30.611Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:12:44.316Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"}
-{"duration":"19ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:12:44.335Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:12:50.408Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:12:50.412Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:12:54.677Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"10ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:12:54.687Z","url":"/1/download"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:13:14.780Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:13:14.785Z","url":"/1/download"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:13:34.059Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:13:34.065Z","url":"/1/download"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:14:03.596Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:14:03.600Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:14:03.604Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:14:03.607Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"PUT","service":"docket-api","timestamp":"2025-06-25T16:14:19.020Z","url":"/api/docket-entries/8","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"PUT","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:14:19.038Z","url":"/8"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:14:19.047Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:14:19.050Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:14:22.721Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:14:22.724Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"PUT","service":"docket-api","timestamp":"2025-06-25T16:14:38.542Z","url":"/api/docket-entries/8","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"12ms","ip":"::1","level":"info","message":"Request completed","method":"PUT","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:14:38.554Z","url":"/8"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:14:38.562Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:14:38.565Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:14:41.134Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:14:41.137Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:18:12.936Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"23ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:18:12.959Z","url":"/1/download"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:18:25.293Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:18:25.296Z","url":"/1/download"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:18:41.211Z","url":"/api/documents/1/download","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:18:41.216Z","url":"/1/download"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:25:03.885Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:25:03.903Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:25:07.631Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:25:07.635Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:25:35.042Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:25:35.046Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"PUT","service":"docket-api","timestamp":"2025-06-25T16:27:04.052Z","url":"/api/docket-entries/8","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"12ms","ip":"::1","level":"info","message":"Request completed","method":"PUT","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:27:04.064Z","url":"/8"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:27:04.071Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:27:04.074Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:27:07.884Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:27:07.887Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:30:38.837Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"17ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:30:38.854Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:32:16.783Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:32:16.788Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:34:58.611Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:34:58.614Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:35:48.523Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:35:48.524Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"22ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:35:48.545Z","url":"/"}
-{"duration":"21ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:35:48.545Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:36:40.857Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:36:40.861Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:36:40.864Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:36:40.866Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:37:58.921Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:37:58.924Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:37:58.928Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:37:58.931Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:38:04.598Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:38:04.602Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:38:04.605Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:38:04.607Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:38:06.105Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:38:06.108Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:38:06.113Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:38:06.115Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:39:38.668Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:39:38.675Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:39:38.677Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:39:38.680Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:39:40.218Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:39:40.223Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:39:41.858Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:39:41.861Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:39:41.868Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:39:41.870Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:08.199Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:08.204Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:08.207Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:40:08.210Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:38.268Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:38.272Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:39.922Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:39.923Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:39.926Z","url":"/"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:40:39.927Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:44.249Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:44.252Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:44.255Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:44.257Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:48.683Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:48.693Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"29ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:48.713Z","url":"/"}
-{"duration":"20ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:40:48.713Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:50.184Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:50.188Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:40:50.191Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:40:50.194Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:41:00.830Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:41:00.833Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:44:17.842Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:44:17.846Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:44:19.428Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:44:19.432Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:44:19.435Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:44:19.437Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:44:22.130Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:44:22.134Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:44:22.138Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:44:22.141Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:45:18.485Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:45:18.489Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:45:18.497Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:45:18.500Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:45:21.632Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:45:21.635Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:45:21.639Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:45:21.641Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:51:08.564Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"16ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:51:08.580Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:51:30.090Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:51:30.092Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T16:51:31.610Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T16:51:31.612Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T16:51:31.614Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T16:51:32.064Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:51:40.787Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"19ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:51:40.806Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:52:11.625Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:52:11.630Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:53:15.847Z"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:53:15.849Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T16:53:24.138Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T16:53:24.139Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T16:53:24.141Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T16:53:24.600Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:53:27.326Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:53:27.345Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:53:36.575Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T16:53:36.579Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:56:11.828Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:56:11.832Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:56:27.948Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:56:27.952Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T16:57:40.062Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T16:57:40.066Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T16:58:15.851Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T16:58:16.348Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T16:58:16.349Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T16:58:16.352Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T16:58:16.926Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T17:00:36.490Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T17:00:36.491Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T17:00:36.493Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T17:00:38.052Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:01:08.516Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"18ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T17:01:08.534Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:01:59.122Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:01:59.126Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:02:23.225Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:02:23.230Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:02:23.236Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T17:02:23.239Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:02:26.892Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:02:26.896Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:02:26.902Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T17:02:26.905Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:09:39.693Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"14ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:09:39.707Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:11:13.511Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:11:13.516Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:11:25.325Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:11:25.329Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:11:25.332Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:11:25.335Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:11:28.796Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:11:28.801Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:11:28.804Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:11:28.808Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:15:43.200Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"17ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:15:43.217Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:16:08.337Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:16:08.341Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T17:17:58.237Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T17:17:58.639Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T17:17:58.640Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T17:17:58.643Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T17:17:59.241Z"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T17:18:52.571Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T17:18:52.961Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T17:18:52.963Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T17:18:52.965Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T17:18:53.437Z"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T17:19:09.018Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T17:19:09.401Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T17:19:09.402Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T17:19:09.405Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T17:19:09.897Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:20:39.310Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"22ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:20:39.331Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:20:41.966Z","url":"/api/subscriptions","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"8ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T17:20:41.974Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:20:41.977Z","url":"/api/subscriptions","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T17:20:41.981Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:21:15.553Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T17:21:15.553Z","url":"/api/docket-entries","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":304,"timestamp":"2025-06-25T17:21:15.557Z","url":"/"}
-{"duration":"16ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T17:21:15.569Z","url":"/"}
-{"level":"info","message":"SIGINT received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T17:31:17.501Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T17:45:56.359Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T17:45:56.360Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T17:45:56.366Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T17:47:42.726Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T17:47:42.727Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T17:47:42.734Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T18:04:15.731Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T18:04:15.734Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T18:04:15.751Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T18:04:16.426Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:04:18.874Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"121ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:04:18.995Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:04:49.082Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:04:49.089Z","url":"/"}
-{"ip":"::ffff:172.18.0.1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:05:01.969Z","url":"/api/health","userAgent":"curl/8.7.1"}
-{"duration":"10ms","ip":"::ffff:172.18.0.1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:05:01.978Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:05:19.158Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:05:19.163Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:05:49.240Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:05:49.245Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:06:19.334Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:06:19.341Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:06:49.431Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"8ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:06:49.439Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:07:19.528Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:07:19.535Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:07:49.628Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"8ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:07:49.637Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:08:19.720Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:08:19.726Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:08:49.821Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:08:49.825Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:09:19.913Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"41ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:09:19.954Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:09:50.020Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:09:50.024Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:10:20.087Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:10:20.092Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:10:50.143Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:10:50.148Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:11:20.225Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:11:20.231Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:11:50.322Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:11:50.328Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:12:20.401Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:12:20.408Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:12:50.466Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:12:50.471Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:13:20.568Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:13:20.574Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:13:50.669Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:13:50.675Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:14:20.753Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"46ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:14:20.799Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:14:50.887Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:14:50.891Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:15:20.997Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:15:21.001Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:15:51.087Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:15:51.089Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:16:21.182Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:16:21.189Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:16:51.279Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:16:51.282Z","url":"/"}
-{"ip":"::ffff:172.18.0.1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:16:53.682Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"3943ms","ip":"::ffff:172.18.0.1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:16:57.626Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:17:21.368Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:17:21.372Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:17:51.429Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:17:51.431Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:18:21.494Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:18:21.496Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:18:51.589Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:18:51.591Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:19:21.684Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"39ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:19:21.723Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:19:51.814Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:19:51.817Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:20:21.896Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:20:21.897Z","url":"/"}
-{"ip":"::ffff:172.18.0.1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:20:36.608Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"3889ms","ip":"::ffff:172.18.0.1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:20:40.497Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:20:51.979Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:20:51.981Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:21:22.051Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:21:22.053Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:21:52.115Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:21:52.117Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:22:22.202Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:22:22.204Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:22:52.320Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:22:52.322Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:23:22.390Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:23:22.392Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:23:52.474Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:23:52.475Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:24:22.566Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"40ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:24:22.606Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:24:52.696Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:24:52.699Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:25:22.789Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:25:22.792Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:25:52.888Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:25:52.890Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:26:22.971Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:26:22.973Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:26:53.064Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:26:53.066Z","url":"/"}
-{"ip":"::ffff:172.18.0.1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:27:17.986Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"duration":"3908ms","ip":"::ffff:172.18.0.1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:27:21.894Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:27:23.157Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:27:23.159Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:27:53.254Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:27:53.257Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:28:23.322Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:28:23.323Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:28:53.429Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:28:53.431Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:29:23.501Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"37ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:29:23.538Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:29:53.622Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:29:53.625Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:30:23.709Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:30:23.711Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:30:53.799Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:30:53.801Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:31:23.884Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:31:23.886Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:31:53.967Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:31:53.969Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:32:24.053Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:32:24.055Z","url":"/"}
-{"ip":"::ffff:172.18.0.5","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:32:41.817Z","url":"/api/auth/login"}
-{"duration":"3933ms","ip":"::ffff:172.18.0.5","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:32:45.750Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:32:54.142Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:32:54.143Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:33:24.203Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:33:24.206Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:33:54.285Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:33:54.287Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:34:24.358Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"36ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:34:24.394Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:34:54.485Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:34:54.488Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:35:24.553Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:35:24.554Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:35:54.623Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:35:54.625Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:36:24.688Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:36:24.690Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:36:54.778Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:36:54.781Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:37:24.870Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:37:24.873Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:37:54.966Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:37:54.968Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:38:25.064Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:38:25.066Z","url":"/"}
-{"ip":"::ffff:172.18.0.5","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:38:50.489Z","url":"/api/auth/login","userAgent":"curl/8.14.1"}
-{"duration":"3949ms","ip":"::ffff:172.18.0.5","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:38:54.438Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:38:55.165Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:38:55.167Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:39:25.255Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"39ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:39:25.294Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:39:55.387Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:39:55.389Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:40:25.477Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:40:25.480Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:40:55.555Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:40:55.557Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:41:25.646Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:41:25.648Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:41:55.720Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:41:55.723Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:42:25.806Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:42:25.807Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:42:55.895Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:42:55.896Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:43:25.990Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:43:25.993Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:43:56.084Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:43:56.086Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:44:26.148Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"34ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:44:26.182Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:44:56.251Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:44:56.254Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:45:26.322Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:45:26.324Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:45:56.418Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:45:56.420Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:46:26.513Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:46:26.514Z","url":"/"}
-{"ip":"::ffff:172.18.0.5","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:46:38.766Z","url":"/api/auth/login","userAgent":"node"}
-{"duration":"3924ms","ip":"::ffff:172.18.0.5","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:46:42.690Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:46:56.586Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:46:56.588Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:47:26.677Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"12ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:47:26.689Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:47:56.755Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:47:56.758Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:48:26.824Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:48:26.826Z","url":"/"}
-{"ip":"::ffff:172.18.0.1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:48:55.788Z","url":"/api/auth/login","userAgent":"curl/8.7.1"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:48:57.020Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"308ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:48:57.329Z","url":"/"}
-{"duration":"3958ms","ip":"::ffff:172.18.0.1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:48:59.746Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:49:27.422Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"46ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:49:27.468Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:49:57.539Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:49:57.542Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:50:27.623Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:50:27.625Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:50:57.714Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:50:57.718Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:51:27.808Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:51:27.809Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:51:57.862Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"1ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:51:57.863Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:52:27.952Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:52:27.954Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:52:58.038Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:52:58.040Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:53:28.130Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:53:28.132Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:53:58.224Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:53:58.226Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:54:28.315Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"37ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:54:28.353Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:54:58.434Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"3ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:54:58.437Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:55:28.521Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"2ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:55:28.523Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T18:55:47.633Z"}
-{"level":"info","message":"Server running on port 3001","service":"docket-api","timestamp":"2025-06-25T18:56:03.229Z"}
-{"level":"info","message":"Environment: development","service":"docket-api","timestamp":"2025-06-25T18:56:03.232Z"}
-{"level":"info","message":"Connected to Redis","service":"docket-api","timestamp":"2025-06-25T18:56:03.250Z"}
-{"level":"info","message":"SMTP connection verified successfully","service":"docket-api","timestamp":"2025-06-25T18:56:03.817Z"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:56:06.438Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"121ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:56:06.559Z","url":"/"}
-{"ip":"::ffff:172.19.0.5","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:56:25.990Z","url":"/api/health"}
-{"duration":"6ms","ip":"::ffff:172.19.0.5","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:56:25.995Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:56:36.639Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"8ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:56:36.647Z","url":"/"}
-{"ip":"::ffff:172.19.0.5","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:56:44.561Z","url":"/api/auth/login"}
-{"duration":"3900ms","ip":"::ffff:172.19.0.5","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:56:48.461Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:57:06.716Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:57:06.722Z","url":"/"}
-{"ip":"::ffff:172.19.0.1","level":"info","message":"Incoming request","method":"POST","service":"docket-api","timestamp":"2025-06-25T18:57:22.523Z","url":"/api/auth/login","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"}
-{"duration":"3981ms","ip":"::ffff:172.19.0.1","level":"info","message":"Request completed","method":"POST","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:57:26.505Z","url":"/login"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:57:36.810Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"13ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:57:36.824Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:58:06.907Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:58:06.912Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:58:37.002Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:58:37.005Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:59:07.101Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"4ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:59:07.106Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T18:59:37.200Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"5ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T18:59:37.205Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:00:07.300Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:00:07.306Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:00:37.403Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:00:37.409Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:01:07.498Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"45ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:01:07.542Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:01:37.603Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:01:37.609Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:02:07.688Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"7ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:02:07.696Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:02:37.793Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"8ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:02:37.801Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:03:07.892Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"6ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:03:07.898Z","url":"/"}
-{"ip":"::1","level":"info","message":"Incoming request","method":"GET","service":"docket-api","timestamp":"2025-06-25T19:03:37.989Z","url":"/api/health","userAgent":"curl/8.12.1"}
-{"duration":"8ms","ip":"::1","level":"info","message":"Request completed","method":"GET","service":"docket-api","statusCode":200,"timestamp":"2025-06-25T19:03:37.996Z","url":"/"}
-{"level":"info","message":"SIGTERM received, shutting down gracefully","service":"docket-api","timestamp":"2025-06-25T19:03:54.773Z"}
diff --git a/backend/logs/error.log b/backend/logs/error.log
deleted file mode 100644
index b8001b1d..00000000
--- a/backend/logs/error.log
+++ /dev/null
@@ -1,2 +0,0 @@
-{"error":"Only PDF files are allowed","ip":"::1","level":"error","message":"Error occurred:","method":"POST","service":"docket-api","stack":"Error: Only PDF files are allowed\n at fileFilter (/Users/chaulmark/Eliza-MAD-docket-website/backend/src/routes/documents.ts:39:10)\n at wrappedFileFilter (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/index.js:44:7)\n at Multipart. (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/lib/make-middleware.js:109:7)\n at Multipart.emit (node:events:507:28)\n at HeaderParser.cb (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:358:14)\n at HeaderParser.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:162:20)\n at SBMH.ssCb [as _cb] (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:394:37)\n at feed (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:219:14)\n at SBMH.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:104:16)\n at Multipart._write (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:567:19)","timestamp":"2025-06-24T22:43:07.987Z","url":"/api/documents/upload","userAgent":"curl/8.7.1"}
-{"error":"Only PDF files are allowed","ip":"::1","level":"error","message":"Error occurred:","method":"POST","service":"docket-api","stack":"Error: Only PDF files are allowed\n at fileFilter (/Users/chaulmark/Eliza-MAD-docket-website/backend/src/routes/documents.ts:39:10)\n at wrappedFileFilter (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/index.js:44:7)\n at Multipart. (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/multer@1.4.5-lts.2/node_modules/multer/lib/make-middleware.js:109:7)\n at Multipart.emit (node:events:507:28)\n at HeaderParser.cb (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:358:14)\n at HeaderParser.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:162:20)\n at SBMH.ssCb [as _cb] (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:394:37)\n at feed (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:219:14)\n at SBMH.push (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js:104:16)\n at Multipart._write (/Users/chaulmark/Eliza-MAD-docket-website/backend/node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js:567:19)","timestamp":"2025-06-24T22:47:43.556Z","url":"/api/documents/upload","userAgent":"curl/8.7.1"}
diff --git a/backend/package.json b/backend/package.json
deleted file mode 100644
index 60ee44b2..00000000
--- a/backend/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "name": "eliza-mad-docket-backend",
- "version": "1.0.0",
- "description": "Backend API for Eliza Kragh v. MAD court docket website",
- "main": "dist/index.js",
- "scripts": {
- "dev": "tsx watch src/index.ts",
- "build": "tsc",
- "start": "node dist/index.js",
- "prisma:generate": "prisma generate",
- "prisma:migrate": "prisma migrate dev",
- "prisma:deploy": "prisma migrate deploy",
- "prisma:studio": "prisma studio",
- "test": "jest",
- "test:watch": "jest --watch",
- "lint": "eslint src --ext .ts",
- "lint:fix": "eslint src --ext .ts --fix"
- },
- "dependencies": {
- "@prisma/adapter-pg": "^7.1.0",
- "@prisma/client": "^7.1.0",
- "bcryptjs": "^3.0.3",
- "compression": "^1.8.1",
- "cors": "^2.8.5",
- "dotenv": "^17.2.3",
- "express": "^5.2.1",
- "express-rate-limit": "^8.2.1",
- "helmet": "^8.1.0",
- "joi": "^18.0.2",
- "jsonwebtoken": "^9.0.3",
- "multer": "^2.0.2",
- "nodemailer": "^7.0.11",
- "pg": "^8.16.3",
- "prisma": "^7.1.0",
- "redis": "^5.10.0",
- "uuid": "^13.0.0",
- "winston": "^3.19.0"
- },
- "devDependencies": {
- "@types/bcryptjs": "^3.0.0",
- "@types/compression": "^1.8.1",
- "@types/cors": "^2.8.19",
- "@types/express": "^5.0.6",
- "@types/jest": "^30.0.0",
- "@types/jsonwebtoken": "^9.0.10",
- "@types/multer": "^2.0.0",
- "@types/node": "^25.0.2",
- "@types/nodemailer": "^7.0.4",
- "@types/uuid": "^11.0.0",
- "@typescript-eslint/eslint-plugin": "^8.49.0",
- "@typescript-eslint/parser": "^8.49.0",
- "eslint": "^9.39.2",
- "jest": "^30.2.0",
- "tsx": "^4.21.0",
- "typescript": "^5.9.3"
- },
- "engines": {
- "node": ">=22.0.0"
- }
-}
diff --git a/backend/pnpm-lock.yaml b/backend/pnpm-lock.yaml
deleted file mode 100644
index c64827bb..00000000
--- a/backend/pnpm-lock.yaml
+++ /dev/null
@@ -1,6809 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- .:
- dependencies:
- '@prisma/adapter-pg':
- specifier: ^7.1.0
- version: 7.1.0
- '@prisma/client':
- specifier: ^7.1.0
- version: 7.1.0(prisma@7.1.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3)
- bcryptjs:
- specifier: ^3.0.3
- version: 3.0.3
- compression:
- specifier: ^1.8.1
- version: 1.8.1
- cors:
- specifier: ^2.8.5
- version: 2.8.5
- dotenv:
- specifier: ^17.2.3
- version: 17.2.3
- express:
- specifier: ^5.2.1
- version: 5.2.1
- express-rate-limit:
- specifier: ^8.2.1
- version: 8.2.1(express@5.2.1)
- helmet:
- specifier: ^8.1.0
- version: 8.1.0
- joi:
- specifier: ^18.0.2
- version: 18.0.2
- jsonwebtoken:
- specifier: ^9.0.3
- version: 9.0.3
- multer:
- specifier: ^2.0.2
- version: 2.0.2
- nodemailer:
- specifier: ^7.0.11
- version: 7.0.11
- pg:
- specifier: ^8.16.3
- version: 8.16.3
- prisma:
- specifier: ^7.1.0
- version: 7.1.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
- redis:
- specifier: ^5.10.0
- version: 5.10.0
- uuid:
- specifier: ^13.0.0
- version: 13.0.0
- winston:
- specifier: ^3.19.0
- version: 3.19.0
- devDependencies:
- '@types/bcryptjs':
- specifier: ^3.0.0
- version: 3.0.0
- '@types/compression':
- specifier: ^1.8.1
- version: 1.8.1
- '@types/cors':
- specifier: ^2.8.19
- version: 2.8.19
- '@types/express':
- specifier: ^5.0.6
- version: 5.0.6
- '@types/jest':
- specifier: ^30.0.0
- version: 30.0.0
- '@types/jsonwebtoken':
- specifier: ^9.0.10
- version: 9.0.10
- '@types/multer':
- specifier: ^2.0.0
- version: 2.0.0
- '@types/node':
- specifier: ^25.0.2
- version: 25.0.2
- '@types/nodemailer':
- specifier: ^7.0.4
- version: 7.0.4
- '@types/uuid':
- specifier: ^11.0.0
- version: 11.0.0
- '@typescript-eslint/eslint-plugin':
- specifier: ^8.49.0
- version: 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser':
- specifier: ^8.49.0
- version: 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- eslint:
- specifier: ^9.39.2
- version: 9.39.2(jiti@2.6.1)
- jest:
- specifier: ^30.2.0
- version: 30.2.0(@types/node@25.0.2)
- tsx:
- specifier: ^4.21.0
- version: 4.21.0
- typescript:
- specifier: ^5.9.3
- version: 5.9.3
-
-packages:
-
- '@aws-crypto/sha256-browser@5.2.0':
- resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
-
- '@aws-crypto/sha256-js@5.2.0':
- resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
- engines: {node: '>=16.0.0'}
-
- '@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.950.0':
- resolution: {integrity: sha512-GiiaGTtHP+CCCKWZ8Zl5hZvKcgvhAffVtwR/rV9dwWgHIy1Su39xU3tNDeCW160hhKPyDDcCiH1GMDykuzdBAg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/client-sso@3.948.0':
- resolution: {integrity: sha512-iWjchXy8bIAVBUsKnbfKYXRwhLgRg3EqCQ5FTr3JbR+QR75rZm4ZOYXlvHGztVTmtAZ+PQVA1Y4zO7v7N87C0A==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/core@3.947.0':
- resolution: {integrity: sha512-Khq4zHhuAkvCFuFbgcy3GrZTzfSX7ZIjIcW1zRDxXRLZKRtuhnZdonqTUfaWi5K42/4OmxkYNpsO7X7trQOeHw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-env@3.947.0':
- resolution: {integrity: sha512-VR2V6dRELmzwAsCpK4GqxUi6UW5WNhAXS9F9AzWi5jvijwJo3nH92YNJUP4quMpgFZxJHEWyXLWgPjh9u0zYOA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-http@3.947.0':
- resolution: {integrity: sha512-inF09lh9SlHj63Vmr5d+LmwPXZc2IbK8lAruhOr3KLsZAIHEgHgGPXWDC2ukTEMzg0pkexQ6FOhXXad6klK4RA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-ini@3.948.0':
- resolution: {integrity: sha512-Cl//Qh88e8HBL7yYkJNpF5eq76IO6rq8GsatKcfVBm7RFVxCqYEPSSBtkHdbtNwQdRQqAMXc6E/lEB/CZUDxnA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-login@3.948.0':
- resolution: {integrity: sha512-gcKO2b6eeTuZGp3Vvgr/9OxajMrD3W+FZ2FCyJox363ZgMoYJsyNid1vuZrEuAGkx0jvveLXfwiVS0UXyPkgtw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-node@3.948.0':
- resolution: {integrity: sha512-ep5vRLnrRdcsP17Ef31sNN4g8Nqk/4JBydcUJuFRbGuyQtrZZrVT81UeH2xhz6d0BK6ejafDB9+ZpBjXuWT5/Q==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-process@3.947.0':
- resolution: {integrity: sha512-WpanFbHe08SP1hAJNeDdBDVz9SGgMu/gc0XJ9u3uNpW99nKZjDpvPRAdW7WLA4K6essMjxWkguIGNOpij6Do2Q==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-sso@3.948.0':
- resolution: {integrity: sha512-gqLhX1L+zb/ZDnnYbILQqJ46j735StfWV5PbDjxRzBKS7GzsiYoaf6MyHseEopmWrez5zl5l6aWzig7UpzSeQQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-web-identity@3.948.0':
- resolution: {integrity: sha512-MvYQlXVoJyfF3/SmnNzOVEtANRAiJIObEUYYyjTqKZTmcRIVVky0tPuG26XnB8LmTYgtESwJIZJj/Eyyc9WURQ==}
- 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.948.0':
- resolution: {integrity: sha512-Qa8Zj+EAqA0VlAVvxpRnpBpIWJI9KUwaioY1vkeNVwXPlNaz9y9zCKVM9iU9OZ5HXpoUg6TnhATAHXHAE8+QsQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-sdk-s3@3.947.0':
- resolution: {integrity: sha512-DS2tm5YBKhPW2PthrRBDr6eufChbwXe0NjtTZcYDfUCXf0OR+W6cIqyKguwHMJ+IyYdey30AfVw9/Lb5KB8U8A==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-user-agent@3.947.0':
- resolution: {integrity: sha512-7rpKV8YNgCP2R4F9RjWZFcD2R+SO/0R4VHIbY9iZJdH2MzzJ8ZG7h8dZ2m8QkQd1fjx4wrFJGGPJUTYXPV3baA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/nested-clients@3.948.0':
- resolution: {integrity: sha512-zcbJfBsB6h254o3NuoEkf0+UY1GpE9ioiQdENWv7odo69s8iaGBEQ4BDpsIMqcuiiUXw1uKIVNxCB1gUGYz8lw==}
- 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.947.0':
- resolution: {integrity: sha512-UaYmzoxf9q3mabIA2hc4T6x5YSFUG2BpNjAZ207EA1bnQMiK+d6vZvb83t7dIWL/U1de1sGV19c1C81Jf14rrA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/token-providers@3.948.0':
- resolution: {integrity: sha512-V487/kM4Teq5dcr1t5K6eoUKuqlGr9FRWL3MIMukMERJXHZvio6kox60FZ/YtciRHRI75u14YUqm2Dzddcu3+A==}
- 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.947.0':
- resolution: {integrity: sha512-+vhHoDrdbb+zerV4noQk1DHaUMNzWFWPpPYjVTwW2186k5BEJIecAMChYkghRrBVJ3KPWP1+JnZwOd72F3d4rQ==}
- 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==}
- engines: {node: '>=6.9.0'}
-
- '@babel/compat-data@7.28.5':
- resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.28.5':
- resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.28.5':
- resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.27.2':
- resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-globals@7.28.0':
- resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.27.1':
- resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.28.3':
- resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-plugin-utils@7.27.1':
- resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.27.1':
- resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.28.5':
- resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-option@7.27.1':
- resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.28.4':
- resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.28.5':
- resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/plugin-syntax-async-generators@7.8.4':
- resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-bigint@7.8.3':
- resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-class-properties@7.12.13':
- resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-class-static-block@7.14.5':
- resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-import-attributes@7.27.1':
- resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-import-meta@7.10.4':
- resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-json-strings@7.8.3':
- resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-jsx@7.27.1':
- resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
- resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
- resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-numeric-separator@7.10.4':
- resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-object-rest-spread@7.8.3':
- resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-optional-catch-binding@7.8.3':
- resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-optional-chaining@7.8.3':
- resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-private-property-in-object@7.14.5':
- resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-top-level-await@7.14.5':
- resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-typescript@7.27.1':
- resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/template@7.27.2':
- resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.28.5':
- resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.28.5':
- resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
- engines: {node: '>=6.9.0'}
-
- '@bcoe/v8-coverage@0.2.3':
- resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
-
- '@chevrotain/cst-dts-gen@10.5.0':
- resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==}
-
- '@chevrotain/gast@10.5.0':
- resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==}
-
- '@chevrotain/types@10.5.0':
- resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==}
-
- '@chevrotain/utils@10.5.0':
- resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==}
-
- '@colors/colors@1.6.0':
- resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
- engines: {node: '>=0.1.90'}
-
- '@dabh/diagnostics@2.0.8':
- resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==}
-
- '@electric-sql/pglite-socket@0.0.6':
- resolution: {integrity: sha512-6RjmgzphIHIBA4NrMGJsjNWK4pu+bCWJlEWlwcxFTVY3WT86dFpKwbZaGWZV6C5Rd7sCk1Z0CI76QEfukLAUXw==}
- hasBin: true
- peerDependencies:
- '@electric-sql/pglite': 0.3.2
-
- '@electric-sql/pglite-tools@0.2.7':
- resolution: {integrity: sha512-9dAccClqxx4cZB+Ar9B+FZ5WgxDc/Xvl9DPrTWv+dYTf0YNubLzi4wHHRGRGhrJv15XwnyKcGOZAP1VXSneSUg==}
- peerDependencies:
- '@electric-sql/pglite': 0.3.2
-
- '@electric-sql/pglite@0.3.2':
- resolution: {integrity: sha512-zfWWa+V2ViDCY/cmUfRqeWY1yLto+EpxjXnZzenB1TyxsTiXaTWeZFIZw6mac52BsuQm0RjCnisjBtdBaXOI6w==}
-
- '@emnapi/core@1.7.1':
- resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==}
-
- '@emnapi/runtime@1.7.1':
- resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==}
-
- '@emnapi/wasi-threads@1.1.0':
- resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
-
- '@esbuild/aix-ppc64@0.27.1':
- resolution: {integrity: sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.27.1':
- resolution: {integrity: sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.27.1':
- resolution: {integrity: sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.27.1':
- resolution: {integrity: sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.27.1':
- resolution: {integrity: sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.27.1':
- resolution: {integrity: sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.27.1':
- resolution: {integrity: sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.27.1':
- resolution: {integrity: sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.27.1':
- resolution: {integrity: sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.27.1':
- resolution: {integrity: sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.27.1':
- resolution: {integrity: sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.27.1':
- resolution: {integrity: sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.27.1':
- resolution: {integrity: sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.27.1':
- resolution: {integrity: sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.27.1':
- resolution: {integrity: sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.27.1':
- resolution: {integrity: sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.27.1':
- resolution: {integrity: sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-arm64@0.27.1':
- resolution: {integrity: sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.27.1':
- resolution: {integrity: sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-arm64@0.27.1':
- resolution: {integrity: sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.27.1':
- resolution: {integrity: sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openharmony-arm64@0.27.1':
- resolution: {integrity: sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openharmony]
-
- '@esbuild/sunos-x64@0.27.1':
- resolution: {integrity: sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.27.1':
- resolution: {integrity: sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.27.1':
- resolution: {integrity: sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.27.1':
- resolution: {integrity: sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==}
- engines: {node: '>=18'}
- 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/regexpp@4.12.2':
- resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
- '@eslint/config-array@0.21.1':
- resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/config-helpers@0.4.2':
- resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@0.17.0':
- resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/eslintrc@3.3.3':
- 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==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/object-schema@2.1.7':
- resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/plugin-kit@0.4.1':
- resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@hapi/address@5.1.1':
- resolution: {integrity: sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==}
- engines: {node: '>=14.0.0'}
-
- '@hapi/formula@3.0.2':
- resolution: {integrity: sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==}
-
- '@hapi/hoek@11.0.7':
- resolution: {integrity: sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==}
-
- '@hapi/pinpoint@2.0.1':
- resolution: {integrity: sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==}
-
- '@hapi/tlds@1.1.4':
- resolution: {integrity: sha512-Fq+20dxsxLaUn5jSSWrdtSRcIUba2JquuorF9UW1wIJS5cSUwxIsO2GIhaWynPRflvxSzFN+gxKte2HEW1OuoA==}
- engines: {node: '>=14.0.0'}
-
- '@hapi/topo@6.0.2':
- resolution: {integrity: sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==}
-
- '@hono/node-server@1.19.6':
- resolution: {integrity: sha512-Shz/KjlIeAhfiuE93NDKVdZ7HdBVLQAfdbaXEaoAVO3ic9ibRSLGIQGkcBbFyuLr+7/1D5ZCINM8B+6IvXeMtw==}
- engines: {node: '>=18.14.1'}
- peerDependencies:
- hono: ^4
-
- '@humanfs/core@0.19.1':
- resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
- engines: {node: '>=18.18.0'}
-
- '@humanfs/node@0.16.7':
- resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
- engines: {node: '>=18.18.0'}
-
- '@humanwhocodes/module-importer@1.0.1':
- resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
- engines: {node: '>=12.22'}
-
- '@humanwhocodes/retry@0.4.3':
- resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
- engines: {node: '>=18.18'}
-
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
- '@istanbuljs/load-nyc-config@1.1.0':
- resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
- engines: {node: '>=8'}
-
- '@istanbuljs/schema@0.1.3':
- resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
- engines: {node: '>=8'}
-
- '@jest/console@30.2.0':
- resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/core@30.2.0':
- resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- '@jest/diff-sequences@30.0.1':
- resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/environment@30.2.0':
- resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/expect-utils@30.2.0':
- resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/expect@30.2.0':
- resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/fake-timers@30.2.0':
- resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/get-type@30.1.0':
- resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/globals@30.2.0':
- resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/pattern@30.0.1':
- resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/reporters@30.2.0':
- resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- '@jest/schemas@30.0.5':
- resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/snapshot-utils@30.2.0':
- resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/source-map@30.0.1':
- resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/test-result@30.2.0':
- resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/test-sequencer@30.2.0':
- resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/transform@30.2.0':
- resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/types@30.2.0':
- resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
- '@jridgewell/remapping@2.3.5':
- resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.5':
- resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
-
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
- '@mrleebo/prisma-ast@0.12.1':
- resolution: {integrity: sha512-JwqeCQ1U3fvccttHZq7Tk0m/TMC6WcFAQZdukypW3AzlJYKYTGNVd1ANU2GuhKnv4UQuOFj3oAl0LLG/gxFN1w==}
- engines: {node: '>=16'}
-
- '@napi-rs/wasm-runtime@0.2.12':
- resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
-
- '@pkgjs/parseargs@0.11.0':
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
-
- '@pkgr/core@0.2.9':
- resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
-
- '@prisma/adapter-pg@7.1.0':
- resolution: {integrity: sha512-DSAnUwkKfX4bUzhkrjGN4IBQzwg0nvFw2W17H0Oa532I5w9nLtTJ9mAEGDs1nUBEGRAsa0c7qsf8CSgfJ4DsBQ==}
-
- '@prisma/client-runtime-utils@7.1.0':
- resolution: {integrity: sha512-39xmeBrNTN40FzF34aJMjfX1PowVCqoT3UKUWBBSP3aXV05NRqGBC3x2wCDs96ti6ZgdiVzqnRDHtbzU8X+lPQ==}
-
- '@prisma/client@7.1.0':
- resolution: {integrity: sha512-qf7GPYHmS/xybNiSOpzv9wBo+UwqfL2PeyX+08v+KVHDI0AlSCQIh5bBySkH3alu06NX9wy98JEnckhMHoMFfA==}
- engines: {node: ^20.19 || ^22.12 || >=24.0}
- peerDependencies:
- prisma: '*'
- typescript: '>=5.4.0'
- peerDependenciesMeta:
- prisma:
- optional: true
- typescript:
- optional: true
-
- '@prisma/config@7.1.0':
- resolution: {integrity: sha512-Uz+I43Wn1RYNHtuYtOhOnUcNMWp2Pd3GUDDKs37xlHptCGpzEG3MRR9L+8Y2ISMsMI24z/Ni+ww6OB/OO8M0sQ==}
-
- '@prisma/debug@6.8.2':
- resolution: {integrity: sha512-4muBSSUwJJ9BYth5N8tqts8JtiLT8QI/RSAzEogwEfpbYGFo9mYsInsVo8dqXdPO2+Rm5OG5q0qWDDE3nyUbVg==}
-
- '@prisma/debug@7.1.0':
- resolution: {integrity: sha512-pPAckG6etgAsEBusmZiFwM9bldLSNkn++YuC4jCTJACdK5hLOVnOzX7eSL2FgaU6Gomd6wIw21snUX2dYroMZQ==}
-
- '@prisma/dev@0.15.0':
- resolution: {integrity: sha512-KhWaipnFlS/fWEs6I6Oqjcy2S08vKGmxJ5LexqUl/3Ve0EgLUsZwdKF0MvqPM5F5ttw8GtfZarjM5y7VLwv9Ow==}
-
- '@prisma/driver-adapter-utils@7.1.0':
- resolution: {integrity: sha512-AlVLzeXkw81+47MvQ9M8DvTiHkRfJ8xzklTbYjpskb0cTTDVHboTI/OVwT6Wcep/bNvfLKJYO0nylBiM5rxgww==}
-
- '@prisma/engines-version@7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba':
- resolution: {integrity: sha512-qZUevUh+yPhGT28rDQnV8V2kLnFjirzhVD67elRPIJHRsUV/mkII10HSrJrhK/U2GYgAxXR2VEREtq7AsfS8qw==}
-
- '@prisma/engines@7.1.0':
- resolution: {integrity: sha512-KQlraOybdHAzVv45KWKJzpR9mJLkib7/TyApQpqrsL7FUHfgjIcy8jrVGt3iNfG6/GDDl+LNlJ84JSQwIfdzxA==}
-
- '@prisma/fetch-engine@7.1.0':
- resolution: {integrity: sha512-GZYF5Q8kweXWGfn87hTu17kw7x1DgnehgKoE4Zg1BmHYF3y1Uu0QRY/qtSE4veH3g+LW8f9HKqA0tARG66bxxQ==}
-
- '@prisma/get-platform@6.8.2':
- resolution: {integrity: sha512-vXSxyUgX3vm1Q70QwzwkjeYfRryIvKno1SXbIqwSptKwqKzskINnDUcx85oX+ys6ooN2ATGSD0xN2UTfg6Zcow==}
-
- '@prisma/get-platform@7.1.0':
- resolution: {integrity: sha512-lq8hMdjKiZftuT5SssYB3EtQj8+YjL24/ZTLflQqzFquArKxBcyp6Xrblto+4lzIKJqnpOjfMiBjMvl7YuD7+Q==}
-
- '@prisma/query-plan-executor@6.18.0':
- resolution: {integrity: sha512-jZ8cfzFgL0jReE1R10gT8JLHtQxjWYLiQ//wHmVYZ2rVkFHoh0DT8IXsxcKcFlfKN7ak7k6j0XMNn2xVNyr5cA==}
-
- '@prisma/studio-core@0.8.2':
- resolution: {integrity: sha512-/iAEWEUpTja+7gVMu1LtR2pPlvDmveAwMHdTWbDeGlT7yiv0ZTCPpmeAGdq/Y9aJ9Zj1cEGBXGRbmmNPj022PQ==}
- peerDependencies:
- '@types/react': ^18.0.0 || ^19.0.0
- react: ^18.0.0 || ^19.0.0
- react-dom: ^18.0.0 || ^19.0.0
-
- '@redis/bloom@5.10.0':
- resolution: {integrity: sha512-doIF37ob+l47n0rkpRNgU8n4iacBlKM9xLiP1LtTZTvz8TloJB8qx/MgvhMhKdYG+CvCY2aPBnN2706izFn/4A==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.10.0
-
- '@redis/client@5.10.0':
- resolution: {integrity: sha512-JXmM4XCoso6C75Mr3lhKA3eNxSzkYi3nCzxDIKY+YOszYsJjuKbFgVtguVPbLMOttN4iu2fXoc2BGhdnYhIOxA==}
- engines: {node: '>= 18'}
-
- '@redis/json@5.10.0':
- resolution: {integrity: sha512-B2G8XlOmTPUuZtD44EMGbtoepQG34RCDXLZbjrtON1Djet0t5Ri7/YPXvL9aomXqP8lLTreaprtyLKF4tmXEEA==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.10.0
-
- '@redis/search@5.10.0':
- resolution: {integrity: sha512-3SVcPswoSfp2HnmWbAGUzlbUPn7fOohVu2weUQ0S+EMiQi8jwjL+aN2p6V3TI65eNfVsJ8vyPvqWklm6H6esmg==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.10.0
-
- '@redis/time-series@5.10.0':
- resolution: {integrity: sha512-cPkpddXH5kc/SdRhF0YG0qtjL+noqFT0AcHbQ6axhsPsO7iqPi1cjxgdkE9TNeKiBUUdCaU1DbqkR/LzbzPBhg==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.10.0
-
- '@sinclair/typebox@0.34.41':
- resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==}
-
- '@sinonjs/commons@3.0.1':
- resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
-
- '@sinonjs/fake-timers@13.0.5':
- resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==}
-
- '@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'}
-
- '@so-ric/colorspace@1.1.6':
- resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==}
-
- '@standard-schema/spec@1.0.0':
- resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
-
- '@tybys/wasm-util@0.10.1':
- resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
-
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-
- '@types/babel__generator@7.27.0':
- resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
-
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-
- '@types/babel__traverse@7.28.0':
- resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
-
- '@types/bcryptjs@3.0.0':
- resolution: {integrity: sha512-WRZOuCuaz8UcZZE4R5HXTco2goQSI2XxjGY3hbM/xDvwmqFWd4ivooImsMx65OKM6CtNKbnZ5YL+YwAwK7c1dg==}
- deprecated: This is a stub types definition. bcryptjs provides its own type definitions, so you do not need this installed.
-
- '@types/body-parser@1.19.6':
- resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
-
- '@types/compression@1.8.1':
- resolution: {integrity: sha512-kCFuWS0ebDbmxs0AXYn6e2r2nrGAb5KwQhknjSPSPgJcGd8+HVSILlUyFhGqML2gk39HcG7D1ydW9/qpYkN00Q==}
-
- '@types/connect@3.4.38':
- resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
-
- '@types/cors@2.8.19':
- resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
-
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
-
- '@types/express-serve-static-core@5.1.0':
- resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==}
-
- '@types/express@5.0.6':
- resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==}
-
- '@types/http-errors@2.0.5':
- resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==}
-
- '@types/istanbul-lib-coverage@2.0.6':
- resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
-
- '@types/istanbul-lib-report@3.0.3':
- resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
-
- '@types/istanbul-reports@3.0.4':
- resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
-
- '@types/jest@30.0.0':
- resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==}
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/jsonwebtoken@9.0.10':
- resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==}
-
- '@types/ms@2.1.0':
- resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
-
- '@types/multer@2.0.0':
- resolution: {integrity: sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==}
-
- '@types/node@25.0.2':
- resolution: {integrity: sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==}
-
- '@types/nodemailer@7.0.4':
- resolution: {integrity: sha512-ee8fxWqOchH+Hv6MDDNNy028kwvVnLplrStm4Zf/3uHWw5zzo8FoYYeffpJtGs2wWysEumMH0ZIdMGMY1eMAow==}
-
- '@types/qs@6.14.0':
- resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
-
- '@types/range-parser@1.2.7':
- resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
-
- '@types/react@19.2.7':
- resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
-
- '@types/send@1.2.1':
- resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==}
-
- '@types/serve-static@2.2.0':
- resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==}
-
- '@types/stack-utils@2.0.3':
- resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
-
- '@types/triple-beam@1.3.5':
- resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
-
- '@types/uuid@11.0.0':
- resolution: {integrity: sha512-HVyk8nj2m+jcFRNazzqyVKiZezyhDKrGUA3jlEcg/nZ6Ms+qHwocba1Y/AaVaznJTAM9xpdFSh+ptbNrhOGvZA==}
- deprecated: This is a stub types definition. uuid provides its own type definitions, so you do not need this installed.
-
- '@types/yargs-parser@21.0.3':
- resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
-
- '@types/yargs@17.0.35':
- resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==}
-
- '@typescript-eslint/eslint-plugin@8.49.0':
- resolution: {integrity: sha512-JXij0vzIaTtCwu6SxTh8qBc66kmf1xs7pI4UOiMDFVct6q86G0Zs7KRcEoJgY3Cav3x5Tq0MF5jwgpgLqgKG3A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- '@typescript-eslint/parser': ^8.49.0
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/parser@8.49.0':
- resolution: {integrity: sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/project-service@8.49.0':
- resolution: {integrity: sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/scope-manager@8.49.0':
- resolution: {integrity: sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/tsconfig-utils@8.49.0':
- resolution: {integrity: sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/type-utils@8.49.0':
- resolution: {integrity: sha512-KTExJfQ+svY8I10P4HdxKzWsvtVnsuCifU5MvXrRwoP2KOlNZ9ADNEWWsQTJgMxLzS5VLQKDjkCT/YzgsnqmZg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/types@8.49.0':
- resolution: {integrity: sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/typescript-estree@8.49.0':
- resolution: {integrity: sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/utils@8.49.0':
- resolution: {integrity: sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/visitor-keys@8.49.0':
- resolution: {integrity: sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@ungap/structured-clone@1.3.0':
- resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
-
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
- cpu: [arm]
- os: [android]
-
- '@unrs/resolver-binding-android-arm64@1.11.1':
- resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
- cpu: [arm64]
- os: [android]
-
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
- cpu: [arm64]
- os: [darwin]
-
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
- cpu: [x64]
- os: [darwin]
-
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
- cpu: [x64]
- os: [freebsd]
-
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
- cpu: [arm]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
- cpu: [arm]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
- cpu: [arm64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
- cpu: [arm64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
- cpu: [ppc64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
- cpu: [riscv64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
- cpu: [riscv64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
- cpu: [s390x]
- os: [linux]
-
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
- cpu: [x64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
- cpu: [x64]
- os: [linux]
-
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
- engines: {node: '>=14.0.0'}
- cpu: [wasm32]
-
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
- cpu: [arm64]
- os: [win32]
-
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
- cpu: [ia32]
- os: [win32]
-
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
- cpu: [x64]
- os: [win32]
-
- accepts@2.0.0:
- resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
- engines: {node: '>= 0.6'}
-
- acorn-jsx@5.3.2:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- acorn@8.15.0:
- resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
-
- ansi-escapes@4.3.2:
- resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
- engines: {node: '>=8'}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- ansi-styles@5.2.0:
- resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
- engines: {node: '>=10'}
-
- ansi-styles@6.2.3:
- resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
- engines: {node: '>=12'}
-
- anymatch@3.1.3:
- resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
-
- append-field@1.0.0:
- resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==}
-
- argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
- async@3.2.6:
- resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
-
- aws-ssl-profiles@1.1.2:
- resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==}
- engines: {node: '>= 6.0.0'}
-
- babel-jest@30.2.0:
- resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0 || ^8.0.0-0
-
- babel-plugin-istanbul@7.0.1:
- resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
- engines: {node: '>=12'}
-
- babel-plugin-jest-hoist@30.2.0:
- resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- babel-preset-current-node-syntax@1.2.0:
- resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==}
- peerDependencies:
- '@babel/core': ^7.0.0 || ^8.0.0-0
-
- babel-preset-jest@30.2.0:
- resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0 || ^8.0.0-beta.1
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- baseline-browser-mapping@2.9.7:
- resolution: {integrity: sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==}
- hasBin: true
-
- bcryptjs@3.0.3:
- resolution: {integrity: sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==}
- hasBin: true
-
- body-parser@2.2.1:
- resolution: {integrity: sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==}
- engines: {node: '>=18'}
-
- 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==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- browserslist@4.28.1:
- resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
-
- bser@2.1.1:
- resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
-
- buffer-equal-constant-time@1.0.1:
- resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
-
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
- busboy@1.6.0:
- resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
- engines: {node: '>=10.16.0'}
-
- bytes@3.1.2:
- resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
- engines: {node: '>= 0.8'}
-
- c12@3.1.0:
- resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==}
- peerDependencies:
- magicast: ^0.3.5
- peerDependenciesMeta:
- magicast:
- optional: true
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.4:
- resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
- engines: {node: '>= 0.4'}
-
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- camelcase@5.3.1:
- resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
- engines: {node: '>=6'}
-
- camelcase@6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
-
- caniuse-lite@1.0.30001760:
- resolution: {integrity: sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- char-regex@1.0.2:
- resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
- engines: {node: '>=10'}
-
- chevrotain@10.5.0:
- resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==}
-
- chokidar@4.0.3:
- resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
- engines: {node: '>= 14.16.0'}
-
- ci-info@4.3.1:
- resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
- engines: {node: '>=8'}
-
- citty@0.1.6:
- resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
-
- cjs-module-lexer@2.1.1:
- resolution: {integrity: sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==}
-
- cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
-
- cluster-key-slot@1.1.2:
- resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
- engines: {node: '>=0.10.0'}
-
- co@4.6.0:
- resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
- engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
-
- collect-v8-coverage@1.0.3:
- resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-convert@3.1.3:
- resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==}
- engines: {node: '>=14.6'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- color-name@2.1.0:
- resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==}
- engines: {node: '>=12.20'}
-
- color-string@2.1.4:
- resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==}
- engines: {node: '>=18'}
-
- color@5.0.3:
- resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==}
- engines: {node: '>=18'}
-
- compressible@2.0.18:
- resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
- engines: {node: '>= 0.6'}
-
- compression@1.8.1:
- resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==}
- engines: {node: '>= 0.8.0'}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- concat-stream@2.0.0:
- resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
- engines: {'0': node >= 6.0}
-
- confbox@0.2.2:
- resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
-
- consola@3.4.2:
- resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
- engines: {node: ^14.18.0 || >=16.10.0}
-
- content-disposition@1.0.1:
- resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==}
- engines: {node: '>=18'}
-
- content-type@1.0.5:
- resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
- engines: {node: '>= 0.6'}
-
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
- cookie-signature@1.2.2:
- resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
- engines: {node: '>=6.6.0'}
-
- cookie@0.7.2:
- resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
- engines: {node: '>= 0.6'}
-
- cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
- engines: {node: '>= 0.10'}
-
- cross-spawn@7.0.6:
- resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
- engines: {node: '>= 8'}
-
- csstype@3.2.3:
- resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
-
- debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.4.3:
- resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- dedent@1.7.0:
- resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==}
- peerDependencies:
- babel-plugin-macros: ^3.1.0
- peerDependenciesMeta:
- babel-plugin-macros:
- optional: true
-
- deep-is@0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-
- deepmerge-ts@7.1.5:
- resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==}
- engines: {node: '>=16.0.0'}
-
- deepmerge@4.3.1:
- resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
- engines: {node: '>=0.10.0'}
-
- defu@6.1.4:
- resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
-
- denque@2.1.0:
- resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
- engines: {node: '>=0.10'}
-
- depd@2.0.0:
- resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
- engines: {node: '>= 0.8'}
-
- destr@2.0.5:
- resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
-
- detect-newline@3.1.0:
- resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
- engines: {node: '>=8'}
-
- dotenv@16.6.1:
- resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
- engines: {node: '>=12'}
-
- dotenv@17.2.3:
- resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
- engines: {node: '>=12'}
-
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
- ecdsa-sig-formatter@1.0.11:
- resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
-
- ee-first@1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
-
- effect@3.18.4:
- resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==}
-
- electron-to-chromium@1.5.267:
- resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==}
-
- emittery@0.13.1:
- resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
- engines: {node: '>=12'}
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- empathic@2.0.0:
- resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
- engines: {node: '>=14'}
-
- enabled@2.0.0:
- resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
-
- encodeurl@2.0.0:
- resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
- engines: {node: '>= 0.8'}
-
- error-ex@1.3.4:
- resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- esbuild@0.27.1:
- resolution: {integrity: sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==}
- engines: {node: '>=18'}
- hasBin: true
-
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
-
- escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
-
- escape-string-regexp@2.0.0:
- resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
- engines: {node: '>=8'}
-
- escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
-
- eslint-scope@8.4.0:
- resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint-visitor-keys@3.4.3:
- resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- eslint-visitor-keys@4.2.1:
- 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==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- hasBin: true
- peerDependencies:
- jiti: '*'
- peerDependenciesMeta:
- jiti:
- optional: true
-
- espree@10.4.0:
- resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
-
- esquery@1.6.0:
- resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
- engines: {node: '>=0.10'}
-
- esrecurse@4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
-
- estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
-
- esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
-
- etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
-
- execa@5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- engines: {node: '>=10'}
-
- exit-x@0.2.2:
- resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==}
- engines: {node: '>= 0.8.0'}
-
- expect@30.2.0:
- resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- express-rate-limit@8.2.1:
- resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==}
- engines: {node: '>= 16'}
- peerDependencies:
- express: '>= 4.11'
-
- express@5.2.1:
- resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==}
- engines: {node: '>= 18'}
-
- exsolve@1.0.8:
- resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
-
- fast-check@3.23.2:
- resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==}
- engines: {node: '>=8.0.0'}
-
- fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-
- fast-json-stable-stringify@2.1.0:
- resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-
- fast-levenshtein@2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-
- fast-xml-parser@5.2.5:
- resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==}
- hasBin: true
-
- fb-watchman@2.0.2:
- resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
-
- fdir@6.5.0:
- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
-
- fecha@4.2.3:
- resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==}
-
- file-entry-cache@8.0.0:
- resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- finalhandler@2.1.1:
- resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
- engines: {node: '>= 18.0.0'}
-
- find-up@4.1.0:
- resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
- engines: {node: '>=8'}
-
- find-up@5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- engines: {node: '>=10'}
-
- flat-cache@4.0.1:
- resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
-
- flatted@3.3.3:
- resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
-
- fn.name@1.1.0:
- resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
-
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
-
- forwarded@0.2.0:
- resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
- engines: {node: '>= 0.6'}
-
- fresh@2.0.0:
- resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
- engines: {node: '>= 0.8'}
-
- fs.realpath@1.0.0:
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- generate-function@2.3.1:
- resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
-
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-package-type@0.1.0:
- resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
- engines: {node: '>=8.0.0'}
-
- get-port-please@3.1.2:
- resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- get-stream@6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- engines: {node: '>=10'}
-
- get-tsconfig@4.13.0:
- resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
-
- giget@2.0.0:
- resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
- hasBin: true
-
- glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
-
- glob@10.5.0:
- resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
- hasBin: true
-
- glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- grammex@3.1.12:
- resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- helmet@8.1.0:
- resolution: {integrity: sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg==}
- engines: {node: '>=18.0.0'}
-
- hono@4.10.6:
- resolution: {integrity: sha512-BIdolzGpDO9MQ4nu3AUuDwHZZ+KViNm+EZ75Ae55eMXMqLVhDFqEMXxtUe9Qh8hjL+pIna/frs2j6Y2yD5Ua/g==}
- engines: {node: '>=16.9.0'}
-
- html-escaper@2.0.2:
- resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
-
- http-errors@2.0.1:
- resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
- engines: {node: '>= 0.8'}
-
- http-status-codes@2.3.0:
- resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==}
-
- human-signals@2.1.0:
- resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
- engines: {node: '>=10.17.0'}
-
- iconv-lite@0.7.1:
- resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==}
- engines: {node: '>=0.10.0'}
-
- ignore@5.3.2:
- resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
- engines: {node: '>= 4'}
-
- ignore@7.0.5:
- resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
- engines: {node: '>= 4'}
-
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
-
- import-local@3.2.0:
- resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
- engines: {node: '>=8'}
- hasBin: true
-
- imurmurhash@0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
-
- inflight@1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
- deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- ip-address@10.0.1:
- resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==}
- engines: {node: '>= 12'}
-
- ipaddr.js@1.9.1:
- resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
- engines: {node: '>= 0.10'}
-
- is-arrayish@0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- is-generator-fn@2.1.0:
- resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
- engines: {node: '>=6'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-promise@4.0.0:
- resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
-
- is-property@1.0.2:
- resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==}
-
- is-stream@2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- istanbul-lib-coverage@3.2.2:
- resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
- engines: {node: '>=8'}
-
- istanbul-lib-instrument@6.0.3:
- resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
- engines: {node: '>=10'}
-
- istanbul-lib-report@3.0.1:
- 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'}
-
- jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
-
- jest-changed-files@30.2.0:
- resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-circus@30.2.0:
- resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-cli@30.2.0:
- resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- hasBin: true
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- jest-config@30.2.0:
- resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@types/node': '*'
- esbuild-register: '>=3.4.0'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- '@types/node':
- optional: true
- esbuild-register:
- optional: true
- ts-node:
- optional: true
-
- jest-diff@30.2.0:
- resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-docblock@30.2.0:
- resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-each@30.2.0:
- resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-environment-node@30.2.0:
- resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-haste-map@30.2.0:
- resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-leak-detector@30.2.0:
- resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-matcher-utils@30.2.0:
- resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-message-util@30.2.0:
- resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-mock@30.2.0:
- resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-pnp-resolver@1.2.3:
- resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
- engines: {node: '>=6'}
- peerDependencies:
- jest-resolve: '*'
- peerDependenciesMeta:
- jest-resolve:
- optional: true
-
- jest-regex-util@30.0.1:
- resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-resolve-dependencies@30.2.0:
- resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-resolve@30.2.0:
- resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-runner@30.2.0:
- resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-runtime@30.2.0:
- resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-snapshot@30.2.0:
- resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-util@30.2.0:
- resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-validate@30.2.0:
- resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-watcher@30.2.0:
- resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest-worker@30.2.0:
- resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- jest@30.2.0:
- resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- hasBin: true
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- jiti@2.6.1:
- resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
- hasBin: true
-
- joi@18.0.2:
- resolution: {integrity: sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==}
- engines: {node: '>= 20'}
-
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@3.14.2:
- resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
- hasBin: true
-
- js-yaml@4.1.1:
- resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
- json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
- json-parse-even-better-errors@2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
-
- json-schema-traverse@0.4.1:
- resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-
- json-stable-stringify-without-jsonify@1.0.1:
- resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
-
- jsonwebtoken@9.0.3:
- resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==}
- engines: {node: '>=12', npm: '>=6'}
-
- jwa@2.0.1:
- resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
-
- jws@4.0.1:
- resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==}
-
- keyv@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
-
- kuler@2.0.0:
- resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==}
-
- leven@3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
-
- levn@0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
-
- lilconfig@2.1.0:
- resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
- engines: {node: '>=10'}
-
- lines-and-columns@1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
-
- locate-path@5.0.0:
- resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
- engines: {node: '>=8'}
-
- locate-path@6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- engines: {node: '>=10'}
-
- lodash.includes@4.3.0:
- resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
-
- lodash.isboolean@3.0.3:
- resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
-
- lodash.isinteger@4.0.4:
- resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
-
- lodash.isnumber@3.0.3:
- resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
-
- lodash.isplainobject@4.0.6:
- resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
-
- lodash.isstring@4.0.1:
- resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
-
- lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-
- lodash.once@4.1.1:
- resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
-
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- logform@2.7.0:
- resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
- engines: {node: '>= 12.0.0'}
-
- long@5.3.2:
- resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
-
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
-
- lru.min@1.1.3:
- resolution: {integrity: sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==}
- engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'}
-
- make-dir@4.0.0:
- resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
- engines: {node: '>=10'}
-
- makeerror@1.0.12:
- resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- media-typer@0.3.0:
- resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
- engines: {node: '>= 0.6'}
-
- media-typer@1.1.0:
- resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
- engines: {node: '>= 0.8'}
-
- merge-descriptors@2.0.0:
- resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
- engines: {node: '>=18'}
-
- merge-stream@2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
-
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-db@1.54.0:
- resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
- mime-types@3.0.2:
- resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==}
- engines: {node: '>=18'}
-
- mimic-fn@2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- mkdirp@0.5.6:
- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
- hasBin: true
-
- ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- multer@2.0.2:
- resolution: {integrity: sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==}
- engines: {node: '>= 10.16.0'}
-
- mysql2@3.15.3:
- resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==}
- engines: {node: '>= 8.0'}
-
- named-placeholders@1.1.4:
- resolution: {integrity: sha512-/qfG0Kk/bLJIvej4FcPQ2KYUJP8iQdU1CTxysNb/U2wUNb+/4K485yeio8iNoiwfqJnsTInXoRPTza0dZWHVJQ==}
- engines: {node: '>=8.0.0'}
-
- napi-postinstall@0.3.4:
- resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- hasBin: true
-
- natural-compare@1.4.0:
- resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-
- negotiator@0.6.4:
- resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==}
- engines: {node: '>= 0.6'}
-
- negotiator@1.0.0:
- resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
- engines: {node: '>= 0.6'}
-
- node-fetch-native@1.6.7:
- resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
-
- node-int64@0.4.0:
- resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
-
- 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==}
- engines: {node: '>=6.0.0'}
-
- normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
-
- npm-run-path@4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- engines: {node: '>=8'}
-
- nypm@0.6.2:
- resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==}
- engines: {node: ^14.16.0 || >=16.10.0}
- hasBin: true
-
- object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- engines: {node: '>=0.10.0'}
-
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- ohash@2.0.11:
- resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
-
- on-finished@2.4.1:
- resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
- engines: {node: '>= 0.8'}
-
- on-headers@1.1.0:
- resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==}
- engines: {node: '>= 0.8'}
-
- once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-
- one-time@1.0.0:
- resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
-
- onetime@5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
-
- optionator@0.9.4:
- resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
- engines: {node: '>= 0.8.0'}
-
- p-limit@2.3.0:
- resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
- engines: {node: '>=6'}
-
- p-limit@3.1.0:
- resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
- engines: {node: '>=10'}
-
- p-locate@4.1.0:
- resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
- engines: {node: '>=8'}
-
- p-locate@5.0.0:
- resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
- engines: {node: '>=10'}
-
- p-try@2.2.0:
- resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
- engines: {node: '>=6'}
-
- package-json-from-dist@1.0.1:
- resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
-
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
- parse-json@5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- engines: {node: '>=8'}
-
- parseurl@1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- engines: {node: '>= 0.8'}
-
- path-exists@4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- engines: {node: '>=8'}
-
- path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
-
- path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
-
- path-to-regexp@8.3.0:
- resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==}
-
- pathe@2.0.3:
- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
-
- perfect-debounce@1.0.0:
- resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
-
- pg-cloudflare@1.2.7:
- resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==}
-
- pg-connection-string@2.9.1:
- resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==}
-
- pg-int8@1.0.1:
- resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
- engines: {node: '>=4.0.0'}
-
- pg-pool@3.10.1:
- resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==}
- peerDependencies:
- pg: '>=8.0'
-
- pg-protocol@1.10.3:
- resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==}
-
- pg-types@2.2.0:
- resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
- engines: {node: '>=4'}
-
- pg@8.16.3:
- resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==}
- engines: {node: '>= 16.0.0'}
- peerDependencies:
- pg-native: '>=3.0.1'
- peerDependenciesMeta:
- pg-native:
- optional: true
-
- pgpass@1.0.5:
- resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
-
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- picomatch@4.0.3:
- resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
- engines: {node: '>=12'}
-
- pirates@4.0.7:
- resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
- engines: {node: '>= 6'}
-
- pkg-dir@4.2.0:
- resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
- engines: {node: '>=8'}
-
- pkg-types@2.3.0:
- resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
-
- postgres-array@2.0.0:
- resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
- engines: {node: '>=4'}
-
- postgres-array@3.0.4:
- resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==}
- engines: {node: '>=12'}
-
- postgres-bytea@1.0.0:
- resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
- engines: {node: '>=0.10.0'}
-
- postgres-date@1.0.7:
- resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
- engines: {node: '>=0.10.0'}
-
- postgres-interval@1.2.0:
- resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
- engines: {node: '>=0.10.0'}
-
- postgres@3.4.7:
- resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==}
- engines: {node: '>=12'}
-
- prelude-ls@1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- engines: {node: '>= 0.8.0'}
-
- pretty-format@30.2.0:
- resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- prisma@7.1.0:
- resolution: {integrity: sha512-dy/3urE4JjhdiW5b09pGjVhGI7kPESK2VlCDrCqeYK5m5SslAtG5FCGnZWP7E8Sdg+Ow1wV2mhJH5RTFL5gEsw==}
- engines: {node: ^20.19 || ^22.12 || >=24.0}
- hasBin: true
- peerDependencies:
- better-sqlite3: '>=9.0.0'
- typescript: '>=5.4.0'
- peerDependenciesMeta:
- better-sqlite3:
- optional: true
- typescript:
- optional: true
-
- proper-lockfile@4.1.2:
- resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
-
- proxy-addr@2.0.7:
- resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
- engines: {node: '>= 0.10'}
-
- punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
-
- pure-rand@6.1.0:
- resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
-
- pure-rand@7.0.1:
- resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==}
-
- qs@6.14.0:
- resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
- engines: {node: '>=0.6'}
-
- range-parser@1.2.1:
- resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
- engines: {node: '>= 0.6'}
-
- raw-body@3.0.2:
- resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==}
- engines: {node: '>= 0.10'}
-
- rc9@2.1.2:
- resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
-
- react-dom@19.2.3:
- resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==}
- peerDependencies:
- react: ^19.2.3
-
- react-is@18.3.1:
- resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-
- react@19.2.3:
- resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==}
- engines: {node: '>=0.10.0'}
-
- readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
-
- readdirp@4.1.2:
- resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
- engines: {node: '>= 14.18.0'}
-
- redis@5.10.0:
- resolution: {integrity: sha512-0/Y+7IEiTgVGPrLFKy8oAEArSyEJkU0zvgV5xyi9NzNQ+SLZmyFbUsWIbgPcd4UdUh00opXGKlXJwMmsis5Byw==}
- engines: {node: '>= 18'}
-
- regexp-to-ast@0.5.0:
- resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==}
-
- remeda@2.21.3:
- resolution: {integrity: sha512-XXrZdLA10oEOQhLLzEJEiFFSKi21REGAkHdImIb4rt/XXy8ORGXh5HCcpUOsElfPNDb+X6TA/+wkh+p2KffYmg==}
-
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
-
- resolve-cwd@3.0.0:
- resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
- engines: {node: '>=8'}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
- resolve-from@5.0.0:
- resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
- engines: {node: '>=8'}
-
- resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
-
- retry@0.12.0:
- resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
- engines: {node: '>= 4'}
-
- router@2.2.0:
- resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
- engines: {node: '>= 18'}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
- safe-stable-stringify@2.5.0:
- resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
- engines: {node: '>=10'}
-
- safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
-
- scheduler@0.27.0:
- resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
-
- semver@6.3.1:
- resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
-
- semver@7.7.3:
- resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
- engines: {node: '>=10'}
- hasBin: true
-
- send@1.2.0:
- resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
- engines: {node: '>= 18'}
-
- seq-queue@0.0.5:
- resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==}
-
- serve-static@2.2.0:
- resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==}
- engines: {node: '>= 18'}
-
- setprototypeof@1.2.0:
- resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
-
- shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
-
- shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
-
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
- signal-exit@3.0.7:
- resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
-
- signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
- slash@3.0.0:
- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
- engines: {node: '>=8'}
-
- source-map-support@0.5.13:
- resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
-
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
-
- split2@4.2.0:
- resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
- engines: {node: '>= 10.x'}
-
- sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-
- sqlstring@2.3.3:
- resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==}
- engines: {node: '>= 0.6'}
-
- stack-trace@0.0.10:
- resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
-
- stack-utils@2.0.6:
- resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
- engines: {node: '>=10'}
-
- statuses@2.0.2:
- resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
- engines: {node: '>= 0.8'}
-
- std-env@3.9.0:
- resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
-
- streamsearch@1.1.0:
- resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
- engines: {node: '>=10.0.0'}
-
- string-length@4.0.2:
- resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
- engines: {node: '>=10'}
-
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
-
- string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
- strip-ansi@7.1.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
- engines: {node: '>=12'}
-
- strip-bom@4.0.0:
- resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
- engines: {node: '>=8'}
-
- strip-final-newline@2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- engines: {node: '>=6'}
-
- strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
-
- strnum@2.1.2:
- resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==}
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- supports-color@8.1.1:
- resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
- engines: {node: '>=10'}
-
- synckit@0.11.11:
- resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
- engines: {node: ^14.18.0 || >=16.0.0}
-
- test-exclude@6.0.0:
- resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
- engines: {node: '>=8'}
-
- text-hex@1.0.0:
- resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
-
- tinyexec@1.0.2:
- resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
- engines: {node: '>=18'}
-
- tinyglobby@0.2.15:
- resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
- engines: {node: '>=12.0.0'}
-
- tmpl@1.0.5:
- resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- toidentifier@1.0.1:
- resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
- engines: {node: '>=0.6'}
-
- triple-beam@1.4.1:
- resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
- engines: {node: '>= 14.0.0'}
-
- ts-api-utils@2.1.0:
- resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
- engines: {node: '>=18.12'}
- peerDependencies:
- typescript: '>=4.8.4'
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- tsx@4.21.0:
- resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- type-check@0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- engines: {node: '>= 0.8.0'}
-
- type-detect@4.0.8:
- resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
- engines: {node: '>=4'}
-
- type-fest@0.21.3:
- resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
- engines: {node: '>=10'}
-
- type-fest@4.41.0:
- resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
- engines: {node: '>=16'}
-
- type-is@1.6.18:
- resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
- engines: {node: '>= 0.6'}
-
- type-is@2.0.1:
- resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==}
- engines: {node: '>= 0.6'}
-
- typedarray@0.0.6:
- resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
-
- typescript@5.9.3:
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- undici-types@7.16.0:
- resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
-
- unpipe@1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- engines: {node: '>= 0.8'}
-
- unrs-resolver@1.11.1:
- resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
-
- update-browserslist-db@1.2.2:
- resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
-
- uri-js@4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
-
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- uuid@13.0.0:
- resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==}
- hasBin: true
-
- v8-to-istanbul@9.3.0:
- resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
- engines: {node: '>=10.12.0'}
-
- valibot@1.2.0:
- resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==}
- peerDependencies:
- typescript: '>=5'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
-
- walker@1.0.8:
- resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
-
- which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
-
- winston-transport@4.9.0:
- resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==}
- engines: {node: '>= 12.0.0'}
-
- winston@3.19.0:
- resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==}
- engines: {node: '>= 12.0.0'}
-
- word-wrap@1.2.5:
- resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
- engines: {node: '>=0.10.0'}
-
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
- wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
-
- wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-
- write-file-atomic@5.0.1:
- resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
-
- xtend@4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
-
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
-
- yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
-
- yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
-
- yocto-queue@0.1.0:
- resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
- engines: {node: '>=10'}
-
- zeptomatch@2.0.2:
- resolution: {integrity: sha512-H33jtSKf8Ijtb5BW6wua3G5DhnFjbFML36eFu+VdOoVY4HD9e7ggjqdM6639B+L87rjnR6Y+XeRzBXZdy52B/g==}
-
-snapshots:
-
- '@aws-crypto/sha256-browser@5.2.0':
- 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
-
- '@aws-crypto/sha256-js@5.2.0':
- dependencies:
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.936.0
- tslib: 2.8.1
-
- '@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.950.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/credential-provider-node': 3.948.0
- '@aws-sdk/middleware-host-header': 3.936.0
- '@aws-sdk/middleware-logger': 3.936.0
- '@aws-sdk/middleware-recursion-detection': 3.948.0
- '@aws-sdk/middleware-user-agent': 3.947.0
- '@aws-sdk/region-config-resolver': 3.936.0
- '@aws-sdk/signature-v4-multi-region': 3.947.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.947.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.948.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/middleware-host-header': 3.936.0
- '@aws-sdk/middleware-logger': 3.936.0
- '@aws-sdk/middleware-recursion-detection': 3.948.0
- '@aws-sdk/middleware-user-agent': 3.947.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.947.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.947.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.947.0':
- dependencies:
- '@aws-sdk/core': 3.947.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.947.0':
- dependencies:
- '@aws-sdk/core': 3.947.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.948.0':
- dependencies:
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/credential-provider-env': 3.947.0
- '@aws-sdk/credential-provider-http': 3.947.0
- '@aws-sdk/credential-provider-login': 3.948.0
- '@aws-sdk/credential-provider-process': 3.947.0
- '@aws-sdk/credential-provider-sso': 3.948.0
- '@aws-sdk/credential-provider-web-identity': 3.948.0
- '@aws-sdk/nested-clients': 3.948.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.948.0':
- dependencies:
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/nested-clients': 3.948.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.948.0':
- dependencies:
- '@aws-sdk/credential-provider-env': 3.947.0
- '@aws-sdk/credential-provider-http': 3.947.0
- '@aws-sdk/credential-provider-ini': 3.948.0
- '@aws-sdk/credential-provider-process': 3.947.0
- '@aws-sdk/credential-provider-sso': 3.948.0
- '@aws-sdk/credential-provider-web-identity': 3.948.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.947.0':
- dependencies:
- '@aws-sdk/core': 3.947.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.948.0':
- dependencies:
- '@aws-sdk/client-sso': 3.948.0
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/token-providers': 3.948.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.948.0':
- dependencies:
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/nested-clients': 3.948.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.948.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.947.0':
- dependencies:
- '@aws-sdk/core': 3.947.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.947.0':
- dependencies:
- '@aws-sdk/core': 3.947.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.948.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/middleware-host-header': 3.936.0
- '@aws-sdk/middleware-logger': 3.936.0
- '@aws-sdk/middleware-recursion-detection': 3.948.0
- '@aws-sdk/middleware-user-agent': 3.947.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.947.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.947.0':
- dependencies:
- '@aws-sdk/middleware-sdk-s3': 3.947.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.948.0':
- dependencies:
- '@aws-sdk/core': 3.947.0
- '@aws-sdk/nested-clients': 3.948.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.947.0':
- dependencies:
- '@aws-sdk/middleware-user-agent': 3.947.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':
- dependencies:
- '@babel/helper-validator-identifier': 7.28.5
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/compat-data@7.28.5': {}
-
- '@babel/core@7.28.5':
- 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
- '@jridgewell/remapping': 2.3.5
- convert-source-map: 2.0.0
- debug: 4.4.3
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.28.5':
- dependencies:
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
- '@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/helper-validator-option': 7.27.1
- browserslist: 4.28.1
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-globals@7.28.0': {}
-
- '@babel/helper-module-imports@7.27.1':
- dependencies:
- '@babel/traverse': 7.28.5
- '@babel/types': 7.28.5
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.28.5
- '@babel/traverse': 7.28.5
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-plugin-utils@7.27.1': {}
-
- '@babel/helper-string-parser@7.27.1': {}
-
- '@babel/helper-validator-identifier@7.28.5': {}
-
- '@babel/helper-validator-option@7.27.1': {}
-
- '@babel/helpers@7.28.4':
- dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.5
-
- '@babel/parser@7.28.5':
- dependencies:
- '@babel/types': 7.28.5
-
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)':
- dependencies:
- '@babel/core': 7.28.5
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/template@7.27.2':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
-
- '@babel/traverse@7.28.5':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.5
- '@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.5
- '@babel/template': 7.27.2
- '@babel/types': 7.28.5
- 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
-
- '@bcoe/v8-coverage@0.2.3': {}
-
- '@chevrotain/cst-dts-gen@10.5.0':
- dependencies:
- '@chevrotain/gast': 10.5.0
- '@chevrotain/types': 10.5.0
- lodash: 4.17.21
-
- '@chevrotain/gast@10.5.0':
- dependencies:
- '@chevrotain/types': 10.5.0
- lodash: 4.17.21
-
- '@chevrotain/types@10.5.0': {}
-
- '@chevrotain/utils@10.5.0': {}
-
- '@colors/colors@1.6.0': {}
-
- '@dabh/diagnostics@2.0.8':
- dependencies:
- '@so-ric/colorspace': 1.1.6
- enabled: 2.0.0
- kuler: 2.0.0
-
- '@electric-sql/pglite-socket@0.0.6(@electric-sql/pglite@0.3.2)':
- dependencies:
- '@electric-sql/pglite': 0.3.2
-
- '@electric-sql/pglite-tools@0.2.7(@electric-sql/pglite@0.3.2)':
- dependencies:
- '@electric-sql/pglite': 0.3.2
-
- '@electric-sql/pglite@0.3.2': {}
-
- '@emnapi/core@1.7.1':
- dependencies:
- '@emnapi/wasi-threads': 1.1.0
- tslib: 2.8.1
- optional: true
-
- '@emnapi/runtime@1.7.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@emnapi/wasi-threads@1.1.0':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@esbuild/aix-ppc64@0.27.1':
- optional: true
-
- '@esbuild/android-arm64@0.27.1':
- optional: true
-
- '@esbuild/android-arm@0.27.1':
- optional: true
-
- '@esbuild/android-x64@0.27.1':
- optional: true
-
- '@esbuild/darwin-arm64@0.27.1':
- optional: true
-
- '@esbuild/darwin-x64@0.27.1':
- optional: true
-
- '@esbuild/freebsd-arm64@0.27.1':
- optional: true
-
- '@esbuild/freebsd-x64@0.27.1':
- optional: true
-
- '@esbuild/linux-arm64@0.27.1':
- optional: true
-
- '@esbuild/linux-arm@0.27.1':
- optional: true
-
- '@esbuild/linux-ia32@0.27.1':
- optional: true
-
- '@esbuild/linux-loong64@0.27.1':
- optional: true
-
- '@esbuild/linux-mips64el@0.27.1':
- optional: true
-
- '@esbuild/linux-ppc64@0.27.1':
- optional: true
-
- '@esbuild/linux-riscv64@0.27.1':
- optional: true
-
- '@esbuild/linux-s390x@0.27.1':
- optional: true
-
- '@esbuild/linux-x64@0.27.1':
- optional: true
-
- '@esbuild/netbsd-arm64@0.27.1':
- optional: true
-
- '@esbuild/netbsd-x64@0.27.1':
- optional: true
-
- '@esbuild/openbsd-arm64@0.27.1':
- optional: true
-
- '@esbuild/openbsd-x64@0.27.1':
- optional: true
-
- '@esbuild/openharmony-arm64@0.27.1':
- optional: true
-
- '@esbuild/sunos-x64@0.27.1':
- optional: true
-
- '@esbuild/win32-arm64@0.27.1':
- optional: true
-
- '@esbuild/win32-ia32@0.27.1':
- optional: true
-
- '@esbuild/win32-x64@0.27.1':
- optional: true
-
- '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))':
- dependencies:
- eslint: 9.39.2(jiti@2.6.1)
- eslint-visitor-keys: 3.4.3
-
- '@eslint-community/regexpp@4.12.2': {}
-
- '@eslint/config-array@0.21.1':
- dependencies:
- '@eslint/object-schema': 2.1.7
- debug: 4.4.3
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/config-helpers@0.4.2':
- dependencies:
- '@eslint/core': 0.17.0
-
- '@eslint/core@0.17.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@eslint/eslintrc@3.3.3':
- dependencies:
- ajv: 6.12.6
- 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
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/js@9.39.2': {}
-
- '@eslint/object-schema@2.1.7': {}
-
- '@eslint/plugin-kit@0.4.1':
- dependencies:
- '@eslint/core': 0.17.0
- levn: 0.4.1
-
- '@hapi/address@5.1.1':
- dependencies:
- '@hapi/hoek': 11.0.7
-
- '@hapi/formula@3.0.2': {}
-
- '@hapi/hoek@11.0.7': {}
-
- '@hapi/pinpoint@2.0.1': {}
-
- '@hapi/tlds@1.1.4': {}
-
- '@hapi/topo@6.0.2':
- dependencies:
- '@hapi/hoek': 11.0.7
-
- '@hono/node-server@1.19.6(hono@4.10.6)':
- dependencies:
- hono: 4.10.6
-
- '@humanfs/core@0.19.1': {}
-
- '@humanfs/node@0.16.7':
- dependencies:
- '@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.4.3
-
- '@humanwhocodes/module-importer@1.0.1': {}
-
- '@humanwhocodes/retry@0.4.3': {}
-
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
-
- '@istanbuljs/load-nyc-config@1.1.0':
- dependencies:
- camelcase: 5.3.1
- find-up: 4.1.0
- get-package-type: 0.1.0
- js-yaml: 3.14.2
- resolve-from: 5.0.0
-
- '@istanbuljs/schema@0.1.3': {}
-
- '@jest/console@30.2.0':
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- chalk: 4.1.2
- jest-message-util: 30.2.0
- jest-util: 30.2.0
- slash: 3.0.0
-
- '@jest/core@30.2.0':
- dependencies:
- '@jest/console': 30.2.0
- '@jest/pattern': 30.0.1
- '@jest/reporters': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- ci-info: 4.3.1
- exit-x: 0.2.2
- graceful-fs: 4.2.11
- jest-changed-files: 30.2.0
- jest-config: 30.2.0(@types/node@25.0.2)
- jest-haste-map: 30.2.0
- jest-message-util: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-resolve-dependencies: 30.2.0
- jest-runner: 30.2.0
- jest-runtime: 30.2.0
- jest-snapshot: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
- jest-watcher: 30.2.0
- micromatch: 4.0.8
- pretty-format: 30.2.0
- slash: 3.0.0
- transitivePeerDependencies:
- - babel-plugin-macros
- - esbuild-register
- - supports-color
- - ts-node
-
- '@jest/diff-sequences@30.0.1': {}
-
- '@jest/environment@30.2.0':
- dependencies:
- '@jest/fake-timers': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- jest-mock: 30.2.0
-
- '@jest/expect-utils@30.2.0':
- dependencies:
- '@jest/get-type': 30.1.0
-
- '@jest/expect@30.2.0':
- dependencies:
- expect: 30.2.0
- jest-snapshot: 30.2.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/fake-timers@30.2.0':
- dependencies:
- '@jest/types': 30.2.0
- '@sinonjs/fake-timers': 13.0.5
- '@types/node': 25.0.2
- jest-message-util: 30.2.0
- jest-mock: 30.2.0
- jest-util: 30.2.0
-
- '@jest/get-type@30.1.0': {}
-
- '@jest/globals@30.2.0':
- dependencies:
- '@jest/environment': 30.2.0
- '@jest/expect': 30.2.0
- '@jest/types': 30.2.0
- jest-mock: 30.2.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/pattern@30.0.1':
- dependencies:
- '@types/node': 25.0.2
- jest-regex-util: 30.0.1
-
- '@jest/reporters@30.2.0':
- dependencies:
- '@bcoe/v8-coverage': 0.2.3
- '@jest/console': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
- '@jridgewell/trace-mapping': 0.3.31
- '@types/node': 25.0.2
- chalk: 4.1.2
- collect-v8-coverage: 1.0.3
- exit-x: 0.2.2
- glob: 10.5.0
- graceful-fs: 4.2.11
- istanbul-lib-coverage: 3.2.2
- istanbul-lib-instrument: 6.0.3
- istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 5.0.6
- istanbul-reports: 3.2.0
- jest-message-util: 30.2.0
- jest-util: 30.2.0
- jest-worker: 30.2.0
- slash: 3.0.0
- string-length: 4.0.2
- v8-to-istanbul: 9.3.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/schemas@30.0.5':
- dependencies:
- '@sinclair/typebox': 0.34.41
-
- '@jest/snapshot-utils@30.2.0':
- dependencies:
- '@jest/types': 30.2.0
- chalk: 4.1.2
- graceful-fs: 4.2.11
- natural-compare: 1.4.0
-
- '@jest/source-map@30.0.1':
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- callsites: 3.1.0
- graceful-fs: 4.2.11
-
- '@jest/test-result@30.2.0':
- dependencies:
- '@jest/console': 30.2.0
- '@jest/types': 30.2.0
- '@types/istanbul-lib-coverage': 2.0.6
- collect-v8-coverage: 1.0.3
-
- '@jest/test-sequencer@30.2.0':
- dependencies:
- '@jest/test-result': 30.2.0
- graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- slash: 3.0.0
-
- '@jest/transform@30.2.0':
- dependencies:
- '@babel/core': 7.28.5
- '@jest/types': 30.2.0
- '@jridgewell/trace-mapping': 0.3.31
- babel-plugin-istanbul: 7.0.1
- chalk: 4.1.2
- convert-source-map: 2.0.0
- fast-json-stable-stringify: 2.1.0
- graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- jest-regex-util: 30.0.1
- jest-util: 30.2.0
- micromatch: 4.0.8
- pirates: 4.0.7
- slash: 3.0.0
- write-file-atomic: 5.0.1
- transitivePeerDependencies:
- - supports-color
-
- '@jest/types@30.2.0':
- dependencies:
- '@jest/pattern': 30.0.1
- '@jest/schemas': 30.0.5
- '@types/istanbul-lib-coverage': 2.0.6
- '@types/istanbul-reports': 3.0.4
- '@types/node': 25.0.2
- '@types/yargs': 17.0.35
- chalk: 4.1.2
-
- '@jridgewell/gen-mapping@0.3.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/remapping@2.3.5':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/sourcemap-codec@1.5.5': {}
-
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
-
- '@mrleebo/prisma-ast@0.12.1':
- dependencies:
- chevrotain: 10.5.0
- lilconfig: 2.1.0
-
- '@napi-rs/wasm-runtime@0.2.12':
- dependencies:
- '@emnapi/core': 1.7.1
- '@emnapi/runtime': 1.7.1
- '@tybys/wasm-util': 0.10.1
- optional: true
-
- '@pkgjs/parseargs@0.11.0':
- optional: true
-
- '@pkgr/core@0.2.9': {}
-
- '@prisma/adapter-pg@7.1.0':
- dependencies:
- '@prisma/driver-adapter-utils': 7.1.0
- pg: 8.16.3
- postgres-array: 3.0.4
- transitivePeerDependencies:
- - pg-native
-
- '@prisma/client-runtime-utils@7.1.0': {}
-
- '@prisma/client@7.1.0(prisma@7.1.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3)':
- dependencies:
- '@prisma/client-runtime-utils': 7.1.0
- optionalDependencies:
- prisma: 7.1.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
- typescript: 5.9.3
-
- '@prisma/config@7.1.0':
- dependencies:
- c12: 3.1.0
- deepmerge-ts: 7.1.5
- effect: 3.18.4
- empathic: 2.0.0
- transitivePeerDependencies:
- - magicast
-
- '@prisma/debug@6.8.2': {}
-
- '@prisma/debug@7.1.0': {}
-
- '@prisma/dev@0.15.0(typescript@5.9.3)':
- dependencies:
- '@electric-sql/pglite': 0.3.2
- '@electric-sql/pglite-socket': 0.0.6(@electric-sql/pglite@0.3.2)
- '@electric-sql/pglite-tools': 0.2.7(@electric-sql/pglite@0.3.2)
- '@hono/node-server': 1.19.6(hono@4.10.6)
- '@mrleebo/prisma-ast': 0.12.1
- '@prisma/get-platform': 6.8.2
- '@prisma/query-plan-executor': 6.18.0
- foreground-child: 3.3.1
- get-port-please: 3.1.2
- hono: 4.10.6
- http-status-codes: 2.3.0
- pathe: 2.0.3
- proper-lockfile: 4.1.2
- remeda: 2.21.3
- std-env: 3.9.0
- valibot: 1.2.0(typescript@5.9.3)
- zeptomatch: 2.0.2
- transitivePeerDependencies:
- - typescript
-
- '@prisma/driver-adapter-utils@7.1.0':
- dependencies:
- '@prisma/debug': 7.1.0
-
- '@prisma/engines-version@7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba': {}
-
- '@prisma/engines@7.1.0':
- dependencies:
- '@prisma/debug': 7.1.0
- '@prisma/engines-version': 7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba
- '@prisma/fetch-engine': 7.1.0
- '@prisma/get-platform': 7.1.0
-
- '@prisma/fetch-engine@7.1.0':
- dependencies:
- '@prisma/debug': 7.1.0
- '@prisma/engines-version': 7.1.0-6.ab635e6b9d606fa5c8fb8b1a7f909c3c3c1c98ba
- '@prisma/get-platform': 7.1.0
-
- '@prisma/get-platform@6.8.2':
- dependencies:
- '@prisma/debug': 6.8.2
-
- '@prisma/get-platform@7.1.0':
- dependencies:
- '@prisma/debug': 7.1.0
-
- '@prisma/query-plan-executor@6.18.0': {}
-
- '@prisma/studio-core@0.8.2(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
- dependencies:
- '@types/react': 19.2.7
- react: 19.2.3
- react-dom: 19.2.3(react@19.2.3)
-
- '@redis/bloom@5.10.0(@redis/client@5.10.0)':
- dependencies:
- '@redis/client': 5.10.0
-
- '@redis/client@5.10.0':
- dependencies:
- cluster-key-slot: 1.1.2
-
- '@redis/json@5.10.0(@redis/client@5.10.0)':
- dependencies:
- '@redis/client': 5.10.0
-
- '@redis/search@5.10.0(@redis/client@5.10.0)':
- dependencies:
- '@redis/client': 5.10.0
-
- '@redis/time-series@5.10.0(@redis/client@5.10.0)':
- dependencies:
- '@redis/client': 5.10.0
-
- '@sinclair/typebox@0.34.41': {}
-
- '@sinonjs/commons@3.0.1':
- dependencies:
- type-detect: 4.0.8
-
- '@sinonjs/fake-timers@13.0.5':
- dependencies:
- '@sinonjs/commons': 3.0.1
-
- '@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
-
- '@so-ric/colorspace@1.1.6':
- dependencies:
- color: 5.0.3
- text-hex: 1.0.0
-
- '@standard-schema/spec@1.0.0': {}
-
- '@tybys/wasm-util@0.10.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@types/babel__core@7.20.5':
- dependencies:
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
- '@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.5
-
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.28.5
- '@babel/types': 7.28.5
-
- '@types/babel__traverse@7.28.0':
- dependencies:
- '@babel/types': 7.28.5
-
- '@types/bcryptjs@3.0.0':
- dependencies:
- bcryptjs: 3.0.3
-
- '@types/body-parser@1.19.6':
- dependencies:
- '@types/connect': 3.4.38
- '@types/node': 25.0.2
-
- '@types/compression@1.8.1':
- dependencies:
- '@types/express': 5.0.6
- '@types/node': 25.0.2
-
- '@types/connect@3.4.38':
- dependencies:
- '@types/node': 25.0.2
-
- '@types/cors@2.8.19':
- dependencies:
- '@types/node': 25.0.2
-
- '@types/estree@1.0.8': {}
-
- '@types/express-serve-static-core@5.1.0':
- dependencies:
- '@types/node': 25.0.2
- '@types/qs': 6.14.0
- '@types/range-parser': 1.2.7
- '@types/send': 1.2.1
-
- '@types/express@5.0.6':
- dependencies:
- '@types/body-parser': 1.19.6
- '@types/express-serve-static-core': 5.1.0
- '@types/serve-static': 2.2.0
-
- '@types/http-errors@2.0.5': {}
-
- '@types/istanbul-lib-coverage@2.0.6': {}
-
- '@types/istanbul-lib-report@3.0.3':
- dependencies:
- '@types/istanbul-lib-coverage': 2.0.6
-
- '@types/istanbul-reports@3.0.4':
- dependencies:
- '@types/istanbul-lib-report': 3.0.3
-
- '@types/jest@30.0.0':
- dependencies:
- expect: 30.2.0
- pretty-format: 30.2.0
-
- '@types/json-schema@7.0.15': {}
-
- '@types/jsonwebtoken@9.0.10':
- dependencies:
- '@types/ms': 2.1.0
- '@types/node': 25.0.2
-
- '@types/ms@2.1.0': {}
-
- '@types/multer@2.0.0':
- dependencies:
- '@types/express': 5.0.6
-
- '@types/node@25.0.2':
- dependencies:
- undici-types: 7.16.0
-
- '@types/nodemailer@7.0.4':
- dependencies:
- '@aws-sdk/client-sesv2': 3.950.0
- '@types/node': 25.0.2
- transitivePeerDependencies:
- - aws-crt
-
- '@types/qs@6.14.0': {}
-
- '@types/range-parser@1.2.7': {}
-
- '@types/react@19.2.7':
- dependencies:
- csstype: 3.2.3
-
- '@types/send@1.2.1':
- dependencies:
- '@types/node': 25.0.2
-
- '@types/serve-static@2.2.0':
- dependencies:
- '@types/http-errors': 2.0.5
- '@types/node': 25.0.2
-
- '@types/stack-utils@2.0.3': {}
-
- '@types/triple-beam@1.3.5': {}
-
- '@types/uuid@11.0.0':
- dependencies:
- uuid: 13.0.0
-
- '@types/yargs-parser@21.0.3': {}
-
- '@types/yargs@17.0.35':
- dependencies:
- '@types/yargs-parser': 21.0.3
-
- '@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.49.0
- '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.49.0
- eslint: 9.39.2(jiti@2.6.1)
- ignore: 7.0.5
- natural-compare: 1.4.0
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/scope-manager': 8.49.0
- '@typescript-eslint/types': 8.49.0
- '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.49.0
- debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/project-service@8.49.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.49.0
- debug: 4.4.3
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/scope-manager@8.49.0':
- dependencies:
- '@typescript-eslint/types': 8.49.0
- '@typescript-eslint/visitor-keys': 8.49.0
-
- '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.9.3)':
- dependencies:
- typescript: 5.9.3
-
- '@typescript-eslint/type-utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 8.49.0
- '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
- '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- debug: 4.4.3
- eslint: 9.39.2(jiti@2.6.1)
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/types@8.49.0': {}
-
- '@typescript-eslint/typescript-estree@8.49.0(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/project-service': 8.49.0(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3)
- '@typescript-eslint/types': 8.49.0
- '@typescript-eslint/visitor-keys': 8.49.0
- debug: 4.4.3
- minimatch: 9.0.5
- semver: 7.7.3
- tinyglobby: 0.2.15
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1))
- '@typescript-eslint/scope-manager': 8.49.0
- '@typescript-eslint/types': 8.49.0
- '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3)
- eslint: 9.39.2(jiti@2.6.1)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/visitor-keys@8.49.0':
- dependencies:
- '@typescript-eslint/types': 8.49.0
- eslint-visitor-keys: 4.2.1
-
- '@ungap/structured-clone@1.3.0': {}
-
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-android-arm64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- dependencies:
- '@napi-rs/wasm-runtime': 0.2.12
- optional: true
-
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- optional: true
-
- accepts@2.0.0:
- dependencies:
- mime-types: 3.0.2
- negotiator: 1.0.0
-
- acorn-jsx@5.3.2(acorn@8.15.0):
- dependencies:
- acorn: 8.15.0
-
- acorn@8.15.0: {}
-
- 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
-
- ansi-escapes@4.3.2:
- dependencies:
- type-fest: 0.21.3
-
- ansi-regex@5.0.1: {}
-
- ansi-regex@6.2.2: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- ansi-styles@5.2.0: {}
-
- ansi-styles@6.2.3: {}
-
- anymatch@3.1.3:
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
-
- append-field@1.0.0: {}
-
- argparse@1.0.10:
- dependencies:
- sprintf-js: 1.0.3
-
- argparse@2.0.1: {}
-
- async@3.2.6: {}
-
- aws-ssl-profiles@1.1.2: {}
-
- babel-jest@30.2.0(@babel/core@7.28.5):
- dependencies:
- '@babel/core': 7.28.5
- '@jest/transform': 30.2.0
- '@types/babel__core': 7.20.5
- babel-plugin-istanbul: 7.0.1
- babel-preset-jest: 30.2.0(@babel/core@7.28.5)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
- babel-plugin-istanbul@7.0.1:
- dependencies:
- '@babel/helper-plugin-utils': 7.27.1
- '@istanbuljs/load-nyc-config': 1.1.0
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-instrument: 6.0.3
- test-exclude: 6.0.0
- transitivePeerDependencies:
- - supports-color
-
- babel-plugin-jest-hoist@30.2.0:
- dependencies:
- '@types/babel__core': 7.20.5
-
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5):
- dependencies:
- '@babel/core': 7.28.5
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5)
-
- babel-preset-jest@30.2.0(@babel/core@7.28.5):
- dependencies:
- '@babel/core': 7.28.5
- babel-plugin-jest-hoist: 30.2.0
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5)
-
- balanced-match@1.0.2: {}
-
- baseline-browser-mapping@2.9.7: {}
-
- bcryptjs@3.0.3: {}
-
- body-parser@2.2.1:
- dependencies:
- bytes: 3.1.2
- content-type: 1.0.5
- debug: 4.4.3
- http-errors: 2.0.1
- iconv-lite: 0.7.1
- on-finished: 2.4.1
- qs: 6.14.0
- raw-body: 3.0.2
- type-is: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- bowser@2.13.1: {}
-
- brace-expansion@1.1.12:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- brace-expansion@2.0.2:
- dependencies:
- balanced-match: 1.0.2
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
- browserslist@4.28.1:
- dependencies:
- baseline-browser-mapping: 2.9.7
- caniuse-lite: 1.0.30001760
- electron-to-chromium: 1.5.267
- node-releases: 2.0.27
- update-browserslist-db: 1.2.2(browserslist@4.28.1)
-
- bser@2.1.1:
- dependencies:
- node-int64: 0.4.0
-
- buffer-equal-constant-time@1.0.1: {}
-
- buffer-from@1.1.2: {}
-
- busboy@1.6.0:
- dependencies:
- streamsearch: 1.1.0
-
- bytes@3.1.2: {}
-
- c12@3.1.0:
- dependencies:
- chokidar: 4.0.3
- confbox: 0.2.2
- defu: 6.1.4
- dotenv: 16.6.1
- exsolve: 1.0.8
- giget: 2.0.0
- jiti: 2.6.1
- ohash: 2.0.11
- pathe: 2.0.3
- perfect-debounce: 1.0.0
- pkg-types: 2.3.0
- rc9: 2.1.2
-
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- call-bound@1.0.4:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- get-intrinsic: 1.3.0
-
- callsites@3.1.0: {}
-
- camelcase@5.3.1: {}
-
- camelcase@6.3.0: {}
-
- caniuse-lite@1.0.30001760: {}
-
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- char-regex@1.0.2: {}
-
- chevrotain@10.5.0:
- dependencies:
- '@chevrotain/cst-dts-gen': 10.5.0
- '@chevrotain/gast': 10.5.0
- '@chevrotain/types': 10.5.0
- '@chevrotain/utils': 10.5.0
- lodash: 4.17.21
- regexp-to-ast: 0.5.0
-
- chokidar@4.0.3:
- dependencies:
- readdirp: 4.1.2
-
- ci-info@4.3.1: {}
-
- citty@0.1.6:
- dependencies:
- consola: 3.4.2
-
- cjs-module-lexer@2.1.1: {}
-
- cliui@8.0.1:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
-
- cluster-key-slot@1.1.2: {}
-
- co@4.6.0: {}
-
- collect-v8-coverage@1.0.3: {}
-
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-convert@3.1.3:
- dependencies:
- color-name: 2.1.0
-
- color-name@1.1.4: {}
-
- color-name@2.1.0: {}
-
- color-string@2.1.4:
- dependencies:
- color-name: 2.1.0
-
- color@5.0.3:
- dependencies:
- color-convert: 3.1.3
- color-string: 2.1.4
-
- compressible@2.0.18:
- dependencies:
- mime-db: 1.54.0
-
- compression@1.8.1:
- dependencies:
- bytes: 3.1.2
- compressible: 2.0.18
- debug: 2.6.9
- negotiator: 0.6.4
- on-headers: 1.1.0
- safe-buffer: 5.2.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
- concat-map@0.0.1: {}
-
- concat-stream@2.0.0:
- dependencies:
- buffer-from: 1.1.2
- inherits: 2.0.4
- readable-stream: 3.6.2
- typedarray: 0.0.6
-
- confbox@0.2.2: {}
-
- consola@3.4.2: {}
-
- content-disposition@1.0.1: {}
-
- content-type@1.0.5: {}
-
- convert-source-map@2.0.0: {}
-
- cookie-signature@1.2.2: {}
-
- cookie@0.7.2: {}
-
- cors@2.8.5:
- dependencies:
- object-assign: 4.1.1
- vary: 1.1.2
-
- cross-spawn@7.0.6:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- csstype@3.2.3: {}
-
- debug@2.6.9:
- dependencies:
- ms: 2.0.0
-
- debug@4.4.3:
- dependencies:
- ms: 2.1.3
-
- dedent@1.7.0: {}
-
- deep-is@0.1.4: {}
-
- deepmerge-ts@7.1.5: {}
-
- deepmerge@4.3.1: {}
-
- defu@6.1.4: {}
-
- denque@2.1.0: {}
-
- depd@2.0.0: {}
-
- destr@2.0.5: {}
-
- detect-newline@3.1.0: {}
-
- dotenv@16.6.1: {}
-
- dotenv@17.2.3: {}
-
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
- eastasianwidth@0.2.0: {}
-
- ecdsa-sig-formatter@1.0.11:
- dependencies:
- safe-buffer: 5.2.1
-
- ee-first@1.1.1: {}
-
- effect@3.18.4:
- dependencies:
- '@standard-schema/spec': 1.0.0
- fast-check: 3.23.2
-
- electron-to-chromium@1.5.267: {}
-
- emittery@0.13.1: {}
-
- emoji-regex@8.0.0: {}
-
- emoji-regex@9.2.2: {}
-
- empathic@2.0.0: {}
-
- enabled@2.0.0: {}
-
- encodeurl@2.0.0: {}
-
- error-ex@1.3.4:
- dependencies:
- is-arrayish: 0.2.1
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- esbuild@0.27.1:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.27.1
- '@esbuild/android-arm': 0.27.1
- '@esbuild/android-arm64': 0.27.1
- '@esbuild/android-x64': 0.27.1
- '@esbuild/darwin-arm64': 0.27.1
- '@esbuild/darwin-x64': 0.27.1
- '@esbuild/freebsd-arm64': 0.27.1
- '@esbuild/freebsd-x64': 0.27.1
- '@esbuild/linux-arm': 0.27.1
- '@esbuild/linux-arm64': 0.27.1
- '@esbuild/linux-ia32': 0.27.1
- '@esbuild/linux-loong64': 0.27.1
- '@esbuild/linux-mips64el': 0.27.1
- '@esbuild/linux-ppc64': 0.27.1
- '@esbuild/linux-riscv64': 0.27.1
- '@esbuild/linux-s390x': 0.27.1
- '@esbuild/linux-x64': 0.27.1
- '@esbuild/netbsd-arm64': 0.27.1
- '@esbuild/netbsd-x64': 0.27.1
- '@esbuild/openbsd-arm64': 0.27.1
- '@esbuild/openbsd-x64': 0.27.1
- '@esbuild/openharmony-arm64': 0.27.1
- '@esbuild/sunos-x64': 0.27.1
- '@esbuild/win32-arm64': 0.27.1
- '@esbuild/win32-ia32': 0.27.1
- '@esbuild/win32-x64': 0.27.1
-
- escalade@3.2.0: {}
-
- escape-html@1.0.3: {}
-
- escape-string-regexp@2.0.0: {}
-
- escape-string-regexp@4.0.0: {}
-
- eslint-scope@8.4.0:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-visitor-keys@3.4.3: {}
-
- eslint-visitor-keys@4.2.1: {}
-
- eslint@9.39.2(jiti@2.6.1):
- dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1))
- '@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/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
- chalk: 4.1.2
- cross-spawn: 7.0.6
- debug: 4.4.3
- escape-string-regexp: 4.0.0
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
- esquery: 1.6.0
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
- find-up: 5.0.0
- glob-parent: 6.0.2
- ignore: 5.3.2
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- json-stable-stringify-without-jsonify: 1.0.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
- natural-compare: 1.4.0
- optionator: 0.9.4
- optionalDependencies:
- jiti: 2.6.1
- transitivePeerDependencies:
- - supports-color
-
- espree@10.4.0:
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- eslint-visitor-keys: 4.2.1
-
- esprima@4.0.1: {}
-
- esquery@1.6.0:
- dependencies:
- estraverse: 5.3.0
-
- esrecurse@4.3.0:
- dependencies:
- estraverse: 5.3.0
-
- estraverse@5.3.0: {}
-
- esutils@2.0.3: {}
-
- etag@1.8.1: {}
-
- execa@5.1.1:
- dependencies:
- cross-spawn: 7.0.6
- get-stream: 6.0.1
- human-signals: 2.1.0
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
-
- exit-x@0.2.2: {}
-
- expect@30.2.0:
- dependencies:
- '@jest/expect-utils': 30.2.0
- '@jest/get-type': 30.1.0
- jest-matcher-utils: 30.2.0
- jest-message-util: 30.2.0
- jest-mock: 30.2.0
- jest-util: 30.2.0
-
- express-rate-limit@8.2.1(express@5.2.1):
- dependencies:
- express: 5.2.1
- ip-address: 10.0.1
-
- express@5.2.1:
- dependencies:
- accepts: 2.0.0
- body-parser: 2.2.1
- content-disposition: 1.0.1
- content-type: 1.0.5
- cookie: 0.7.2
- cookie-signature: 1.2.2
- debug: 4.4.3
- depd: 2.0.0
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 2.1.1
- fresh: 2.0.0
- http-errors: 2.0.1
- merge-descriptors: 2.0.0
- mime-types: 3.0.2
- on-finished: 2.4.1
- once: 1.4.0
- parseurl: 1.3.3
- proxy-addr: 2.0.7
- qs: 6.14.0
- range-parser: 1.2.1
- router: 2.2.0
- send: 1.2.0
- serve-static: 2.2.0
- statuses: 2.0.2
- type-is: 2.0.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
- exsolve@1.0.8: {}
-
- fast-check@3.23.2:
- dependencies:
- pure-rand: 6.1.0
-
- fast-deep-equal@3.1.3: {}
-
- fast-json-stable-stringify@2.1.0: {}
-
- fast-levenshtein@2.0.6: {}
-
- fast-xml-parser@5.2.5:
- dependencies:
- strnum: 2.1.2
-
- fb-watchman@2.0.2:
- dependencies:
- bser: 2.1.1
-
- fdir@6.5.0(picomatch@4.0.3):
- optionalDependencies:
- picomatch: 4.0.3
-
- fecha@4.2.3: {}
-
- file-entry-cache@8.0.0:
- dependencies:
- flat-cache: 4.0.1
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- finalhandler@2.1.1:
- dependencies:
- debug: 4.4.3
- encodeurl: 2.0.0
- escape-html: 1.0.3
- on-finished: 2.4.1
- parseurl: 1.3.3
- statuses: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- find-up@4.1.0:
- dependencies:
- locate-path: 5.0.0
- path-exists: 4.0.0
-
- find-up@5.0.0:
- dependencies:
- locate-path: 6.0.0
- path-exists: 4.0.0
-
- flat-cache@4.0.1:
- dependencies:
- flatted: 3.3.3
- keyv: 4.5.4
-
- flatted@3.3.3: {}
-
- fn.name@1.1.0: {}
-
- foreground-child@3.3.1:
- dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
-
- forwarded@0.2.0: {}
-
- fresh@2.0.0: {}
-
- fs.realpath@1.0.0: {}
-
- fsevents@2.3.3:
- optional: true
-
- function-bind@1.1.2: {}
-
- generate-function@2.3.1:
- dependencies:
- is-property: 1.0.2
-
- gensync@1.0.0-beta.2: {}
-
- get-caller-file@2.0.5: {}
-
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
- get-package-type@0.1.0: {}
-
- get-port-please@3.1.2: {}
-
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
- get-stream@6.0.1: {}
-
- get-tsconfig@4.13.0:
- dependencies:
- resolve-pkg-maps: 1.0.0
-
- giget@2.0.0:
- dependencies:
- citty: 0.1.6
- consola: 3.4.2
- defu: 6.1.4
- node-fetch-native: 1.6.7
- nypm: 0.6.2
- pathe: 2.0.3
-
- glob-parent@6.0.2:
- dependencies:
- is-glob: 4.0.3
-
- glob@10.5.0:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 1.11.1
-
- glob@7.2.3:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
-
- globals@14.0.0: {}
-
- gopd@1.2.0: {}
-
- graceful-fs@4.2.11: {}
-
- grammex@3.1.12: {}
-
- has-flag@4.0.0: {}
-
- has-symbols@1.1.0: {}
-
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
- helmet@8.1.0: {}
-
- hono@4.10.6: {}
-
- html-escaper@2.0.2: {}
-
- http-errors@2.0.1:
- dependencies:
- depd: 2.0.0
- inherits: 2.0.4
- setprototypeof: 1.2.0
- statuses: 2.0.2
- toidentifier: 1.0.1
-
- http-status-codes@2.3.0: {}
-
- human-signals@2.1.0: {}
-
- iconv-lite@0.7.1:
- dependencies:
- safer-buffer: 2.1.2
-
- ignore@5.3.2: {}
-
- ignore@7.0.5: {}
-
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
-
- import-local@3.2.0:
- dependencies:
- pkg-dir: 4.2.0
- resolve-cwd: 3.0.0
-
- imurmurhash@0.1.4: {}
-
- inflight@1.0.6:
- dependencies:
- once: 1.4.0
- wrappy: 1.0.2
-
- inherits@2.0.4: {}
-
- ip-address@10.0.1: {}
-
- ipaddr.js@1.9.1: {}
-
- is-arrayish@0.2.1: {}
-
- is-extglob@2.1.1: {}
-
- is-fullwidth-code-point@3.0.0: {}
-
- is-generator-fn@2.1.0: {}
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- is-number@7.0.0: {}
-
- is-promise@4.0.0: {}
-
- is-property@1.0.2: {}
-
- is-stream@2.0.1: {}
-
- isexe@2.0.0: {}
-
- istanbul-lib-coverage@3.2.2: {}
-
- istanbul-lib-instrument@6.0.3:
- dependencies:
- '@babel/core': 7.28.5
- '@babel/parser': 7.28.5
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.2
- semver: 7.7.3
- transitivePeerDependencies:
- - supports-color
-
- istanbul-lib-report@3.0.1:
- dependencies:
- istanbul-lib-coverage: 3.2.2
- 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
- istanbul-lib-report: 3.0.1
-
- jackspeak@3.4.3:
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
-
- jest-changed-files@30.2.0:
- dependencies:
- execa: 5.1.1
- jest-util: 30.2.0
- p-limit: 3.1.0
-
- jest-circus@30.2.0:
- dependencies:
- '@jest/environment': 30.2.0
- '@jest/expect': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- chalk: 4.1.2
- co: 4.6.0
- dedent: 1.7.0
- is-generator-fn: 2.1.0
- jest-each: 30.2.0
- jest-matcher-utils: 30.2.0
- jest-message-util: 30.2.0
- jest-runtime: 30.2.0
- jest-snapshot: 30.2.0
- jest-util: 30.2.0
- p-limit: 3.1.0
- pretty-format: 30.2.0
- pure-rand: 7.0.1
- slash: 3.0.0
- stack-utils: 2.0.6
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-cli@30.2.0(@types/node@25.0.2):
- dependencies:
- '@jest/core': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/types': 30.2.0
- chalk: 4.1.2
- exit-x: 0.2.2
- import-local: 3.2.0
- jest-config: 30.2.0(@types/node@25.0.2)
- jest-util: 30.2.0
- jest-validate: 30.2.0
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - esbuild-register
- - supports-color
- - ts-node
-
- jest-config@30.2.0(@types/node@25.0.2):
- dependencies:
- '@babel/core': 7.28.5
- '@jest/get-type': 30.1.0
- '@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.2.0
- '@jest/types': 30.2.0
- babel-jest: 30.2.0(@babel/core@7.28.5)
- chalk: 4.1.2
- ci-info: 4.3.1
- deepmerge: 4.3.1
- glob: 10.5.0
- graceful-fs: 4.2.11
- jest-circus: 30.2.0
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-runner: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 30.2.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 25.0.2
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-diff@30.2.0:
- dependencies:
- '@jest/diff-sequences': 30.0.1
- '@jest/get-type': 30.1.0
- chalk: 4.1.2
- pretty-format: 30.2.0
-
- jest-docblock@30.2.0:
- dependencies:
- detect-newline: 3.1.0
-
- jest-each@30.2.0:
- dependencies:
- '@jest/get-type': 30.1.0
- '@jest/types': 30.2.0
- chalk: 4.1.2
- jest-util: 30.2.0
- pretty-format: 30.2.0
-
- jest-environment-node@30.2.0:
- dependencies:
- '@jest/environment': 30.2.0
- '@jest/fake-timers': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- jest-mock: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
-
- jest-haste-map@30.2.0:
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- anymatch: 3.1.3
- fb-watchman: 2.0.2
- graceful-fs: 4.2.11
- jest-regex-util: 30.0.1
- jest-util: 30.2.0
- jest-worker: 30.2.0
- micromatch: 4.0.8
- walker: 1.0.8
- optionalDependencies:
- fsevents: 2.3.3
-
- jest-leak-detector@30.2.0:
- dependencies:
- '@jest/get-type': 30.1.0
- pretty-format: 30.2.0
-
- jest-matcher-utils@30.2.0:
- dependencies:
- '@jest/get-type': 30.1.0
- chalk: 4.1.2
- jest-diff: 30.2.0
- pretty-format: 30.2.0
-
- jest-message-util@30.2.0:
- dependencies:
- '@babel/code-frame': 7.27.1
- '@jest/types': 30.2.0
- '@types/stack-utils': 2.0.3
- chalk: 4.1.2
- graceful-fs: 4.2.11
- micromatch: 4.0.8
- pretty-format: 30.2.0
- slash: 3.0.0
- stack-utils: 2.0.6
-
- jest-mock@30.2.0:
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- jest-util: 30.2.0
-
- jest-pnp-resolver@1.2.3(jest-resolve@30.2.0):
- optionalDependencies:
- jest-resolve: 30.2.0
-
- jest-regex-util@30.0.1: {}
-
- jest-resolve-dependencies@30.2.0:
- dependencies:
- jest-regex-util: 30.0.1
- jest-snapshot: 30.2.0
- transitivePeerDependencies:
- - supports-color
-
- jest-resolve@30.2.0:
- dependencies:
- chalk: 4.1.2
- graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0)
- jest-util: 30.2.0
- jest-validate: 30.2.0
- slash: 3.0.0
- unrs-resolver: 1.11.1
-
- jest-runner@30.2.0:
- dependencies:
- '@jest/console': 30.2.0
- '@jest/environment': 30.2.0
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- chalk: 4.1.2
- emittery: 0.13.1
- exit-x: 0.2.2
- graceful-fs: 4.2.11
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-haste-map: 30.2.0
- jest-leak-detector: 30.2.0
- jest-message-util: 30.2.0
- jest-resolve: 30.2.0
- jest-runtime: 30.2.0
- jest-util: 30.2.0
- jest-watcher: 30.2.0
- jest-worker: 30.2.0
- p-limit: 3.1.0
- source-map-support: 0.5.13
- transitivePeerDependencies:
- - supports-color
-
- jest-runtime@30.2.0:
- dependencies:
- '@jest/environment': 30.2.0
- '@jest/fake-timers': 30.2.0
- '@jest/globals': 30.2.0
- '@jest/source-map': 30.0.1
- '@jest/test-result': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- chalk: 4.1.2
- cjs-module-lexer: 2.1.1
- collect-v8-coverage: 1.0.3
- glob: 10.5.0
- graceful-fs: 4.2.11
- jest-haste-map: 30.2.0
- jest-message-util: 30.2.0
- jest-mock: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-snapshot: 30.2.0
- jest-util: 30.2.0
- slash: 3.0.0
- strip-bom: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- jest-snapshot@30.2.0:
- dependencies:
- '@babel/core': 7.28.5
- '@babel/generator': 7.28.5
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
- '@babel/types': 7.28.5
- '@jest/expect-utils': 30.2.0
- '@jest/get-type': 30.1.0
- '@jest/snapshot-utils': 30.2.0
- '@jest/transform': 30.2.0
- '@jest/types': 30.2.0
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5)
- chalk: 4.1.2
- expect: 30.2.0
- graceful-fs: 4.2.11
- jest-diff: 30.2.0
- jest-matcher-utils: 30.2.0
- jest-message-util: 30.2.0
- jest-util: 30.2.0
- pretty-format: 30.2.0
- semver: 7.7.3
- synckit: 0.11.11
- transitivePeerDependencies:
- - supports-color
-
- jest-util@30.2.0:
- dependencies:
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- chalk: 4.1.2
- ci-info: 4.3.1
- graceful-fs: 4.2.11
- picomatch: 4.0.3
-
- jest-validate@30.2.0:
- dependencies:
- '@jest/get-type': 30.1.0
- '@jest/types': 30.2.0
- camelcase: 6.3.0
- chalk: 4.1.2
- leven: 3.1.0
- pretty-format: 30.2.0
-
- jest-watcher@30.2.0:
- dependencies:
- '@jest/test-result': 30.2.0
- '@jest/types': 30.2.0
- '@types/node': 25.0.2
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- emittery: 0.13.1
- jest-util: 30.2.0
- string-length: 4.0.2
-
- jest-worker@30.2.0:
- dependencies:
- '@types/node': 25.0.2
- '@ungap/structured-clone': 1.3.0
- jest-util: 30.2.0
- merge-stream: 2.0.0
- supports-color: 8.1.1
-
- jest@30.2.0(@types/node@25.0.2):
- dependencies:
- '@jest/core': 30.2.0
- '@jest/types': 30.2.0
- import-local: 3.2.0
- jest-cli: 30.2.0(@types/node@25.0.2)
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - esbuild-register
- - supports-color
- - ts-node
-
- jiti@2.6.1: {}
-
- joi@18.0.2:
- dependencies:
- '@hapi/address': 5.1.1
- '@hapi/formula': 3.0.2
- '@hapi/hoek': 11.0.7
- '@hapi/pinpoint': 2.0.1
- '@hapi/tlds': 1.1.4
- '@hapi/topo': 6.0.2
- '@standard-schema/spec': 1.0.0
-
- js-tokens@4.0.0: {}
-
- js-yaml@3.14.2:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
- js-yaml@4.1.1:
- dependencies:
- argparse: 2.0.1
-
- jsesc@3.1.0: {}
-
- json-buffer@3.0.1: {}
-
- json-parse-even-better-errors@2.3.1: {}
-
- json-schema-traverse@0.4.1: {}
-
- json-stable-stringify-without-jsonify@1.0.1: {}
-
- json5@2.2.3: {}
-
- jsonwebtoken@9.0.3:
- dependencies:
- jws: 4.0.1
- lodash.includes: 4.3.0
- lodash.isboolean: 3.0.3
- lodash.isinteger: 4.0.4
- lodash.isnumber: 3.0.3
- lodash.isplainobject: 4.0.6
- lodash.isstring: 4.0.1
- lodash.once: 4.1.1
- ms: 2.1.3
- semver: 7.7.3
-
- jwa@2.0.1:
- dependencies:
- buffer-equal-constant-time: 1.0.1
- ecdsa-sig-formatter: 1.0.11
- safe-buffer: 5.2.1
-
- jws@4.0.1:
- dependencies:
- jwa: 2.0.1
- safe-buffer: 5.2.1
-
- keyv@4.5.4:
- dependencies:
- json-buffer: 3.0.1
-
- kuler@2.0.0: {}
-
- leven@3.1.0: {}
-
- levn@0.4.1:
- dependencies:
- prelude-ls: 1.2.1
- type-check: 0.4.0
-
- lilconfig@2.1.0: {}
-
- lines-and-columns@1.2.4: {}
-
- locate-path@5.0.0:
- dependencies:
- p-locate: 4.1.0
-
- locate-path@6.0.0:
- dependencies:
- p-locate: 5.0.0
-
- lodash.includes@4.3.0: {}
-
- lodash.isboolean@3.0.3: {}
-
- lodash.isinteger@4.0.4: {}
-
- lodash.isnumber@3.0.3: {}
-
- lodash.isplainobject@4.0.6: {}
-
- lodash.isstring@4.0.1: {}
-
- lodash.merge@4.6.2: {}
-
- lodash.once@4.1.1: {}
-
- lodash@4.17.21: {}
-
- logform@2.7.0:
- dependencies:
- '@colors/colors': 1.6.0
- '@types/triple-beam': 1.3.5
- fecha: 4.2.3
- ms: 2.1.3
- safe-stable-stringify: 2.5.0
- triple-beam: 1.4.1
-
- long@5.3.2: {}
-
- lru-cache@10.4.3: {}
-
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
-
- lru.min@1.1.3: {}
-
- make-dir@4.0.0:
- dependencies:
- semver: 7.7.3
-
- makeerror@1.0.12:
- dependencies:
- tmpl: 1.0.5
-
- math-intrinsics@1.1.0: {}
-
- media-typer@0.3.0: {}
-
- media-typer@1.1.0: {}
-
- merge-descriptors@2.0.0: {}
-
- merge-stream@2.0.0: {}
-
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- mime-db@1.52.0: {}
-
- mime-db@1.54.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
- mime-types@3.0.2:
- dependencies:
- mime-db: 1.54.0
-
- mimic-fn@2.1.0: {}
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.12
-
- minimatch@9.0.5:
- dependencies:
- brace-expansion: 2.0.2
-
- minimist@1.2.8: {}
-
- minipass@7.1.2: {}
-
- mkdirp@0.5.6:
- dependencies:
- minimist: 1.2.8
-
- ms@2.0.0: {}
-
- ms@2.1.3: {}
-
- multer@2.0.2:
- dependencies:
- append-field: 1.0.0
- busboy: 1.6.0
- concat-stream: 2.0.0
- mkdirp: 0.5.6
- object-assign: 4.1.1
- type-is: 1.6.18
- xtend: 4.0.2
-
- mysql2@3.15.3:
- dependencies:
- aws-ssl-profiles: 1.1.2
- denque: 2.1.0
- generate-function: 2.3.1
- iconv-lite: 0.7.1
- long: 5.3.2
- lru.min: 1.1.3
- named-placeholders: 1.1.4
- seq-queue: 0.0.5
- sqlstring: 2.3.3
-
- named-placeholders@1.1.4:
- dependencies:
- lru.min: 1.1.3
-
- napi-postinstall@0.3.4: {}
-
- natural-compare@1.4.0: {}
-
- negotiator@0.6.4: {}
-
- negotiator@1.0.0: {}
-
- node-fetch-native@1.6.7: {}
-
- node-int64@0.4.0: {}
-
- node-releases@2.0.27: {}
-
- nodemailer@7.0.11: {}
-
- normalize-path@3.0.0: {}
-
- npm-run-path@4.0.1:
- dependencies:
- path-key: 3.1.1
-
- nypm@0.6.2:
- dependencies:
- citty: 0.1.6
- consola: 3.4.2
- pathe: 2.0.3
- pkg-types: 2.3.0
- tinyexec: 1.0.2
-
- object-assign@4.1.1: {}
-
- object-inspect@1.13.4: {}
-
- ohash@2.0.11: {}
-
- on-finished@2.4.1:
- dependencies:
- ee-first: 1.1.1
-
- on-headers@1.1.0: {}
-
- once@1.4.0:
- dependencies:
- wrappy: 1.0.2
-
- one-time@1.0.0:
- dependencies:
- fn.name: 1.1.0
-
- onetime@5.1.2:
- dependencies:
- mimic-fn: 2.1.0
-
- optionator@0.9.4:
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.4.1
- prelude-ls: 1.2.1
- type-check: 0.4.0
- word-wrap: 1.2.5
-
- p-limit@2.3.0:
- dependencies:
- p-try: 2.2.0
-
- p-limit@3.1.0:
- dependencies:
- yocto-queue: 0.1.0
-
- p-locate@4.1.0:
- dependencies:
- p-limit: 2.3.0
-
- p-locate@5.0.0:
- dependencies:
- p-limit: 3.1.0
-
- p-try@2.2.0: {}
-
- package-json-from-dist@1.0.1: {}
-
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
- parse-json@5.2.0:
- dependencies:
- '@babel/code-frame': 7.27.1
- error-ex: 1.3.4
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
-
- parseurl@1.3.3: {}
-
- path-exists@4.0.0: {}
-
- path-is-absolute@1.0.1: {}
-
- path-key@3.1.1: {}
-
- path-scurry@1.11.1:
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
-
- path-to-regexp@8.3.0: {}
-
- pathe@2.0.3: {}
-
- perfect-debounce@1.0.0: {}
-
- pg-cloudflare@1.2.7:
- optional: true
-
- pg-connection-string@2.9.1: {}
-
- pg-int8@1.0.1: {}
-
- pg-pool@3.10.1(pg@8.16.3):
- dependencies:
- pg: 8.16.3
-
- pg-protocol@1.10.3: {}
-
- pg-types@2.2.0:
- dependencies:
- pg-int8: 1.0.1
- postgres-array: 2.0.0
- postgres-bytea: 1.0.0
- postgres-date: 1.0.7
- postgres-interval: 1.2.0
-
- pg@8.16.3:
- dependencies:
- pg-connection-string: 2.9.1
- pg-pool: 3.10.1(pg@8.16.3)
- pg-protocol: 1.10.3
- pg-types: 2.2.0
- pgpass: 1.0.5
- optionalDependencies:
- pg-cloudflare: 1.2.7
-
- pgpass@1.0.5:
- dependencies:
- split2: 4.2.0
-
- picocolors@1.1.1: {}
-
- picomatch@2.3.1: {}
-
- picomatch@4.0.3: {}
-
- pirates@4.0.7: {}
-
- pkg-dir@4.2.0:
- dependencies:
- find-up: 4.1.0
-
- pkg-types@2.3.0:
- dependencies:
- confbox: 0.2.2
- exsolve: 1.0.8
- pathe: 2.0.3
-
- postgres-array@2.0.0: {}
-
- postgres-array@3.0.4: {}
-
- postgres-bytea@1.0.0: {}
-
- postgres-date@1.0.7: {}
-
- postgres-interval@1.2.0:
- dependencies:
- xtend: 4.0.2
-
- postgres@3.4.7: {}
-
- prelude-ls@1.2.1: {}
-
- pretty-format@30.2.0:
- dependencies:
- '@jest/schemas': 30.0.5
- ansi-styles: 5.2.0
- react-is: 18.3.1
-
- prisma@7.1.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3):
- dependencies:
- '@prisma/config': 7.1.0
- '@prisma/dev': 0.15.0(typescript@5.9.3)
- '@prisma/engines': 7.1.0
- '@prisma/studio-core': 0.8.2(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- mysql2: 3.15.3
- postgres: 3.4.7
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - '@types/react'
- - magicast
- - react
- - react-dom
-
- proper-lockfile@4.1.2:
- dependencies:
- graceful-fs: 4.2.11
- retry: 0.12.0
- signal-exit: 3.0.7
-
- proxy-addr@2.0.7:
- dependencies:
- forwarded: 0.2.0
- ipaddr.js: 1.9.1
-
- punycode@2.3.1: {}
-
- pure-rand@6.1.0: {}
-
- pure-rand@7.0.1: {}
-
- qs@6.14.0:
- dependencies:
- side-channel: 1.1.0
-
- range-parser@1.2.1: {}
-
- raw-body@3.0.2:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.1
- iconv-lite: 0.7.1
- unpipe: 1.0.0
-
- rc9@2.1.2:
- dependencies:
- defu: 6.1.4
- destr: 2.0.5
-
- react-dom@19.2.3(react@19.2.3):
- dependencies:
- react: 19.2.3
- scheduler: 0.27.0
-
- react-is@18.3.1: {}
-
- react@19.2.3: {}
-
- readable-stream@3.6.2:
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
-
- readdirp@4.1.2: {}
-
- redis@5.10.0:
- dependencies:
- '@redis/bloom': 5.10.0(@redis/client@5.10.0)
- '@redis/client': 5.10.0
- '@redis/json': 5.10.0(@redis/client@5.10.0)
- '@redis/search': 5.10.0(@redis/client@5.10.0)
- '@redis/time-series': 5.10.0(@redis/client@5.10.0)
-
- regexp-to-ast@0.5.0: {}
-
- remeda@2.21.3:
- dependencies:
- type-fest: 4.41.0
-
- require-directory@2.1.1: {}
-
- resolve-cwd@3.0.0:
- dependencies:
- resolve-from: 5.0.0
-
- resolve-from@4.0.0: {}
-
- resolve-from@5.0.0: {}
-
- resolve-pkg-maps@1.0.0: {}
-
- retry@0.12.0: {}
-
- router@2.2.0:
- dependencies:
- debug: 4.4.3
- depd: 2.0.0
- is-promise: 4.0.0
- parseurl: 1.3.3
- path-to-regexp: 8.3.0
- transitivePeerDependencies:
- - supports-color
-
- safe-buffer@5.2.1: {}
-
- safe-stable-stringify@2.5.0: {}
-
- safer-buffer@2.1.2: {}
-
- scheduler@0.27.0: {}
-
- semver@6.3.1: {}
-
- semver@7.7.3: {}
-
- send@1.2.0:
- dependencies:
- debug: 4.4.3
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- fresh: 2.0.0
- http-errors: 2.0.1
- mime-types: 3.0.2
- ms: 2.1.3
- on-finished: 2.4.1
- range-parser: 1.2.1
- statuses: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- seq-queue@0.0.5: {}
-
- serve-static@2.2.0:
- dependencies:
- encodeurl: 2.0.0
- escape-html: 1.0.3
- parseurl: 1.3.3
- send: 1.2.0
- transitivePeerDependencies:
- - supports-color
-
- setprototypeof@1.2.0: {}
-
- shebang-command@2.0.0:
- dependencies:
- shebang-regex: 3.0.0
-
- shebang-regex@3.0.0: {}
-
- side-channel-list@1.0.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-map@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-weakmap@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
- side-channel-map: 1.0.1
-
- side-channel@1.1.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
- side-channel-list: 1.0.0
- side-channel-map: 1.0.1
- side-channel-weakmap: 1.0.2
-
- signal-exit@3.0.7: {}
-
- signal-exit@4.1.0: {}
-
- slash@3.0.0: {}
-
- source-map-support@0.5.13:
- dependencies:
- buffer-from: 1.1.2
- source-map: 0.6.1
-
- source-map@0.6.1: {}
-
- split2@4.2.0: {}
-
- sprintf-js@1.0.3: {}
-
- sqlstring@2.3.3: {}
-
- stack-trace@0.0.10: {}
-
- stack-utils@2.0.6:
- dependencies:
- escape-string-regexp: 2.0.0
-
- statuses@2.0.2: {}
-
- std-env@3.9.0: {}
-
- streamsearch@1.1.0: {}
-
- string-length@4.0.2:
- dependencies:
- char-regex: 1.0.2
- strip-ansi: 6.0.1
-
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- string-width@5.1.2:
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.2
-
- string_decoder@1.3.0:
- dependencies:
- safe-buffer: 5.2.1
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-ansi@7.1.2:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-bom@4.0.0: {}
-
- strip-final-newline@2.0.0: {}
-
- strip-json-comments@3.1.1: {}
-
- strnum@2.1.2: {}
-
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- supports-color@8.1.1:
- dependencies:
- has-flag: 4.0.0
-
- synckit@0.11.11:
- dependencies:
- '@pkgr/core': 0.2.9
-
- test-exclude@6.0.0:
- dependencies:
- '@istanbuljs/schema': 0.1.3
- glob: 7.2.3
- minimatch: 3.1.2
-
- text-hex@1.0.0: {}
-
- tinyexec@1.0.2: {}
-
- tinyglobby@0.2.15:
- dependencies:
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
-
- tmpl@1.0.5: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
- toidentifier@1.0.1: {}
-
- triple-beam@1.4.1: {}
-
- ts-api-utils@2.1.0(typescript@5.9.3):
- dependencies:
- typescript: 5.9.3
-
- tslib@2.8.1: {}
-
- tsx@4.21.0:
- dependencies:
- esbuild: 0.27.1
- get-tsconfig: 4.13.0
- optionalDependencies:
- fsevents: 2.3.3
-
- type-check@0.4.0:
- dependencies:
- prelude-ls: 1.2.1
-
- type-detect@4.0.8: {}
-
- type-fest@0.21.3: {}
-
- type-fest@4.41.0: {}
-
- type-is@1.6.18:
- dependencies:
- media-typer: 0.3.0
- mime-types: 2.1.35
-
- type-is@2.0.1:
- dependencies:
- content-type: 1.0.5
- media-typer: 1.1.0
- mime-types: 3.0.2
-
- typedarray@0.0.6: {}
-
- typescript@5.9.3: {}
-
- undici-types@7.16.0: {}
-
- unpipe@1.0.0: {}
-
- unrs-resolver@1.11.1:
- dependencies:
- napi-postinstall: 0.3.4
- optionalDependencies:
- '@unrs/resolver-binding-android-arm-eabi': 1.11.1
- '@unrs/resolver-binding-android-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-x64': 1.11.1
- '@unrs/resolver-binding-freebsd-x64': 1.11.1
- '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
- '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
- '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-musl': 1.11.1
- '@unrs/resolver-binding-wasm32-wasi': 1.11.1
- '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
- '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
- '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
-
- update-browserslist-db@1.2.2(browserslist@4.28.1):
- dependencies:
- browserslist: 4.28.1
- escalade: 3.2.0
- picocolors: 1.1.1
-
- uri-js@4.4.1:
- dependencies:
- punycode: 2.3.1
-
- util-deprecate@1.0.2: {}
-
- uuid@13.0.0: {}
-
- v8-to-istanbul@9.3.0:
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- '@types/istanbul-lib-coverage': 2.0.6
- convert-source-map: 2.0.0
-
- valibot@1.2.0(typescript@5.9.3):
- optionalDependencies:
- typescript: 5.9.3
-
- vary@1.1.2: {}
-
- walker@1.0.8:
- dependencies:
- makeerror: 1.0.12
-
- which@2.0.2:
- dependencies:
- isexe: 2.0.0
-
- winston-transport@4.9.0:
- dependencies:
- logform: 2.7.0
- readable-stream: 3.6.2
- triple-beam: 1.4.1
-
- winston@3.19.0:
- dependencies:
- '@colors/colors': 1.6.0
- '@dabh/diagnostics': 2.0.8
- async: 3.2.6
- is-stream: 2.0.1
- logform: 2.7.0
- one-time: 1.0.0
- readable-stream: 3.6.2
- safe-stable-stringify: 2.5.0
- stack-trace: 0.0.10
- triple-beam: 1.4.1
- winston-transport: 4.9.0
-
- word-wrap@1.2.5: {}
-
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- wrap-ansi@8.1.0:
- dependencies:
- ansi-styles: 6.2.3
- string-width: 5.1.2
- strip-ansi: 7.1.2
-
- wrappy@1.0.2: {}
-
- write-file-atomic@5.0.1:
- dependencies:
- imurmurhash: 0.1.4
- signal-exit: 4.1.0
-
- xtend@4.0.2: {}
-
- y18n@5.0.8: {}
-
- yallist@3.1.1: {}
-
- yargs-parser@21.1.1: {}
-
- yargs@17.7.2:
- dependencies:
- cliui: 8.0.1
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
-
- yocto-queue@0.1.0: {}
-
- zeptomatch@2.0.2:
- dependencies:
- grammex: 3.1.12
diff --git a/backend/prisma.config.ts b/backend/prisma.config.ts
deleted file mode 100644
index d73df7b3..00000000
--- a/backend/prisma.config.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import "dotenv/config";
-import { defineConfig, env } from "prisma/config";
-
-export default defineConfig({
- schema: "prisma/schema.prisma",
- migrations: {
- path: "prisma/migrations",
- },
- datasource: {
- url: env("DATABASE_URL"),
- },
-});
diff --git a/backend/prisma/migrations/20250624211038_init/migration.sql b/backend/prisma/migrations/20250624211038_init/migration.sql
deleted file mode 100644
index ae0b4f31..00000000
--- a/backend/prisma/migrations/20250624211038_init/migration.sql
+++ /dev/null
@@ -1,80 +0,0 @@
--- CreateTable
-CREATE TABLE "docket_entries" (
- "id" SERIAL NOT NULL,
- "date" DATE NOT NULL,
- "document_type" VARCHAR(100) NOT NULL,
- "summary" TEXT NOT NULL,
- "court_notes" TEXT,
- "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updated_at" TIMESTAMP(3) NOT NULL,
-
- CONSTRAINT "docket_entries_pkey" PRIMARY KEY ("id")
-);
-
--- CreateTable
-CREATE TABLE "documents" (
- "id" SERIAL NOT NULL,
- "docket_entry_id" INTEGER NOT NULL,
- "original_filename" VARCHAR(255) NOT NULL,
- "stored_filename" VARCHAR(255) NOT NULL,
- "file_path" VARCHAR(500) NOT NULL,
- "title" VARCHAR(255) NOT NULL,
- "summary" TEXT,
- "notes" TEXT,
- "is_primary" BOOLEAN NOT NULL DEFAULT false,
- "file_size" INTEGER NOT NULL,
- "display_order" INTEGER NOT NULL DEFAULT 0,
- "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "updated_at" TIMESTAMP(3) NOT NULL,
-
- CONSTRAINT "documents_pkey" PRIMARY KEY ("id")
-);
-
--- CreateTable
-CREATE TABLE "subscriptions" (
- "id" SERIAL NOT NULL,
- "email" VARCHAR(255) NOT NULL,
- "is_active" BOOLEAN NOT NULL DEFAULT true,
- "unsubscribe_token" VARCHAR(255) NOT NULL,
- "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
-
- CONSTRAINT "subscriptions_pkey" PRIMARY KEY ("id")
-);
-
--- CreateTable
-CREATE TABLE "admin_users" (
- "id" SERIAL NOT NULL,
- "username" VARCHAR(50) NOT NULL,
- "password_hash" VARCHAR(255) NOT NULL,
- "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
- "last_login" TIMESTAMP(3),
-
- CONSTRAINT "admin_users_pkey" PRIMARY KEY ("id")
-);
-
--- CreateIndex
-CREATE INDEX "idx_docket_entries_date" ON "docket_entries"("date" DESC);
-
--- CreateIndex
-CREATE UNIQUE INDEX "documents_stored_filename_key" ON "documents"("stored_filename");
-
--- CreateIndex
-CREATE INDEX "idx_documents_docket_entry" ON "documents"("docket_entry_id");
-
--- CreateIndex
-CREATE INDEX "idx_documents_display_order" ON "documents"("docket_entry_id", "display_order");
-
--- CreateIndex
-CREATE UNIQUE INDEX "subscriptions_email_key" ON "subscriptions"("email");
-
--- CreateIndex
-CREATE UNIQUE INDEX "subscriptions_unsubscribe_token_key" ON "subscriptions"("unsubscribe_token");
-
--- CreateIndex
-CREATE INDEX "idx_subscriptions_active" ON "subscriptions"("is_active");
-
--- CreateIndex
-CREATE UNIQUE INDEX "admin_users_username_key" ON "admin_users"("username");
-
--- AddForeignKey
-ALTER TABLE "documents" ADD CONSTRAINT "documents_docket_entry_id_fkey" FOREIGN KEY ("docket_entry_id") REFERENCES "docket_entries"("id") ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/backend/prisma/migrations/20250624212747_update_schema/migration.sql b/backend/prisma/migrations/20250624212747_update_schema/migration.sql
deleted file mode 100644
index b6729170..00000000
--- a/backend/prisma/migrations/20250624212747_update_schema/migration.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- Warnings:
-
- - You are about to drop the column `court_notes` on the `docket_entries` table. All the data in the column will be lost.
- - You are about to drop the column `document_type` on the `docket_entries` table. All the data in the column will be lost.
- - You are about to drop the column `is_primary` on the `documents` table. All the data in the column will be lost.
- - Added the required column `title` to the `docket_entries` table without a default value. This is not possible if the table is not empty.
- - Added the required column `mime_type` to the `documents` table without a default value. This is not possible if the table is not empty.
-
-*/
--- AlterTable
-ALTER TABLE "docket_entries" DROP COLUMN "court_notes",
-DROP COLUMN "document_type",
-ADD COLUMN "notes" TEXT,
-ADD COLUMN "title" VARCHAR(500) NOT NULL;
-
--- AlterTable
-ALTER TABLE "documents" DROP COLUMN "is_primary",
-ADD COLUMN "mime_type" VARCHAR(100) NOT NULL,
-ALTER COLUMN "title" SET DATA TYPE VARCHAR(500);
diff --git a/backend/prisma/migrations/migration_lock.toml b/backend/prisma/migrations/migration_lock.toml
deleted file mode 100644
index fbffa92c..00000000
--- a/backend/prisma/migrations/migration_lock.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-# Please do not edit this file manually
-# It should be added in your version-control system (i.e. Git)
-provider = "postgresql"
\ No newline at end of file
diff --git a/backend/prisma/schema.prisma b/backend/prisma/schema.prisma
deleted file mode 100644
index ca845955..00000000
--- a/backend/prisma/schema.prisma
+++ /dev/null
@@ -1,70 +0,0 @@
-// This is your Prisma schema file,
-// learn more about it in the docs: https://pris.ly/d/prisma-schema
-
-generator client {
- provider = "prisma-client-js"
-}
-
-datasource db {
- provider = "postgresql"
-}
-
-model DocketEntry {
- id Int @id @default(autoincrement())
- date DateTime @db.Date
- title String @db.VarChar(500)
- summary String @db.Text
- notes String? @db.Text
- createdAt DateTime @default(now()) @map("created_at")
- updatedAt DateTime @updatedAt @map("updated_at")
-
- // Relations
- documents Document[]
-
- @@map("docket_entries")
- @@index([date(sort: Desc)], name: "idx_docket_entries_date")
-}
-
-model Document {
- id Int @id @default(autoincrement())
- docketEntryId Int @map("docket_entry_id")
- title String @db.VarChar(500)
- originalFilename String @map("original_filename") @db.VarChar(255)
- storedFilename String @unique @map("stored_filename") @db.VarChar(255)
- filePath String @map("file_path") @db.VarChar(500)
- fileSize Int @map("file_size")
- mimeType String @map("mime_type") @db.VarChar(100)
- summary String? @db.Text
- notes String? @db.Text
- displayOrder Int @default(0) @map("display_order")
- createdAt DateTime @default(now()) @map("created_at")
- updatedAt DateTime @updatedAt @map("updated_at")
-
- // Relations
- docketEntry DocketEntry @relation(fields: [docketEntryId], references: [id], onDelete: Cascade)
-
- @@map("documents")
- @@index([docketEntryId], name: "idx_documents_docket_entry")
- @@index([docketEntryId, displayOrder], name: "idx_documents_display_order")
-}
-
-model Subscription {
- id Int @id @default(autoincrement())
- email String @unique @db.VarChar(255)
- isActive Boolean @default(true) @map("is_active")
- unsubscribeToken String @unique @map("unsubscribe_token") @db.VarChar(255)
- createdAt DateTime @default(now()) @map("created_at")
-
- @@map("subscriptions")
- @@index([isActive], name: "idx_subscriptions_active")
-}
-
-model AdminUser {
- id Int @id @default(autoincrement())
- username String @unique @db.VarChar(50)
- passwordHash String @map("password_hash") @db.VarChar(255)
- createdAt DateTime @default(now()) @map("created_at")
- lastLogin DateTime? @map("last_login")
-
- @@map("admin_users")
-}
diff --git a/backend/setup-admin-fixed.js b/backend/setup-admin-fixed.js
deleted file mode 100644
index 00df924a..00000000
--- a/backend/setup-admin-fixed.js
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env node
-
-const bcrypt = require('bcryptjs');
-const { PrismaClient } = require('@prisma/client');
-const crypto = require('crypto');
-
-const prisma = new PrismaClient();
-
-async function setupAdmin() {
- try {
- console.log('🔧 Setting up admin user for production...');
-
- // Generate secure credentials
- const username = 'eliza';
- const password = crypto.randomBytes(12).toString('base64').replace(/[+/=]/g, '').substring(0, 16);
-
- console.log('\n📋 Generated Credentials:');
- console.log('Username:', username);
- console.log('Password:', password);
- console.log('\n⚠️ IMPORTANT: Save these credentials securely!');
-
- // Hash the password
- const saltRounds = 12;
- const passwordHash = await bcrypt.hash(password, saltRounds);
-
- // Check if admin user already exists
- const existingAdmin = await prisma.adminUser.findUnique({
- where: { username }
- });
-
- if (existingAdmin) {
- // Update existing admin
- await prisma.adminUser.update({
- where: { username },
- data: {
- passwordHash
- }
- });
- console.log('\n✅ Admin user updated successfully!');
- } else {
- // Create new admin user
- await prisma.adminUser.create({
- data: {
- username,
- passwordHash
- }
- });
- console.log('\n✅ Admin user created successfully!');
- }
-
- console.log('\n🚀 Production setup complete!');
- console.log('Eliza can now log in with the credentials above.');
-
- } catch (error) {
- console.error('❌ Error setting up admin user:', error);
- process.exit(1);
- } finally {
- await prisma.$disconnect();
- }
-}
-
-// Run the setup
-setupAdmin();
diff --git a/backend/setup-admin.js b/backend/setup-admin.js
deleted file mode 100755
index b51ba6b1..00000000
--- a/backend/setup-admin.js
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env node
-
-const bcrypt = require('bcryptjs');
-const { PrismaClient } = require('@prisma/client');
-const crypto = require('crypto');
-
-const prisma = new PrismaClient();
-
-async function setupAdmin() {
- try {
- console.log('🔧 Setting up admin user for production...');
-
- // Generate secure credentials
- const username = 'eliza';
- const password = crypto.randomBytes(12).toString('base64').replace(/[+/=]/g, '').substring(0, 16);
-
- console.log('\n📋 Generated Credentials:');
- console.log('Username:', username);
- console.log('Password:', password);
- console.log('\n⚠️ IMPORTANT: Save these credentials securely!');
-
- // Hash the password
- const saltRounds = 12;
- const passwordHash = await bcrypt.hash(password, saltRounds);
-
- // Check if admin user already exists
- const existingAdmin = await prisma.adminUser.findUnique({
- where: { username }
- });
-
- if (existingAdmin) {
- // Update existing admin
- await prisma.adminUser.update({
- where: { username },
- data: {
- passwordHash,
- updatedAt: new Date()
- }
- });
- console.log('\n✅ Admin user updated successfully!');
- } else {
- // Create new admin user
- await prisma.adminUser.create({
- data: {
- username,
- passwordHash,
- createdAt: new Date(),
- updatedAt: new Date()
- }
- });
- console.log('\n✅ Admin user created successfully!');
- }
-
- console.log('\n🚀 Production setup complete!');
- console.log('Eliza can now log in with the credentials above.');
-
- } catch (error) {
- console.error('❌ Error setting up admin user:', error);
- process.exit(1);
- } finally {
- await prisma.$disconnect();
- }
-}
-
-// Run the setup
-setupAdmin();
diff --git a/backend/src/index.ts b/backend/src/index.ts
deleted file mode 100644
index f601fc74..00000000
--- a/backend/src/index.ts
+++ /dev/null
@@ -1,178 +0,0 @@
-import express from 'express';
-import cors from 'cors';
-import helmet from 'helmet';
-import compression from 'compression';
-import rateLimit from 'express-rate-limit';
-import dotenv from 'dotenv';
-import { PrismaClient } from '@prisma/client';
-import { PrismaPg } from '@prisma/adapter-pg';
-import pg from 'pg';
-import { createClient } from 'redis';
-import { logger } from './utils/logger';
-import { errorHandler } from './middleware/errorHandler';
-import { requestLogger } from './middleware/requestLogger';
-
-// Import routes
-import authRoutes from './routes/auth';
-import docketRoutes from './routes/docket';
-import documentRoutes from './routes/documents';
-import subscriptionRoutes from './routes/subscriptions';
-import healthRoutes from './routes/health';
-import notificationRoutes from './routes/notifications';
-
-// Load environment variables
-dotenv.config();
-
-const app = express();
-const PORT = process.env.PORT || 3001;
-
-// Trust proxy when behind reverse proxy (Caddy)
-app.set('trust proxy', true);
-
-// Initialize Prisma client with PostgreSQL adapter
-const connectionString = process.env.DATABASE_URL;
-const pool = new pg.Pool({ connectionString });
-const adapter = new PrismaPg(pool);
-
-export const prisma = new PrismaClient({
- adapter,
- log: ['query', 'info', 'warn', 'error'],
-});
-
-// Initialize Redis client
-export const redis = createClient({
- url: process.env.REDIS_URL || 'redis://localhost:6379',
-});
-
-// Connect to Redis
-redis.connect().catch((error) => {
- logger.error('Redis connection failed:', error);
-});
-
-redis.on('error', (error) => {
- logger.error('Redis error:', error);
-});
-
-redis.on('connect', () => {
- logger.info('Connected to Redis');
-});
-
-// Security middleware
-app.use(helmet({
- crossOriginResourcePolicy: { policy: "cross-origin" }
-}));
-
-// CORS configuration
-app.use(cors({
- origin: process.env.NODE_ENV === 'production'
- ? [
- process.env.FRONTEND_URL,
- 'https://mad-lawsuit.org',
- 'https://files.mad-lawsuit.org',
- 'http://frontend:806',
- 'http://localhost:806'
- ]
- : [
- 'http://localhost:3000',
- 'http://localhost:806',
- 'http://frontend:806',
- 'http://frontend:3000',
- 'https://mad-lawsuit.org',
- 'https://files.mad-lawsuit.org'
- ],
- credentials: true,
-}));
-
-// Rate limiting with proper proxy configuration
-const limiter = rateLimit({
- windowMs: 15 * 60 * 1000, // 15 minutes
- max: 100, // limit each IP to 100 requests per windowMs
- message: 'Too many requests from this IP, please try again later.',
- standardHeaders: true,
- legacyHeaders: false,
- // Skip rate limiting validation errors in production behind proxy
- skip: (req) => {
- // Skip rate limiting if we can't determine the real IP
- return false;
- },
- keyGenerator: (req) => {
- // Use X-Forwarded-For header if available, otherwise fall back to req.ip
- return req.ip || 'unknown';
- },
-});
-
-app.use('/api', limiter);
-
-// Stricter rate limiting for auth endpoints
-const authLimiter = rateLimit({
- windowMs: 15 * 60 * 1000, // 15 minutes
- max: 5, // limit each IP to 5 requests per windowMs
- message: 'Too many authentication attempts, please try again later.',
- standardHeaders: true,
- legacyHeaders: false,
- keyGenerator: (req) => {
- return req.ip || 'unknown';
- },
-});
-
-app.use('/api/auth', authLimiter);
-
-// Body parsing middleware
-app.use(compression());
-app.use(express.json({ limit: '10mb' }));
-app.use(express.urlencoded({ extended: true, limit: '10mb' }));
-
-// Request logging
-app.use(requestLogger);
-
-// Routes
-app.use('/api/health', healthRoutes);
-app.use('/api/auth', authRoutes);
-app.use('/api/docket-entries', docketRoutes);
-app.use('/api/documents', documentRoutes);
-app.use('/api/subscriptions', subscriptionRoutes);
-app.use('/api/notifications', notificationRoutes);
-
-// 404 handler - Express 5 compatible
-app.use((req, res) => {
- res.status(404).json({
- success: false,
- message: 'Route not found',
- });
-});
-
-// Error handling middleware (must be last)
-app.use(errorHandler);
-
-// Graceful shutdown
-process.on('SIGTERM', async () => {
- logger.info('SIGTERM received, shutting down gracefully');
-
- // Close database connection
- await prisma.$disconnect();
-
- // Close Redis connection
- await redis.quit();
-
- process.exit(0);
-});
-
-process.on('SIGINT', async () => {
- logger.info('SIGINT received, shutting down gracefully');
-
- // Close database connection
- await prisma.$disconnect();
-
- // Close Redis connection
- await redis.quit();
-
- process.exit(0);
-});
-
-// Start server
-app.listen(PORT, () => {
- logger.info(`Server running on port ${PORT}`);
- logger.info(`Environment: ${process.env.NODE_ENV || 'development'}`);
-});
-
-export default app;
diff --git a/backend/src/middleware/auth.ts b/backend/src/middleware/auth.ts
deleted file mode 100644
index d6c82153..00000000
--- a/backend/src/middleware/auth.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Request, Response, NextFunction } from 'express';
-import jwt from 'jsonwebtoken';
-import { prisma } from '../index';
-
-export interface AuthenticatedRequest extends Request {
- user?: {
- userId: number;
- username: string;
- };
-}
-
-export const authenticateToken = async (
- req: AuthenticatedRequest,
- res: Response,
- next: NextFunction
-) => {
- const authHeader = req.headers['authorization'];
- const token = authHeader && authHeader.split(' ')[1]; // Bearer TOKEN
-
- if (!token) {
- return res.status(401).json({
- success: false,
- message: 'Access token required',
- });
- }
-
- try {
- const jwtSecret = process.env['JWT_SECRET'];
- if (!jwtSecret) {
- return res.status(500).json({
- success: false,
- message: 'Server configuration error',
- });
- }
-
- const decoded = jwt.verify(token, jwtSecret) as any;
-
- // Verify user still exists
- const user = await prisma.adminUser.findUnique({
- where: { id: decoded.userId },
- });
-
- if (!user) {
- return res.status(401).json({
- success: false,
- message: 'Invalid token - user not found',
- });
- }
-
- req.user = {
- userId: decoded.userId,
- username: decoded.username,
- };
-
- next();
- } catch (error) {
- return res.status(403).json({
- success: false,
- message: 'Invalid or expired token',
- });
- }
-};
diff --git a/backend/src/middleware/errorHandler.ts b/backend/src/middleware/errorHandler.ts
deleted file mode 100644
index 5a92d1c0..00000000
--- a/backend/src/middleware/errorHandler.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Request, Response, NextFunction } from 'express';
-import { logger } from '../utils/logger';
-
-export interface AppError extends Error {
- statusCode?: number;
- isOperational?: boolean;
-}
-
-export const errorHandler = (
- error: AppError,
- req: Request,
- res: Response,
- next: NextFunction
-): void => {
- const statusCode = error.statusCode || 500;
- const message = error.message || 'Internal Server Error';
-
- // Log error details
- logger.error('Error occurred:', {
- error: error.message,
- stack: error.stack,
- url: req.url,
- method: req.method,
- ip: req.ip,
- userAgent: req.get('User-Agent'),
- });
-
- // Don't leak error details in production
- const isDevelopment = process.env.NODE_ENV === 'development';
-
- res.status(statusCode).json({
- success: false,
- message: isDevelopment ? message : 'Something went wrong',
- ...(isDevelopment && { stack: error.stack }),
- });
-};
-
-export const createError = (message: string, statusCode: number = 500): AppError => {
- const error: AppError = new Error(message);
- error.statusCode = statusCode;
- error.isOperational = true;
- return error;
-};
-
-export const asyncHandler = (fn: Function) => {
- return (req: Request, res: Response, next: NextFunction) => {
- Promise.resolve(fn(req, res, next)).catch(next);
- };
-};
diff --git a/backend/src/middleware/requestLogger.ts b/backend/src/middleware/requestLogger.ts
deleted file mode 100644
index 99c405bd..00000000
--- a/backend/src/middleware/requestLogger.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Request, Response, NextFunction } from 'express';
-import { logger } from '../utils/logger';
-
-export const requestLogger = (req: Request, res: Response, next: NextFunction): void => {
- const start = Date.now();
-
- // Log request
- logger.info('Incoming request', {
- method: req.method,
- url: req.url,
- ip: req.ip,
- userAgent: req.get('User-Agent'),
- });
-
- // Override res.end to log response
- const originalEnd = res.end;
- res.end = function(chunk?: any, encoding?: any): Response {
- const duration = Date.now() - start;
-
- logger.info('Request completed', {
- method: req.method,
- url: req.url,
- statusCode: res.statusCode,
- duration: `${duration}ms`,
- ip: req.ip,
- });
-
- return originalEnd.call(this, chunk, encoding);
- } as any;
-
- next();
-};
diff --git a/backend/src/routes/auth.ts b/backend/src/routes/auth.ts
deleted file mode 100644
index 5f1d80f5..00000000
--- a/backend/src/routes/auth.ts
+++ /dev/null
@@ -1,108 +0,0 @@
-import { Router, Request, Response } from 'express';
-import bcrypt from 'bcryptjs';
-import jwt from 'jsonwebtoken';
-import { prisma } from '../index';
-import { asyncHandler } from '../middleware/errorHandler';
-import { authenticateToken, AuthenticatedRequest } from '../middleware/auth';
-import Joi from 'joi';
-
-const router = Router();
-
-// Validation schemas
-const loginSchema = Joi.object({
- username: Joi.string().required(),
- password: Joi.string().required(),
-});
-
-// Login endpoint
-router.post('/login', asyncHandler(async (req: Request, res: Response) => {
- const { error, value } = loginSchema.validate(req.body);
-
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
-
- const { username, password } = value;
-
- // Find admin user
- const admin = await prisma.adminUser.findUnique({
- where: { username },
- });
-
- if (!admin) {
- return res.status(401).json({
- success: false,
- message: 'Invalid credentials',
- });
- }
-
- // Verify password
- const isValidPassword = await bcrypt.compare(password, admin.passwordHash);
-
- if (!isValidPassword) {
- return res.status(401).json({
- success: false,
- message: 'Invalid credentials',
- });
- }
-
- // Update last login
- await prisma.adminUser.update({
- where: { id: admin.id },
- data: { lastLogin: new Date() },
- });
-
- // Generate JWT token
- const jwtSecret = process.env['JWT_SECRET'];
- const jwtExpiresIn = process.env['JWT_EXPIRES_IN'] || '24h';
-
- if (!jwtSecret) {
- return res.status(500).json({
- success: false,
- message: 'Server configuration error',
- });
- }
-
- const token = jwt.sign(
- {
- userId: admin.id,
- username: admin.username
- },
- jwtSecret,
- {
- expiresIn: jwtExpiresIn
- } as jwt.SignOptions
- );
-
- res.json({
- success: true,
- message: 'Login successful',
- token,
- user: {
- id: admin.id,
- username: admin.username,
- },
- });
-}));
-
-// Verify token endpoint
-router.get('/verify', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- res.json({
- success: true,
- message: 'Token is valid',
- user: req.user,
- });
-}));
-
-// Logout endpoint (client-side token removal, but we can log it)
-router.post('/logout', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- res.json({
- success: true,
- message: 'Logged out successfully',
- });
-}));
-
-export default router;
diff --git a/backend/src/routes/docket.ts b/backend/src/routes/docket.ts
deleted file mode 100644
index 12fef0a5..00000000
--- a/backend/src/routes/docket.ts
+++ /dev/null
@@ -1,228 +0,0 @@
-import { Router, Request, Response } from 'express';
-import { prisma } from '../index';
-import { asyncHandler } from '../middleware/errorHandler';
-import { authenticateToken, AuthenticatedRequest } from '../middleware/auth';
-import { emailService } from '../services/emailService';
-import Joi from 'joi';
-
-const router = Router();
-
-// Helper function to normalize date input to avoid timezone issues
-function normalizeDate(dateInput: any): Date {
- if (typeof dateInput === 'string') {
- // If it's a string in YYYY-MM-DD format, create date in local time
- const [year, month, day] = dateInput.split('-');
- return new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
- }
- if (dateInput instanceof Date) {
- // If it's already a Date object, extract date parts and recreate to avoid timezone issues
- const year = dateInput.getFullYear();
- const month = dateInput.getMonth();
- const day = dateInput.getDate();
- return new Date(year, month, day);
- }
- return dateInput;
-}
-
-// Validation schemas
-const createDocketEntrySchema = Joi.object({
- date: Joi.date().required(),
- title: Joi.string().required().max(500),
- summary: Joi.string().required(),
- notes: Joi.string().optional().allow(''),
-});
-
-const updateDocketEntrySchema = Joi.object({
- date: Joi.date().optional(),
- title: Joi.string().optional().max(500),
- summary: Joi.string().optional(),
- notes: Joi.string().optional().allow(''),
-});
-
-// Public endpoint - Get all docket entries with documents
-router.get('/', asyncHandler(async (req: Request, res: Response) => {
- const entries = await prisma.docketEntry.findMany({
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- orderBy: {
- date: 'asc',
- },
- });
-
- res.json({
- success: true,
- entries,
- });
-}));
-
-// Admin endpoint - Get single docket entry
-router.get('/:id', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const entryId = parseInt(req.params.id);
-
- if (isNaN(entryId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid entry ID',
- });
- }
-
- const entry = await prisma.docketEntry.findUnique({
- where: { id: entryId },
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- });
-
- if (!entry) {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
-
- res.json({
- success: true,
- entry,
- });
-}));
-
-// Admin endpoint - Create new docket entry
-router.post('/', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const { error, value } = createDocketEntrySchema.validate(req.body);
-
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
-
- // Normalize date to avoid timezone issues
- const normalizedData = { ...value };
- if (value.date) {
- normalizedData.date = normalizeDate(value.date);
- }
-
- const entry = await prisma.docketEntry.create({
- data: normalizedData,
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- });
-
- // Email notifications are now manual-only via the green mail button
- // Automatic notifications disabled per user request
-
- res.status(201).json({
- success: true,
- message: 'Docket entry created successfully',
- entry,
- });
-}));
-
-// Admin endpoint - Update docket entry
-router.put('/:id', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const entryId = parseInt(req.params.id);
-
- if (isNaN(entryId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid entry ID',
- });
- }
-
- const { error, value } = updateDocketEntrySchema.validate(req.body);
-
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
-
- // Normalize date to avoid timezone issues
- const normalizedData = { ...value };
- if (value.date) {
- normalizedData.date = normalizeDate(value.date);
- }
-
- try {
- const entry = await prisma.docketEntry.update({
- where: { id: entryId },
- data: normalizedData,
- include: {
- documents: {
- orderBy: {
- displayOrder: 'asc',
- },
- },
- },
- });
-
- res.json({
- success: true,
- message: 'Docket entry updated successfully',
- entry,
- });
- } catch (error: any) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
- throw error;
- }
-}));
-
-// Admin endpoint - Delete docket entry
-router.delete('/:id', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const entryId = parseInt(req.params.id);
-
- if (isNaN(entryId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid entry ID',
- });
- }
-
- try {
- // Delete associated documents first (cascade should handle this, but being explicit)
- await prisma.document.deleteMany({
- where: { docketEntryId: entryId },
- });
-
- // Delete the docket entry
- await prisma.docketEntry.delete({
- where: { id: entryId },
- });
-
- res.json({
- success: true,
- message: 'Docket entry deleted successfully',
- });
- } catch (error: any) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
- throw error;
- }
-}));
-
-export default router;
diff --git a/backend/src/routes/documents.ts b/backend/src/routes/documents.ts
deleted file mode 100644
index ea3c77fa..00000000
--- a/backend/src/routes/documents.ts
+++ /dev/null
@@ -1,276 +0,0 @@
-import { Router, Request, Response } from 'express';
-import { prisma } from '../index';
-import { asyncHandler } from '../middleware/errorHandler';
-import { authenticateToken, AuthenticatedRequest } from '../middleware/auth';
-import multer from 'multer';
-import { v4 as uuidv4 } from 'uuid';
-import path from 'path';
-import fs from 'fs';
-import Joi from 'joi';
-
-const router = Router();
-
-// Configure multer for file uploads
-const storage = multer.diskStorage({
- destination: (req, file, cb) => {
- const uploadDir = process.env['UPLOAD_DIR'] || './uploads';
- if (!fs.existsSync(uploadDir)) {
- fs.mkdirSync(uploadDir, { recursive: true });
- }
- cb(null, uploadDir);
- },
- filename: (req, file, cb) => {
- const uuid = uuidv4();
- const extension = path.extname(file.originalname);
- cb(null, `${uuid}${extension}`);
- },
-});
-
-const upload = multer({
- storage,
- limits: {
- fileSize: parseInt(process.env['MAX_FILE_SIZE'] || '262144000'), // 250MB default
- },
- fileFilter: (req, file, cb) => {
- // Allow PDF files with multiple possible MIME types
- const allowedMimeTypes = [
- 'application/pdf',
- 'application/x-pdf',
- 'application/acrobat',
- 'applications/vnd.pdf',
- 'text/pdf',
- 'text/x-pdf'
- ];
-
- // Check MIME type or file extension
- const isValidPDF = allowedMimeTypes.includes(file.mimetype) ||
- file.originalname.toLowerCase().endsWith('.pdf');
-
- // Log for debugging
- console.log('Upload attempt:', {
- mimetype: file.mimetype,
- filename: file.originalname,
- isValid: isValidPDF
- });
-
- if (isValidPDF) {
- cb(null, true);
- } else {
- cb(new Error(`Only PDF files are allowed. Received: ${file.mimetype} for file: ${file.originalname}`));
- }
- },
-});
-
-// Validation schemas
-const createDocumentSchema = Joi.object({
- docketEntryId: Joi.number().integer().required(),
- title: Joi.string().required().max(500),
- summary: Joi.string().optional().allow(''),
- notes: Joi.string().optional().allow(''),
- displayOrder: Joi.number().integer().min(0).optional(),
-});
-
-const updateDocumentSchema = Joi.object({
- title: Joi.string().optional().max(500),
- summary: Joi.string().optional().allow(''),
- notes: Joi.string().optional().allow(''),
- displayOrder: Joi.number().integer().min(0).optional(),
-});
-
-// Public endpoint - Download document
-router.get('/:id/download', asyncHandler(async (req: Request, res: Response) => {
- const documentId = parseInt(req.params['id'] || '');
-
- if (isNaN(documentId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid document ID',
- });
- }
-
- const document = await prisma.document.findUnique({
- where: { id: documentId },
- });
-
- if (!document) {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
-
- const filePath = document.filePath;
-
- if (!fs.existsSync(filePath)) {
- return res.status(404).json({
- success: false,
- message: 'File not found on server',
- });
- }
-
- res.setHeader('Content-Type', document.mimeType);
- res.setHeader('Content-Disposition', `inline; filename="${document.originalFilename}"`);
-
- const fileStream = fs.createReadStream(filePath);
- fileStream.pipe(res);
-}));
-
-// Admin endpoint - Upload document
-router.post('/upload', authenticateToken, upload.single('file'), asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- if (!req.file) {
- return res.status(400).json({
- success: false,
- message: 'No file uploaded',
- });
- }
-
- const { error, value } = createDocumentSchema.validate(req.body);
-
- if (error) {
- // Clean up uploaded file if validation fails
- fs.unlinkSync(req.file.path);
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
-
- const { docketEntryId, title, summary, notes, displayOrder } = value;
-
- // Verify docket entry exists
- const docketEntry = await prisma.docketEntry.findUnique({
- where: { id: docketEntryId },
- });
-
- if (!docketEntry) {
- // Clean up uploaded file
- fs.unlinkSync(req.file.path);
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found',
- });
- }
-
- // Get next display order if not provided
- let finalDisplayOrder = displayOrder;
- if (finalDisplayOrder === undefined) {
- const lastDocument = await prisma.document.findFirst({
- where: { docketEntryId },
- orderBy: { displayOrder: 'desc' },
- });
- finalDisplayOrder = lastDocument ? lastDocument.displayOrder + 1 : 0;
- }
-
- const document = await prisma.document.create({
- data: {
- docketEntryId,
- title,
- originalFilename: req.file.originalname,
- storedFilename: req.file.filename,
- filePath: req.file.path,
- fileSize: req.file.size,
- mimeType: req.file.mimetype,
- summary: summary || '',
- notes: notes || '',
- displayOrder: finalDisplayOrder,
- },
- });
-
- res.status(201).json({
- success: true,
- message: 'Document uploaded successfully',
- document,
- });
-}));
-
-// Admin endpoint - Update document metadata
-router.put('/:id', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const documentId = parseInt(req.params['id'] || '');
-
- if (isNaN(documentId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid document ID',
- });
- }
-
- const { error, value } = updateDocumentSchema.validate(req.body);
-
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
-
- try {
- const document = await prisma.document.update({
- where: { id: documentId },
- data: value,
- });
-
- res.json({
- success: true,
- message: 'Document updated successfully',
- document,
- });
- } catch (error: any) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
- throw error;
- }
-}));
-
-// Admin endpoint - Delete document
-router.delete('/:id', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const documentId = parseInt(req.params['id'] || '');
-
- if (isNaN(documentId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid document ID',
- });
- }
-
- try {
- const document = await prisma.document.findUnique({
- where: { id: documentId },
- });
-
- if (!document) {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
-
- // Delete the file from filesystem
- if (fs.existsSync(document.filePath)) {
- fs.unlinkSync(document.filePath);
- }
-
- // Delete from database
- await prisma.document.delete({
- where: { id: documentId },
- });
-
- res.json({
- success: true,
- message: 'Document deleted successfully',
- });
- } catch (error: any) {
- if (error.code === 'P2025') {
- return res.status(404).json({
- success: false,
- message: 'Document not found',
- });
- }
- throw error;
- }
-}));
-
-export default router;
diff --git a/backend/src/routes/health.ts b/backend/src/routes/health.ts
deleted file mode 100644
index 666c9b3b..00000000
--- a/backend/src/routes/health.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Router, Request, Response } from 'express';
-import { prisma } from '../index';
-import { redis } from '../index';
-
-const router = Router();
-
-router.get('/', async (req: Request, res: Response) => {
- try {
- // Check database connection
- await prisma.$queryRaw`SELECT 1`;
-
- // Check Redis connection
- await redis.ping();
-
- res.json({
- success: true,
- message: 'API is healthy',
- timestamp: new Date().toISOString(),
- services: {
- database: 'connected',
- redis: 'connected',
- },
- });
- } catch (error) {
- res.status(503).json({
- success: false,
- message: 'Service unavailable',
- timestamp: new Date().toISOString(),
- services: {
- database: 'disconnected',
- redis: 'disconnected',
- },
- });
- }
-});
-
-export default router;
diff --git a/backend/src/routes/notifications.ts b/backend/src/routes/notifications.ts
deleted file mode 100644
index c5bfd693..00000000
--- a/backend/src/routes/notifications.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { Router, Response } from 'express';
-import { authenticateToken, AuthenticatedRequest } from '../middleware/auth';
-import { emailService } from '../services/emailService';
-import { logger } from '../utils/logger';
-
-const router = Router();
-
-// Manual email notification endpoint
-router.post('/send/:docketEntryId', authenticateToken, async (req: AuthenticatedRequest, res: Response) => {
- try {
- const { docketEntryId } = req.params;
-
- // Import prisma here to avoid circular dependency
- const { prisma } = await import('../index');
-
- // Get the docket entry with details
- const docketEntry = await prisma.docketEntry.findUnique({
- where: { id: parseInt(docketEntryId) },
- include: {
- documents: {
- orderBy: { displayOrder: 'asc' }
- }
- }
- });
-
- if (!docketEntry) {
- return res.status(404).json({
- success: false,
- message: 'Docket entry not found'
- });
- }
-
- // Send the email notification using the BCC functionality
- await emailService.notifySubscribersOfNewEntry(
- docketEntry.title,
- docketEntry.date.toISOString(),
- docketEntry.summary
- );
-
- logger.info(`Manual email notification sent for docket entry: ${docketEntry.title}`, {
- docketEntryId: docketEntry.id,
- adminUser: req.user?.username
- });
-
- res.json({
- success: true,
- message: 'Email notification sent successfully to all subscribers'
- });
-
- } catch (error) {
- logger.error('Failed to send manual email notification:', error);
- res.status(500).json({
- success: false,
- message: 'Failed to send email notification'
- });
- }
-});
-
-export default router;
diff --git a/backend/src/routes/subscriptions.ts b/backend/src/routes/subscriptions.ts
deleted file mode 100644
index a4fae44b..00000000
--- a/backend/src/routes/subscriptions.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import { Router, Request, Response } from 'express';
-import { prisma } from '../index';
-import { asyncHandler } from '../middleware/errorHandler';
-import { authenticateToken, AuthenticatedRequest } from '../middleware/auth';
-import Joi from 'joi';
-import { v4 as uuidv4 } from 'uuid';
-
-const router = Router();
-
-// Validation schemas
-const subscribeSchema = Joi.object({
- email: Joi.string().email().required(),
-});
-
-// Subscribe to notifications
-router.post('/subscribe', asyncHandler(async (req: Request, res: Response) => {
- const { error, value } = subscribeSchema.validate(req.body);
-
- if (error) {
- return res.status(400).json({
- success: false,
- message: error.details[0].message,
- });
- }
-
- const { email } = value;
-
- // Check if already subscribed
- const existing = await prisma.subscription.findUnique({
- where: { email },
- });
-
- if (existing) {
- if (existing.isActive) {
- return res.status(400).json({
- success: false,
- message: 'Email is already subscribed',
- });
- } else {
- // Reactivate subscription
- await prisma.subscription.update({
- where: { email },
- data: { isActive: true },
- });
- }
- } else {
- // Create new subscription
- await prisma.subscription.create({
- data: {
- email,
- unsubscribeToken: uuidv4(),
- },
- });
- }
-
- res.json({
- success: true,
- message: 'Successfully subscribed to notifications',
- });
-}));
-
-// Admin endpoint - Get all subscribers
-router.get('/', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const subscribers = await prisma.subscription.findMany({
- orderBy: { createdAt: 'desc' },
- select: {
- id: true,
- email: true,
- isActive: true,
- createdAt: true,
- },
- });
-
- const stats = {
- total: subscribers.length,
- active: subscribers.filter(sub => sub.isActive).length,
- inactive: subscribers.filter(sub => !sub.isActive).length,
- };
-
- res.json({
- success: true,
- subscribers,
- stats,
- });
-}));
-
-// Admin endpoint - Toggle subscriber status
-router.put('/:id/toggle', authenticateToken, asyncHandler(async (req: AuthenticatedRequest, res: Response) => {
- const subscriberId = parseInt(req.params.id);
-
- if (isNaN(subscriberId)) {
- return res.status(400).json({
- success: false,
- message: 'Invalid subscriber ID',
- });
- }
-
- const subscriber = await prisma.subscription.findUnique({
- where: { id: subscriberId },
- });
-
- if (!subscriber) {
- return res.status(404).json({
- success: false,
- message: 'Subscriber not found',
- });
- }
-
- const updated = await prisma.subscription.update({
- where: { id: subscriberId },
- data: { isActive: !subscriber.isActive },
- });
-
- res.json({
- success: true,
- message: `Subscriber ${updated.isActive ? 'activated' : 'deactivated'} successfully`,
- subscriber: updated,
- });
-}));
-
-export default router;
diff --git a/backend/src/services/emailService.ts b/backend/src/services/emailService.ts
deleted file mode 100644
index d60412b8..00000000
--- a/backend/src/services/emailService.ts
+++ /dev/null
@@ -1,225 +0,0 @@
-import { logger } from '../utils/logger';
-import nodemailer from 'nodemailer';
-
-interface EmailOptions {
- to: string;
- bcc?: string[];
- subject: string;
- html: string;
-}
-
-export class EmailService {
- private static instance: EmailService;
- private transporter: nodemailer.Transporter;
-
- private constructor() {
- // Initialize Gmail SMTP transporter
- this.transporter = nodemailer.createTransport({
- host: process.env['SMTP_HOST'] || 'smtp.gmail.com',
- port: parseInt(process.env['SMTP_PORT'] || '587'),
- secure: process.env['SMTP_SECURE'] === 'true', // false for 587, true for 465
- auth: {
- user: process.env['GOOGLE_EMAIL'],
- pass: process.env['GOOGLE_APP_PASSWORD'],
- },
- });
-
- // Verify SMTP connection
- this.verifyConnection();
- }
-
- public static getInstance(): EmailService {
- if (!EmailService.instance) {
- EmailService.instance = new EmailService();
- }
- return EmailService.instance;
- }
-
- private async verifyConnection(): Promise {
- try {
- await this.transporter.verify();
- logger.info('SMTP connection verified successfully');
- } catch (error) {
- logger.error('SMTP connection failed:', error);
- }
- }
-
- async sendEmail(options: EmailOptions): Promise {
- try {
- const mailOptions: any = {
- from: {
- name: 'Court Docket System',
- address: process.env['GOOGLE_EMAIL'] || 'system@deafgain.org',
- },
- to: options.to,
- subject: options.subject,
- html: options.html,
- };
-
- // Add BCC if provided
- if (options.bcc && options.bcc.length > 0) {
- mailOptions.bcc = options.bcc;
- }
-
- const result = await this.transporter.sendMail(mailOptions);
-
- logger.info('Email sent successfully:', {
- to: options.to,
- bcc: options.bcc ? `${options.bcc.length} recipients` : 'none',
- subject: options.subject,
- messageId: result.messageId,
- });
-
- return true;
- } catch (error) {
- logger.error('Failed to send email:', error);
- return false;
- }
- }
-
- async notifySubscribersOfNewEntry(entryTitle: string, entryDate: string, entrySummary: string): Promise {
- try {
- // Get all active subscribers
- const { prisma } = await import('../index');
- const subscribers = await prisma.subscription.findMany({
- where: { isActive: true },
- });
-
- if (subscribers.length === 0) {
- logger.info('No active subscribers to notify');
- return;
- }
-
- const subject = `New Court Filing: ${entryTitle}`;
- const html = this.generateNotificationEmail(entryTitle, entryDate, entrySummary);
- const subscriberEmails = subscribers.map((subscriber: any) => subscriber.email);
-
- // Send single email with all subscribers as BCC
- const success = await this.sendEmail({
- to: process.env['GOOGLE_EMAIL'] || 'system@deafgain.org',
- bcc: subscriberEmails,
- subject,
- html,
- });
-
- if (success) {
- logger.info(`Email notification sent successfully to ${subscriberEmails.length} subscribers via BCC`);
- } else {
- logger.error(`Failed to send BCC email notification to ${subscriberEmails.length} subscribers`);
- }
- } catch (error) {
- logger.error('Failed to notify subscribers:', error);
- }
- }
-
- private generateNotificationEmail(title: string, date: string, summary: string): string {
- const formattedDate = new Date(date).toLocaleDateString('en-US', {
- year: 'numeric',
- month: 'long',
- day: 'numeric',
- });
-
- return `
-
-
-
-
-
- New Court Filing Notification
-
-
-
-
-
-
-
A new filing has been added to the court docket:
-
-
-
${formattedDate}
-
${title}
-
${summary}
-
-
-
You can view the complete docket and any associated documents by visiting the website :
-
-
- View Court Docket
-
-
-
-
-
-
- `;
- }
-}
-
-export const emailService = EmailService.getInstance();
diff --git a/backend/src/utils/logger.ts b/backend/src/utils/logger.ts
deleted file mode 100644
index e6e3f188..00000000
--- a/backend/src/utils/logger.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import winston from 'winston';
-
-const logFormat = winston.format.combine(
- winston.format.timestamp(),
- winston.format.errors({ stack: true }),
- winston.format.json()
-);
-
-export const logger = winston.createLogger({
- level: process.env.LOG_LEVEL || 'info',
- format: logFormat,
- defaultMeta: { service: 'docket-api' },
- transports: [
- new winston.transports.File({
- filename: 'logs/error.log',
- level: 'error',
- maxsize: 5242880, // 5MB
- maxFiles: 5,
- }),
- new winston.transports.File({
- filename: 'logs/combined.log',
- maxsize: 5242880, // 5MB
- maxFiles: 5,
- }),
- ],
-});
-
-// If we're not in production, log to the console as well
-if (process.env.NODE_ENV !== 'production') {
- logger.add(new winston.transports.Console({
- format: winston.format.combine(
- winston.format.colorize(),
- winston.format.simple()
- )
- }));
-}
-
-export default logger;
diff --git a/backend/tsconfig.json b/backend/tsconfig.json
deleted file mode 100644
index 1d38f77c..00000000
--- a/backend/tsconfig.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2022",
- "lib": ["ES2022"],
- "module": "CommonJS",
- "moduleResolution": "node",
- "outDir": "./dist",
- "rootDir": "./src",
- "strict": false,
- "esModuleInterop": true,
- "skipLibCheck": true,
- "forceConsistentCasingInFileNames": true,
- "resolveJsonModule": true,
- "declaration": false,
- "declarationMap": false,
- "sourceMap": true,
- "removeComments": true,
- "noImplicitAny": false,
- "noImplicitReturns": false,
- "noImplicitThis": false,
- "noUnusedLocals": false,
- "noUnusedParameters": false,
- "exactOptionalPropertyTypes": false,
- "noImplicitOverride": false,
- "noPropertyAccessFromIndexSignature": false,
- "noUncheckedIndexedAccess": false,
- "allowUnusedLabels": true,
- "allowUnreachableCode": true,
- "experimentalDecorators": true,
- "emitDecoratorMetadata": true
- },
- "include": [
- "src/**/*"
- ],
- "exclude": [
- "node_modules",
- "dist",
- "**/*.test.ts",
- "**/*.spec.ts"
- ]
-}
diff --git a/backend/uploads/2634329e-f5e0-4e31-9c52-ed84d116562e.pdf b/backend/uploads/2634329e-f5e0-4e31-9c52-ed84d116562e.pdf
deleted file mode 100644
index 81d8aa5b..00000000
Binary files a/backend/uploads/2634329e-f5e0-4e31-9c52-ed84d116562e.pdf and /dev/null differ
diff --git a/bootstrap/app.php b/bootstrap/app.php
new file mode 100644
index 00000000..5c02a599
--- /dev/null
+++ b/bootstrap/app.php
@@ -0,0 +1,23 @@
+withRouting(
+ web: __DIR__.'/../routes/web.php',
+ commands: __DIR__.'/../routes/console.php',
+ health: '/up',
+ )
+ ->withMiddleware(function (Middleware $middleware): void {
+ $middleware->web(append: [
+ \App\Http\Middleware\HandleInertiaRequests::class,
+ \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class,
+ ]);
+
+ //
+ })
+ ->withExceptions(function (Exceptions $exceptions): void {
+ //
+ })->create();
diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore
new file mode 100644
index 00000000..d6b7ef32
--- /dev/null
+++ b/bootstrap/cache/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/bootstrap/providers.php b/bootstrap/providers.php
new file mode 100644
index 00000000..38b258d1
--- /dev/null
+++ b/bootstrap/providers.php
@@ -0,0 +1,5 @@
+ mad-lawsuit-v1-export.sql
+
+# Or export as JSON for Laravel seeders
+docker compose exec postgres psql -U docket_user -d docket_db -c "COPY (SELECT * FROM docket_entries) TO STDOUT WITH CSV HEADER" > docket_entries.csv
+docker compose exec postgres psql -U docket_user -d docket_db -c "COPY (SELECT * FROM documents) TO STDOUT WITH CSV HEADER" > documents.csv
+docker compose exec postgres psql -U docket_user -d docket_db -c "COPY (SELECT * FROM subscriptions) TO STDOUT WITH CSV HEADER" > subscriptions.csv
+```
+
+### File Export
+```bash
+# Copy all PDF files
+rsync -avz chaulmark@10.4.0.205:/docker/websites/mad-lawsuit/uploads/ ./v1-uploads/
+# Total: 158MB, 63 files
+```
+
+### Import into v2.0 Laravel
+1. **Database**: Create Laravel migrations matching v1.0 schema
+2. **Seeders**: Import CSV data into Laravel database
+3. **Storage**: Copy PDFs to Laravel storage/app/public/documents/
+4. **Mapping**: Update file_path in documents table to Laravel paths
+
+This specification ensures v2.0 will be a pixel-perfect, functionally identical replacement for v1.0, just built with Laravel + Inertia + Vue instead of Next.js + Express.
diff --git a/composer.json b/composer.json
new file mode 100644
index 00000000..336521e3
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,90 @@
+{
+ "$schema": "https://getcomposer.org/schema.json",
+ "name": "laravel/laravel",
+ "type": "project",
+ "description": "The skeleton application for the Laravel framework.",
+ "keywords": ["laravel", "framework"],
+ "license": "MIT",
+ "require": {
+ "php": "^8.2",
+ "inertiajs/inertia-laravel": "^2.0",
+ "laravel/framework": "^12.0",
+ "laravel/sanctum": "^4.0",
+ "laravel/tinker": "^2.10.1",
+ "tightenco/ziggy": "^2.0"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.23",
+ "laravel/breeze": "^2.3",
+ "laravel/pail": "^1.2.2",
+ "laravel/pint": "^1.24",
+ "laravel/sail": "^1.41",
+ "mockery/mockery": "^1.6",
+ "nunomaduro/collision": "^8.6",
+ "phpunit/phpunit": "^11.5.3"
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Factories\\": "database/factories/",
+ "Database\\Seeders\\": "database/seeders/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "setup": [
+ "composer install",
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
+ "@php artisan key:generate",
+ "@php artisan migrate --force",
+ "npm install",
+ "npm run build"
+ ],
+ "dev": [
+ "Composer\\Config::disableProcessTimeout",
+ "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite --kill-others"
+ ],
+ "test": [
+ "@php artisan config:clear --ansi",
+ "@php artisan test"
+ ],
+ "post-autoload-dump": [
+ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan package:discover --ansi"
+ ],
+ "post-update-cmd": [
+ "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
+ ],
+ "post-root-package-install": [
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+ ],
+ "post-create-project-cmd": [
+ "@php artisan key:generate --ansi",
+ "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
+ "@php artisan migrate --graceful --ansi"
+ ],
+ "pre-package-uninstall": [
+ "Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
+ ]
+ },
+ "extra": {
+ "laravel": {
+ "dont-discover": []
+ }
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true,
+ "allow-plugins": {
+ "pestphp/pest-plugin": true,
+ "php-http/discovery": true
+ }
+ },
+ "minimum-stability": "stable",
+ "prefer-stable": true
+}
diff --git a/config/app.php b/config/app.php
new file mode 100644
index 00000000..423eed59
--- /dev/null
+++ b/config/app.php
@@ -0,0 +1,126 @@
+ env('APP_NAME', 'Laravel'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Environment
+ |--------------------------------------------------------------------------
+ |
+ | This value determines the "environment" your application is currently
+ | running in. This may determine how you prefer to configure various
+ | services the application utilizes. Set this in your ".env" file.
+ |
+ */
+
+ 'env' => env('APP_ENV', 'production'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Debug Mode
+ |--------------------------------------------------------------------------
+ |
+ | When your application is in debug mode, detailed error messages with
+ | stack traces will be shown on every error that occurs within your
+ | application. If disabled, a simple generic error page is shown.
+ |
+ */
+
+ 'debug' => (bool) env('APP_DEBUG', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application URL
+ |--------------------------------------------------------------------------
+ |
+ | This URL is used by the console to properly generate URLs when using
+ | the Artisan command line tool. You should set this to the root of
+ | the application so that it's available within Artisan commands.
+ |
+ */
+
+ 'url' => env('APP_URL', 'http://localhost'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Timezone
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the default timezone for your application, which
+ | will be used by the PHP date and date-time functions. The timezone
+ | is set to "UTC" by default as it is suitable for most use cases.
+ |
+ */
+
+ 'timezone' => 'UTC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Locale Configuration
+ |--------------------------------------------------------------------------
+ |
+ | The application locale determines the default locale that will be used
+ | by Laravel's translation / localization methods. This option can be
+ | set to any locale for which you plan to have translation strings.
+ |
+ */
+
+ 'locale' => env('APP_LOCALE', 'en'),
+
+ 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
+
+ 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Encryption Key
+ |--------------------------------------------------------------------------
+ |
+ | This key is utilized by Laravel's encryption services and should be set
+ | to a random, 32 character string to ensure that all encrypted values
+ | are secure. You should do this prior to deploying the application.
+ |
+ */
+
+ 'cipher' => 'AES-256-CBC',
+
+ 'key' => env('APP_KEY'),
+
+ 'previous_keys' => [
+ ...array_filter(
+ explode(',', (string) env('APP_PREVIOUS_KEYS', ''))
+ ),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Maintenance Mode Driver
+ |--------------------------------------------------------------------------
+ |
+ | These configuration options determine the driver used to determine and
+ | manage Laravel's "maintenance mode" status. The "cache" driver will
+ | allow maintenance mode to be controlled across multiple machines.
+ |
+ | Supported drivers: "file", "cache"
+ |
+ */
+
+ 'maintenance' => [
+ 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'),
+ 'store' => env('APP_MAINTENANCE_STORE', 'database'),
+ ],
+
+];
diff --git a/config/auth.php b/config/auth.php
new file mode 100644
index 00000000..7d1eb0de
--- /dev/null
+++ b/config/auth.php
@@ -0,0 +1,115 @@
+ [
+ 'guard' => env('AUTH_GUARD', 'web'),
+ 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Guards
+ |--------------------------------------------------------------------------
+ |
+ | Next, you may define every authentication guard for your application.
+ | Of course, a great default configuration has been defined for you
+ | which utilizes session storage plus the Eloquent user provider.
+ |
+ | All authentication guards have a user provider, which defines how the
+ | users are actually retrieved out of your database or other storage
+ | system used by the application. Typically, Eloquent is utilized.
+ |
+ | Supported: "session"
+ |
+ */
+
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User Providers
+ |--------------------------------------------------------------------------
+ |
+ | All authentication guards have a user provider, which defines how the
+ | users are actually retrieved out of your database or other storage
+ | system used by the application. Typically, Eloquent is utilized.
+ |
+ | If you have multiple user tables or models you may configure multiple
+ | providers to represent the model / table. These providers may then
+ | be assigned to any extra authentication guards you have defined.
+ |
+ | Supported: "database", "eloquent"
+ |
+ */
+
+ 'providers' => [
+ 'users' => [
+ 'driver' => 'eloquent',
+ 'model' => env('AUTH_MODEL', App\Models\User::class),
+ ],
+
+ // 'users' => [
+ // 'driver' => 'database',
+ // 'table' => 'users',
+ // ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Resetting Passwords
+ |--------------------------------------------------------------------------
+ |
+ | These configuration options specify the behavior of Laravel's password
+ | reset functionality, including the table utilized for token storage
+ | and the user provider that is invoked to actually retrieve users.
+ |
+ | The expiry time is the number of minutes that each reset token will be
+ | considered valid. This security feature keeps tokens short-lived so
+ | they have less time to be guessed. You may change this as needed.
+ |
+ | The throttle setting is the number of seconds a user must wait before
+ | generating more password reset tokens. This prevents the user from
+ | quickly generating a very large amount of password reset tokens.
+ |
+ */
+
+ 'passwords' => [
+ 'users' => [
+ 'provider' => 'users',
+ 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'),
+ 'expire' => 60,
+ 'throttle' => 60,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the number of seconds before a password confirmation
+ | window expires and users are asked to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ |
+ */
+
+ 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800),
+
+];
diff --git a/config/cache.php b/config/cache.php
new file mode 100644
index 00000000..b32aead2
--- /dev/null
+++ b/config/cache.php
@@ -0,0 +1,117 @@
+ env('CACHE_STORE', 'database'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Stores
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the cache "stores" for your application as
+ | well as their drivers. You may even define multiple stores for the
+ | same cache driver to group types of items stored in your caches.
+ |
+ | Supported drivers: "array", "database", "file", "memcached",
+ | "redis", "dynamodb", "octane",
+ | "failover", "null"
+ |
+ */
+
+ 'stores' => [
+
+ 'array' => [
+ 'driver' => 'array',
+ 'serialize' => false,
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'connection' => env('DB_CACHE_CONNECTION'),
+ 'table' => env('DB_CACHE_TABLE', 'cache'),
+ 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'),
+ 'lock_table' => env('DB_CACHE_LOCK_TABLE'),
+ ],
+
+ 'file' => [
+ 'driver' => 'file',
+ 'path' => storage_path('framework/cache/data'),
+ 'lock_path' => storage_path('framework/cache/data'),
+ ],
+
+ 'memcached' => [
+ 'driver' => 'memcached',
+ 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+ 'sasl' => [
+ env('MEMCACHED_USERNAME'),
+ env('MEMCACHED_PASSWORD'),
+ ],
+ 'options' => [
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ ],
+ 'servers' => [
+ [
+ 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+ 'port' => env('MEMCACHED_PORT', 11211),
+ 'weight' => 100,
+ ],
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
+ 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
+ ],
+
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'endpoint' => env('DYNAMODB_ENDPOINT'),
+ ],
+
+ 'octane' => [
+ 'driver' => 'octane',
+ ],
+
+ 'failover' => [
+ 'driver' => 'failover',
+ 'stores' => [
+ 'database',
+ 'array',
+ ],
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Key Prefix
+ |--------------------------------------------------------------------------
+ |
+ | When utilizing the APC, database, memcached, Redis, and DynamoDB cache
+ | stores, there might be other applications using the same cache. For
+ | that reason, you may prefix every cache key to avoid collisions.
+ |
+ */
+
+ 'prefix' => env('CACHE_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-cache-'),
+
+];
diff --git a/config/database.php b/config/database.php
new file mode 100644
index 00000000..c57fa638
--- /dev/null
+++ b/config/database.php
@@ -0,0 +1,183 @@
+ env('DB_CONNECTION', 'sqlite'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Database Connections
+ |--------------------------------------------------------------------------
+ |
+ | Below are all of the database connections defined for your application.
+ | An example configuration is provided for each database system which
+ | is supported by Laravel. You're free to add / remove connections.
+ |
+ */
+
+ 'connections' => [
+
+ 'sqlite' => [
+ 'driver' => 'sqlite',
+ 'url' => env('DB_URL'),
+ 'database' => env('DB_DATABASE', database_path('database.sqlite')),
+ 'prefix' => '',
+ 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
+ 'busy_timeout' => null,
+ 'journal_mode' => null,
+ 'synchronous' => null,
+ 'transaction_mode' => 'DEFERRED',
+ ],
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'url' => env('DB_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => env('DB_CHARSET', 'utf8mb4'),
+ 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ (PHP_VERSION_ID >= 80500 ? \Pdo\Mysql::ATTR_SSL_CA : \PDO::MYSQL_ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+
+ 'mariadb' => [
+ 'driver' => 'mariadb',
+ 'url' => env('DB_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => env('DB_CHARSET', 'utf8mb4'),
+ 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ (PHP_VERSION_ID >= 80500 ? \Pdo\Mysql::ATTR_SSL_CA : \PDO::MYSQL_ATTR_SSL_CA) => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'url' => env('DB_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '5432'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => env('DB_CHARSET', 'utf8'),
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'search_path' => 'public',
+ 'sslmode' => 'prefer',
+ ],
+
+ 'sqlsrv' => [
+ 'driver' => 'sqlsrv',
+ 'url' => env('DB_URL'),
+ 'host' => env('DB_HOST', 'localhost'),
+ 'port' => env('DB_PORT', '1433'),
+ 'database' => env('DB_DATABASE', 'laravel'),
+ 'username' => env('DB_USERNAME', 'root'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => env('DB_CHARSET', 'utf8'),
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ // 'encrypt' => env('DB_ENCRYPT', 'yes'),
+ // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Migration Repository Table
+ |--------------------------------------------------------------------------
+ |
+ | This table keeps track of all the migrations that have already run for
+ | your application. Using this information, we can determine which of
+ | the migrations on disk haven't actually been run on the database.
+ |
+ */
+
+ 'migrations' => [
+ 'table' => 'migrations',
+ 'update_date_on_publish' => true,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Redis Databases
+ |--------------------------------------------------------------------------
+ |
+ | Redis is an open source, fast, and advanced key-value store that also
+ | provides a richer body of commands than a typical key-value system
+ | such as Memcached. You may define your connection settings here.
+ |
+ */
+
+ 'redis' => [
+
+ 'client' => env('REDIS_CLIENT', 'phpredis'),
+
+ 'options' => [
+ 'cluster' => env('REDIS_CLUSTER', 'redis'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug((string) env('APP_NAME', 'laravel')).'-database-'),
+ 'persistent' => env('REDIS_PERSISTENT', false),
+ ],
+
+ 'default' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'username' => env('REDIS_USERNAME'),
+ 'password' => env('REDIS_PASSWORD'),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_DB', '0'),
+ 'max_retries' => env('REDIS_MAX_RETRIES', 3),
+ 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'),
+ 'backoff_base' => env('REDIS_BACKOFF_BASE', 100),
+ 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000),
+ ],
+
+ 'cache' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'username' => env('REDIS_USERNAME'),
+ 'password' => env('REDIS_PASSWORD'),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_CACHE_DB', '1'),
+ 'max_retries' => env('REDIS_MAX_RETRIES', 3),
+ 'backoff_algorithm' => env('REDIS_BACKOFF_ALGORITHM', 'decorrelated_jitter'),
+ 'backoff_base' => env('REDIS_BACKOFF_BASE', 100),
+ 'backoff_cap' => env('REDIS_BACKOFF_CAP', 1000),
+ ],
+
+ ],
+
+];
diff --git a/config/filesystems.php b/config/filesystems.php
new file mode 100644
index 00000000..3d671bd9
--- /dev/null
+++ b/config/filesystems.php
@@ -0,0 +1,80 @@
+ env('FILESYSTEM_DISK', 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Filesystem Disks
+ |--------------------------------------------------------------------------
+ |
+ | Below you may configure as many filesystem disks as necessary, and you
+ | may even configure multiple disks for the same driver. Examples for
+ | most supported storage drivers are configured here for reference.
+ |
+ | Supported drivers: "local", "ftp", "sftp", "s3"
+ |
+ */
+
+ 'disks' => [
+
+ 'local' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/private'),
+ 'serve' => true,
+ 'throw' => false,
+ 'report' => false,
+ ],
+
+ 'public' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL').'/storage',
+ 'visibility' => 'public',
+ 'throw' => false,
+ 'report' => false,
+ ],
+
+ 's3' => [
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'url' => env('AWS_URL'),
+ 'endpoint' => env('AWS_ENDPOINT'),
+ 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
+ 'throw' => false,
+ 'report' => false,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Symbolic Links
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the symbolic links that will be created when the
+ | `storage:link` Artisan command is executed. The array keys should be
+ | the locations of the links and the values should be their targets.
+ |
+ */
+
+ 'links' => [
+ public_path('storage') => storage_path('app/public'),
+ ],
+
+];
diff --git a/config/logging.php b/config/logging.php
new file mode 100644
index 00000000..9e998a49
--- /dev/null
+++ b/config/logging.php
@@ -0,0 +1,132 @@
+ env('LOG_CHANNEL', 'stack'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Deprecations Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | This option controls the log channel that should be used to log warnings
+ | regarding deprecated PHP and library features. This allows you to get
+ | your application ready for upcoming major versions of dependencies.
+ |
+ */
+
+ 'deprecations' => [
+ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'trace' => env('LOG_DEPRECATIONS_TRACE', false),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Channels
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the log channels for your application. Laravel
+ | utilizes the Monolog PHP logging library, which includes a variety
+ | of powerful log handlers and formatters that you're free to use.
+ |
+ | Available drivers: "single", "daily", "slack", "syslog",
+ | "errorlog", "monolog", "custom", "stack"
+ |
+ */
+
+ 'channels' => [
+
+ 'stack' => [
+ 'driver' => 'stack',
+ 'channels' => explode(',', (string) env('LOG_STACK', 'single')),
+ 'ignore_exceptions' => false,
+ ],
+
+ 'single' => [
+ 'driver' => 'single',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'daily' => [
+ 'driver' => 'daily',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'days' => env('LOG_DAILY_DAYS', 14),
+ 'replace_placeholders' => true,
+ ],
+
+ 'slack' => [
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'),
+ 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'),
+ 'level' => env('LOG_LEVEL', 'critical'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'papertrail' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
+ 'handler_with' => [
+ 'host' => env('PAPERTRAIL_URL'),
+ 'port' => env('PAPERTRAIL_PORT'),
+ 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
+ ],
+ 'processors' => [PsrLogMessageProcessor::class],
+ ],
+
+ 'stderr' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => StreamHandler::class,
+ 'handler_with' => [
+ 'stream' => 'php://stderr',
+ ],
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
+ 'processors' => [PsrLogMessageProcessor::class],
+ ],
+
+ 'syslog' => [
+ 'driver' => 'syslog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER),
+ 'replace_placeholders' => true,
+ ],
+
+ 'errorlog' => [
+ 'driver' => 'errorlog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'null' => [
+ 'driver' => 'monolog',
+ 'handler' => NullHandler::class,
+ ],
+
+ 'emergency' => [
+ 'path' => storage_path('logs/laravel.log'),
+ ],
+
+ ],
+
+];
diff --git a/config/mail.php b/config/mail.php
new file mode 100644
index 00000000..522b284b
--- /dev/null
+++ b/config/mail.php
@@ -0,0 +1,118 @@
+ env('MAIL_MAILER', 'log'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Mailer Configurations
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure all of the mailers used by your application plus
+ | their respective settings. Several examples have been configured for
+ | you and you are free to add your own as your application requires.
+ |
+ | Laravel supports a variety of mail "transport" drivers that can be used
+ | when delivering an email. You may specify which one you're using for
+ | your mailers below. You may also add additional mailers if needed.
+ |
+ | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
+ | "postmark", "resend", "log", "array",
+ | "failover", "roundrobin"
+ |
+ */
+
+ 'mailers' => [
+
+ 'smtp' => [
+ 'transport' => 'smtp',
+ 'scheme' => env('MAIL_SCHEME'),
+ 'url' => env('MAIL_URL'),
+ 'host' => env('MAIL_HOST', '127.0.0.1'),
+ 'port' => env('MAIL_PORT', 2525),
+ 'username' => env('MAIL_USERNAME'),
+ 'password' => env('MAIL_PASSWORD'),
+ 'timeout' => null,
+ 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url((string) env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
+ ],
+
+ 'ses' => [
+ 'transport' => 'ses',
+ ],
+
+ 'postmark' => [
+ 'transport' => 'postmark',
+ // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'),
+ // 'client' => [
+ // 'timeout' => 5,
+ // ],
+ ],
+
+ 'resend' => [
+ 'transport' => 'resend',
+ ],
+
+ 'sendmail' => [
+ 'transport' => 'sendmail',
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
+ ],
+
+ 'log' => [
+ 'transport' => 'log',
+ 'channel' => env('MAIL_LOG_CHANNEL'),
+ ],
+
+ 'array' => [
+ 'transport' => 'array',
+ ],
+
+ 'failover' => [
+ 'transport' => 'failover',
+ 'mailers' => [
+ 'smtp',
+ 'log',
+ ],
+ 'retry_after' => 60,
+ ],
+
+ 'roundrobin' => [
+ 'transport' => 'roundrobin',
+ 'mailers' => [
+ 'ses',
+ 'postmark',
+ ],
+ 'retry_after' => 60,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Global "From" Address
+ |--------------------------------------------------------------------------
+ |
+ | You may wish for all emails sent by your application to be sent from
+ | the same address. Here you may specify a name and address that is
+ | used globally for all emails that are sent by your application.
+ |
+ */
+
+ 'from' => [
+ 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
+ 'name' => env('MAIL_FROM_NAME', 'Example'),
+ ],
+
+];
diff --git a/config/queue.php b/config/queue.php
new file mode 100644
index 00000000..79c2c0a2
--- /dev/null
+++ b/config/queue.php
@@ -0,0 +1,129 @@
+ env('QUEUE_CONNECTION', 'database'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the connection options for every queue backend
+ | used by your application. An example configuration is provided for
+ | each backend supported by Laravel. You're also free to add more.
+ |
+ | Drivers: "sync", "database", "beanstalkd", "sqs", "redis",
+ | "deferred", "background", "failover", "null"
+ |
+ */
+
+ 'connections' => [
+
+ 'sync' => [
+ 'driver' => 'sync',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'connection' => env('DB_QUEUE_CONNECTION'),
+ 'table' => env('DB_QUEUE_TABLE', 'jobs'),
+ 'queue' => env('DB_QUEUE', 'default'),
+ 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90),
+ 'after_commit' => false,
+ ],
+
+ 'beanstalkd' => [
+ 'driver' => 'beanstalkd',
+ 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'),
+ 'queue' => env('BEANSTALKD_QUEUE', 'default'),
+ 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90),
+ 'block_for' => 0,
+ 'after_commit' => false,
+ ],
+
+ 'sqs' => [
+ 'driver' => 'sqs',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+ 'queue' => env('SQS_QUEUE', 'default'),
+ 'suffix' => env('SQS_SUFFIX'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'after_commit' => false,
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'),
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90),
+ 'block_for' => null,
+ 'after_commit' => false,
+ ],
+
+ 'deferred' => [
+ 'driver' => 'deferred',
+ ],
+
+ 'background' => [
+ 'driver' => 'background',
+ ],
+
+ 'failover' => [
+ 'driver' => 'failover',
+ 'connections' => [
+ 'database',
+ 'deferred',
+ ],
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Job Batching
+ |--------------------------------------------------------------------------
+ |
+ | The following options configure the database and table that store job
+ | batching information. These options can be updated to any database
+ | connection and table which has been defined by your application.
+ |
+ */
+
+ 'batching' => [
+ 'database' => env('DB_CONNECTION', 'sqlite'),
+ 'table' => 'job_batches',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Failed Queue Jobs
+ |--------------------------------------------------------------------------
+ |
+ | These options configure the behavior of failed queue job logging so you
+ | can control how and where failed jobs are stored. Laravel ships with
+ | support for storing failed jobs in a simple file or in a database.
+ |
+ | Supported drivers: "database-uuids", "dynamodb", "file", "null"
+ |
+ */
+
+ 'failed' => [
+ 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
+ 'database' => env('DB_CONNECTION', 'sqlite'),
+ 'table' => 'failed_jobs',
+ ],
+
+];
diff --git a/config/services.php b/config/services.php
new file mode 100644
index 00000000..6a90eb83
--- /dev/null
+++ b/config/services.php
@@ -0,0 +1,38 @@
+ [
+ 'key' => env('POSTMARK_API_KEY'),
+ ],
+
+ 'resend' => [
+ 'key' => env('RESEND_API_KEY'),
+ ],
+
+ 'ses' => [
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ ],
+
+ 'slack' => [
+ 'notifications' => [
+ 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
+ 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'),
+ ],
+ ],
+
+];
diff --git a/config/session.php b/config/session.php
new file mode 100644
index 00000000..5b541b75
--- /dev/null
+++ b/config/session.php
@@ -0,0 +1,217 @@
+ env('SESSION_DRIVER', 'database'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Lifetime
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the number of minutes that you wish the session
+ | to be allowed to remain idle before it expires. If you want them
+ | to expire immediately when the browser is closed then you may
+ | indicate that via the expire_on_close configuration option.
+ |
+ */
+
+ 'lifetime' => (int) env('SESSION_LIFETIME', 120),
+
+ 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Encryption
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to easily specify that all of your session data
+ | should be encrypted before it's stored. All encryption is performed
+ | automatically by Laravel and you may use the session like normal.
+ |
+ */
+
+ 'encrypt' => env('SESSION_ENCRYPT', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session File Location
+ |--------------------------------------------------------------------------
+ |
+ | When utilizing the "file" session driver, the session files are placed
+ | on disk. The default storage location is defined here; however, you
+ | are free to provide another location where they should be stored.
+ |
+ */
+
+ 'files' => storage_path('framework/sessions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Connection
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" or "redis" session drivers, you may specify a
+ | connection that should be used to manage these sessions. This should
+ | correspond to a connection in your database configuration options.
+ |
+ */
+
+ 'connection' => env('SESSION_CONNECTION'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Table
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" session driver, you may specify the table to
+ | be used to store sessions. Of course, a sensible default is defined
+ | for you; however, you're welcome to change this to another table.
+ |
+ */
+
+ 'table' => env('SESSION_TABLE', 'sessions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cache Store
+ |--------------------------------------------------------------------------
+ |
+ | When using one of the framework's cache driven session backends, you may
+ | define the cache store which should be used to store the session data
+ | between requests. This must match one of your defined cache stores.
+ |
+ | Affects: "dynamodb", "memcached", "redis"
+ |
+ */
+
+ 'store' => env('SESSION_STORE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Sweeping Lottery
+ |--------------------------------------------------------------------------
+ |
+ | Some session drivers must manually sweep their storage location to get
+ | rid of old sessions from storage. Here are the chances that it will
+ | happen on a given request. By default, the odds are 2 out of 100.
+ |
+ */
+
+ 'lottery' => [2, 100],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Name
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the name of the session cookie that is created by
+ | the framework. Typically, you should not need to change this value
+ | since doing so does not grant a meaningful security improvement.
+ |
+ */
+
+ 'cookie' => env(
+ 'SESSION_COOKIE',
+ Str::slug((string) env('APP_NAME', 'laravel')).'-session'
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Path
+ |--------------------------------------------------------------------------
+ |
+ | The session cookie path determines the path for which the cookie will
+ | be regarded as available. Typically, this will be the root path of
+ | your application, but you're free to change this when necessary.
+ |
+ */
+
+ 'path' => env('SESSION_PATH', '/'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Domain
+ |--------------------------------------------------------------------------
+ |
+ | This value determines the domain and subdomains the session cookie is
+ | available to. By default, the cookie will be available to the root
+ | domain without subdomains. Typically, this shouldn't be changed.
+ |
+ */
+
+ 'domain' => env('SESSION_DOMAIN'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTPS Only Cookies
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to true, session cookies will only be sent back
+ | to the server if the browser has a HTTPS connection. This will keep
+ | the cookie from being sent to you when it can't be done securely.
+ |
+ */
+
+ 'secure' => env('SESSION_SECURE_COOKIE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTP Access Only
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will prevent JavaScript from accessing the
+ | value of the cookie and the cookie will only be accessible through
+ | the HTTP protocol. It's unlikely you should disable this option.
+ |
+ */
+
+ 'http_only' => env('SESSION_HTTP_ONLY', true),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Same-Site Cookies
+ |--------------------------------------------------------------------------
+ |
+ | This option determines how your cookies behave when cross-site requests
+ | take place, and can be used to mitigate CSRF attacks. By default, we
+ | will set this value to "lax" to permit secure cross-site requests.
+ |
+ | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
+ |
+ | Supported: "lax", "strict", "none", null
+ |
+ */
+
+ 'same_site' => env('SESSION_SAME_SITE', 'lax'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Partitioned Cookies
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will tie the cookie to the top-level site for
+ | a cross-site context. Partitioned cookies are accepted by the browser
+ | when flagged "secure" and the Same-Site attribute is set to "none".
+ |
+ */
+
+ 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false),
+
+];
diff --git a/database/.gitignore b/database/.gitignore
new file mode 100644
index 00000000..9b19b93c
--- /dev/null
+++ b/database/.gitignore
@@ -0,0 +1 @@
+*.sqlite*
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
new file mode 100644
index 00000000..584104c9
--- /dev/null
+++ b/database/factories/UserFactory.php
@@ -0,0 +1,44 @@
+
+ */
+class UserFactory extends Factory
+{
+ /**
+ * The current password being used by the factory.
+ */
+ protected static ?string $password;
+
+ /**
+ * Define the model's default state.
+ *
+ * @return array
+ */
+ public function definition(): array
+ {
+ return [
+ 'name' => fake()->name(),
+ 'email' => fake()->unique()->safeEmail(),
+ 'email_verified_at' => now(),
+ 'password' => static::$password ??= Hash::make('password'),
+ 'remember_token' => Str::random(10),
+ ];
+ }
+
+ /**
+ * Indicate that the model's email address should be unverified.
+ */
+ public function unverified(): static
+ {
+ return $this->state(fn (array $attributes) => [
+ 'email_verified_at' => null,
+ ]);
+ }
+}
diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php
new file mode 100644
index 00000000..05fb5d9e
--- /dev/null
+++ b/database/migrations/0001_01_01_000000_create_users_table.php
@@ -0,0 +1,49 @@
+id();
+ $table->string('name');
+ $table->string('email')->unique();
+ $table->timestamp('email_verified_at')->nullable();
+ $table->string('password');
+ $table->rememberToken();
+ $table->timestamps();
+ });
+
+ Schema::create('password_reset_tokens', function (Blueprint $table) {
+ $table->string('email')->primary();
+ $table->string('token');
+ $table->timestamp('created_at')->nullable();
+ });
+
+ Schema::create('sessions', function (Blueprint $table) {
+ $table->string('id')->primary();
+ $table->foreignId('user_id')->nullable()->index();
+ $table->string('ip_address', 45)->nullable();
+ $table->text('user_agent')->nullable();
+ $table->longText('payload');
+ $table->integer('last_activity')->index();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('users');
+ Schema::dropIfExists('password_reset_tokens');
+ Schema::dropIfExists('sessions');
+ }
+};
diff --git a/database/migrations/0001_01_01_000001_create_cache_table.php b/database/migrations/0001_01_01_000001_create_cache_table.php
new file mode 100644
index 00000000..b9c106be
--- /dev/null
+++ b/database/migrations/0001_01_01_000001_create_cache_table.php
@@ -0,0 +1,35 @@
+string('key')->primary();
+ $table->mediumText('value');
+ $table->integer('expiration');
+ });
+
+ Schema::create('cache_locks', function (Blueprint $table) {
+ $table->string('key')->primary();
+ $table->string('owner');
+ $table->integer('expiration');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('cache');
+ Schema::dropIfExists('cache_locks');
+ }
+};
diff --git a/database/migrations/0001_01_01_000002_create_jobs_table.php b/database/migrations/0001_01_01_000002_create_jobs_table.php
new file mode 100644
index 00000000..425e7058
--- /dev/null
+++ b/database/migrations/0001_01_01_000002_create_jobs_table.php
@@ -0,0 +1,57 @@
+id();
+ $table->string('queue')->index();
+ $table->longText('payload');
+ $table->unsignedTinyInteger('attempts');
+ $table->unsignedInteger('reserved_at')->nullable();
+ $table->unsignedInteger('available_at');
+ $table->unsignedInteger('created_at');
+ });
+
+ Schema::create('job_batches', function (Blueprint $table) {
+ $table->string('id')->primary();
+ $table->string('name');
+ $table->integer('total_jobs');
+ $table->integer('pending_jobs');
+ $table->integer('failed_jobs');
+ $table->longText('failed_job_ids');
+ $table->mediumText('options')->nullable();
+ $table->integer('cancelled_at')->nullable();
+ $table->integer('created_at');
+ $table->integer('finished_at')->nullable();
+ });
+
+ Schema::create('failed_jobs', function (Blueprint $table) {
+ $table->id();
+ $table->string('uuid')->unique();
+ $table->text('connection');
+ $table->text('queue');
+ $table->longText('payload');
+ $table->longText('exception');
+ $table->timestamp('failed_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('jobs');
+ Schema::dropIfExists('job_batches');
+ Schema::dropIfExists('failed_jobs');
+ }
+};
diff --git a/database/migrations/2025_12_17_223117_create_docket_entries_table.php b/database/migrations/2025_12_17_223117_create_docket_entries_table.php
new file mode 100644
index 00000000..d94f2083
--- /dev/null
+++ b/database/migrations/2025_12_17_223117_create_docket_entries_table.php
@@ -0,0 +1,34 @@
+id();
+ $table->date('date');
+ $table->string('title', 500);
+ $table->text('summary');
+ $table->text('notes')->nullable();
+ $table->timestamps();
+
+ // Index for sorting by date
+ $table->index('date');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('docket_entries');
+ }
+};
diff --git a/database/migrations/2025_12_17_223138_create_documents_table.php b/database/migrations/2025_12_17_223138_create_documents_table.php
new file mode 100644
index 00000000..04bb6a71
--- /dev/null
+++ b/database/migrations/2025_12_17_223138_create_documents_table.php
@@ -0,0 +1,40 @@
+id();
+ $table->foreignId('docket_entry_id')->constrained('docket_entries')->onDelete('cascade');
+ $table->string('title');
+ $table->string('original_filename');
+ $table->string('stored_filename');
+ $table->string('file_path');
+ $table->bigInteger('file_size');
+ $table->string('mime_type');
+ $table->text('summary')->nullable();
+ $table->text('notes')->nullable();
+ $table->integer('display_order')->default(0);
+ $table->timestamps();
+
+ // Index for foreign key
+ $table->index('docket_entry_id');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('documents');
+ }
+};
diff --git a/database/migrations/2025_12_17_223201_create_subscriptions_table.php b/database/migrations/2025_12_17_223201_create_subscriptions_table.php
new file mode 100644
index 00000000..a4557a86
--- /dev/null
+++ b/database/migrations/2025_12_17_223201_create_subscriptions_table.php
@@ -0,0 +1,34 @@
+id();
+ $table->string('email')->unique();
+ $table->boolean('is_active')->default(true);
+ $table->string('unsubscribe_token', 64)->unique();
+ $table->timestamps();
+
+ // Index for email lookups
+ $table->index('email');
+ $table->index('is_active');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('subscriptions');
+ }
+};
diff --git a/database/migrations/2025_12_17_223224_create_admin_users_table.php b/database/migrations/2025_12_17_223224_create_admin_users_table.php
new file mode 100644
index 00000000..af16db50
--- /dev/null
+++ b/database/migrations/2025_12_17_223224_create_admin_users_table.php
@@ -0,0 +1,32 @@
+id();
+ $table->string('username')->unique();
+ $table->string('password');
+ $table->timestamps();
+
+ // Index for username lookups
+ $table->index('username');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('admin_users');
+ }
+};
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
new file mode 100644
index 00000000..6b901f8b
--- /dev/null
+++ b/database/seeders/DatabaseSeeder.php
@@ -0,0 +1,25 @@
+create();
+
+ User::factory()->create([
+ 'name' => 'Test User',
+ 'email' => 'test@example.com',
+ ]);
+ }
+}
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index c6515780..00000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-services:
- frontend:
- image: mad-lawsuit-frontend:latest
- build:
- context: ./frontend
- dockerfile: Dockerfile
- pull_policy: missing
- ports:
- - "806:806"
- environment:
- - NODE_ENV=production
- env_file:
- - ./frontend/.env
- depends_on:
- - backend
- networks:
- - app-network
- - caddy_network
-
- backend:
- image: mad-lawsuit-backend:latest
- build:
- context: ./backend
- dockerfile: Dockerfile
- pull_policy: missing
- ports:
- - "901:3001"
- environment:
- - NODE_ENV=production
- - DATABASE_URL=postgresql://docket_user:docket_pass@postgres:5432/docket_db
- - REDIS_URL=redis://redis:6379
- - UPLOAD_DIR=/app/uploads
- - MAX_FILE_SIZE=262144000
- env_file:
- - ./backend/.env
- volumes:
- - /docker/websites/mad-lawsuit/uploads:/app/uploads
- depends_on:
- - postgres
- - redis
- networks:
- - app-network
- - caddy_network
-
- postgres:
- image: postgres:17.5
- environment:
- - POSTGRES_DB=docket_db
- - POSTGRES_USER=docket_user
- - POSTGRES_PASSWORD=docket_pass
- volumes:
- - /docker/websites/mad-lawsuit/postgres_data:/var/lib/postgresql/data
- networks:
- - app-network
-
- redis:
- image: redis:7-alpine
- volumes:
- - /docker/websites/mad-lawsuit/redis_data:/data
- networks:
- - app-network
-
-networks:
- app-network:
- driver: bridge
- caddy_network:
- external: true
diff --git a/frontend/.env b/frontend/.env
deleted file mode 100644
index 3472fc6c..00000000
--- a/frontend/.env
+++ /dev/null
@@ -1,3 +0,0 @@
-# Frontend Environment Variables
-NEXT_PUBLIC_API_URL=http://localhost:3001/api
-NEXT_PUBLIC_SITE_URL=http://localhost:3000
diff --git a/frontend/.next/build-manifest.json b/frontend/.next/build-manifest.json
deleted file mode 100644
index f3f6fd54..00000000
--- a/frontend/.next/build-manifest.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "pages": {
- "/_app": []
- },
- "devFiles": [],
- "polyfillFiles": [
- "static/chunks/a6dad97d9634a72d.js"
- ],
- "lowPriorityFiles": [
- "static/IhDNxcTcDN9wl40QfzrVQ/_ssgManifest.js",
- "static/IhDNxcTcDN9wl40QfzrVQ/_buildManifest.js"
- ],
- "rootMainFiles": [
- "static/chunks/0aacfe628668079c.js",
- "static/chunks/ffd00f83382900e5.js",
- "static/chunks/d4033b479c28e660.js",
- "static/chunks/2744bdefb7be06e1.js",
- "static/chunks/turbopack-da96ac0b9a9ff463.js"
- ]
-}
\ No newline at end of file
diff --git a/frontend/.next/cache/.rscinfo b/frontend/.next/cache/.rscinfo
deleted file mode 100644
index 7bba921d..00000000
--- a/frontend/.next/cache/.rscinfo
+++ /dev/null
@@ -1 +0,0 @@
-{"encryption.key":"3mIRZTXU3EFfft5a2Lo6/efgZsGTQSZ+RRddDLs94XQ=","encryption.expire_at":1766964627413}
\ No newline at end of file
diff --git a/frontend/.next/cache/webpack/client-development-fallback/0.pack.gz b/frontend/.next/cache/webpack/client-development-fallback/0.pack.gz
deleted file mode 100644
index a2058c0e..00000000
Binary files a/frontend/.next/cache/webpack/client-development-fallback/0.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development-fallback/index.pack.gz b/frontend/.next/cache/webpack/client-development-fallback/index.pack.gz
deleted file mode 100644
index 488871cb..00000000
Binary files a/frontend/.next/cache/webpack/client-development-fallback/index.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/0.pack.gz b/frontend/.next/cache/webpack/client-development/0.pack.gz
deleted file mode 100644
index 6a182dff..00000000
Binary files a/frontend/.next/cache/webpack/client-development/0.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/1.pack.gz b/frontend/.next/cache/webpack/client-development/1.pack.gz
deleted file mode 100644
index a0a2efd9..00000000
Binary files a/frontend/.next/cache/webpack/client-development/1.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/10.pack.gz b/frontend/.next/cache/webpack/client-development/10.pack.gz
deleted file mode 100644
index 6001ef81..00000000
Binary files a/frontend/.next/cache/webpack/client-development/10.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/11.pack.gz b/frontend/.next/cache/webpack/client-development/11.pack.gz
deleted file mode 100644
index 107f6315..00000000
Binary files a/frontend/.next/cache/webpack/client-development/11.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/12.pack.gz b/frontend/.next/cache/webpack/client-development/12.pack.gz
deleted file mode 100644
index 5aa6538a..00000000
Binary files a/frontend/.next/cache/webpack/client-development/12.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/13.pack.gz b/frontend/.next/cache/webpack/client-development/13.pack.gz
deleted file mode 100644
index 181bc348..00000000
Binary files a/frontend/.next/cache/webpack/client-development/13.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/14.pack.gz b/frontend/.next/cache/webpack/client-development/14.pack.gz
deleted file mode 100644
index 83616fe9..00000000
Binary files a/frontend/.next/cache/webpack/client-development/14.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/15.pack.gz b/frontend/.next/cache/webpack/client-development/15.pack.gz
deleted file mode 100644
index cabb5096..00000000
Binary files a/frontend/.next/cache/webpack/client-development/15.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/16.pack.gz b/frontend/.next/cache/webpack/client-development/16.pack.gz
deleted file mode 100644
index 222fec3d..00000000
Binary files a/frontend/.next/cache/webpack/client-development/16.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/17.pack.gz b/frontend/.next/cache/webpack/client-development/17.pack.gz
deleted file mode 100644
index 2d440ba7..00000000
Binary files a/frontend/.next/cache/webpack/client-development/17.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/2.pack.gz b/frontend/.next/cache/webpack/client-development/2.pack.gz
deleted file mode 100644
index 39fb3ac5..00000000
Binary files a/frontend/.next/cache/webpack/client-development/2.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/3.pack.gz b/frontend/.next/cache/webpack/client-development/3.pack.gz
deleted file mode 100644
index 08193197..00000000
Binary files a/frontend/.next/cache/webpack/client-development/3.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/4.pack.gz b/frontend/.next/cache/webpack/client-development/4.pack.gz
deleted file mode 100644
index 52b06001..00000000
Binary files a/frontend/.next/cache/webpack/client-development/4.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/5.pack.gz b/frontend/.next/cache/webpack/client-development/5.pack.gz
deleted file mode 100644
index 06cb51d8..00000000
Binary files a/frontend/.next/cache/webpack/client-development/5.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/6.pack.gz b/frontend/.next/cache/webpack/client-development/6.pack.gz
deleted file mode 100644
index 17e5f47e..00000000
Binary files a/frontend/.next/cache/webpack/client-development/6.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/7.pack.gz b/frontend/.next/cache/webpack/client-development/7.pack.gz
deleted file mode 100644
index de00efe0..00000000
Binary files a/frontend/.next/cache/webpack/client-development/7.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/8.pack.gz b/frontend/.next/cache/webpack/client-development/8.pack.gz
deleted file mode 100644
index 443941c1..00000000
Binary files a/frontend/.next/cache/webpack/client-development/8.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/9.pack.gz b/frontend/.next/cache/webpack/client-development/9.pack.gz
deleted file mode 100644
index 158aca69..00000000
Binary files a/frontend/.next/cache/webpack/client-development/9.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/index.pack.gz b/frontend/.next/cache/webpack/client-development/index.pack.gz
deleted file mode 100644
index eab07570..00000000
Binary files a/frontend/.next/cache/webpack/client-development/index.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/client-development/index.pack.gz.old b/frontend/.next/cache/webpack/client-development/index.pack.gz.old
deleted file mode 100644
index 82a6c3aa..00000000
Binary files a/frontend/.next/cache/webpack/client-development/index.pack.gz.old and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/0.pack.gz b/frontend/.next/cache/webpack/server-development/0.pack.gz
deleted file mode 100644
index cfa3287e..00000000
Binary files a/frontend/.next/cache/webpack/server-development/0.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/1.pack.gz b/frontend/.next/cache/webpack/server-development/1.pack.gz
deleted file mode 100644
index b45b6fc8..00000000
Binary files a/frontend/.next/cache/webpack/server-development/1.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/10.pack.gz b/frontend/.next/cache/webpack/server-development/10.pack.gz
deleted file mode 100644
index 015775dd..00000000
Binary files a/frontend/.next/cache/webpack/server-development/10.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/11.pack.gz b/frontend/.next/cache/webpack/server-development/11.pack.gz
deleted file mode 100644
index b141f4ff..00000000
Binary files a/frontend/.next/cache/webpack/server-development/11.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/12.pack.gz b/frontend/.next/cache/webpack/server-development/12.pack.gz
deleted file mode 100644
index 9b53b093..00000000
Binary files a/frontend/.next/cache/webpack/server-development/12.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/13.pack.gz b/frontend/.next/cache/webpack/server-development/13.pack.gz
deleted file mode 100644
index 44d0aff6..00000000
Binary files a/frontend/.next/cache/webpack/server-development/13.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/14.pack.gz b/frontend/.next/cache/webpack/server-development/14.pack.gz
deleted file mode 100644
index 7f7baf67..00000000
Binary files a/frontend/.next/cache/webpack/server-development/14.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/2.pack.gz b/frontend/.next/cache/webpack/server-development/2.pack.gz
deleted file mode 100644
index 7ff41b5b..00000000
Binary files a/frontend/.next/cache/webpack/server-development/2.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/3.pack.gz b/frontend/.next/cache/webpack/server-development/3.pack.gz
deleted file mode 100644
index f0410ad0..00000000
Binary files a/frontend/.next/cache/webpack/server-development/3.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/4.pack.gz b/frontend/.next/cache/webpack/server-development/4.pack.gz
deleted file mode 100644
index 80b8e803..00000000
Binary files a/frontend/.next/cache/webpack/server-development/4.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/5.pack.gz b/frontend/.next/cache/webpack/server-development/5.pack.gz
deleted file mode 100644
index 7b16a2b5..00000000
Binary files a/frontend/.next/cache/webpack/server-development/5.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/6.pack.gz b/frontend/.next/cache/webpack/server-development/6.pack.gz
deleted file mode 100644
index 910a6f9a..00000000
Binary files a/frontend/.next/cache/webpack/server-development/6.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/7.pack.gz b/frontend/.next/cache/webpack/server-development/7.pack.gz
deleted file mode 100644
index b9087568..00000000
Binary files a/frontend/.next/cache/webpack/server-development/7.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/8.pack.gz b/frontend/.next/cache/webpack/server-development/8.pack.gz
deleted file mode 100644
index d42627b0..00000000
Binary files a/frontend/.next/cache/webpack/server-development/8.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/9.pack.gz b/frontend/.next/cache/webpack/server-development/9.pack.gz
deleted file mode 100644
index 47a3a440..00000000
Binary files a/frontend/.next/cache/webpack/server-development/9.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/index.pack.gz b/frontend/.next/cache/webpack/server-development/index.pack.gz
deleted file mode 100644
index 63006df6..00000000
Binary files a/frontend/.next/cache/webpack/server-development/index.pack.gz and /dev/null differ
diff --git a/frontend/.next/cache/webpack/server-development/index.pack.gz.old b/frontend/.next/cache/webpack/server-development/index.pack.gz.old
deleted file mode 100644
index 715fc430..00000000
Binary files a/frontend/.next/cache/webpack/server-development/index.pack.gz.old and /dev/null differ
diff --git a/frontend/.next/package.json b/frontend/.next/package.json
deleted file mode 100644
index 7156107e..00000000
--- a/frontend/.next/package.json
+++ /dev/null
@@ -1 +0,0 @@
-{"type": "commonjs"}
\ No newline at end of file
diff --git a/frontend/.next/server/app-paths-manifest.json b/frontend/.next/server/app-paths-manifest.json
deleted file mode 100644
index 10d0de53..00000000
--- a/frontend/.next/server/app-paths-manifest.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "/_global-error/page": "app/_global-error/page.js",
- "/_not-found/page": "app/_not-found/page.js",
- "/admin/dashboard/page": "app/admin/dashboard/page.js",
- "/admin/page": "app/admin/page.js",
- "/admin/subscribers/page": "app/admin/subscribers/page.js",
- "/admin/upload/page": "app/admin/upload/page.js",
- "/api/[...path]/route": "app/api/[...path]/route.js",
- "/page": "app/page.js"
-}
\ No newline at end of file
diff --git a/frontend/.next/server/app/admin/dashboard/page.js b/frontend/.next/server/app/admin/dashboard/page.js
deleted file mode 100644
index 4442b2ec..00000000
--- a/frontend/.next/server/app/admin/dashboard/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var R=require("../../../chunks/ssr/[turbopack]_runtime.js")("server/app/admin/dashboard/page.js")
-R.c("server/chunks/ssr/[root-of-the-server]__639a7851._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_071628fc._.js")
-R.c("server/chunks/ssr/_aaa3ba4c._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__e771b4fa._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__30ead227._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_6e8bbd59._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_global-error_988840cf.js")
-R.c("server/chunks/ssr/[root-of-the-server]__cfa1ac48._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_69f8a3e7._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_forbidden_17c0d8d0.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_unauthorized_f2829880.js")
-R.c("server/chunks/ssr/_next-internal_server_app_admin_dashboard_page_actions_b058c280.js")
-R.m(8397)
-module.exports=R.m(8397).exports
diff --git a/frontend/.next/server/app/admin/dashboard/page_client-reference-manifest.js b/frontend/.next/server/app/admin/dashboard/page_client-reference-manifest.js
deleted file mode 100644
index ff04defe..00000000
--- a/frontend/.next/server/app/admin/dashboard/page_client-reference-manifest.js
+++ /dev/null
@@ -1,2 +0,0 @@
-globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
-globalThis.__RSC_MANIFEST["/admin/dashboard/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js ":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/src/app/admin/dashboard/page.tsx ":{"id":28030,"name":"*","chunks":["/_next/static/chunks/7aa4cb59f8e32734.js"],"async":false},"[project]/src/app/admin/dashboard/page.tsx":{"id":28030,"name":"*","chunks":["/_next/static/chunks/7aa4cb59f8e32734.js"],"async":false}},"ssrModuleMapping":{"53454":{"*":{"id":17754,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"21397":{"*":{"id":68360,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"63757":{"*":{"id":82938,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"8461":{"*":{"id":72251,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40274":{"*":{"id":66893,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40748":{"*":{"id":91670,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"26819":{"*":{"id":17236,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"2936":{"*":{"id":66150,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"28030":{"*":{"id":2868,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__7ccf69a1._.js","server/chunks/ssr/node_modules__pnpm_2b939312._.js","server/chunks/ssr/src_app_admin_dashboard_page_tsx_7a90298c._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"53454":{"*":{"id":40605,"name":"*","chunks":[],"async":false}},"21397":{"*":{"id":83425,"name":"*","chunks":[],"async":false}},"63757":{"*":{"id":28112,"name":"*","chunks":[],"async":false}},"8461":{"*":{"id":72933,"name":"*","chunks":[],"async":false}},"40274":{"*":{"id":63873,"name":"*","chunks":[],"async":false}},"40748":{"*":{"id":44262,"name":"*","chunks":[],"async":false}},"26819":{"*":{"id":47321,"name":"*","chunks":[],"async":false}},"2936":{"*":{"id":36421,"name":"*","chunks":[],"async":false}},"28030":{"*":{"id":96197,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}],"[project]/src/app/admin/dashboard/page":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/be72aad2f41f746f.js"],"[project]/src/app/layout":[],"[project]/src/app/admin/dashboard/page":["static/chunks/7aa4cb59f8e32734.js"]}}
diff --git a/frontend/.next/server/app/admin/page.js b/frontend/.next/server/app/admin/page.js
deleted file mode 100644
index f2540901..00000000
--- a/frontend/.next/server/app/admin/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/admin/page.js")
-R.c("server/chunks/ssr/[root-of-the-server]__2ca1778f._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_071628fc._.js")
-R.c("server/chunks/ssr/_acda7ec8._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__e771b4fa._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__30ead227._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_6e8bbd59._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_global-error_988840cf.js")
-R.c("server/chunks/ssr/[root-of-the-server]__cfa1ac48._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_69f8a3e7._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_forbidden_17c0d8d0.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_unauthorized_f2829880.js")
-R.c("server/chunks/ssr/_next-internal_server_app_admin_page_actions_c7bd1b4f.js")
-R.m(19051)
-module.exports=R.m(19051).exports
diff --git a/frontend/.next/server/app/admin/page_client-reference-manifest.js b/frontend/.next/server/app/admin/page_client-reference-manifest.js
deleted file mode 100644
index ea7f5531..00000000
--- a/frontend/.next/server/app/admin/page_client-reference-manifest.js
+++ /dev/null
@@ -1,2 +0,0 @@
-globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
-globalThis.__RSC_MANIFEST["/admin/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js ":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/src/app/admin/page.tsx ":{"id":72906,"name":"*","chunks":["/_next/static/chunks/4089d5bed38e24ef.js"],"async":false},"[project]/src/app/admin/page.tsx":{"id":72906,"name":"*","chunks":["/_next/static/chunks/4089d5bed38e24ef.js"],"async":false}},"ssrModuleMapping":{"53454":{"*":{"id":17754,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"21397":{"*":{"id":68360,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"63757":{"*":{"id":82938,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"8461":{"*":{"id":72251,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40274":{"*":{"id":66893,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40748":{"*":{"id":91670,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"26819":{"*":{"id":17236,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"2936":{"*":{"id":66150,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"72906":{"*":{"id":10179,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__41762869._.js","server/chunks/ssr/node_modules__pnpm_2b939312._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"53454":{"*":{"id":40605,"name":"*","chunks":[],"async":false}},"21397":{"*":{"id":83425,"name":"*","chunks":[],"async":false}},"63757":{"*":{"id":28112,"name":"*","chunks":[],"async":false}},"8461":{"*":{"id":72933,"name":"*","chunks":[],"async":false}},"40274":{"*":{"id":63873,"name":"*","chunks":[],"async":false}},"40748":{"*":{"id":44262,"name":"*","chunks":[],"async":false}},"26819":{"*":{"id":47321,"name":"*","chunks":[],"async":false}},"2936":{"*":{"id":36421,"name":"*","chunks":[],"async":false}},"72906":{"*":{"id":18812,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}],"[project]/src/app/admin/page":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/be72aad2f41f746f.js"],"[project]/src/app/layout":[],"[project]/src/app/admin/page":["static/chunks/4089d5bed38e24ef.js"]}}
diff --git a/frontend/.next/server/app/admin/subscribers/page.js b/frontend/.next/server/app/admin/subscribers/page.js
deleted file mode 100644
index 8d2ba370..00000000
--- a/frontend/.next/server/app/admin/subscribers/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var R=require("../../../chunks/ssr/[turbopack]_runtime.js")("server/app/admin/subscribers/page.js")
-R.c("server/chunks/ssr/[root-of-the-server]__f1a8b301._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_071628fc._.js")
-R.c("server/chunks/ssr/_6701bf1d._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__e771b4fa._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__30ead227._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_6e8bbd59._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_global-error_988840cf.js")
-R.c("server/chunks/ssr/[root-of-the-server]__cfa1ac48._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_69f8a3e7._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_forbidden_17c0d8d0.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_unauthorized_f2829880.js")
-R.c("server/chunks/ssr/_next-internal_server_app_admin_subscribers_page_actions_a34d4499.js")
-R.m(91347)
-module.exports=R.m(91347).exports
diff --git a/frontend/.next/server/app/admin/subscribers/page_client-reference-manifest.js b/frontend/.next/server/app/admin/subscribers/page_client-reference-manifest.js
deleted file mode 100644
index d8a5c3cb..00000000
--- a/frontend/.next/server/app/admin/subscribers/page_client-reference-manifest.js
+++ /dev/null
@@ -1,2 +0,0 @@
-globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
-globalThis.__RSC_MANIFEST["/admin/subscribers/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js ":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/src/app/admin/subscribers/page.tsx ":{"id":40559,"name":"*","chunks":["/_next/static/chunks/ab74bf34269095df.js"],"async":false},"[project]/src/app/admin/subscribers/page.tsx":{"id":40559,"name":"*","chunks":["/_next/static/chunks/ab74bf34269095df.js"],"async":false}},"ssrModuleMapping":{"53454":{"*":{"id":17754,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"21397":{"*":{"id":68360,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"63757":{"*":{"id":82938,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"8461":{"*":{"id":72251,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40274":{"*":{"id":66893,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40748":{"*":{"id":91670,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"26819":{"*":{"id":17236,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"2936":{"*":{"id":66150,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40559":{"*":{"id":54870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__5321dcce._.js","server/chunks/ssr/node_modules__pnpm_2b939312._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"53454":{"*":{"id":40605,"name":"*","chunks":[],"async":false}},"21397":{"*":{"id":83425,"name":"*","chunks":[],"async":false}},"63757":{"*":{"id":28112,"name":"*","chunks":[],"async":false}},"8461":{"*":{"id":72933,"name":"*","chunks":[],"async":false}},"40274":{"*":{"id":63873,"name":"*","chunks":[],"async":false}},"40748":{"*":{"id":44262,"name":"*","chunks":[],"async":false}},"26819":{"*":{"id":47321,"name":"*","chunks":[],"async":false}},"2936":{"*":{"id":36421,"name":"*","chunks":[],"async":false}},"40559":{"*":{"id":7305,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}],"[project]/src/app/admin/subscribers/page":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/be72aad2f41f746f.js"],"[project]/src/app/layout":[],"[project]/src/app/admin/subscribers/page":["static/chunks/ab74bf34269095df.js"]}}
diff --git a/frontend/.next/server/app/admin/upload/page.js b/frontend/.next/server/app/admin/upload/page.js
deleted file mode 100644
index eda761b0..00000000
--- a/frontend/.next/server/app/admin/upload/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var R=require("../../../chunks/ssr/[turbopack]_runtime.js")("server/app/admin/upload/page.js")
-R.c("server/chunks/ssr/[root-of-the-server]__5841d51e._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_071628fc._.js")
-R.c("server/chunks/ssr/_f9ee1dfe._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__e771b4fa._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__30ead227._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_6e8bbd59._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_global-error_988840cf.js")
-R.c("server/chunks/ssr/[root-of-the-server]__cfa1ac48._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_69f8a3e7._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_forbidden_17c0d8d0.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_unauthorized_f2829880.js")
-R.c("server/chunks/ssr/_next-internal_server_app_admin_upload_page_actions_4ddfd920.js")
-R.m(43175)
-module.exports=R.m(43175).exports
diff --git a/frontend/.next/server/app/admin/upload/page_client-reference-manifest.js b/frontend/.next/server/app/admin/upload/page_client-reference-manifest.js
deleted file mode 100644
index 026fa242..00000000
--- a/frontend/.next/server/app/admin/upload/page_client-reference-manifest.js
+++ /dev/null
@@ -1,2 +0,0 @@
-globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
-globalThis.__RSC_MANIFEST["/admin/upload/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js ":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/src/app/admin/upload/page.tsx ":{"id":12560,"name":"*","chunks":["/_next/static/chunks/0d45cbfc4115f3b3.js"],"async":false},"[project]/src/app/admin/upload/page.tsx":{"id":12560,"name":"*","chunks":["/_next/static/chunks/0d45cbfc4115f3b3.js"],"async":false}},"ssrModuleMapping":{"53454":{"*":{"id":17754,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"21397":{"*":{"id":68360,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"63757":{"*":{"id":82938,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"8461":{"*":{"id":72251,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40274":{"*":{"id":66893,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40748":{"*":{"id":91670,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"26819":{"*":{"id":17236,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"2936":{"*":{"id":66150,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"12560":{"*":{"id":61688,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__9454eb9d._.js","server/chunks/ssr/node_modules__pnpm_2b939312._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"53454":{"*":{"id":40605,"name":"*","chunks":[],"async":false}},"21397":{"*":{"id":83425,"name":"*","chunks":[],"async":false}},"63757":{"*":{"id":28112,"name":"*","chunks":[],"async":false}},"8461":{"*":{"id":72933,"name":"*","chunks":[],"async":false}},"40274":{"*":{"id":63873,"name":"*","chunks":[],"async":false}},"40748":{"*":{"id":44262,"name":"*","chunks":[],"async":false}},"26819":{"*":{"id":47321,"name":"*","chunks":[],"async":false}},"2936":{"*":{"id":36421,"name":"*","chunks":[],"async":false}},"12560":{"*":{"id":31298,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}],"[project]/src/app/admin/upload/page":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/be72aad2f41f746f.js"],"[project]/src/app/layout":[],"[project]/src/app/admin/upload/page":["static/chunks/0d45cbfc4115f3b3.js"]}}
diff --git a/frontend/.next/server/app/page.js b/frontend/.next/server/app/page.js
deleted file mode 100644
index a5606780..00000000
--- a/frontend/.next/server/app/page.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var R=require("../chunks/ssr/[turbopack]_runtime.js")("server/app/page.js")
-R.c("server/chunks/ssr/[root-of-the-server]__a6408e6c._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_071628fc._.js")
-R.c("server/chunks/ssr/_5acded5e._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__e771b4fa._.js")
-R.c("server/chunks/ssr/[root-of-the-server]__30ead227._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_6e8bbd59._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_global-error_988840cf.js")
-R.c("server/chunks/ssr/[root-of-the-server]__cfa1ac48._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_69f8a3e7._.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_forbidden_17c0d8d0.js")
-R.c("server/chunks/ssr/d6ff3_next_dist_client_components_builtin_unauthorized_f2829880.js")
-R.c("server/chunks/ssr/_next-internal_server_app_page_actions_39d4fc33.js")
-R.m(57061)
-module.exports=R.m(57061).exports
diff --git a/frontend/.next/server/app/page_client-reference-manifest.js b/frontend/.next/server/app/page_client-reference-manifest.js
deleted file mode 100644
index 683d0e25..00000000
--- a/frontend/.next/server/app/page_client-reference-manifest.js
+++ /dev/null
@@ -1,2 +0,0 @@
-globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
-globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/layout-router.js":{"id":53454,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":21397,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js ":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-page.js":{"id":63757,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8461,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":40274,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":40748,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":26819,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js ":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error.js":{"id":2936,"name":"*","chunks":["/_next/static/chunks/be72aad2f41f746f.js"],"async":false},"[project]/src/app/page.tsx ":{"id":52683,"name":"*","chunks":["/_next/static/chunks/2aa858bf3513d467.js"],"async":false},"[project]/src/app/page.tsx":{"id":52683,"name":"*","chunks":["/_next/static/chunks/2aa858bf3513d467.js"],"async":false}},"ssrModuleMapping":{"53454":{"*":{"id":17754,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"21397":{"*":{"id":68360,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"63757":{"*":{"id":82938,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"8461":{"*":{"id":72251,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40274":{"*":{"id":66893,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"40748":{"*":{"id":91670,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"26819":{"*":{"id":17236,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"2936":{"*":{"id":66150,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f41a3eb4._.js","server/chunks/ssr/d6ff3_next_dist_34753102._.js"],"async":false}},"52683":{"*":{"id":40777,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__28ecd2b1._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"53454":{"*":{"id":40605,"name":"*","chunks":[],"async":false}},"21397":{"*":{"id":83425,"name":"*","chunks":[],"async":false}},"63757":{"*":{"id":28112,"name":"*","chunks":[],"async":false}},"8461":{"*":{"id":72933,"name":"*","chunks":[],"async":false}},"40274":{"*":{"id":63873,"name":"*","chunks":[],"async":false}},"40748":{"*":{"id":44262,"name":"*","chunks":[],"async":false}},"26819":{"*":{"id":47321,"name":"*","chunks":[],"async":false}},"2936":{"*":{"id":36421,"name":"*","chunks":[],"async":false}},"52683":{"*":{"id":56983,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":[],"[project]/src/app/layout":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}],"[project]/src/app/page":[{"path":"static/chunks/1a6338f005d8c56a.css","inlined":false}]},"entryJSFiles":{"[project]/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/be72aad2f41f746f.js"],"[project]/src/app/layout":[],"[project]/src/app/page":["static/chunks/2aa858bf3513d467.js"]}}
diff --git a/frontend/.next/server/interception-route-rewrite-manifest.js b/frontend/.next/server/interception-route-rewrite-manifest.js
deleted file mode 100644
index 24f77ba7..00000000
--- a/frontend/.next/server/interception-route-rewrite-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST="[]";
\ No newline at end of file
diff --git a/frontend/.next/server/middleware-build-manifest.js b/frontend/.next/server/middleware-build-manifest.js
deleted file mode 100644
index fb144b22..00000000
--- a/frontend/.next/server/middleware-build-manifest.js
+++ /dev/null
@@ -1,21 +0,0 @@
-globalThis.__BUILD_MANIFEST = {
- "pages": {
- "/_app": []
- },
- "devFiles": [],
- "polyfillFiles": [
- "static/chunks/a6dad97d9634a72d.js"
- ],
- "lowPriorityFiles": [],
- "rootMainFiles": [
- "static/chunks/0aacfe628668079c.js",
- "static/chunks/ffd00f83382900e5.js",
- "static/chunks/d4033b479c28e660.js",
- "static/chunks/2744bdefb7be06e1.js",
- "static/chunks/turbopack-da96ac0b9a9ff463.js"
- ]
-};
-globalThis.__BUILD_MANIFEST.lowPriorityFiles = [
-"/static/" + process.env.__NEXT_BUILD_ID + "/_buildManifest.js",
-"/static/" + process.env.__NEXT_BUILD_ID + "/_ssgManifest.js"
-];
\ No newline at end of file
diff --git a/frontend/.next/server/middleware-manifest.json b/frontend/.next/server/middleware-manifest.json
deleted file mode 100644
index eb7130b9..00000000
--- a/frontend/.next/server/middleware-manifest.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "version": 3,
- "middleware": {},
- "sortedMiddleware": [],
- "functions": {}
-}
\ No newline at end of file
diff --git a/frontend/.next/server/next-font-manifest.js b/frontend/.next/server/next-font-manifest.js
deleted file mode 100644
index ffea57e1..00000000
--- a/frontend/.next/server/next-font-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/src/app/_not-found/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\n ],\n \"[project]/src/app/admin/dashboard/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\n ],\n \"[project]/src/app/admin/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\n ],\n \"[project]/src/app/admin/subscribers/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\n ],\n \"[project]/src/app/admin/upload/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\n ],\n \"[project]/src/app/page\": [\n \"static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
\ No newline at end of file
diff --git a/frontend/.next/server/next-font-manifest.json b/frontend/.next/server/next-font-manifest.json
deleted file mode 100644
index 0f141d56..00000000
--- a/frontend/.next/server/next-font-manifest.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "app": {
- "[project]/src/app/_not-found/page": [
- "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2"
- ],
- "[project]/src/app/admin/dashboard/page": [
- "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2"
- ],
- "[project]/src/app/admin/page": [
- "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2"
- ],
- "[project]/src/app/admin/subscribers/page": [
- "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2"
- ],
- "[project]/src/app/admin/upload/page": [
- "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2"
- ],
- "[project]/src/app/page": [
- "static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2"
- ]
- },
- "appUsingSizeAdjust": true,
- "pages": {},
- "pagesUsingSizeAdjust": false
-}
\ No newline at end of file
diff --git a/frontend/.next/server/pages-manifest.json b/frontend/.next/server/pages-manifest.json
deleted file mode 100644
index 6a2cf434..00000000
--- a/frontend/.next/server/pages-manifest.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "/404": "pages/404.html",
- "/500": "pages/500.html"
-}
\ No newline at end of file
diff --git a/frontend/.next/server/server-reference-manifest.js b/frontend/.next/server/server-reference-manifest.js
deleted file mode 100644
index 5777bc0e..00000000
--- a/frontend/.next/server/server-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"3mIRZTXU3EFfft5a2Lo6/efgZsGTQSZ+RRddDLs94XQ=\"\n}"
\ No newline at end of file
diff --git a/frontend/.next/server/server-reference-manifest.json b/frontend/.next/server/server-reference-manifest.json
deleted file mode 100644
index 89b78b9f..00000000
--- a/frontend/.next/server/server-reference-manifest.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "node": {},
- "edge": {},
- "encryptionKey": "3mIRZTXU3EFfft5a2Lo6/efgZsGTQSZ+RRddDLs94XQ="
-}
\ No newline at end of file
diff --git a/frontend/.next/trace b/frontend/.next/trace
deleted file mode 100644
index 2d16a2f9..00000000
--- a/frontend/.next/trace
+++ /dev/null
@@ -1 +0,0 @@
-[{"name":"generate-buildid","duration":215,"timestamp":2704504166286,"id":4,"parentId":1,"tags":{},"startTime":1765755076527,"traceId":"e8a5ec140779bcf7"},{"name":"load-custom-routes","duration":1283,"timestamp":2704504166575,"id":5,"parentId":1,"tags":{},"startTime":1765755076527,"traceId":"e8a5ec140779bcf7"},{"name":"create-dist-dir","duration":516,"timestamp":2704504167875,"id":6,"parentId":1,"tags":{},"startTime":1765755076529,"traceId":"e8a5ec140779bcf7"},{"name":"clean","duration":1393,"timestamp":2704504168807,"id":7,"parentId":1,"tags":{},"startTime":1765755076530,"traceId":"e8a5ec140779bcf7"},{"name":"create-pages-mapping","duration":127,"timestamp":2704504177298,"id":8,"parentId":1,"tags":{},"startTime":1765755076538,"traceId":"e8a5ec140779bcf7"},{"name":"collect-app-files","duration":1134,"timestamp":2704504177445,"id":9,"parentId":1,"tags":{},"startTime":1765755076538,"traceId":"e8a5ec140779bcf7"},{"name":"create-app-mapping","duration":501,"timestamp":2704504178593,"id":10,"parentId":1,"tags":{},"startTime":1765755076539,"traceId":"e8a5ec140779bcf7"},{"name":"create-app-layouts","duration":51,"timestamp":2704504179110,"id":11,"parentId":1,"tags":{},"startTime":1765755076540,"traceId":"e8a5ec140779bcf7"},{"name":"collect-default-files","duration":264,"timestamp":2704504179676,"id":13,"parentId":1,"tags":{},"startTime":1765755076540,"traceId":"e8a5ec140779bcf7"},{"name":"generate-route-types","duration":13336,"timestamp":2704504179379,"id":12,"parentId":1,"tags":{},"startTime":1765755076540,"traceId":"e8a5ec140779bcf7"},{"name":"public-dir-conflict-check","duration":52,"timestamp":2704504192738,"id":14,"parentId":1,"tags":{},"startTime":1765755076554,"traceId":"e8a5ec140779bcf7"},{"name":"generate-routes-manifest","duration":1121,"timestamp":2704504192839,"id":15,"parentId":1,"tags":{},"startTime":1765755076554,"traceId":"e8a5ec140779bcf7"},{"name":"run-turbopack","duration":1323770,"timestamp":2704504198803,"id":17,"parentId":1,"tags":{},"startTime":1765755076560,"traceId":"e8a5ec140779bcf7"},{"name":"run-typescript","duration":1631832,"timestamp":2704505526859,"id":19,"parentId":1,"tags":{},"startTime":1765755077888,"traceId":"e8a5ec140779bcf7"},{"name":"check-static-error-page","duration":3372,"timestamp":2704507177196,"id":22,"parentId":21,"tags":{},"startTime":1765755079538,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":147686,"timestamp":2704507185715,"id":31,"parentId":24,"tags":{},"startTime":1765755079547,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":153157,"timestamp":2704507180302,"id":24,"parentId":21,"tags":{"page":"/_global-error"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":174938,"timestamp":2704507194837,"id":33,"parentId":29,"tags":{},"startTime":1765755079556,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":189281,"timestamp":2704507180530,"id":29,"parentId":21,"tags":{"page":"/api/[...path]"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":172645,"timestamp":2704507200160,"id":35,"parentId":27,"tags":{},"startTime":1765755079561,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":192345,"timestamp":2704507180494,"id":27,"parentId":21,"tags":{"page":"/admin/subscribers"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":172588,"timestamp":2704507200284,"id":37,"parentId":25,"tags":{},"startTime":1765755079561,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":192443,"timestamp":2704507180441,"id":25,"parentId":21,"tags":{"page":"/admin/dashboard"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":172911,"timestamp":2704507199997,"id":34,"parentId":26,"tags":{},"startTime":1765755079561,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":192446,"timestamp":2704507180470,"id":26,"parentId":21,"tags":{"page":"/admin"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":175988,"timestamp":2704507200324,"id":38,"parentId":30,"tags":{},"startTime":1765755079561,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":195824,"timestamp":2704507180548,"id":30,"parentId":21,"tags":{"page":"/"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":176191,"timestamp":2704507200243,"id":36,"parentId":28,"tags":{},"startTime":1765755079561,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":195952,"timestamp":2704507180513,"id":28,"parentId":21,"tags":{"page":"/admin/upload"},"startTime":1765755079541,"traceId":"e8a5ec140779bcf7"},{"name":"is-page-static","duration":183435,"timestamp":2704507193070,"id":32,"parentId":23,"tags":{},"startTime":1765755079554,"traceId":"e8a5ec140779bcf7"},{"name":"check-page","duration":198636,"timestamp":2704507177881,"id":23,"parentId":21,"tags":{"page":"/_not-found"},"startTime":1765755079539,"traceId":"e8a5ec140779bcf7"},{"name":"static-check","duration":199908,"timestamp":2704507176630,"id":21,"parentId":1,"tags":{},"startTime":1765755079537,"traceId":"e8a5ec140779bcf7"},{"name":"generate-required-server-files","duration":405,"timestamp":2704507376642,"id":40,"parentId":1,"tags":{},"startTime":1765755079737,"traceId":"e8a5ec140779bcf7"},{"name":"write-routes-manifest","duration":1264,"timestamp":2704507379435,"id":41,"parentId":1,"tags":{},"startTime":1765755079740,"traceId":"e8a5ec140779bcf7"},{"name":"load-dotenv","duration":20,"timestamp":2704507386852,"id":44,"parentId":43,"tags":{},"startTime":1765755079748,"traceId":"e8a5ec140779bcf7"},{"name":"run-export-path-map","duration":246,"timestamp":2704507387947,"id":45,"parentId":43,"tags":{},"startTime":1765755079749,"traceId":"e8a5ec140779bcf7"},{"name":"next-export","duration":290561,"timestamp":2704507386167,"id":43,"parentId":1,"tags":{},"startTime":1765755079747,"traceId":"e8a5ec140779bcf7"},{"name":"move-exported-app-not-found-","duration":612,"timestamp":2704507677674,"id":46,"parentId":42,"tags":{},"startTime":1765755080038,"traceId":"e8a5ec140779bcf7"},{"name":"move-exported-app-global-error-","duration":333,"timestamp":2704507678317,"id":47,"parentId":42,"tags":{},"startTime":1765755080039,"traceId":"e8a5ec140779bcf7"},{"name":"static-generation","duration":297035,"timestamp":2704507382714,"id":42,"parentId":1,"tags":{},"startTime":1765755079744,"traceId":"e8a5ec140779bcf7"},{"name":"write-routes-manifest","duration":309,"timestamp":2704507679815,"id":48,"parentId":1,"tags":{},"startTime":1765755080041,"traceId":"e8a5ec140779bcf7"},{"name":"print-tree-view","duration":1243,"timestamp":2704507688504,"id":49,"parentId":1,"tags":{},"startTime":1765755080049,"traceId":"e8a5ec140779bcf7"},{"name":"telemetry-flush","duration":492210,"timestamp":2704507689756,"id":50,"parentId":1,"tags":{},"startTime":1765755080051,"traceId":"e8a5ec140779bcf7"},{"name":"next-build","duration":4089955,"timestamp":2704504092066,"id":1,"tags":{"buildMode":"default","version":"16.0.10","bundler":"turbopack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1765755076453,"traceId":"e8a5ec140779bcf7"}]
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
deleted file mode 100644
index f5a0ef89..00000000
--- a/frontend/Dockerfile
+++ /dev/null
@@ -1,35 +0,0 @@
-FROM node:22-alpine
-
-# Set working directory
-WORKDIR /app
-
-# Install pnpm
-RUN npm install -g pnpm
-
-# Copy package files
-COPY package.json pnpm-lock.yaml* ./
-
-# Install dependencies
-RUN pnpm install --frozen-lockfile
-
-# Copy source code
-COPY . .
-
-# Build the application
-RUN pnpm build
-
-# Expose port
-EXPOSE 806
-
-# Set port environment variable
-ENV PORT=806
-
-# Install curl for health check
-RUN apk add --no-cache curl
-
-# Health check
-HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
- CMD curl -f http://localhost:806 || exit 1
-
-# Start the application
-CMD ["pnpm", "start"]
diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts
deleted file mode 100644
index 9edff1c7..00000000
--- a/frontend/next-env.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-///
-///
-import "./.next/types/routes.d.ts";
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/frontend/next.config.js b/frontend/next.config.js
deleted file mode 100644
index 1b9f4136..00000000
--- a/frontend/next.config.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/** @type {import('next').NextConfig} */
-const nextConfig = {
- reactStrictMode: true,
- // Empty turbopack config to silence Next.js 16 warning
- turbopack: {},
- // Keep webpack config for backward compatibility
- webpack: (config) => {
- // Handle PDF.js worker
- config.resolve.alias.canvas = false;
- config.resolve.alias.encoding = false;
- return config;
- },
- async rewrites() {
- return [
- {
- source: '/api/:path*',
- destination: 'http://backend:3001/api/:path*'
- }
- ];
- },
-};
-
-module.exports = nextConfig;
diff --git a/frontend/node_modules/.bin/acorn b/frontend/node_modules/.bin/acorn
deleted file mode 100755
index 2c913960..00000000
--- a/frontend/node_modules/.bin/acorn
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn" "$@"
-else
- exec node "$basedir/../.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn" "$@"
-fi
diff --git a/frontend/node_modules/.bin/autoprefixer b/frontend/node_modules/.bin/autoprefixer
deleted file mode 100755
index c1197f62..00000000
--- a/frontend/node_modules/.bin/autoprefixer
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules/autoprefixer/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules/autoprefixer/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules/autoprefixer/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules/autoprefixer/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules/autoprefixer/bin/autoprefixer" "$@"
-else
- exec node "$basedir/../.pnpm/autoprefixer@10.4.23_postcss@8.5.6/node_modules/autoprefixer/bin/autoprefixer" "$@"
-fi
diff --git a/frontend/node_modules/.bin/browserslist b/frontend/node_modules/.bin/browserslist
deleted file mode 100755
index 77566b60..00000000
--- a/frontend/node_modules/.bin/browserslist
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/browserslist@4.28.1/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/browserslist@4.28.1/node_modules/browserslist/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/browserslist@4.28.1/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
-else
- exec node "$basedir/../.pnpm/browserslist@4.28.1/node_modules/browserslist/cli.js" "$@"
-fi
diff --git a/frontend/node_modules/.bin/eslint b/frontend/node_modules/.bin/eslint
deleted file mode 100755
index 69197183..00000000
--- a/frontend/node_modules/.bin/eslint
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules/eslint/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules/eslint/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules/eslint/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules/eslint/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules/eslint/bin/eslint.js" "$@"
-else
- exec node "$basedir/../.pnpm/eslint@9.39.2_jiti@1.21.7/node_modules/eslint/bin/eslint.js" "$@"
-fi
diff --git a/frontend/node_modules/.bin/next b/frontend/node_modules/.bin/next
deleted file mode 100755
index ad23ecf2..00000000
--- a/frontend/node_modules/.bin/next
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/bin/next" "$@"
-else
- exec node "$basedir/../.pnpm/next@16.0.10_@babel+core@7.28.5_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/next/dist/bin/next" "$@"
-fi
diff --git a/frontend/node_modules/.bin/tsc b/frontend/node_modules/.bin/tsc
deleted file mode 100755
index fbd7d68c..00000000
--- a/frontend/node_modules/.bin/tsc
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsc" "$@"
-else
- exec node "$basedir/../.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsc" "$@"
-fi
diff --git a/frontend/node_modules/.bin/tsserver b/frontend/node_modules/.bin/tsserver
deleted file mode 100755
index f76012e3..00000000
--- a/frontend/node_modules/.bin/tsserver
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/typescript@5.9.3/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsserver" "$@"
-else
- exec node "$basedir/../.pnpm/typescript@5.9.3/node_modules/typescript/bin/tsserver" "$@"
-fi
diff --git a/frontend/node_modules/.modules.yaml b/frontend/node_modules/.modules.yaml
deleted file mode 100644
index f9a14474..00000000
--- a/frontend/node_modules/.modules.yaml
+++ /dev/null
@@ -1,1207 +0,0 @@
-hoistPattern:
- - '*'
-hoistedDependencies:
- '@babel/code-frame@7.27.1':
- '@babel/code-frame': private
- '@babel/compat-data@7.28.5':
- '@babel/compat-data': private
- '@babel/core@7.28.5':
- '@babel/core': private
- '@babel/generator@7.28.5':
- '@babel/generator': private
- '@babel/helper-compilation-targets@7.27.2':
- '@babel/helper-compilation-targets': private
- '@babel/helper-globals@7.28.0':
- '@babel/helper-globals': private
- '@babel/helper-module-imports@7.27.1':
- '@babel/helper-module-imports': private
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
- '@babel/helper-module-transforms': private
- '@babel/helper-string-parser@7.27.1':
- '@babel/helper-string-parser': private
- '@babel/helper-validator-identifier@7.28.5':
- '@babel/helper-validator-identifier': private
- '@babel/helper-validator-option@7.27.1':
- '@babel/helper-validator-option': private
- '@babel/helpers@7.28.4':
- '@babel/helpers': private
- '@babel/parser@7.28.5':
- '@babel/parser': private
- '@babel/template@7.27.2':
- '@babel/template': private
- '@babel/traverse@7.28.5':
- '@babel/traverse': private
- '@babel/types@7.28.5':
- '@babel/types': private
- '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
- '@eslint-community/eslint-utils': private
- '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@1.21.7))':
- '@eslint-community/eslint-utils': private
- '@eslint-community/regexpp@4.12.1':
- '@eslint-community/regexpp': private
- '@eslint-community/regexpp@4.12.2':
- '@eslint-community/regexpp': private
- '@eslint/config-array@0.21.1':
- '@eslint/config-array': private
- '@eslint/config-helpers@0.4.2':
- '@eslint/config-helpers': private
- '@eslint/core@0.17.0':
- '@eslint/core': private
- '@eslint/eslintrc@2.1.4':
- '@eslint/eslintrc': private
- '@eslint/eslintrc@3.3.3':
- '@eslint/eslintrc': private
- '@eslint/js@8.57.1':
- '@eslint/js': private
- '@eslint/js@9.39.2':
- '@eslint/js': private
- '@eslint/object-schema@2.1.7':
- '@eslint/object-schema': private
- '@eslint/plugin-kit@0.4.1':
- '@eslint/plugin-kit': private
- '@hapi/address@5.1.1':
- '@hapi/address': private
- '@hapi/formula@3.0.2':
- '@hapi/formula': private
- '@hapi/hoek@11.0.7':
- '@hapi/hoek': private
- '@hapi/hoek@9.3.0':
- '@hapi/hoek': private
- '@hapi/pinpoint@2.0.1':
- '@hapi/pinpoint': private
- '@hapi/tlds@1.1.4':
- '@hapi/tlds': private
- '@hapi/topo@5.1.0':
- '@hapi/topo': private
- '@hapi/topo@6.0.2':
- '@hapi/topo': private
- '@humanfs/core@0.19.1':
- '@humanfs/core': private
- '@humanfs/node@0.16.7':
- '@humanfs/node': private
- '@humanwhocodes/config-array@0.13.0':
- '@humanwhocodes/config-array': private
- '@humanwhocodes/module-importer@1.0.1':
- '@humanwhocodes/module-importer': private
- '@humanwhocodes/object-schema@2.0.3':
- '@humanwhocodes/object-schema': private
- '@humanwhocodes/retry@0.4.3':
- '@humanwhocodes/retry': private
- '@img/colour@1.0.0':
- '@img/colour': private
- '@img/sharp-darwin-arm64@0.34.2':
- '@img/sharp-darwin-arm64': private
- '@img/sharp-darwin-arm64@0.34.5':
- '@img/sharp-darwin-arm64': private
- '@img/sharp-libvips-darwin-arm64@1.1.0':
- '@img/sharp-libvips-darwin-arm64': private
- '@img/sharp-libvips-darwin-arm64@1.2.4':
- '@img/sharp-libvips-darwin-arm64': private
- '@isaacs/cliui@8.0.2':
- '@isaacs/cliui': private
- '@jridgewell/gen-mapping@0.3.13':
- '@jridgewell/gen-mapping': private
- '@jridgewell/gen-mapping@0.3.8':
- '@jridgewell/gen-mapping': private
- '@jridgewell/remapping@2.3.5':
- '@jridgewell/remapping': private
- '@jridgewell/resolve-uri@3.1.2':
- '@jridgewell/resolve-uri': private
- '@jridgewell/set-array@1.2.1':
- '@jridgewell/set-array': private
- '@jridgewell/sourcemap-codec@1.5.0':
- '@jridgewell/sourcemap-codec': private
- '@jridgewell/sourcemap-codec@1.5.5':
- '@jridgewell/sourcemap-codec': private
- '@jridgewell/trace-mapping@0.3.25':
- '@jridgewell/trace-mapping': private
- '@jridgewell/trace-mapping@0.3.31':
- '@jridgewell/trace-mapping': private
- '@mapbox/node-pre-gyp@1.0.11':
- '@mapbox/node-pre-gyp': private
- '@napi-rs/canvas-darwin-arm64@0.1.84':
- '@napi-rs/canvas-darwin-arm64': private
- '@napi-rs/canvas@0.1.84':
- '@napi-rs/canvas': private
- '@next/env@15.3.4':
- '@next/env': private
- '@next/env@16.0.10':
- '@next/env': private
- '@next/eslint-plugin-next@15.3.4':
- '@next/eslint-plugin-next': private
- '@next/eslint-plugin-next@16.0.10':
- '@next/eslint-plugin-next': private
- '@next/swc-darwin-arm64@15.3.4':
- '@next/swc-darwin-arm64': private
- '@next/swc-darwin-arm64@16.0.10':
- '@next/swc-darwin-arm64': private
- '@nodelib/fs.scandir@2.1.5':
- '@nodelib/fs.scandir': private
- '@nodelib/fs.stat@2.0.5':
- '@nodelib/fs.stat': private
- '@nodelib/fs.walk@1.2.8':
- '@nodelib/fs.walk': private
- '@nolyfill/is-core-module@1.0.39':
- '@nolyfill/is-core-module': private
- '@pkgjs/parseargs@0.11.0':
- '@pkgjs/parseargs': private
- '@rtsao/scc@1.1.0':
- '@rtsao/scc': private
- '@rushstack/eslint-patch@1.11.0':
- '@rushstack/eslint-patch': private
- '@sideway/address@4.1.5':
- '@sideway/address': private
- '@sideway/formula@3.0.1':
- '@sideway/formula': private
- '@sideway/pinpoint@2.0.0':
- '@sideway/pinpoint': private
- '@standard-schema/spec@1.0.0':
- '@standard-schema/spec': private
- '@standard-schema/utils@0.3.0':
- '@standard-schema/utils': private
- '@swc/counter@0.1.3':
- '@swc/counter': private
- '@swc/helpers@0.5.15':
- '@swc/helpers': private
- '@types/estree@1.0.8':
- '@types/estree': private
- '@types/json-schema@7.0.15':
- '@types/json-schema': private
- '@types/json5@0.0.29':
- '@types/json5': private
- '@types/prop-types@15.7.15':
- '@types/prop-types': private
- '@types/semver@7.7.0':
- '@types/semver': private
- '@typescript-eslint/project-service@8.49.0(typescript@5.9.3)':
- '@typescript-eslint/project-service': private
- '@typescript-eslint/scope-manager@6.21.0':
- '@typescript-eslint/scope-manager': private
- '@typescript-eslint/scope-manager@8.49.0':
- '@typescript-eslint/scope-manager': private
- '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.9.3)':
- '@typescript-eslint/tsconfig-utils': private
- '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)':
- '@typescript-eslint/type-utils': private
- '@typescript-eslint/type-utils@8.49.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
- '@typescript-eslint/type-utils': private
- '@typescript-eslint/types@6.21.0':
- '@typescript-eslint/types': private
- '@typescript-eslint/types@8.49.0':
- '@typescript-eslint/types': private
- '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3)':
- '@typescript-eslint/typescript-estree': private
- '@typescript-eslint/typescript-estree@8.49.0(typescript@5.9.3)':
- '@typescript-eslint/typescript-estree': private
- '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)':
- '@typescript-eslint/utils': private
- '@typescript-eslint/utils@8.49.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3)':
- '@typescript-eslint/utils': private
- '@typescript-eslint/visitor-keys@6.21.0':
- '@typescript-eslint/visitor-keys': private
- '@typescript-eslint/visitor-keys@8.49.0':
- '@typescript-eslint/visitor-keys': private
- '@ungap/structured-clone@1.3.0':
- '@ungap/structured-clone': private
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- '@unrs/resolver-binding-darwin-arm64': private
- '@unrs/resolver-binding-darwin-arm64@1.9.2':
- '@unrs/resolver-binding-darwin-arm64': private
- abbrev@1.1.1:
- abbrev: private
- acorn-jsx@5.3.2(acorn@8.15.0):
- acorn-jsx: private
- acorn@8.15.0:
- acorn: private
- agent-base@6.0.2:
- agent-base: private
- ajv@6.12.6:
- ajv: private
- ansi-regex@5.0.1:
- ansi-regex: private
- ansi-styles@4.3.0:
- ansi-styles: private
- any-promise@1.3.0:
- any-promise: private
- anymatch@3.1.3:
- anymatch: private
- aproba@2.0.0:
- aproba: private
- are-we-there-yet@2.0.0:
- are-we-there-yet: private
- arg@5.0.2:
- arg: private
- argparse@2.0.1:
- argparse: private
- aria-query@5.3.2:
- aria-query: private
- array-buffer-byte-length@1.0.2:
- array-buffer-byte-length: private
- array-includes@3.1.9:
- array-includes: private
- array-union@2.1.0:
- array-union: private
- array.prototype.findlast@1.2.5:
- array.prototype.findlast: private
- array.prototype.findlastindex@1.2.6:
- array.prototype.findlastindex: private
- array.prototype.flat@1.3.3:
- array.prototype.flat: private
- array.prototype.flatmap@1.3.3:
- array.prototype.flatmap: private
- array.prototype.tosorted@1.1.4:
- array.prototype.tosorted: private
- arraybuffer.prototype.slice@1.0.4:
- arraybuffer.prototype.slice: private
- ast-types-flow@0.0.8:
- ast-types-flow: private
- async-function@1.0.0:
- async-function: private
- asynckit@0.4.0:
- asynckit: private
- available-typed-arrays@1.0.7:
- available-typed-arrays: private
- axe-core@4.10.3:
- axe-core: private
- axe-core@4.11.0:
- axe-core: private
- axobject-query@4.1.0:
- axobject-query: private
- balanced-match@1.0.2:
- balanced-match: private
- baseline-browser-mapping@2.9.7:
- baseline-browser-mapping: private
- binary-extensions@2.3.0:
- binary-extensions: private
- brace-expansion@1.1.12:
- brace-expansion: private
- braces@3.0.3:
- braces: private
- browserslist@4.25.0:
- browserslist: private
- browserslist@4.28.1:
- browserslist: private
- busboy@1.6.0:
- busboy: private
- call-bind-apply-helpers@1.0.2:
- call-bind-apply-helpers: private
- call-bind@1.0.8:
- call-bind: private
- call-bound@1.0.4:
- call-bound: private
- callsites@3.1.0:
- callsites: private
- camelcase-css@2.0.1:
- camelcase-css: private
- caniuse-lite@1.0.30001724:
- caniuse-lite: private
- caniuse-lite@1.0.30001760:
- caniuse-lite: private
- canvas@2.11.2:
- canvas: private
- chalk@4.1.2:
- chalk: private
- chokidar@3.6.0:
- chokidar: private
- chownr@2.0.0:
- chownr: private
- client-only@0.0.1:
- client-only: private
- color-convert@2.0.1:
- color-convert: private
- color-name@1.1.4:
- color-name: private
- color-string@1.9.1:
- color-string: private
- color-support@1.1.3:
- color-support: private
- color@4.2.3:
- color: private
- combined-stream@1.0.8:
- combined-stream: private
- commander@4.1.1:
- commander: private
- concat-map@0.0.1:
- concat-map: private
- console-control-strings@1.1.0:
- console-control-strings: private
- convert-source-map@2.0.0:
- convert-source-map: private
- cross-spawn@7.0.6:
- cross-spawn: private
- cssesc@3.0.0:
- cssesc: private
- csstype@3.1.3:
- csstype: private
- csstype@3.2.3:
- csstype: private
- damerau-levenshtein@1.0.8:
- damerau-levenshtein: private
- data-view-buffer@1.0.2:
- data-view-buffer: private
- data-view-byte-length@1.0.2:
- data-view-byte-length: private
- data-view-byte-offset@1.0.1:
- data-view-byte-offset: private
- debug@4.4.1:
- debug: private
- debug@4.4.3:
- debug: private
- decompress-response@4.2.1:
- decompress-response: private
- deep-is@0.1.4:
- deep-is: private
- define-data-property@1.1.4:
- define-data-property: private
- define-properties@1.2.1:
- define-properties: private
- delayed-stream@1.0.0:
- delayed-stream: private
- delegates@1.0.0:
- delegates: private
- dequal@2.0.3:
- dequal: private
- detect-libc@2.0.4:
- detect-libc: private
- detect-libc@2.1.2:
- detect-libc: private
- didyoumean@1.2.2:
- didyoumean: private
- dir-glob@3.0.1:
- dir-glob: private
- dlv@1.1.3:
- dlv: private
- doctrine@2.1.0:
- doctrine: private
- doctrine@3.0.0:
- doctrine: private
- dunder-proto@1.0.1:
- dunder-proto: private
- eastasianwidth@0.2.0:
- eastasianwidth: private
- electron-to-chromium@1.5.173:
- electron-to-chromium: private
- electron-to-chromium@1.5.267:
- electron-to-chromium: private
- emoji-regex@9.2.2:
- emoji-regex: private
- es-abstract@1.24.0:
- es-abstract: private
- es-abstract@1.24.1:
- es-abstract: private
- es-define-property@1.0.1:
- es-define-property: private
- es-errors@1.3.0:
- es-errors: private
- es-iterator-helpers@1.2.1:
- es-iterator-helpers: private
- es-iterator-helpers@1.2.2:
- es-iterator-helpers: private
- es-object-atoms@1.1.1:
- es-object-atoms: private
- es-set-tostringtag@2.1.0:
- es-set-tostringtag: private
- es-shim-unscopables@1.1.0:
- es-shim-unscopables: private
- es-to-primitive@1.3.0:
- es-to-primitive: private
- escalade@3.2.0:
- escalade: private
- escape-string-regexp@4.0.0:
- escape-string-regexp: private
- eslint-import-resolver-node@0.3.9:
- eslint-import-resolver-node: private
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1):
- eslint-import-resolver-typescript: private
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)):
- eslint-import-resolver-typescript: private
- eslint-module-utils@2.12.1(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
- eslint-module-utils: private
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)):
- eslint-module-utils: private
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
- eslint-plugin-import: private
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1):
- eslint-plugin-import: private
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)):
- eslint-plugin-import: private
- eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1):
- eslint-plugin-jsx-a11y: private
- eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@1.21.7)):
- eslint-plugin-jsx-a11y: private
- eslint-plugin-react-hooks@5.2.0(eslint@8.57.1):
- eslint-plugin-react-hooks: private
- eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@1.21.7)):
- eslint-plugin-react-hooks: private
- eslint-plugin-react@7.37.5(eslint@8.57.1):
- eslint-plugin-react: private
- eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@1.21.7)):
- eslint-plugin-react: private
- eslint-scope@7.2.2:
- eslint-scope: private
- eslint-scope@8.4.0:
- eslint-scope: private
- eslint-visitor-keys@3.4.3:
- eslint-visitor-keys: private
- eslint-visitor-keys@4.2.1:
- eslint-visitor-keys: private
- espree@10.4.0:
- espree: private
- espree@9.6.1:
- espree: private
- esquery@1.6.0:
- esquery: private
- esrecurse@4.3.0:
- esrecurse: private
- estraverse@5.3.0:
- estraverse: private
- esutils@2.0.3:
- esutils: private
- fast-deep-equal@3.1.3:
- fast-deep-equal: private
- fast-glob@3.3.1:
- fast-glob: private
- fast-glob@3.3.3:
- fast-glob: private
- fast-json-stable-stringify@2.1.0:
- fast-json-stable-stringify: private
- fast-levenshtein@2.0.6:
- fast-levenshtein: private
- fastq@1.19.1:
- fastq: private
- fdir@6.4.6(picomatch@4.0.2):
- fdir: private
- fdir@6.5.0(picomatch@4.0.3):
- fdir: private
- file-entry-cache@6.0.1:
- file-entry-cache: private
- file-entry-cache@8.0.0:
- file-entry-cache: private
- fill-range@7.1.1:
- fill-range: private
- find-up@5.0.0:
- find-up: private
- flat-cache@3.2.0:
- flat-cache: private
- flat-cache@4.0.1:
- flat-cache: private
- flatted@3.3.3:
- flatted: private
- follow-redirects@1.15.11:
- follow-redirects: private
- follow-redirects@1.15.9:
- follow-redirects: private
- for-each@0.3.5:
- for-each: private
- foreground-child@3.3.1:
- foreground-child: private
- form-data@4.0.3:
- form-data: private
- form-data@4.0.5:
- form-data: private
- fraction.js@4.3.7:
- fraction.js: private
- fraction.js@5.3.4:
- fraction.js: private
- fs-minipass@2.1.0:
- fs-minipass: private
- fs.realpath@1.0.0:
- fs.realpath: private
- fsevents@2.3.3:
- fsevents: private
- function-bind@1.1.2:
- function-bind: private
- function.prototype.name@1.1.8:
- function.prototype.name: private
- functions-have-names@1.2.3:
- functions-have-names: private
- gauge@3.0.2:
- gauge: private
- generator-function@2.0.1:
- generator-function: private
- gensync@1.0.0-beta.2:
- gensync: private
- get-intrinsic@1.3.0:
- get-intrinsic: private
- get-proto@1.0.1:
- get-proto: private
- get-symbol-description@1.1.0:
- get-symbol-description: private
- get-tsconfig@4.10.1:
- get-tsconfig: private
- get-tsconfig@4.13.0:
- get-tsconfig: private
- glob-parent@6.0.2:
- glob-parent: private
- glob@10.4.5:
- glob: private
- globals@13.24.0:
- globals: private
- globals@16.4.0:
- globals: private
- globalthis@1.0.4:
- globalthis: private
- globby@11.1.0:
- globby: private
- gopd@1.2.0:
- gopd: private
- graphemer@1.4.0:
- graphemer: private
- has-bigints@1.1.0:
- has-bigints: private
- has-flag@4.0.0:
- has-flag: private
- has-property-descriptors@1.0.2:
- has-property-descriptors: private
- has-proto@1.2.0:
- has-proto: private
- has-symbols@1.1.0:
- has-symbols: private
- has-tostringtag@1.0.2:
- has-tostringtag: private
- has-unicode@2.0.1:
- has-unicode: private
- hasown@2.0.2:
- hasown: private
- hermes-estree@0.25.1:
- hermes-estree: private
- hermes-parser@0.25.1:
- hermes-parser: private
- https-proxy-agent@5.0.1:
- https-proxy-agent: private
- ignore@5.3.2:
- ignore: private
- ignore@7.0.5:
- ignore: private
- import-fresh@3.3.1:
- import-fresh: private
- imurmurhash@0.1.4:
- imurmurhash: private
- inflight@1.0.6:
- inflight: private
- inherits@2.0.4:
- inherits: private
- internal-slot@1.1.0:
- internal-slot: private
- is-array-buffer@3.0.5:
- is-array-buffer: private
- is-arrayish@0.3.2:
- is-arrayish: private
- is-async-function@2.1.1:
- is-async-function: private
- is-bigint@1.1.0:
- is-bigint: private
- is-binary-path@2.1.0:
- is-binary-path: private
- is-boolean-object@1.2.2:
- is-boolean-object: private
- is-bun-module@2.0.0:
- is-bun-module: private
- is-callable@1.2.7:
- is-callable: private
- is-core-module@2.16.1:
- is-core-module: private
- is-data-view@1.0.2:
- is-data-view: private
- is-date-object@1.1.0:
- is-date-object: private
- is-extglob@2.1.1:
- is-extglob: private
- is-finalizationregistry@1.1.1:
- is-finalizationregistry: private
- is-fullwidth-code-point@3.0.0:
- is-fullwidth-code-point: private
- is-generator-function@1.1.0:
- is-generator-function: private
- is-generator-function@1.1.2:
- is-generator-function: private
- is-glob@4.0.3:
- is-glob: private
- is-map@2.0.3:
- is-map: private
- is-negative-zero@2.0.3:
- is-negative-zero: private
- is-number-object@1.1.1:
- is-number-object: private
- is-number@7.0.0:
- is-number: private
- is-path-inside@3.0.3:
- is-path-inside: private
- is-regex@1.2.1:
- is-regex: private
- is-set@2.0.3:
- is-set: private
- is-shared-array-buffer@1.0.4:
- is-shared-array-buffer: private
- is-string@1.1.1:
- is-string: private
- is-symbol@1.1.1:
- is-symbol: private
- is-typed-array@1.1.15:
- is-typed-array: private
- is-weakmap@2.0.2:
- is-weakmap: private
- is-weakref@1.1.1:
- is-weakref: private
- is-weakset@2.0.4:
- is-weakset: private
- isarray@2.0.5:
- isarray: private
- isexe@2.0.0:
- isexe: private
- iterator.prototype@1.1.5:
- iterator.prototype: private
- jackspeak@3.4.3:
- jackspeak: private
- jiti@1.21.7:
- jiti: private
- js-tokens@4.0.0:
- js-tokens: private
- js-yaml@4.1.0:
- js-yaml: private
- js-yaml@4.1.1:
- js-yaml: private
- jsesc@3.1.0:
- jsesc: private
- json-buffer@3.0.1:
- json-buffer: private
- json-schema-traverse@0.4.1:
- json-schema-traverse: private
- json-stable-stringify-without-jsonify@1.0.1:
- json-stable-stringify-without-jsonify: private
- json5@1.0.2:
- json5: private
- json5@2.2.3:
- json5: private
- jsx-ast-utils@3.3.5:
- jsx-ast-utils: private
- keyv@4.5.4:
- keyv: private
- language-subtag-registry@0.3.23:
- language-subtag-registry: private
- language-tags@1.0.9:
- language-tags: private
- levn@0.4.1:
- levn: private
- lilconfig@3.1.3:
- lilconfig: private
- lines-and-columns@1.2.4:
- lines-and-columns: private
- locate-path@6.0.0:
- locate-path: private
- lodash.castarray@4.4.0:
- lodash.castarray: private
- lodash.isplainobject@4.0.6:
- lodash.isplainobject: private
- lodash.merge@4.6.2:
- lodash.merge: private
- loose-envify@1.4.0:
- loose-envify: private
- lru-cache@10.4.3:
- lru-cache: private
- lru-cache@5.1.1:
- lru-cache: private
- make-cancellable-promise@1.3.2:
- make-cancellable-promise: private
- make-cancellable-promise@2.0.0:
- make-cancellable-promise: private
- make-dir@3.1.0:
- make-dir: private
- make-event-props@1.6.2:
- make-event-props: private
- make-event-props@2.0.0:
- make-event-props: private
- math-intrinsics@1.1.0:
- math-intrinsics: private
- merge-refs@1.3.0(@types/react@18.3.23):
- merge-refs: private
- merge-refs@2.0.0(@types/react@19.2.7):
- merge-refs: private
- merge2@1.4.1:
- merge2: private
- micromatch@4.0.8:
- micromatch: private
- mime-db@1.52.0:
- mime-db: private
- mime-types@2.1.35:
- mime-types: private
- mimic-response@2.1.0:
- mimic-response: private
- mini-svg-data-uri@1.4.4:
- mini-svg-data-uri: private
- minimatch@3.1.2:
- minimatch: private
- minimist@1.2.8:
- minimist: private
- minipass@7.1.2:
- minipass: private
- minizlib@2.1.2:
- minizlib: private
- mkdirp@1.0.4:
- mkdirp: private
- ms@2.1.3:
- ms: private
- mz@2.7.0:
- mz: private
- nan@2.22.2:
- nan: private
- nanoid@3.3.11:
- nanoid: private
- napi-postinstall@0.2.4:
- napi-postinstall: private
- napi-postinstall@0.3.4:
- napi-postinstall: private
- natural-compare@1.4.0:
- natural-compare: private
- node-fetch@2.7.0:
- node-fetch: private
- node-releases@2.0.19:
- node-releases: private
- node-releases@2.0.27:
- node-releases: private
- nopt@5.0.0:
- nopt: private
- normalize-path@3.0.0:
- normalize-path: private
- normalize-range@0.1.2:
- normalize-range: private
- npmlog@5.0.1:
- npmlog: private
- object-assign@4.1.1:
- object-assign: private
- object-hash@3.0.0:
- object-hash: private
- object-inspect@1.13.4:
- object-inspect: private
- object-keys@1.1.1:
- object-keys: private
- object.assign@4.1.7:
- object.assign: private
- object.entries@1.1.9:
- object.entries: private
- object.fromentries@2.0.8:
- object.fromentries: private
- object.groupby@1.0.3:
- object.groupby: private
- object.values@1.2.1:
- object.values: private
- once@1.4.0:
- once: private
- optionator@0.9.4:
- optionator: private
- own-keys@1.0.1:
- own-keys: private
- p-limit@3.1.0:
- p-limit: private
- p-locate@5.0.0:
- p-locate: private
- package-json-from-dist@1.0.1:
- package-json-from-dist: private
- parent-module@1.0.1:
- parent-module: private
- path-exists@4.0.0:
- path-exists: private
- path-is-absolute@1.0.1:
- path-is-absolute: private
- path-key@3.1.1:
- path-key: private
- path-parse@1.0.7:
- path-parse: private
- path-scurry@1.11.1:
- path-scurry: private
- path-type@4.0.0:
- path-type: private
- path2d-polyfill@2.0.1:
- path2d-polyfill: private
- pdfjs-dist@3.11.174:
- pdfjs-dist: private
- pdfjs-dist@5.4.296:
- pdfjs-dist: private
- picocolors@1.1.1:
- picocolors: private
- picomatch@2.3.1:
- picomatch: private
- picomatch@4.0.3:
- picomatch: private
- pify@2.3.0:
- pify: private
- pirates@4.0.7:
- pirates: private
- possible-typed-array-names@1.1.0:
- possible-typed-array-names: private
- postcss-import@15.1.0(postcss@8.5.6):
- postcss-import: private
- postcss-js@4.0.1(postcss@8.5.6):
- postcss-js: private
- postcss-load-config@4.0.2(postcss@8.5.6):
- postcss-load-config: private
- postcss-nested@6.2.0(postcss@8.5.6):
- postcss-nested: private
- postcss-selector-parser@6.0.10:
- postcss-selector-parser: private
- postcss-selector-parser@6.1.2:
- postcss-selector-parser: private
- postcss-value-parser@4.2.0:
- postcss-value-parser: private
- prelude-ls@1.2.1:
- prelude-ls: private
- prop-types@15.8.1:
- prop-types: private
- proxy-from-env@1.1.0:
- proxy-from-env: private
- punycode@2.3.1:
- punycode: private
- queue-microtask@1.2.3:
- queue-microtask: private
- react-is@16.13.1:
- react-is: private
- read-cache@1.0.0:
- read-cache: private
- readable-stream@3.6.2:
- readable-stream: private
- readdirp@3.6.0:
- readdirp: private
- reflect.getprototypeof@1.0.10:
- reflect.getprototypeof: private
- regexp.prototype.flags@1.5.4:
- regexp.prototype.flags: private
- resolve-from@4.0.0:
- resolve-from: private
- resolve-pkg-maps@1.0.0:
- resolve-pkg-maps: private
- resolve@1.22.10:
- resolve: private
- resolve@1.22.11:
- resolve: private
- reusify@1.1.0:
- reusify: private
- rimraf@3.0.2:
- rimraf: private
- run-parallel@1.2.0:
- run-parallel: private
- safe-array-concat@1.1.3:
- safe-array-concat: private
- safe-buffer@5.2.1:
- safe-buffer: private
- safe-push-apply@1.0.0:
- safe-push-apply: private
- safe-regex-test@1.1.0:
- safe-regex-test: private
- scheduler@0.23.2:
- scheduler: private
- scheduler@0.27.0:
- scheduler: private
- semver@7.7.2:
- semver: private
- semver@7.7.3:
- semver: private
- set-blocking@2.0.0:
- set-blocking: private
- set-function-length@1.2.2:
- set-function-length: private
- set-function-name@2.0.2:
- set-function-name: private
- set-proto@1.0.0:
- set-proto: private
- sharp@0.34.2:
- sharp: private
- sharp@0.34.5:
- sharp: private
- shebang-command@2.0.0:
- shebang-command: private
- shebang-regex@3.0.0:
- shebang-regex: private
- side-channel-list@1.0.0:
- side-channel-list: private
- side-channel-map@1.0.1:
- side-channel-map: private
- side-channel-weakmap@1.0.2:
- side-channel-weakmap: private
- side-channel@1.1.0:
- side-channel: private
- signal-exit@4.1.0:
- signal-exit: private
- simple-concat@1.0.1:
- simple-concat: private
- simple-get@3.1.1:
- simple-get: private
- simple-swizzle@0.2.2:
- simple-swizzle: private
- slash@3.0.0:
- slash: private
- source-map-js@1.2.1:
- source-map-js: private
- stable-hash@0.0.5:
- stable-hash: private
- stop-iteration-iterator@1.1.0:
- stop-iteration-iterator: private
- streamsearch@1.1.0:
- streamsearch: private
- string-width@4.2.3:
- string-width-cjs: private
- string-width@5.1.2:
- string-width: private
- string.prototype.includes@2.0.1:
- string.prototype.includes: private
- string.prototype.matchall@4.0.12:
- string.prototype.matchall: private
- string.prototype.repeat@1.0.0:
- string.prototype.repeat: private
- string.prototype.trim@1.2.10:
- string.prototype.trim: private
- string.prototype.trimend@1.0.9:
- string.prototype.trimend: private
- string.prototype.trimstart@1.0.8:
- string.prototype.trimstart: private
- string_decoder@1.3.0:
- string_decoder: private
- strip-ansi@6.0.1:
- strip-ansi: private
- strip-ansi-cjs: private
- strip-bom@3.0.0:
- strip-bom: private
- strip-json-comments@3.1.1:
- strip-json-comments: private
- styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3):
- styled-jsx: private
- styled-jsx@5.1.6(react@18.3.1):
- styled-jsx: private
- sucrase@3.35.0:
- sucrase: private
- supports-color@7.2.0:
- supports-color: private
- supports-preserve-symlinks-flag@1.0.0:
- supports-preserve-symlinks-flag: private
- tar@6.2.1:
- tar: private
- text-table@0.2.0:
- text-table: private
- thenify-all@1.6.0:
- thenify-all: private
- thenify@3.3.1:
- thenify: private
- tiny-invariant@1.3.3:
- tiny-invariant: private
- tinyglobby@0.2.14:
- tinyglobby: private
- tinyglobby@0.2.15:
- tinyglobby: private
- to-regex-range@5.0.1:
- to-regex-range: private
- tr46@0.0.3:
- tr46: private
- ts-api-utils@1.4.3(typescript@5.8.3):
- ts-api-utils: private
- ts-api-utils@2.1.0(typescript@5.9.3):
- ts-api-utils: private
- ts-interface-checker@0.1.13:
- ts-interface-checker: private
- tsconfig-paths@3.15.0:
- tsconfig-paths: private
- tslib@2.8.1:
- tslib: private
- type-check@0.4.0:
- type-check: private
- type-fest@0.20.2:
- type-fest: private
- typed-array-buffer@1.0.3:
- typed-array-buffer: private
- typed-array-byte-length@1.0.3:
- typed-array-byte-length: private
- typed-array-byte-offset@1.0.4:
- typed-array-byte-offset: private
- typed-array-length@1.0.7:
- typed-array-length: private
- typescript-eslint@8.49.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3):
- typescript-eslint: private
- unbox-primitive@1.1.0:
- unbox-primitive: private
- undici-types@6.21.0:
- undici-types: private
- undici-types@7.16.0:
- undici-types: private
- unrs-resolver@1.11.1:
- unrs-resolver: private
- unrs-resolver@1.9.2:
- unrs-resolver: private
- update-browserslist-db@1.1.3(browserslist@4.25.0):
- update-browserslist-db: private
- update-browserslist-db@1.2.2(browserslist@4.28.1):
- update-browserslist-db: private
- uri-js@4.4.1:
- uri-js: private
- use-sync-external-store@1.5.0(react@18.3.1):
- use-sync-external-store: private
- use-sync-external-store@1.5.0(react@19.2.3):
- use-sync-external-store: private
- util-deprecate@1.0.2:
- util-deprecate: private
- warning@4.0.3:
- warning: private
- webidl-conversions@3.0.1:
- webidl-conversions: private
- whatwg-url@5.0.0:
- whatwg-url: private
- which-boxed-primitive@1.1.1:
- which-boxed-primitive: private
- which-builtin-type@1.2.1:
- which-builtin-type: private
- which-collection@1.0.2:
- which-collection: private
- which-typed-array@1.1.19:
- which-typed-array: private
- which@2.0.2:
- which: private
- wide-align@1.1.5:
- wide-align: private
- word-wrap@1.2.5:
- word-wrap: private
- wrap-ansi@7.0.0:
- wrap-ansi-cjs: private
- wrap-ansi@8.1.0:
- wrap-ansi: private
- wrappy@1.0.2:
- wrappy: private
- yallist@3.1.1:
- yallist: private
- yallist@4.0.0:
- yallist: private
- yaml@2.8.0:
- yaml: private
- yocto-queue@0.1.0:
- yocto-queue: private
- zod-validation-error@4.0.2(zod@4.1.13):
- zod-validation-error: private
- zod@4.1.13:
- zod: private
-ignoredBuilds:
- - sharp
- - unrs-resolver
-included:
- dependencies: true
- devDependencies: true
- optionalDependencies: true
-injectedDeps: {}
-layoutVersion: 5
-nodeLinker: isolated
-packageManager: pnpm@10.12.3
-pendingBuilds: []
-prunedAt: Sun, 14 Dec 2025 23:27:40 GMT
-publicHoistPattern: []
-registries:
- '@jsr': https://npm.jsr.io/
- default: https://registry.npmjs.org/
-skipped:
- - '@emnapi/core@1.4.3'
- - '@emnapi/core@1.7.1'
- - '@emnapi/runtime@1.4.3'
- - '@emnapi/runtime@1.7.1'
- - '@emnapi/wasi-threads@1.0.2'
- - '@emnapi/wasi-threads@1.1.0'
- - '@img/sharp-darwin-x64@0.34.2'
- - '@img/sharp-darwin-x64@0.34.5'
- - '@img/sharp-libvips-darwin-x64@1.1.0'
- - '@img/sharp-libvips-darwin-x64@1.2.4'
- - '@img/sharp-libvips-linux-arm64@1.1.0'
- - '@img/sharp-libvips-linux-arm64@1.2.4'
- - '@img/sharp-libvips-linux-arm@1.1.0'
- - '@img/sharp-libvips-linux-arm@1.2.4'
- - '@img/sharp-libvips-linux-ppc64@1.1.0'
- - '@img/sharp-libvips-linux-ppc64@1.2.4'
- - '@img/sharp-libvips-linux-riscv64@1.2.4'
- - '@img/sharp-libvips-linux-s390x@1.1.0'
- - '@img/sharp-libvips-linux-s390x@1.2.4'
- - '@img/sharp-libvips-linux-x64@1.1.0'
- - '@img/sharp-libvips-linux-x64@1.2.4'
- - '@img/sharp-libvips-linuxmusl-arm64@1.1.0'
- - '@img/sharp-libvips-linuxmusl-arm64@1.2.4'
- - '@img/sharp-libvips-linuxmusl-x64@1.1.0'
- - '@img/sharp-libvips-linuxmusl-x64@1.2.4'
- - '@img/sharp-linux-arm64@0.34.2'
- - '@img/sharp-linux-arm64@0.34.5'
- - '@img/sharp-linux-arm@0.34.2'
- - '@img/sharp-linux-arm@0.34.5'
- - '@img/sharp-linux-ppc64@0.34.5'
- - '@img/sharp-linux-riscv64@0.34.5'
- - '@img/sharp-linux-s390x@0.34.2'
- - '@img/sharp-linux-s390x@0.34.5'
- - '@img/sharp-linux-x64@0.34.2'
- - '@img/sharp-linux-x64@0.34.5'
- - '@img/sharp-linuxmusl-arm64@0.34.2'
- - '@img/sharp-linuxmusl-arm64@0.34.5'
- - '@img/sharp-linuxmusl-x64@0.34.2'
- - '@img/sharp-linuxmusl-x64@0.34.5'
- - '@img/sharp-wasm32@0.34.2'
- - '@img/sharp-wasm32@0.34.5'
- - '@img/sharp-win32-arm64@0.34.2'
- - '@img/sharp-win32-arm64@0.34.5'
- - '@img/sharp-win32-ia32@0.34.2'
- - '@img/sharp-win32-ia32@0.34.5'
- - '@img/sharp-win32-x64@0.34.2'
- - '@img/sharp-win32-x64@0.34.5'
- - '@napi-rs/canvas-android-arm64@0.1.84'
- - '@napi-rs/canvas-darwin-x64@0.1.84'
- - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.84'
- - '@napi-rs/canvas-linux-arm64-gnu@0.1.84'
- - '@napi-rs/canvas-linux-arm64-musl@0.1.84'
- - '@napi-rs/canvas-linux-riscv64-gnu@0.1.84'
- - '@napi-rs/canvas-linux-x64-gnu@0.1.84'
- - '@napi-rs/canvas-linux-x64-musl@0.1.84'
- - '@napi-rs/canvas-win32-x64-msvc@0.1.84'
- - '@napi-rs/wasm-runtime@0.2.11'
- - '@napi-rs/wasm-runtime@0.2.12'
- - '@next/swc-darwin-x64@15.3.4'
- - '@next/swc-darwin-x64@16.0.10'
- - '@next/swc-linux-arm64-gnu@15.3.4'
- - '@next/swc-linux-arm64-gnu@16.0.10'
- - '@next/swc-linux-arm64-musl@15.3.4'
- - '@next/swc-linux-arm64-musl@16.0.10'
- - '@next/swc-linux-x64-gnu@15.3.4'
- - '@next/swc-linux-x64-gnu@16.0.10'
- - '@next/swc-linux-x64-musl@15.3.4'
- - '@next/swc-linux-x64-musl@16.0.10'
- - '@next/swc-win32-arm64-msvc@15.3.4'
- - '@next/swc-win32-arm64-msvc@16.0.10'
- - '@next/swc-win32-x64-msvc@15.3.4'
- - '@next/swc-win32-x64-msvc@16.0.10'
- - '@tybys/wasm-util@0.10.1'
- - '@tybys/wasm-util@0.9.0'
- - '@unrs/resolver-binding-android-arm-eabi@1.11.1'
- - '@unrs/resolver-binding-android-arm-eabi@1.9.2'
- - '@unrs/resolver-binding-android-arm64@1.11.1'
- - '@unrs/resolver-binding-android-arm64@1.9.2'
- - '@unrs/resolver-binding-darwin-x64@1.11.1'
- - '@unrs/resolver-binding-darwin-x64@1.9.2'
- - '@unrs/resolver-binding-freebsd-x64@1.11.1'
- - '@unrs/resolver-binding-freebsd-x64@1.9.2'
- - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1'
- - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2'
- - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1'
- - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.2'
- - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1'
- - '@unrs/resolver-binding-linux-arm64-gnu@1.9.2'
- - '@unrs/resolver-binding-linux-arm64-musl@1.11.1'
- - '@unrs/resolver-binding-linux-arm64-musl@1.9.2'
- - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1'
- - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.2'
- - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1'
- - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.2'
- - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1'
- - '@unrs/resolver-binding-linux-riscv64-musl@1.9.2'
- - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1'
- - '@unrs/resolver-binding-linux-s390x-gnu@1.9.2'
- - '@unrs/resolver-binding-linux-x64-gnu@1.11.1'
- - '@unrs/resolver-binding-linux-x64-gnu@1.9.2'
- - '@unrs/resolver-binding-linux-x64-musl@1.11.1'
- - '@unrs/resolver-binding-linux-x64-musl@1.9.2'
- - '@unrs/resolver-binding-wasm32-wasi@1.11.1'
- - '@unrs/resolver-binding-wasm32-wasi@1.9.2'
- - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1'
- - '@unrs/resolver-binding-win32-arm64-msvc@1.9.2'
- - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1'
- - '@unrs/resolver-binding-win32-ia32-msvc@1.9.2'
- - '@unrs/resolver-binding-win32-x64-msvc@1.11.1'
- - '@unrs/resolver-binding-win32-x64-msvc@1.9.2'
-storeDir: /Users/chaulmark/Library/pnpm/store/v10
-virtualStoreDir: .pnpm
-virtualStoreDirMaxLength: 120
diff --git a/frontend/node_modules/.pnpm-workspace-state.json b/frontend/node_modules/.pnpm-workspace-state.json
deleted file mode 100644
index 6a9d2515..00000000
--- a/frontend/node_modules/.pnpm-workspace-state.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "lastValidatedTimestamp": 1765754861047,
- "projects": {},
- "pnpmfileExists": false,
- "settings": {
- "autoInstallPeers": true,
- "dedupeDirectDeps": false,
- "dedupeInjectedDeps": true,
- "dedupePeerDependents": true,
- "dev": true,
- "excludeLinksFromLockfile": false,
- "hoistPattern": [
- "*"
- ],
- "hoistWorkspacePackages": true,
- "injectWorkspacePackages": false,
- "linkWorkspacePackages": false,
- "nodeLinker": "isolated",
- "optional": true,
- "preferWorkspacePackages": false,
- "production": true,
- "publicHoistPattern": []
- },
- "filteredInstall": false
-}
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/CHANGELOG.md b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/CHANGELOG.md
deleted file mode 100644
index 1b442a19..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Changelog
-
-## [1.0.1](https://github.com/humanwhocodes/module-importer/compare/v1.0.0...v1.0.1) (2022-08-18)
-
-
-### Bug Fixes
-
-* Ensure CommonJS mode works correctly. ([cf54a0b](https://github.com/humanwhocodes/module-importer/commit/cf54a0b998085066fbe1776dd0b4cacd808cc192)), closes [#6](https://github.com/humanwhocodes/module-importer/issues/6)
-
-## 1.0.0 (2022-08-17)
-
-
-### Features
-
-* Implement ModuleImporter ([3ce4e82](https://www.github.com/humanwhocodes/module-importer/commit/3ce4e820c30c114e787bfed00a0966ac4772f563))
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/LICENSE b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/LICENSE
deleted file mode 100644
index 261eeb9e..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/README.md b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/README.md
deleted file mode 100644
index 3de07a7f..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# ModuleImporter
-
-by [Nicholas C. Zakas](https://humanwhocodes.com)
-
-If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate).
-
-## Description
-
-A utility for seamlessly importing modules in Node.js regardless if they are CommonJS or ESM format. Under the hood, this uses `import()` and relies on Node.js's CommonJS compatibility to work correctly. This ensures that the correct locations and formats are used for CommonJS so you can call one method and not worry about any compatibility issues.
-
-The problem with the default `import()` is that it always resolves relative to the file location in which it is called. If you want to resolve from a different location, you need to jump through a few hoops to achieve that. This package makes it easy to both resolve and import modules from any directory.
-
-## Usage
-
-### Node.js
-
-Install using [npm][npm] or [yarn][yarn]:
-
-```
-npm install @humanwhocodes/module-importer
-
-# or
-
-yarn add @humanwhocodes/module-importer
-```
-
-Import into your Node.js project:
-
-```js
-// CommonJS
-const { ModuleImporter } = require("@humanwhocodes/module-importer");
-
-// ESM
-import { ModuleImporter } from "@humanwhocodes/module-importer";
-```
-
-### Bun
-
-Install using this command:
-
-```
-bun add @humanwhocodes/module-importer
-```
-
-Import into your Bun project:
-
-```js
-import { ModuleImporter } from "@humanwhocodes/module-importer";
-```
-
-## API
-
-After importing, create a new instance of `ModuleImporter` to start emitting events:
-
-```js
-// cwd can be omitted to use process.cwd()
-const importer = new ModuleImporter(cwd);
-
-// you can resolve the location of any package
-const location = importer.resolve("./some-file.cjs");
-
-// you can also import directly
-const module = importer.import("./some-file.cjs");
-```
-
-For both `resolve()` and `import()`, you can pass in package names and filenames.
-
-## Developer Setup
-
-1. Fork the repository
-2. Clone your fork
-3. Run `npm install` to setup dependencies
-4. Run `npm test` to run tests
-
-## License
-
-Apache 2.0
-
-[npm]: https://npmjs.com/
-[yarn]: https://yarnpkg.com/
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs
deleted file mode 100644
index 779e0cf6..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.cjs
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-var module$1 = require('module');
-var url = require('url');
-var path = require('path');
-
-/**
- * @fileoverview Universal module importer
- */
-
-//-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
-
-const __filename$1 = url.fileURLToPath((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('module-importer.cjs', document.baseURI).href)));
-const __dirname$1 = path.dirname(__filename$1);
-const require$1 = module$1.createRequire(__dirname$1 + "/");
-const { ModuleImporter } = require$1("./module-importer.cjs");
-
-exports.ModuleImporter = ModuleImporter;
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts
deleted file mode 100644
index a1acbb6d..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.cts
+++ /dev/null
@@ -1,27 +0,0 @@
-export class ModuleImporter {
- /**
- * Creates a new instance.
- * @param {string} [cwd] The current working directory to resolve from.
- */
- constructor(cwd?: string);
- /**
- * The base directory from which paths should be resolved.
- * @type {string}
- */
- cwd: string;
- /**
- * Resolves a module based on its name or location.
- * @param {string} specifier Either an npm package name or
- * relative file path.
- * @returns {string|undefined} The location of the import.
- * @throws {Error} If specifier cannot be located.
- */
- resolve(specifier: string): string | undefined;
- /**
- * Imports a module based on its name or location.
- * @param {string} specifier Either an npm package name or
- * relative file path.
- * @returns {Promise} The module's object.
- */
- import(specifier: string): Promise;
-}
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts
deleted file mode 100644
index 498f0a24..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export { ModuleImporter };
-import { ModuleImporter } from "./module-importer.cjs";
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.js b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.js
deleted file mode 100644
index 26e052da..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/dist/module-importer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { createRequire } from 'module';
-import { fileURLToPath } from 'url';
-import { dirname } from 'path';
-
-/**
- * @fileoverview Universal module importer
- */
-
-//-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = dirname(__filename);
-const require = createRequire(__dirname + "/");
-const { ModuleImporter } = require("./module-importer.cjs");
-
-export { ModuleImporter };
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/package.json b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/package.json
deleted file mode 100644
index 8ece071e..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "name": "@humanwhocodes/module-importer",
- "version": "1.0.1",
- "description": "Universal module importer for Node.js",
- "main": "src/module-importer.cjs",
- "module": "src/module-importer.js",
- "type": "module",
- "types": "dist/module-importer.d.ts",
- "exports": {
- "require": "./src/module-importer.cjs",
- "import": "./src/module-importer.js"
- },
- "files": [
- "dist",
- "src"
- ],
- "publishConfig": {
- "access": "public"
- },
- "gitHooks": {
- "pre-commit": "lint-staged"
- },
- "lint-staged": {
- "*.js": [
- "eslint --fix"
- ]
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- },
- "scripts": {
- "build": "rollup -c && tsc",
- "prepare": "npm run build",
- "lint": "eslint src/ tests/",
- "test:unit": "c8 mocha tests/module-importer.test.js",
- "test:build": "node tests/pkg.test.cjs && node tests/pkg.test.mjs",
- "test": "npm run test:unit && npm run test:build"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/humanwhocodes/module-importer.git"
- },
- "keywords": [
- "modules",
- "esm",
- "commonjs"
- ],
- "engines": {
- "node": ">=12.22"
- },
- "author": "Nicholas C. Zaks",
- "license": "Apache-2.0",
- "devDependencies": {
- "@types/node": "^18.7.6",
- "c8": "7.12.0",
- "chai": "4.3.6",
- "eslint": "8.22.0",
- "lint-staged": "13.0.3",
- "mocha": "9.2.2",
- "rollup": "2.78.0",
- "typescript": "4.7.4",
- "yorkie": "2.0.0"
- }
-}
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/src/module-importer.cjs b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/src/module-importer.cjs
deleted file mode 100644
index 3efb095e..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/src/module-importer.cjs
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * @fileoverview Universal module importer
- */
-
-//-----------------------------------------------------------------------------
-// Imports
-//-----------------------------------------------------------------------------
-
-const { createRequire } = require("module");
-const { pathToFileURL } = require("url");
-
-//-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
-
-const SLASHES = new Set(["/", "\\"]);
-
-/**
- * Normalizes directories to have a trailing slash.
- * Resolve is pretty finicky -- if the directory name doesn't have
- * a trailing slash then it tries to look in the parent directory.
- * i.e., if the directory is "/usr/nzakas/foo" it will start the
- * search in /usr/nzakas. However, if the directory is "/user/nzakas/foo/",
- * then it will start the search in /user/nzakas/foo.
- * @param {string} directory The directory to check.
- * @returns {string} The normalized directory.
- */
-function normalizeDirectory(directory) {
- if (!SLASHES.has(directory[directory.length-1])) {
- return directory + "/";
- }
-
- return directory;
-}
-
-//-----------------------------------------------------------------------------
-// Exports
-//-----------------------------------------------------------------------------
-
-/**
- * Class for importing both CommonJS and ESM modules in Node.js.
- */
-exports.ModuleImporter = class ModuleImporter {
-
- /**
- * Creates a new instance.
- * @param {string} [cwd] The current working directory to resolve from.
- */
- constructor(cwd = process.cwd()) {
-
- /**
- * The base directory from which paths should be resolved.
- * @type {string}
- */
- this.cwd = normalizeDirectory(cwd);
- }
-
- /**
- * Resolves a module based on its name or location.
- * @param {string} specifier Either an npm package name or
- * relative file path.
- * @returns {string|undefined} The location of the import.
- * @throws {Error} If specifier cannot be located.
- */
- resolve(specifier) {
- const require = createRequire(this.cwd);
- return require.resolve(specifier);
- }
-
- /**
- * Imports a module based on its name or location.
- * @param {string} specifier Either an npm package name or
- * relative file path.
- * @returns {Promise} The module's object.
- */
- import(specifier) {
- const location = this.resolve(specifier);
- return import(pathToFileURL(location).href);
- }
-
-}
diff --git a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/src/module-importer.js b/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/src/module-importer.js
deleted file mode 100644
index f5464e18..00000000
--- a/frontend/node_modules/.pnpm/@humanwhocodes+module-importer@1.0.1/node_modules/@humanwhocodes/module-importer/src/module-importer.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * @fileoverview Universal module importer
- */
-
-//-----------------------------------------------------------------------------
-// Imports
-//-----------------------------------------------------------------------------
-
-import { createRequire } from "module";
-import { fileURLToPath } from "url";
-import { dirname } from "path";
-
-//-----------------------------------------------------------------------------
-// Helpers
-//-----------------------------------------------------------------------------
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = dirname(__filename);
-const require = createRequire(__dirname + "/");
-const { ModuleImporter } = require("./module-importer.cjs");
-
-export { ModuleImporter };
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/LICENSE b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/LICENSE
deleted file mode 100644
index 0a81b2ad..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2019 Justin Ridgewell
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/README.md b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/README.md
deleted file mode 100644
index 2fe70df7..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# @jridgewell/resolve-uri
-
-> Resolve a URI relative to an optional base URI
-
-Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths.
-
-## Installation
-
-```sh
-npm install @jridgewell/resolve-uri
-```
-
-## Usage
-
-```typescript
-function resolve(input: string, base?: string): string;
-```
-
-```js
-import resolve from '@jridgewell/resolve-uri';
-
-resolve('foo', 'https://example.com'); // => 'https://example.com/foo'
-```
-
-| Input | Base | Resolution | Explanation |
-|-----------------------|-------------------------|--------------------------------|--------------------------------------------------------------|
-| `https://example.com` | _any_ | `https://example.com/` | Input is normalized only |
-| `//example.com` | `https://base.com/` | `https://example.com/` | Input inherits the base's protocol |
-| `//example.com` | _rest_ | `//example.com/` | Input is normalized only |
-| `/example` | `https://base.com/` | `https://base.com/example` | Input inherits the base's origin |
-| `/example` | `//base.com/` | `//base.com/example` | Input inherits the base's host and remains protocol relative |
-| `/example` | _rest_ | `/example` | Input is normalized only |
-| `example` | `https://base.com/dir/` | `https://base.com/dir/example` | Input is joined with the base |
-| `example` | `https://base.com/file` | `https://base.com/example` | Input is joined with the base without its file |
-| `example` | `//base.com/dir/` | `//base.com/dir/example` | Input is joined with the base's last directory |
-| `example` | `//base.com/file` | `//base.com/example` | Input is joined with the base without its file |
-| `example` | `/base/dir/` | `/base/dir/example` | Input is joined with the base's last directory |
-| `example` | `/base/file` | `/base/example` | Input is joined with the base without its file |
-| `example` | `base/dir/` | `base/dir/example` | Input is joined with the base's last directory |
-| `example` | `base/file` | `base/example` | Input is joined with the base without its file |
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
deleted file mode 100644
index e958e881..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
+++ /dev/null
@@ -1,232 +0,0 @@
-// Matches the scheme of a URL, eg "http://"
-const schemeRegex = /^[\w+.-]+:\/\//;
-/**
- * Matches the parts of a URL:
- * 1. Scheme, including ":", guaranteed.
- * 2. User/password, including "@", optional.
- * 3. Host, guaranteed.
- * 4. Port, including ":", optional.
- * 5. Path, including "/", optional.
- * 6. Query, including "?", optional.
- * 7. Hash, including "#", optional.
- */
-const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
-/**
- * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
- * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
- *
- * 1. Host, optional.
- * 2. Path, which may include "/", guaranteed.
- * 3. Query, including "?", optional.
- * 4. Hash, including "#", optional.
- */
-const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
-function isAbsoluteUrl(input) {
- return schemeRegex.test(input);
-}
-function isSchemeRelativeUrl(input) {
- return input.startsWith('//');
-}
-function isAbsolutePath(input) {
- return input.startsWith('/');
-}
-function isFileUrl(input) {
- return input.startsWith('file:');
-}
-function isRelative(input) {
- return /^[.?#]/.test(input);
-}
-function parseAbsoluteUrl(input) {
- const match = urlRegex.exec(input);
- return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
-}
-function parseFileUrl(input) {
- const match = fileRegex.exec(input);
- const path = match[2];
- return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
-}
-function makeUrl(scheme, user, host, port, path, query, hash) {
- return {
- scheme,
- user,
- host,
- port,
- path,
- query,
- hash,
- type: 7 /* Absolute */,
- };
-}
-function parseUrl(input) {
- if (isSchemeRelativeUrl(input)) {
- const url = parseAbsoluteUrl('http:' + input);
- url.scheme = '';
- url.type = 6 /* SchemeRelative */;
- return url;
- }
- if (isAbsolutePath(input)) {
- const url = parseAbsoluteUrl('http://foo.com' + input);
- url.scheme = '';
- url.host = '';
- url.type = 5 /* AbsolutePath */;
- return url;
- }
- if (isFileUrl(input))
- return parseFileUrl(input);
- if (isAbsoluteUrl(input))
- return parseAbsoluteUrl(input);
- const url = parseAbsoluteUrl('http://foo.com/' + input);
- url.scheme = '';
- url.host = '';
- url.type = input
- ? input.startsWith('?')
- ? 3 /* Query */
- : input.startsWith('#')
- ? 2 /* Hash */
- : 4 /* RelativePath */
- : 1 /* Empty */;
- return url;
-}
-function stripPathFilename(path) {
- // If a path ends with a parent directory "..", then it's a relative path with excess parent
- // paths. It's not a file, so we can't strip it.
- if (path.endsWith('/..'))
- return path;
- const index = path.lastIndexOf('/');
- return path.slice(0, index + 1);
-}
-function mergePaths(url, base) {
- normalizePath(base, base.type);
- // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
- // path).
- if (url.path === '/') {
- url.path = base.path;
- }
- else {
- // Resolution happens relative to the base path's directory, not the file.
- url.path = stripPathFilename(base.path) + url.path;
- }
-}
-/**
- * The path can have empty directories "//", unneeded parents "foo/..", or current directory
- * "foo/.". We need to normalize to a standard representation.
- */
-function normalizePath(url, type) {
- const rel = type <= 4 /* RelativePath */;
- const pieces = url.path.split('/');
- // We need to preserve the first piece always, so that we output a leading slash. The item at
- // pieces[0] is an empty string.
- let pointer = 1;
- // Positive is the number of real directories we've output, used for popping a parent directory.
- // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
- let positive = 0;
- // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
- // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
- // real directory, we won't need to append, unless the other conditions happen again.
- let addTrailingSlash = false;
- for (let i = 1; i < pieces.length; i++) {
- const piece = pieces[i];
- // An empty directory, could be a trailing slash, or just a double "//" in the path.
- if (!piece) {
- addTrailingSlash = true;
- continue;
- }
- // If we encounter a real directory, then we don't need to append anymore.
- addTrailingSlash = false;
- // A current directory, which we can always drop.
- if (piece === '.')
- continue;
- // A parent directory, we need to see if there are any real directories we can pop. Else, we
- // have an excess of parents, and we'll need to keep the "..".
- if (piece === '..') {
- if (positive) {
- addTrailingSlash = true;
- positive--;
- pointer--;
- }
- else if (rel) {
- // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
- // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
- pieces[pointer++] = piece;
- }
- continue;
- }
- // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
- // any popped or dropped directories.
- pieces[pointer++] = piece;
- positive++;
- }
- let path = '';
- for (let i = 1; i < pointer; i++) {
- path += '/' + pieces[i];
- }
- if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
- path += '/';
- }
- url.path = path;
-}
-/**
- * Attempts to resolve `input` URL/path relative to `base`.
- */
-function resolve(input, base) {
- if (!input && !base)
- return '';
- const url = parseUrl(input);
- let inputType = url.type;
- if (base && inputType !== 7 /* Absolute */) {
- const baseUrl = parseUrl(base);
- const baseType = baseUrl.type;
- switch (inputType) {
- case 1 /* Empty */:
- url.hash = baseUrl.hash;
- // fall through
- case 2 /* Hash */:
- url.query = baseUrl.query;
- // fall through
- case 3 /* Query */:
- case 4 /* RelativePath */:
- mergePaths(url, baseUrl);
- // fall through
- case 5 /* AbsolutePath */:
- // The host, user, and port are joined, you can't copy one without the others.
- url.user = baseUrl.user;
- url.host = baseUrl.host;
- url.port = baseUrl.port;
- // fall through
- case 6 /* SchemeRelative */:
- // The input doesn't have a schema at least, so we need to copy at least that over.
- url.scheme = baseUrl.scheme;
- }
- if (baseType > inputType)
- inputType = baseType;
- }
- normalizePath(url, inputType);
- const queryHash = url.query + url.hash;
- switch (inputType) {
- // This is impossible, because of the empty checks at the start of the function.
- // case UrlType.Empty:
- case 2 /* Hash */:
- case 3 /* Query */:
- return queryHash;
- case 4 /* RelativePath */: {
- // The first char is always a "/", and we need it to be relative.
- const path = url.path.slice(1);
- if (!path)
- return queryHash || '.';
- if (isRelative(base || input) && !isRelative(path)) {
- // If base started with a leading ".", or there is no base and input started with a ".",
- // then we need to ensure that the relative path starts with a ".". We don't know if
- // relative starts with a "..", though, so check before prepending.
- return './' + path + queryHash;
- }
- return path + queryHash;
- }
- case 5 /* AbsolutePath */:
- return url.path + queryHash;
- default:
- return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
- }
-}
-
-export { resolve as default };
-//# sourceMappingURL=resolve-uri.mjs.map
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
deleted file mode 100644
index 1de97d01..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"resolve-uri.mjs","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":"AAAA;AACA,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC;;;;;;;;;;AAUA,MAAM,QAAQ,GAAG,0EAA0E,CAAC;AAE5F;;;;;;;;;AASA,MAAM,SAAS,GAAG,iEAAiE,CAAC;AAuBpF,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;IACpC,OAAO,OAAO,CACZ,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EACf,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,OAAO,CACZ,OAAO,EACP,EAAE,EACF,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,EAAE,EACF,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EACxC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CACd,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,IAAY;IAEZ,OAAO;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,0BAA0B;QAClC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,wBAAwB;QAChC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEzD,MAAM,GAAG,GAAG,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;IACxD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,IAAI,GAAG,KAAK;UACZ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;cAEnB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;;wBAGT;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;;;IAGrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAS;IACrC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;IAI/B,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;QACpB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACtB;SAAM;;QAEL,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;KACpD;AACH,CAAC;AAED;;;;AAIA,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAa;IAC5C,MAAM,GAAG,GAAG,IAAI,yBAAyB;IACzC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;IAInC,IAAI,OAAO,GAAG,CAAC,CAAC;;;IAIhB,IAAI,QAAQ,GAAG,CAAC,CAAC;;;;IAKjB,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;QAGxB,IAAI,CAAC,KAAK,EAAE;YACV,gBAAgB,GAAG,IAAI,CAAC;YACxB,SAAS;SACV;;QAGD,gBAAgB,GAAG,KAAK,CAAC;;QAGzB,IAAI,KAAK,KAAK,GAAG;YAAE,SAAS;;;QAI5B,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,IAAI,QAAQ,EAAE;gBACZ,gBAAgB,GAAG,IAAI,CAAC;gBACxB,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;aACX;iBAAM,IAAI,GAAG,EAAE;;;gBAGd,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;aAC3B;YACD,SAAS;SACV;;;QAID,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;QAC1B,QAAQ,EAAE,CAAC;KACZ;IAED,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;QACxD,IAAI,IAAI,GAAG,CAAC;KACb;IACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,CAAC;AAED;;;SAGwB,OAAO,CAAC,KAAa,EAAE,IAAwB;IACrE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAEzB,IAAI,IAAI,IAAI,SAAS,uBAAuB;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAE9B,QAAQ,SAAS;YACf;gBACE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;YAG1B;gBACE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;;YAG5B,mBAAmB;YACnB;gBACE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;YAG3B;;gBAEE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;YAG1B;;gBAEE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC/B;QACD,IAAI,QAAQ,GAAG,SAAS;YAAE,SAAS,GAAG,QAAQ,CAAC;KAChD;IAED,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;IACvC,QAAQ,SAAS;;;QAIf,kBAAkB;QAClB;YACE,OAAO,SAAS,CAAC;QAEnB,2BAA2B;;YAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,IAAI;gBAAE,OAAO,SAAS,IAAI,GAAG,CAAC;YAEnC,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;;;gBAIlD,OAAO,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;aAChC;YAED,OAAO,IAAI,GAAG,SAAS,CAAC;SACzB;QAED;YACE,OAAO,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QAE9B;YACE,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;KACpF;AACH;;;;"}
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
deleted file mode 100644
index a783049b..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
+++ /dev/null
@@ -1,240 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.resolveURI = factory());
-})(this, (function () { 'use strict';
-
- // Matches the scheme of a URL, eg "http://"
- const schemeRegex = /^[\w+.-]+:\/\//;
- /**
- * Matches the parts of a URL:
- * 1. Scheme, including ":", guaranteed.
- * 2. User/password, including "@", optional.
- * 3. Host, guaranteed.
- * 4. Port, including ":", optional.
- * 5. Path, including "/", optional.
- * 6. Query, including "?", optional.
- * 7. Hash, including "#", optional.
- */
- const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
- /**
- * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
- * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
- *
- * 1. Host, optional.
- * 2. Path, which may include "/", guaranteed.
- * 3. Query, including "?", optional.
- * 4. Hash, including "#", optional.
- */
- const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
- function isAbsoluteUrl(input) {
- return schemeRegex.test(input);
- }
- function isSchemeRelativeUrl(input) {
- return input.startsWith('//');
- }
- function isAbsolutePath(input) {
- return input.startsWith('/');
- }
- function isFileUrl(input) {
- return input.startsWith('file:');
- }
- function isRelative(input) {
- return /^[.?#]/.test(input);
- }
- function parseAbsoluteUrl(input) {
- const match = urlRegex.exec(input);
- return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
- }
- function parseFileUrl(input) {
- const match = fileRegex.exec(input);
- const path = match[2];
- return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
- }
- function makeUrl(scheme, user, host, port, path, query, hash) {
- return {
- scheme,
- user,
- host,
- port,
- path,
- query,
- hash,
- type: 7 /* Absolute */,
- };
- }
- function parseUrl(input) {
- if (isSchemeRelativeUrl(input)) {
- const url = parseAbsoluteUrl('http:' + input);
- url.scheme = '';
- url.type = 6 /* SchemeRelative */;
- return url;
- }
- if (isAbsolutePath(input)) {
- const url = parseAbsoluteUrl('http://foo.com' + input);
- url.scheme = '';
- url.host = '';
- url.type = 5 /* AbsolutePath */;
- return url;
- }
- if (isFileUrl(input))
- return parseFileUrl(input);
- if (isAbsoluteUrl(input))
- return parseAbsoluteUrl(input);
- const url = parseAbsoluteUrl('http://foo.com/' + input);
- url.scheme = '';
- url.host = '';
- url.type = input
- ? input.startsWith('?')
- ? 3 /* Query */
- : input.startsWith('#')
- ? 2 /* Hash */
- : 4 /* RelativePath */
- : 1 /* Empty */;
- return url;
- }
- function stripPathFilename(path) {
- // If a path ends with a parent directory "..", then it's a relative path with excess parent
- // paths. It's not a file, so we can't strip it.
- if (path.endsWith('/..'))
- return path;
- const index = path.lastIndexOf('/');
- return path.slice(0, index + 1);
- }
- function mergePaths(url, base) {
- normalizePath(base, base.type);
- // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
- // path).
- if (url.path === '/') {
- url.path = base.path;
- }
- else {
- // Resolution happens relative to the base path's directory, not the file.
- url.path = stripPathFilename(base.path) + url.path;
- }
- }
- /**
- * The path can have empty directories "//", unneeded parents "foo/..", or current directory
- * "foo/.". We need to normalize to a standard representation.
- */
- function normalizePath(url, type) {
- const rel = type <= 4 /* RelativePath */;
- const pieces = url.path.split('/');
- // We need to preserve the first piece always, so that we output a leading slash. The item at
- // pieces[0] is an empty string.
- let pointer = 1;
- // Positive is the number of real directories we've output, used for popping a parent directory.
- // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
- let positive = 0;
- // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
- // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
- // real directory, we won't need to append, unless the other conditions happen again.
- let addTrailingSlash = false;
- for (let i = 1; i < pieces.length; i++) {
- const piece = pieces[i];
- // An empty directory, could be a trailing slash, or just a double "//" in the path.
- if (!piece) {
- addTrailingSlash = true;
- continue;
- }
- // If we encounter a real directory, then we don't need to append anymore.
- addTrailingSlash = false;
- // A current directory, which we can always drop.
- if (piece === '.')
- continue;
- // A parent directory, we need to see if there are any real directories we can pop. Else, we
- // have an excess of parents, and we'll need to keep the "..".
- if (piece === '..') {
- if (positive) {
- addTrailingSlash = true;
- positive--;
- pointer--;
- }
- else if (rel) {
- // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
- // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
- pieces[pointer++] = piece;
- }
- continue;
- }
- // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
- // any popped or dropped directories.
- pieces[pointer++] = piece;
- positive++;
- }
- let path = '';
- for (let i = 1; i < pointer; i++) {
- path += '/' + pieces[i];
- }
- if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
- path += '/';
- }
- url.path = path;
- }
- /**
- * Attempts to resolve `input` URL/path relative to `base`.
- */
- function resolve(input, base) {
- if (!input && !base)
- return '';
- const url = parseUrl(input);
- let inputType = url.type;
- if (base && inputType !== 7 /* Absolute */) {
- const baseUrl = parseUrl(base);
- const baseType = baseUrl.type;
- switch (inputType) {
- case 1 /* Empty */:
- url.hash = baseUrl.hash;
- // fall through
- case 2 /* Hash */:
- url.query = baseUrl.query;
- // fall through
- case 3 /* Query */:
- case 4 /* RelativePath */:
- mergePaths(url, baseUrl);
- // fall through
- case 5 /* AbsolutePath */:
- // The host, user, and port are joined, you can't copy one without the others.
- url.user = baseUrl.user;
- url.host = baseUrl.host;
- url.port = baseUrl.port;
- // fall through
- case 6 /* SchemeRelative */:
- // The input doesn't have a schema at least, so we need to copy at least that over.
- url.scheme = baseUrl.scheme;
- }
- if (baseType > inputType)
- inputType = baseType;
- }
- normalizePath(url, inputType);
- const queryHash = url.query + url.hash;
- switch (inputType) {
- // This is impossible, because of the empty checks at the start of the function.
- // case UrlType.Empty:
- case 2 /* Hash */:
- case 3 /* Query */:
- return queryHash;
- case 4 /* RelativePath */: {
- // The first char is always a "/", and we need it to be relative.
- const path = url.path.slice(1);
- if (!path)
- return queryHash || '.';
- if (isRelative(base || input) && !isRelative(path)) {
- // If base started with a leading ".", or there is no base and input started with a ".",
- // then we need to ensure that the relative path starts with a ".". We don't know if
- // relative starts with a "..", though, so check before prepending.
- return './' + path + queryHash;
- }
- return path + queryHash;
- }
- case 5 /* AbsolutePath */:
- return url.path + queryHash;
- default:
- return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
- }
- }
-
- return resolve;
-
-}));
-//# sourceMappingURL=resolve-uri.umd.js.map
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
deleted file mode 100644
index 70a37f21..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"resolve-uri.umd.js","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":";;;;;;IAAA;IACA,MAAM,WAAW,GAAG,gBAAgB,CAAC;IAErC;;;;;;;;;;IAUA,MAAM,QAAQ,GAAG,0EAA0E,CAAC;IAE5F;;;;;;;;;IASA,MAAM,SAAS,GAAG,iEAAiE,CAAC;IAuBpF,SAAS,aAAa,CAAC,KAAa;QAClC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa;QACxC,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,cAAc,CAAC,KAAa;QACnC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,SAAS,CAAC,KAAa;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,UAAU,CAAC,KAAa;QAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAa;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;QACpC,OAAO,OAAO,CACZ,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,EACR,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EACf,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,SAAS,YAAY,CAAC,KAAa;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,OAAO,CACZ,OAAO,EACP,EAAE,EACF,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,EAAE,EACF,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EACxC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EACd,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,SAAS,OAAO,CACd,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,KAAa,EACb,IAAY;QAEZ,OAAO;YACL,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;YAC9C,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,0BAA0B;YAClC,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,GAAG,GAAG,gBAAgB,CAAC,gBAAgB,GAAG,KAAK,CAAC,CAAC;YACvD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,wBAAwB;YAChC,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;QACxD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,GAAG,KAAK;cACZ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;kBAEnB,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;;;4BAGT;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAY;;;QAGrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAS;QACrC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;QAI/B,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;YACpB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACtB;aAAM;;YAEL,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;SACpD;IACH,CAAC;IAED;;;;IAIA,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAa;QAC5C,MAAM,GAAG,GAAG,IAAI,yBAAyB;QACzC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;QAInC,IAAI,OAAO,GAAG,CAAC,CAAC;;;QAIhB,IAAI,QAAQ,GAAG,CAAC,CAAC;;;;QAKjB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;YAGxB,IAAI,CAAC,KAAK,EAAE;gBACV,gBAAgB,GAAG,IAAI,CAAC;gBACxB,SAAS;aACV;;YAGD,gBAAgB,GAAG,KAAK,CAAC;;YAGzB,IAAI,KAAK,KAAK,GAAG;gBAAE,SAAS;;;YAI5B,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,IAAI,QAAQ,EAAE;oBACZ,gBAAgB,GAAG,IAAI,CAAC;oBACxB,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,CAAC;iBACX;qBAAM,IAAI,GAAG,EAAE;;;oBAGd,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;iBAC3B;gBACD,SAAS;aACV;;;YAID,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;YAC1B,QAAQ,EAAE,CAAC;SACZ;QAED,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;YAChC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACxD,IAAI,IAAI,GAAG,CAAC;SACb;QACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED;;;aAGwB,OAAO,CAAC,KAAa,EAAE,IAAwB;QACrE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;QAEzB,IAAI,IAAI,IAAI,SAAS,uBAAuB;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAE9B,QAAQ,SAAS;gBACf;oBACE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;gBAG1B;oBACE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;;gBAG5B,mBAAmB;gBACnB;oBACE,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;gBAG3B;;oBAEE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBACxB,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;gBAG1B;;oBAEE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAC/B;YACD,IAAI,QAAQ,GAAG,SAAS;gBAAE,SAAS,GAAG,QAAQ,CAAC;SAChD;QAED,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACvC,QAAQ,SAAS;;;YAIf,kBAAkB;YAClB;gBACE,OAAO,SAAS,CAAC;YAEnB,2BAA2B;;gBAEzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAI,CAAC,IAAI;oBAAE,OAAO,SAAS,IAAI,GAAG,CAAC;gBAEnC,IAAI,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;;;;oBAIlD,OAAO,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;iBAChC;gBAED,OAAO,IAAI,GAAG,SAAS,CAAC;aACzB;YAED;gBACE,OAAO,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;YAE9B;gBACE,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;SACpF;IACH;;;;;;;;"}
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
deleted file mode 100644
index b7f0b3b2..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * Attempts to resolve `input` URL/path relative to `base`.
- */
-export default function resolve(input: string, base: string | undefined): string;
diff --git a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/package.json b/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/package.json
deleted file mode 100644
index 02a4c518..00000000
--- a/frontend/node_modules/.pnpm/@jridgewell+resolve-uri@3.1.2/node_modules/@jridgewell/resolve-uri/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "name": "@jridgewell/resolve-uri",
- "version": "3.1.2",
- "description": "Resolve a URI relative to an optional base URI",
- "keywords": [
- "resolve",
- "uri",
- "url",
- "path"
- ],
- "author": "Justin Ridgewell ",
- "license": "MIT",
- "repository": "https://github.com/jridgewell/resolve-uri",
- "main": "dist/resolve-uri.umd.js",
- "module": "dist/resolve-uri.mjs",
- "types": "dist/types/resolve-uri.d.ts",
- "exports": {
- ".": [
- {
- "types": "./dist/types/resolve-uri.d.ts",
- "browser": "./dist/resolve-uri.umd.js",
- "require": "./dist/resolve-uri.umd.js",
- "import": "./dist/resolve-uri.mjs"
- },
- "./dist/resolve-uri.umd.js"
- ],
- "./package.json": "./package.json"
- },
- "files": [
- "dist"
- ],
- "engines": {
- "node": ">=6.0.0"
- },
- "scripts": {
- "prebuild": "rm -rf dist",
- "build": "run-s -n build:*",
- "build:rollup": "rollup -c rollup.config.js",
- "build:ts": "tsc --project tsconfig.build.json",
- "lint": "run-s -n lint:*",
- "lint:prettier": "npm run test:lint:prettier -- --write",
- "lint:ts": "npm run test:lint:ts -- --fix",
- "pretest": "run-s build:rollup",
- "test": "run-s -n test:lint test:only",
- "test:debug": "mocha --inspect-brk",
- "test:lint": "run-s -n test:lint:*",
- "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
- "test:lint:ts": "eslint '{src,test}/**/*.ts'",
- "test:only": "mocha",
- "test:coverage": "c8 mocha",
- "test:watch": "mocha --watch",
- "prepublishOnly": "npm run preversion",
- "preversion": "run-s test build"
- },
- "devDependencies": {
- "@jridgewell/resolve-uri-latest": "npm:@jridgewell/resolve-uri@*",
- "@rollup/plugin-typescript": "8.3.0",
- "@typescript-eslint/eslint-plugin": "5.10.0",
- "@typescript-eslint/parser": "5.10.0",
- "c8": "7.11.0",
- "eslint": "8.7.0",
- "eslint-config-prettier": "8.3.0",
- "mocha": "9.2.0",
- "npm-run-all": "4.1.5",
- "prettier": "2.5.1",
- "rollup": "2.66.0",
- "typescript": "4.5.5"
- }
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/LICENSE b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/LICENSE
deleted file mode 100644
index 65a99946..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Denis Malinochkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/README.md b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/README.md
deleted file mode 100644
index e0b218b9..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/README.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# @nodelib/fs.scandir
-
-> List files and directories inside the specified directory.
-
-## :bulb: Highlights
-
-The package is aimed at obtaining information about entries in the directory.
-
-* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional).
-* :gear: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type. See [`old` and `modern` mode](#old-and-modern-mode).
-* :link: Can safely work with broken symbolic links.
-
-## Install
-
-```console
-npm install @nodelib/fs.scandir
-```
-
-## Usage
-
-```ts
-import * as fsScandir from '@nodelib/fs.scandir';
-
-fsScandir.scandir('path', (error, stats) => { /* … */ });
-```
-
-## API
-
-### .scandir(path, [optionsOrSettings], callback)
-
-Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path with standard callback-style.
-
-```ts
-fsScandir.scandir('path', (error, entries) => { /* … */ });
-fsScandir.scandir('path', {}, (error, entries) => { /* … */ });
-fsScandir.scandir('path', new fsScandir.Settings(), (error, entries) => { /* … */ });
-```
-
-### .scandirSync(path, [optionsOrSettings])
-
-Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path.
-
-```ts
-const entries = fsScandir.scandirSync('path');
-const entries = fsScandir.scandirSync('path', {});
-const entries = fsScandir.scandirSync(('path', new fsScandir.Settings());
-```
-
-#### path
-
-* Required: `true`
-* Type: `string | Buffer | URL`
-
-A path to a file. If a URL is provided, it must use the `file:` protocol.
-
-#### optionsOrSettings
-
-* Required: `false`
-* Type: `Options | Settings`
-* Default: An instance of `Settings` class
-
-An [`Options`](#options) object or an instance of [`Settings`](#settingsoptions) class.
-
-> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
-
-### Settings([options])
-
-A class of full settings of the package.
-
-```ts
-const settings = new fsScandir.Settings({ followSymbolicLinks: false });
-
-const entries = fsScandir.scandirSync('path', settings);
-```
-
-## Entry
-
-* `name` — The name of the entry (`unknown.txt`).
-* `path` — The path of the entry relative to call directory (`root/unknown.txt`).
-* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. On Node.js below 10.10 will be emulated by [`DirentFromStats`](./src/utils/fs.ts) class.
-* `stats` (optional) — An instance of `fs.Stats` class.
-
-For example, the `scandir` call for `tools` directory with one directory inside:
-
-```ts
-{
- dirent: Dirent { name: 'typedoc', /* … */ },
- name: 'typedoc',
- path: 'tools/typedoc'
-}
-```
-
-## Options
-
-### stats
-
-* Type: `boolean`
-* Default: `false`
-
-Adds an instance of `fs.Stats` class to the [`Entry`](#entry).
-
-> :book: Always use `fs.readdir` without the `withFileTypes` option. ??TODO??
-
-### followSymbolicLinks
-
-* Type: `boolean`
-* Default: `false`
-
-Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`.
-
-### `throwErrorOnBrokenSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Throw an error when symbolic link is broken if `true` or safely use `lstat` call if `false`.
-
-### `pathSegmentSeparator`
-
-* Type: `string`
-* Default: `path.sep`
-
-By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead.
-
-### `fs`
-
-* Type: [`FileSystemAdapter`](./src/adapters/fs.ts)
-* Default: A default FS methods
-
-By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
-
-```ts
-interface FileSystemAdapter {
- lstat?: typeof fs.lstat;
- stat?: typeof fs.stat;
- lstatSync?: typeof fs.lstatSync;
- statSync?: typeof fs.statSync;
- readdir?: typeof fs.readdir;
- readdirSync?: typeof fs.readdirSync;
-}
-
-const settings = new fsScandir.Settings({
- fs: { lstat: fakeLstat }
-});
-```
-
-## `old` and `modern` mode
-
-This package has two modes that are used depending on the environment and parameters of use.
-
-### old
-
-* Node.js below `10.10` or when the `stats` option is enabled
-
-When working in the old mode, the directory is read first (`fs.readdir`), then the type of entries is determined (`fs.lstat` and/or `fs.stat` for symbolic links).
-
-### modern
-
-* Node.js 10.10+ and the `stats` option is disabled
-
-In the modern mode, reading the directory (`fs.readdir` with the `withFileTypes` option) is combined with obtaining information about its entries. An additional call for symbolic links (`fs.stat`) is still present.
-
-This mode makes fewer calls to the file system. It's faster.
-
-## Changelog
-
-See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
-
-## License
-
-This software is released under the terms of the MIT license.
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts
deleted file mode 100644
index 827f1db0..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import type * as fsStat from '@nodelib/fs.stat';
-import type { Dirent, ErrnoException } from '../types';
-export interface ReaddirAsynchronousMethod {
- (filepath: string, options: {
- withFileTypes: true;
- }, callback: (error: ErrnoException | null, files: Dirent[]) => void): void;
- (filepath: string, callback: (error: ErrnoException | null, files: string[]) => void): void;
-}
-export interface ReaddirSynchronousMethod {
- (filepath: string, options: {
- withFileTypes: true;
- }): Dirent[];
- (filepath: string): string[];
-}
-export declare type FileSystemAdapter = fsStat.FileSystemAdapter & {
- readdir: ReaddirAsynchronousMethod;
- readdirSync: ReaddirSynchronousMethod;
-};
-export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter;
-export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.js
deleted file mode 100644
index f0fe0220..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
-const fs = require("fs");
-exports.FILE_SYSTEM_ADAPTER = {
- lstat: fs.lstat,
- stat: fs.stat,
- lstatSync: fs.lstatSync,
- statSync: fs.statSync,
- readdir: fs.readdir,
- readdirSync: fs.readdirSync
-};
-function createFileSystemAdapter(fsMethods) {
- if (fsMethods === undefined) {
- return exports.FILE_SYSTEM_ADAPTER;
- }
- return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
-}
-exports.createFileSystemAdapter = createFileSystemAdapter;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.d.ts
deleted file mode 100644
index 33f17497..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * IS `true` for Node.js 10.10 and greater.
- */
-export declare const IS_SUPPORT_READDIR_WITH_FILE_TYPES: boolean;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.js
deleted file mode 100644
index 7e3d4411..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
-const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.');
-if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) {
- throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);
-}
-const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);
-const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);
-const SUPPORTED_MAJOR_VERSION = 10;
-const SUPPORTED_MINOR_VERSION = 10;
-const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;
-const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;
-/**
- * IS `true` for Node.js 10.10 and greater.
- */
-exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts
deleted file mode 100644
index b9da83ed..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod } from './adapters/fs';
-import * as async from './providers/async';
-import Settings, { Options } from './settings';
-import type { Dirent, Entry } from './types';
-declare type AsyncCallback = async.AsyncCallback;
-declare function scandir(path: string, callback: AsyncCallback): void;
-declare function scandir(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
-declare namespace scandir {
- function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise;
-}
-declare function scandirSync(path: string, optionsOrSettings?: Options | Settings): Entry[];
-export { scandir, scandirSync, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod, Options };
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.js
deleted file mode 100644
index 99c70d3d..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Settings = exports.scandirSync = exports.scandir = void 0;
-const async = require("./providers/async");
-const sync = require("./providers/sync");
-const settings_1 = require("./settings");
-exports.Settings = settings_1.default;
-function scandir(path, optionsOrSettingsOrCallback, callback) {
- if (typeof optionsOrSettingsOrCallback === 'function') {
- async.read(path, getSettings(), optionsOrSettingsOrCallback);
- return;
- }
- async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
-}
-exports.scandir = scandir;
-function scandirSync(path, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- return sync.read(path, settings);
-}
-exports.scandirSync = scandirSync;
-function getSettings(settingsOrOptions = {}) {
- if (settingsOrOptions instanceof settings_1.default) {
- return settingsOrOptions;
- }
- return new settings_1.default(settingsOrOptions);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts
deleted file mode 100644
index 5829676d..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-///
-import type Settings from '../settings';
-import type { Entry } from '../types';
-export declare type AsyncCallback = (error: NodeJS.ErrnoException, entries: Entry[]) => void;
-export declare function read(directory: string, settings: Settings, callback: AsyncCallback): void;
-export declare function readdirWithFileTypes(directory: string, settings: Settings, callback: AsyncCallback): void;
-export declare function readdir(directory: string, settings: Settings, callback: AsyncCallback): void;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.js
deleted file mode 100644
index e8e2f0a9..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
-const fsStat = require("@nodelib/fs.stat");
-const rpl = require("run-parallel");
-const constants_1 = require("../constants");
-const utils = require("../utils");
-const common = require("./common");
-function read(directory, settings, callback) {
- if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
- readdirWithFileTypes(directory, settings, callback);
- return;
- }
- readdir(directory, settings, callback);
-}
-exports.read = read;
-function readdirWithFileTypes(directory, settings, callback) {
- settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {
- if (readdirError !== null) {
- callFailureCallback(callback, readdirError);
- return;
- }
- const entries = dirents.map((dirent) => ({
- dirent,
- name: dirent.name,
- path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
- }));
- if (!settings.followSymbolicLinks) {
- callSuccessCallback(callback, entries);
- return;
- }
- const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));
- rpl(tasks, (rplError, rplEntries) => {
- if (rplError !== null) {
- callFailureCallback(callback, rplError);
- return;
- }
- callSuccessCallback(callback, rplEntries);
- });
- });
-}
-exports.readdirWithFileTypes = readdirWithFileTypes;
-function makeRplTaskEntry(entry, settings) {
- return (done) => {
- if (!entry.dirent.isSymbolicLink()) {
- done(null, entry);
- return;
- }
- settings.fs.stat(entry.path, (statError, stats) => {
- if (statError !== null) {
- if (settings.throwErrorOnBrokenSymbolicLink) {
- done(statError);
- return;
- }
- done(null, entry);
- return;
- }
- entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
- done(null, entry);
- });
- };
-}
-function readdir(directory, settings, callback) {
- settings.fs.readdir(directory, (readdirError, names) => {
- if (readdirError !== null) {
- callFailureCallback(callback, readdirError);
- return;
- }
- const tasks = names.map((name) => {
- const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
- return (done) => {
- fsStat.stat(path, settings.fsStatSettings, (error, stats) => {
- if (error !== null) {
- done(error);
- return;
- }
- const entry = {
- name,
- path,
- dirent: utils.fs.createDirentFromStats(name, stats)
- };
- if (settings.stats) {
- entry.stats = stats;
- }
- done(null, entry);
- });
- };
- });
- rpl(tasks, (rplError, entries) => {
- if (rplError !== null) {
- callFailureCallback(callback, rplError);
- return;
- }
- callSuccessCallback(callback, entries);
- });
- });
-}
-exports.readdir = readdir;
-function callFailureCallback(callback, error) {
- callback(error);
-}
-function callSuccessCallback(callback, result) {
- callback(null, result);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts
deleted file mode 100644
index 2b4d08b5..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function joinPathSegments(a: string, b: string, separator: string): string;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.js
deleted file mode 100644
index 8724cb59..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/common.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.joinPathSegments = void 0;
-function joinPathSegments(a, b, separator) {
- /**
- * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
- */
- if (a.endsWith(separator)) {
- return a + b;
- }
- return a + separator + b;
-}
-exports.joinPathSegments = joinPathSegments;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts
deleted file mode 100644
index e05c8f07..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import type Settings from '../settings';
-import type { Entry } from '../types';
-export declare function read(directory: string, settings: Settings): Entry[];
-export declare function readdirWithFileTypes(directory: string, settings: Settings): Entry[];
-export declare function readdir(directory: string, settings: Settings): Entry[];
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.js
deleted file mode 100644
index 146db343..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/sync.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
-const fsStat = require("@nodelib/fs.stat");
-const constants_1 = require("../constants");
-const utils = require("../utils");
-const common = require("./common");
-function read(directory, settings) {
- if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
- return readdirWithFileTypes(directory, settings);
- }
- return readdir(directory, settings);
-}
-exports.read = read;
-function readdirWithFileTypes(directory, settings) {
- const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });
- return dirents.map((dirent) => {
- const entry = {
- dirent,
- name: dirent.name,
- path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)
- };
- if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {
- try {
- const stats = settings.fs.statSync(entry.path);
- entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
- }
- catch (error) {
- if (settings.throwErrorOnBrokenSymbolicLink) {
- throw error;
- }
- }
- }
- return entry;
- });
-}
-exports.readdirWithFileTypes = readdirWithFileTypes;
-function readdir(directory, settings) {
- const names = settings.fs.readdirSync(directory);
- return names.map((name) => {
- const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
- const stats = fsStat.statSync(entryPath, settings.fsStatSettings);
- const entry = {
- name,
- path: entryPath,
- dirent: utils.fs.createDirentFromStats(name, stats)
- };
- if (settings.stats) {
- entry.stats = stats;
- }
- return entry;
- });
-}
-exports.readdir = readdir;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts
deleted file mode 100644
index a0db1155..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as fsStat from '@nodelib/fs.stat';
-import * as fs from './adapters/fs';
-export interface Options {
- followSymbolicLinks?: boolean;
- fs?: Partial;
- pathSegmentSeparator?: string;
- stats?: boolean;
- throwErrorOnBrokenSymbolicLink?: boolean;
-}
-export default class Settings {
- private readonly _options;
- readonly followSymbolicLinks: boolean;
- readonly fs: fs.FileSystemAdapter;
- readonly pathSegmentSeparator: string;
- readonly stats: boolean;
- readonly throwErrorOnBrokenSymbolicLink: boolean;
- readonly fsStatSettings: fsStat.Settings;
- constructor(_options?: Options);
- private _getValue;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.js
deleted file mode 100644
index 15a3e8cd..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const path = require("path");
-const fsStat = require("@nodelib/fs.stat");
-const fs = require("./adapters/fs");
-class Settings {
- constructor(_options = {}) {
- this._options = _options;
- this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
- this.fs = fs.createFileSystemAdapter(this._options.fs);
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
- this.stats = this._getValue(this._options.stats, false);
- this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
- this.fsStatSettings = new fsStat.Settings({
- followSymbolicLink: this.followSymbolicLinks,
- fs: this.fs,
- throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink
- });
- }
- _getValue(option, value) {
- return option !== null && option !== void 0 ? option : value;
- }
-}
-exports.default = Settings;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts
deleted file mode 100644
index f326c5e5..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-///
-import type * as fs from 'fs';
-export interface Entry {
- dirent: Dirent;
- name: string;
- path: string;
- stats?: Stats;
-}
-export declare type Stats = fs.Stats;
-export declare type ErrnoException = NodeJS.ErrnoException;
-export interface Dirent {
- isBlockDevice: () => boolean;
- isCharacterDevice: () => boolean;
- isDirectory: () => boolean;
- isFIFO: () => boolean;
- isFile: () => boolean;
- isSocket: () => boolean;
- isSymbolicLink: () => boolean;
- name: string;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.js
deleted file mode 100644
index c8ad2e54..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts
deleted file mode 100644
index bb863f15..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import type { Dirent, Stats } from '../types';
-export declare function createDirentFromStats(name: string, stats: Stats): Dirent;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.js
deleted file mode 100644
index ace7c74d..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/fs.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createDirentFromStats = void 0;
-class DirentFromStats {
- constructor(name, stats) {
- this.name = name;
- this.isBlockDevice = stats.isBlockDevice.bind(stats);
- this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
- this.isDirectory = stats.isDirectory.bind(stats);
- this.isFIFO = stats.isFIFO.bind(stats);
- this.isFile = stats.isFile.bind(stats);
- this.isSocket = stats.isSocket.bind(stats);
- this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
- }
-}
-function createDirentFromStats(name, stats) {
- return new DirentFromStats(name, stats);
-}
-exports.createDirentFromStats = createDirentFromStats;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts
deleted file mode 100644
index 1b41954e..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as fs from './fs';
-export { fs };
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js
deleted file mode 100644
index f5de129f..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/utils/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.fs = void 0;
-const fs = require("./fs");
-exports.fs = fs;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/package.json b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/package.json
deleted file mode 100644
index d3a89241..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "@nodelib/fs.scandir",
- "version": "2.1.5",
- "description": "List files and directories inside the specified directory",
- "license": "MIT",
- "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir",
- "keywords": [
- "NodeLib",
- "fs",
- "FileSystem",
- "file system",
- "scandir",
- "readdir",
- "dirent"
- ],
- "engines": {
- "node": ">= 8"
- },
- "files": [
- "out/**",
- "!out/**/*.map",
- "!out/**/*.spec.*"
- ],
- "main": "out/index.js",
- "typings": "out/index.d.ts",
- "scripts": {
- "clean": "rimraf {tsconfig.tsbuildinfo,out}",
- "lint": "eslint \"src/**/*.ts\" --cache",
- "compile": "tsc -b .",
- "compile:watch": "tsc -p . --watch --sourceMap",
- "test": "mocha \"out/**/*.spec.js\" -s 0",
- "build": "npm run clean && npm run compile && npm run lint && npm test",
- "watch": "npm run clean && npm run compile:watch"
- },
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "devDependencies": {
- "@nodelib/fs.macchiato": "1.0.4",
- "@types/run-parallel": "^1.1.0"
- },
- "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562"
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.stat b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.stat
deleted file mode 120000
index 549d7485..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.stat
+++ /dev/null
@@ -1 +0,0 @@
-../../../@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/run-parallel b/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/run-parallel
deleted file mode 120000
index 83de443c..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/run-parallel
+++ /dev/null
@@ -1 +0,0 @@
-../../run-parallel@1.2.0/node_modules/run-parallel
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/LICENSE b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/LICENSE
deleted file mode 100644
index 65a99946..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Denis Malinochkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/README.md b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/README.md
deleted file mode 100644
index 686f0471..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/README.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# @nodelib/fs.stat
-
-> Get the status of a file with some features.
-
-## :bulb: Highlights
-
-Wrapper around standard method `fs.lstat` and `fs.stat` with some features.
-
-* :beginner: Normally follows symbolic link.
-* :gear: Can safely work with broken symbolic link.
-
-## Install
-
-```console
-npm install @nodelib/fs.stat
-```
-
-## Usage
-
-```ts
-import * as fsStat from '@nodelib/fs.stat';
-
-fsStat.stat('path', (error, stats) => { /* … */ });
-```
-
-## API
-
-### .stat(path, [optionsOrSettings], callback)
-
-Returns an instance of `fs.Stats` class for provided path with standard callback-style.
-
-```ts
-fsStat.stat('path', (error, stats) => { /* … */ });
-fsStat.stat('path', {}, (error, stats) => { /* … */ });
-fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ });
-```
-
-### .statSync(path, [optionsOrSettings])
-
-Returns an instance of `fs.Stats` class for provided path.
-
-```ts
-const stats = fsStat.stat('path');
-const stats = fsStat.stat('path', {});
-const stats = fsStat.stat('path', new fsStat.Settings());
-```
-
-#### path
-
-* Required: `true`
-* Type: `string | Buffer | URL`
-
-A path to a file. If a URL is provided, it must use the `file:` protocol.
-
-#### optionsOrSettings
-
-* Required: `false`
-* Type: `Options | Settings`
-* Default: An instance of `Settings` class
-
-An [`Options`](#options) object or an instance of [`Settings`](#settings) class.
-
-> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
-
-### Settings([options])
-
-A class of full settings of the package.
-
-```ts
-const settings = new fsStat.Settings({ followSymbolicLink: false });
-
-const stats = fsStat.stat('path', settings);
-```
-
-## Options
-
-### `followSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`.
-
-### `markSymbolicLink`
-
-* Type: `boolean`
-* Default: `false`
-
-Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`).
-
-> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link.
-
-### `throwErrorOnBrokenSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`.
-
-### `fs`
-
-* Type: [`FileSystemAdapter`](./src/adapters/fs.ts)
-* Default: A default FS methods
-
-By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
-
-```ts
-interface FileSystemAdapter {
- lstat?: typeof fs.lstat;
- stat?: typeof fs.stat;
- lstatSync?: typeof fs.lstatSync;
- statSync?: typeof fs.statSync;
-}
-
-const settings = new fsStat.Settings({
- fs: { lstat: fakeLstat }
-});
-```
-
-## Changelog
-
-See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
-
-## License
-
-This software is released under the terms of the MIT license.
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts
deleted file mode 100644
index 3af759c9..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-///
-import * as fs from 'fs';
-import type { ErrnoException } from '../types';
-export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void;
-export declare type StatSynchronousMethod = (path: string) => fs.Stats;
-export interface FileSystemAdapter {
- lstat: StatAsynchronousMethod;
- stat: StatAsynchronousMethod;
- lstatSync: StatSynchronousMethod;
- statSync: StatSynchronousMethod;
-}
-export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter;
-export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.js
deleted file mode 100644
index 8dc08c8c..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;
-const fs = require("fs");
-exports.FILE_SYSTEM_ADAPTER = {
- lstat: fs.lstat,
- stat: fs.stat,
- lstatSync: fs.lstatSync,
- statSync: fs.statSync
-};
-function createFileSystemAdapter(fsMethods) {
- if (fsMethods === undefined) {
- return exports.FILE_SYSTEM_ADAPTER;
- }
- return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);
-}
-exports.createFileSystemAdapter = createFileSystemAdapter;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts
deleted file mode 100644
index f95db995..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs';
-import * as async from './providers/async';
-import Settings, { Options } from './settings';
-import type { Stats } from './types';
-declare type AsyncCallback = async.AsyncCallback;
-declare function stat(path: string, callback: AsyncCallback): void;
-declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
-declare namespace stat {
- function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise;
-}
-declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats;
-export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats };
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.js
deleted file mode 100644
index b23f7510..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.statSync = exports.stat = exports.Settings = void 0;
-const async = require("./providers/async");
-const sync = require("./providers/sync");
-const settings_1 = require("./settings");
-exports.Settings = settings_1.default;
-function stat(path, optionsOrSettingsOrCallback, callback) {
- if (typeof optionsOrSettingsOrCallback === 'function') {
- async.read(path, getSettings(), optionsOrSettingsOrCallback);
- return;
- }
- async.read(path, getSettings(optionsOrSettingsOrCallback), callback);
-}
-exports.stat = stat;
-function statSync(path, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- return sync.read(path, settings);
-}
-exports.statSync = statSync;
-function getSettings(settingsOrOptions = {}) {
- if (settingsOrOptions instanceof settings_1.default) {
- return settingsOrOptions;
- }
- return new settings_1.default(settingsOrOptions);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts
deleted file mode 100644
index 85423ce1..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import type Settings from '../settings';
-import type { ErrnoException, Stats } from '../types';
-export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void;
-export declare function read(path: string, settings: Settings, callback: AsyncCallback): void;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.js b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.js
deleted file mode 100644
index 983ff0e6..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.read = void 0;
-function read(path, settings, callback) {
- settings.fs.lstat(path, (lstatError, lstat) => {
- if (lstatError !== null) {
- callFailureCallback(callback, lstatError);
- return;
- }
- if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
- callSuccessCallback(callback, lstat);
- return;
- }
- settings.fs.stat(path, (statError, stat) => {
- if (statError !== null) {
- if (settings.throwErrorOnBrokenSymbolicLink) {
- callFailureCallback(callback, statError);
- return;
- }
- callSuccessCallback(callback, lstat);
- return;
- }
- if (settings.markSymbolicLink) {
- stat.isSymbolicLink = () => true;
- }
- callSuccessCallback(callback, stat);
- });
- });
-}
-exports.read = read;
-function callFailureCallback(callback, error) {
- callback(error);
-}
-function callSuccessCallback(callback, result) {
- callback(null, result);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts
deleted file mode 100644
index 428c3d79..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type Settings from '../settings';
-import type { Stats } from '../types';
-export declare function read(path: string, settings: Settings): Stats;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.js b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.js
deleted file mode 100644
index 1521c361..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/sync.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.read = void 0;
-function read(path, settings) {
- const lstat = settings.fs.lstatSync(path);
- if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
- return lstat;
- }
- try {
- const stat = settings.fs.statSync(path);
- if (settings.markSymbolicLink) {
- stat.isSymbolicLink = () => true;
- }
- return stat;
- }
- catch (error) {
- if (!settings.throwErrorOnBrokenSymbolicLink) {
- return lstat;
- }
- throw error;
- }
-}
-exports.read = read;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts
deleted file mode 100644
index f4b3d444..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import * as fs from './adapters/fs';
-export interface Options {
- followSymbolicLink?: boolean;
- fs?: Partial;
- markSymbolicLink?: boolean;
- throwErrorOnBrokenSymbolicLink?: boolean;
-}
-export default class Settings {
- private readonly _options;
- readonly followSymbolicLink: boolean;
- readonly fs: fs.FileSystemAdapter;
- readonly markSymbolicLink: boolean;
- readonly throwErrorOnBrokenSymbolicLink: boolean;
- constructor(_options?: Options);
- private _getValue;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.js b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.js
deleted file mode 100644
index 111ec09c..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const fs = require("./adapters/fs");
-class Settings {
- constructor(_options = {}) {
- this._options = _options;
- this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);
- this.fs = fs.createFileSystemAdapter(this._options.fs);
- this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);
- this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
- }
- _getValue(option, value) {
- return option !== null && option !== void 0 ? option : value;
- }
-}
-exports.default = Settings;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts
deleted file mode 100644
index 74c08ed2..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-///
-import type * as fs from 'fs';
-export declare type Stats = fs.Stats;
-export declare type ErrnoException = NodeJS.ErrnoException;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.js
deleted file mode 100644
index c8ad2e54..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/package.json b/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/package.json
deleted file mode 100644
index f2540c28..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "@nodelib/fs.stat",
- "version": "2.0.5",
- "description": "Get the status of a file with some features",
- "license": "MIT",
- "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat",
- "keywords": [
- "NodeLib",
- "fs",
- "FileSystem",
- "file system",
- "stat"
- ],
- "engines": {
- "node": ">= 8"
- },
- "files": [
- "out/**",
- "!out/**/*.map",
- "!out/**/*.spec.*"
- ],
- "main": "out/index.js",
- "typings": "out/index.d.ts",
- "scripts": {
- "clean": "rimraf {tsconfig.tsbuildinfo,out}",
- "lint": "eslint \"src/**/*.ts\" --cache",
- "compile": "tsc -b .",
- "compile:watch": "tsc -p . --watch --sourceMap",
- "test": "mocha \"out/**/*.spec.js\" -s 0",
- "build": "npm run clean && npm run compile && npm run lint && npm test",
- "watch": "npm run clean && npm run compile:watch"
- },
- "devDependencies": {
- "@nodelib/fs.macchiato": "1.0.4"
- },
- "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562"
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.scandir b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.scandir
deleted file mode 120000
index 81230f8b..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.scandir
+++ /dev/null
@@ -1 +0,0 @@
-../../../@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/LICENSE b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/LICENSE
deleted file mode 100644
index 65a99946..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Denis Malinochkin
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/README.md b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/README.md
deleted file mode 100644
index 6ccc08db..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/README.md
+++ /dev/null
@@ -1,215 +0,0 @@
-# @nodelib/fs.walk
-
-> A library for efficiently walking a directory recursively.
-
-## :bulb: Highlights
-
-* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional).
-* :rocket: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type for performance reasons. See [`old` and `modern` mode](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode).
-* :gear: Built-in directories/files and error filtering system.
-* :link: Can safely work with broken symbolic links.
-
-## Install
-
-```console
-npm install @nodelib/fs.walk
-```
-
-## Usage
-
-```ts
-import * as fsWalk from '@nodelib/fs.walk';
-
-fsWalk.walk('path', (error, entries) => { /* … */ });
-```
-
-## API
-
-### .walk(path, [optionsOrSettings], callback)
-
-Reads the directory recursively and asynchronously. Requires a callback function.
-
-> :book: If you want to use the Promise API, use `util.promisify`.
-
-```ts
-fsWalk.walk('path', (error, entries) => { /* … */ });
-fsWalk.walk('path', {}, (error, entries) => { /* … */ });
-fsWalk.walk('path', new fsWalk.Settings(), (error, entries) => { /* … */ });
-```
-
-### .walkStream(path, [optionsOrSettings])
-
-Reads the directory recursively and asynchronously. [Readable Stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_streams) is used as a provider.
-
-```ts
-const stream = fsWalk.walkStream('path');
-const stream = fsWalk.walkStream('path', {});
-const stream = fsWalk.walkStream('path', new fsWalk.Settings());
-```
-
-### .walkSync(path, [optionsOrSettings])
-
-Reads the directory recursively and synchronously. Returns an array of entries.
-
-```ts
-const entries = fsWalk.walkSync('path');
-const entries = fsWalk.walkSync('path', {});
-const entries = fsWalk.walkSync('path', new fsWalk.Settings());
-```
-
-#### path
-
-* Required: `true`
-* Type: `string | Buffer | URL`
-
-A path to a file. If a URL is provided, it must use the `file:` protocol.
-
-#### optionsOrSettings
-
-* Required: `false`
-* Type: `Options | Settings`
-* Default: An instance of `Settings` class
-
-An [`Options`](#options) object or an instance of [`Settings`](#settings) class.
-
-> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class.
-
-### Settings([options])
-
-A class of full settings of the package.
-
-```ts
-const settings = new fsWalk.Settings({ followSymbolicLinks: true });
-
-const entries = fsWalk.walkSync('path', settings);
-```
-
-## Entry
-
-* `name` — The name of the entry (`unknown.txt`).
-* `path` — The path of the entry relative to call directory (`root/unknown.txt`).
-* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class.
-* [`stats`] — An instance of `fs.Stats` class.
-
-## Options
-
-### basePath
-
-* Type: `string`
-* Default: `undefined`
-
-By default, all paths are built relative to the root path. You can use this option to set custom root path.
-
-In the example below we read the files from the `root` directory, but in the results the root path will be `custom`.
-
-```ts
-fsWalk.walkSync('root'); // → ['root/file.txt']
-fsWalk.walkSync('root', { basePath: 'custom' }); // → ['custom/file.txt']
-```
-
-### concurrency
-
-* Type: `number`
-* Default: `Infinity`
-
-The maximum number of concurrent calls to `fs.readdir`.
-
-> :book: The higher the number, the higher performance and the load on the File System. If you want to read in quiet mode, set the value to `4 * os.cpus().length` (4 is default size of [thread pool work scheduling](http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling)).
-
-### deepFilter
-
-* Type: [`DeepFilterFunction`](./src/settings.ts)
-* Default: `undefined`
-
-A function that indicates whether the directory will be read deep or not.
-
-```ts
-// Skip all directories that starts with `node_modules`
-const filter: DeepFilterFunction = (entry) => !entry.path.startsWith('node_modules');
-```
-
-### entryFilter
-
-* Type: [`EntryFilterFunction`](./src/settings.ts)
-* Default: `undefined`
-
-A function that indicates whether the entry will be included to results or not.
-
-```ts
-// Exclude all `.js` files from results
-const filter: EntryFilterFunction = (entry) => !entry.name.endsWith('.js');
-```
-
-### errorFilter
-
-* Type: [`ErrorFilterFunction`](./src/settings.ts)
-* Default: `undefined`
-
-A function that allows you to skip errors that occur when reading directories.
-
-For example, you can skip `ENOENT` errors if required:
-
-```ts
-// Skip all ENOENT errors
-const filter: ErrorFilterFunction = (error) => error.code == 'ENOENT';
-```
-
-### stats
-
-* Type: `boolean`
-* Default: `false`
-
-Adds an instance of `fs.Stats` class to the [`Entry`](#entry).
-
-> :book: Always use `fs.readdir` with additional `fs.lstat/fs.stat` calls to determine the entry type.
-
-### followSymbolicLinks
-
-* Type: `boolean`
-* Default: `false`
-
-Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`.
-
-### `throwErrorOnBrokenSymbolicLink`
-
-* Type: `boolean`
-* Default: `true`
-
-Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`.
-
-### `pathSegmentSeparator`
-
-* Type: `string`
-* Default: `path.sep`
-
-By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead.
-
-### `fs`
-
-* Type: `FileSystemAdapter`
-* Default: A default FS methods
-
-By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own.
-
-```ts
-interface FileSystemAdapter {
- lstat: typeof fs.lstat;
- stat: typeof fs.stat;
- lstatSync: typeof fs.lstatSync;
- statSync: typeof fs.statSync;
- readdir: typeof fs.readdir;
- readdirSync: typeof fs.readdirSync;
-}
-
-const settings = new fsWalk.Settings({
- fs: { lstat: fakeLstat }
-});
-```
-
-## Changelog
-
-See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version.
-
-## License
-
-This software is released under the terms of the MIT license.
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts
deleted file mode 100644
index 8864c7bf..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-///
-import type { Readable } from 'stream';
-import type { Dirent, FileSystemAdapter } from '@nodelib/fs.scandir';
-import { AsyncCallback } from './providers/async';
-import Settings, { DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction, Options } from './settings';
-import type { Entry } from './types';
-declare function walk(directory: string, callback: AsyncCallback): void;
-declare function walk(directory: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void;
-declare namespace walk {
- function __promisify__(directory: string, optionsOrSettings?: Options | Settings): Promise;
-}
-declare function walkSync(directory: string, optionsOrSettings?: Options | Settings): Entry[];
-declare function walkStream(directory: string, optionsOrSettings?: Options | Settings): Readable;
-export { walk, walkSync, walkStream, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, Options, DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction };
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.js
deleted file mode 100644
index 15207874..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;
-const async_1 = require("./providers/async");
-const stream_1 = require("./providers/stream");
-const sync_1 = require("./providers/sync");
-const settings_1 = require("./settings");
-exports.Settings = settings_1.default;
-function walk(directory, optionsOrSettingsOrCallback, callback) {
- if (typeof optionsOrSettingsOrCallback === 'function') {
- new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);
- return;
- }
- new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);
-}
-exports.walk = walk;
-function walkSync(directory, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- const provider = new sync_1.default(directory, settings);
- return provider.read();
-}
-exports.walkSync = walkSync;
-function walkStream(directory, optionsOrSettings) {
- const settings = getSettings(optionsOrSettings);
- const provider = new stream_1.default(directory, settings);
- return provider.read();
-}
-exports.walkStream = walkStream;
-function getSettings(settingsOrOptions = {}) {
- if (settingsOrOptions instanceof settings_1.default) {
- return settingsOrOptions;
- }
- return new settings_1.default(settingsOrOptions);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts
deleted file mode 100644
index 0f6717d7..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import AsyncReader from '../readers/async';
-import type Settings from '../settings';
-import type { Entry, Errno } from '../types';
-export declare type AsyncCallback = (error: Errno, entries: Entry[]) => void;
-export default class AsyncProvider {
- private readonly _root;
- private readonly _settings;
- protected readonly _reader: AsyncReader;
- private readonly _storage;
- constructor(_root: string, _settings: Settings);
- read(callback: AsyncCallback): void;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.js
deleted file mode 100644
index 51d3be51..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const async_1 = require("../readers/async");
-class AsyncProvider {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._reader = new async_1.default(this._root, this._settings);
- this._storage = [];
- }
- read(callback) {
- this._reader.onError((error) => {
- callFailureCallback(callback, error);
- });
- this._reader.onEntry((entry) => {
- this._storage.push(entry);
- });
- this._reader.onEnd(() => {
- callSuccessCallback(callback, this._storage);
- });
- this._reader.read();
- }
-}
-exports.default = AsyncProvider;
-function callFailureCallback(callback, error) {
- callback(error);
-}
-function callSuccessCallback(callback, entries) {
- callback(null, entries);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/index.d.ts
deleted file mode 100644
index 874f60c5..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import AsyncProvider from './async';
-import StreamProvider from './stream';
-import SyncProvider from './sync';
-export { AsyncProvider, StreamProvider, SyncProvider };
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/index.js
deleted file mode 100644
index 4c2529ce..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0;
-const async_1 = require("./async");
-exports.AsyncProvider = async_1.default;
-const stream_1 = require("./stream");
-exports.StreamProvider = stream_1.default;
-const sync_1 = require("./sync");
-exports.SyncProvider = sync_1.default;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts
deleted file mode 100644
index 294185f8..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-///
-import { Readable } from 'stream';
-import AsyncReader from '../readers/async';
-import type Settings from '../settings';
-export default class StreamProvider {
- private readonly _root;
- private readonly _settings;
- protected readonly _reader: AsyncReader;
- protected readonly _stream: Readable;
- constructor(_root: string, _settings: Settings);
- read(): Readable;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.js
deleted file mode 100644
index 51298b0f..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/stream.js
+++ /dev/null
@@ -1,34 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const stream_1 = require("stream");
-const async_1 = require("../readers/async");
-class StreamProvider {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._reader = new async_1.default(this._root, this._settings);
- this._stream = new stream_1.Readable({
- objectMode: true,
- read: () => { },
- destroy: () => {
- if (!this._reader.isDestroyed) {
- this._reader.destroy();
- }
- }
- });
- }
- read() {
- this._reader.onError((error) => {
- this._stream.emit('error', error);
- });
- this._reader.onEntry((entry) => {
- this._stream.push(entry);
- });
- this._reader.onEnd(() => {
- this._stream.push(null);
- });
- this._reader.read();
- return this._stream;
- }
-}
-exports.default = StreamProvider;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts
deleted file mode 100644
index 551c42e4..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import SyncReader from '../readers/sync';
-import type Settings from '../settings';
-import type { Entry } from '../types';
-export default class SyncProvider {
- private readonly _root;
- private readonly _settings;
- protected readonly _reader: SyncReader;
- constructor(_root: string, _settings: Settings);
- read(): Entry[];
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.js
deleted file mode 100644
index faab6ca2..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/sync.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const sync_1 = require("../readers/sync");
-class SyncProvider {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._reader = new sync_1.default(this._root, this._settings);
- }
- read() {
- return this._reader.read();
- }
-}
-exports.default = SyncProvider;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts
deleted file mode 100644
index 9acf4e6c..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-///
-import { EventEmitter } from 'events';
-import * as fsScandir from '@nodelib/fs.scandir';
-import type Settings from '../settings';
-import type { Entry, Errno } from '../types';
-import Reader from './reader';
-declare type EntryEventCallback = (entry: Entry) => void;
-declare type ErrorEventCallback = (error: Errno) => void;
-declare type EndEventCallback = () => void;
-export default class AsyncReader extends Reader {
- protected readonly _settings: Settings;
- protected readonly _scandir: typeof fsScandir.scandir;
- protected readonly _emitter: EventEmitter;
- private readonly _queue;
- private _isFatalError;
- private _isDestroyed;
- constructor(_root: string, _settings: Settings);
- read(): EventEmitter;
- get isDestroyed(): boolean;
- destroy(): void;
- onEntry(callback: EntryEventCallback): void;
- onError(callback: ErrorEventCallback): void;
- onEnd(callback: EndEventCallback): void;
- private _pushToQueue;
- private _worker;
- private _handleError;
- private _handleEntry;
- private _emitEntry;
-}
-export {};
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.js
deleted file mode 100644
index ebe8dd57..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.js
+++ /dev/null
@@ -1,97 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const events_1 = require("events");
-const fsScandir = require("@nodelib/fs.scandir");
-const fastq = require("fastq");
-const common = require("./common");
-const reader_1 = require("./reader");
-class AsyncReader extends reader_1.default {
- constructor(_root, _settings) {
- super(_root, _settings);
- this._settings = _settings;
- this._scandir = fsScandir.scandir;
- this._emitter = new events_1.EventEmitter();
- this._queue = fastq(this._worker.bind(this), this._settings.concurrency);
- this._isFatalError = false;
- this._isDestroyed = false;
- this._queue.drain = () => {
- if (!this._isFatalError) {
- this._emitter.emit('end');
- }
- };
- }
- read() {
- this._isFatalError = false;
- this._isDestroyed = false;
- setImmediate(() => {
- this._pushToQueue(this._root, this._settings.basePath);
- });
- return this._emitter;
- }
- get isDestroyed() {
- return this._isDestroyed;
- }
- destroy() {
- if (this._isDestroyed) {
- throw new Error('The reader is already destroyed');
- }
- this._isDestroyed = true;
- this._queue.killAndDrain();
- }
- onEntry(callback) {
- this._emitter.on('entry', callback);
- }
- onError(callback) {
- this._emitter.once('error', callback);
- }
- onEnd(callback) {
- this._emitter.once('end', callback);
- }
- _pushToQueue(directory, base) {
- const queueItem = { directory, base };
- this._queue.push(queueItem, (error) => {
- if (error !== null) {
- this._handleError(error);
- }
- });
- }
- _worker(item, done) {
- this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {
- if (error !== null) {
- done(error, undefined);
- return;
- }
- for (const entry of entries) {
- this._handleEntry(entry, item.base);
- }
- done(null, undefined);
- });
- }
- _handleError(error) {
- if (this._isDestroyed || !common.isFatalError(this._settings, error)) {
- return;
- }
- this._isFatalError = true;
- this._isDestroyed = true;
- this._emitter.emit('error', error);
- }
- _handleEntry(entry, base) {
- if (this._isDestroyed || this._isFatalError) {
- return;
- }
- const fullpath = entry.path;
- if (base !== undefined) {
- entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
- }
- if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
- this._emitEntry(entry);
- }
- if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
- this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
- }
- }
- _emitEntry(entry) {
- this._emitter.emit('entry', entry);
- }
-}
-exports.default = AsyncReader;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.d.ts
deleted file mode 100644
index 5985f97c..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import type { FilterFunction } from '../settings';
-import type Settings from '../settings';
-import type { Errno } from '../types';
-export declare function isFatalError(settings: Settings, error: Errno): boolean;
-export declare function isAppliedFilter(filter: FilterFunction | null, value: T): boolean;
-export declare function replacePathSegmentSeparator(filepath: string, separator: string): string;
-export declare function joinPathSegments(a: string, b: string, separator: string): string;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.js
deleted file mode 100644
index a93572f4..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/common.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;
-function isFatalError(settings, error) {
- if (settings.errorFilter === null) {
- return true;
- }
- return !settings.errorFilter(error);
-}
-exports.isFatalError = isFatalError;
-function isAppliedFilter(filter, value) {
- return filter === null || filter(value);
-}
-exports.isAppliedFilter = isAppliedFilter;
-function replacePathSegmentSeparator(filepath, separator) {
- return filepath.split(/[/\\]/).join(separator);
-}
-exports.replacePathSegmentSeparator = replacePathSegmentSeparator;
-function joinPathSegments(a, b, separator) {
- if (a === '') {
- return b;
- }
- /**
- * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`).
- */
- if (a.endsWith(separator)) {
- return a + b;
- }
- return a + separator + b;
-}
-exports.joinPathSegments = joinPathSegments;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts
deleted file mode 100644
index e1f383b2..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import type Settings from '../settings';
-export default class Reader {
- protected readonly _root: string;
- protected readonly _settings: Settings;
- constructor(_root: string, _settings: Settings);
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.js
deleted file mode 100644
index 782f07cb..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const common = require("./common");
-class Reader {
- constructor(_root, _settings) {
- this._root = _root;
- this._settings = _settings;
- this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);
- }
-}
-exports.default = Reader;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts
deleted file mode 100644
index af410335..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import * as fsScandir from '@nodelib/fs.scandir';
-import type { Entry } from '../types';
-import Reader from './reader';
-export default class SyncReader extends Reader {
- protected readonly _scandir: typeof fsScandir.scandirSync;
- private readonly _storage;
- private readonly _queue;
- read(): Entry[];
- private _pushToQueue;
- private _handleQueue;
- private _handleDirectory;
- private _handleError;
- private _handleEntry;
- private _pushToStorage;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.js
deleted file mode 100644
index 9a8d5a6f..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/sync.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const fsScandir = require("@nodelib/fs.scandir");
-const common = require("./common");
-const reader_1 = require("./reader");
-class SyncReader extends reader_1.default {
- constructor() {
- super(...arguments);
- this._scandir = fsScandir.scandirSync;
- this._storage = [];
- this._queue = new Set();
- }
- read() {
- this._pushToQueue(this._root, this._settings.basePath);
- this._handleQueue();
- return this._storage;
- }
- _pushToQueue(directory, base) {
- this._queue.add({ directory, base });
- }
- _handleQueue() {
- for (const item of this._queue.values()) {
- this._handleDirectory(item.directory, item.base);
- }
- }
- _handleDirectory(directory, base) {
- try {
- const entries = this._scandir(directory, this._settings.fsScandirSettings);
- for (const entry of entries) {
- this._handleEntry(entry, base);
- }
- }
- catch (error) {
- this._handleError(error);
- }
- }
- _handleError(error) {
- if (!common.isFatalError(this._settings, error)) {
- return;
- }
- throw error;
- }
- _handleEntry(entry, base) {
- const fullpath = entry.path;
- if (base !== undefined) {
- entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);
- }
- if (common.isAppliedFilter(this._settings.entryFilter, entry)) {
- this._pushToStorage(entry);
- }
- if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {
- this._pushToQueue(fullpath, base === undefined ? undefined : entry.path);
- }
- }
- _pushToStorage(entry) {
- this._storage.push(entry);
- }
-}
-exports.default = SyncReader;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts
deleted file mode 100644
index d1c4b45f..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as fsScandir from '@nodelib/fs.scandir';
-import type { Entry, Errno } from './types';
-export declare type FilterFunction = (value: T) => boolean;
-export declare type DeepFilterFunction = FilterFunction;
-export declare type EntryFilterFunction = FilterFunction;
-export declare type ErrorFilterFunction = FilterFunction;
-export interface Options {
- basePath?: string;
- concurrency?: number;
- deepFilter?: DeepFilterFunction;
- entryFilter?: EntryFilterFunction;
- errorFilter?: ErrorFilterFunction;
- followSymbolicLinks?: boolean;
- fs?: Partial;
- pathSegmentSeparator?: string;
- stats?: boolean;
- throwErrorOnBrokenSymbolicLink?: boolean;
-}
-export default class Settings {
- private readonly _options;
- readonly basePath?: string;
- readonly concurrency: number;
- readonly deepFilter: DeepFilterFunction | null;
- readonly entryFilter: EntryFilterFunction | null;
- readonly errorFilter: ErrorFilterFunction | null;
- readonly pathSegmentSeparator: string;
- readonly fsScandirSettings: fsScandir.Settings;
- constructor(_options?: Options);
- private _getValue;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.js
deleted file mode 100644
index d7a85c81..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-const path = require("path");
-const fsScandir = require("@nodelib/fs.scandir");
-class Settings {
- constructor(_options = {}) {
- this._options = _options;
- this.basePath = this._getValue(this._options.basePath, undefined);
- this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);
- this.deepFilter = this._getValue(this._options.deepFilter, null);
- this.entryFilter = this._getValue(this._options.entryFilter, null);
- this.errorFilter = this._getValue(this._options.errorFilter, null);
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep);
- this.fsScandirSettings = new fsScandir.Settings({
- followSymbolicLinks: this._options.followSymbolicLinks,
- fs: this._options.fs,
- pathSegmentSeparator: this._options.pathSegmentSeparator,
- stats: this._options.stats,
- throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink
- });
- }
- _getValue(option, value) {
- return option !== null && option !== void 0 ? option : value;
- }
-}
-exports.default = Settings;
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts
deleted file mode 100644
index 6ee9bd3f..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-///
-import type * as scandir from '@nodelib/fs.scandir';
-export declare type Entry = scandir.Entry;
-export declare type Errno = NodeJS.ErrnoException;
-export interface QueueItem {
- directory: string;
- base?: string;
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.js b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.js
deleted file mode 100644
index c8ad2e54..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/package.json b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/package.json
deleted file mode 100644
index 86bfce48..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": "@nodelib/fs.walk",
- "version": "1.2.8",
- "description": "A library for efficiently walking a directory recursively",
- "license": "MIT",
- "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk",
- "keywords": [
- "NodeLib",
- "fs",
- "FileSystem",
- "file system",
- "walk",
- "scanner",
- "crawler"
- ],
- "engines": {
- "node": ">= 8"
- },
- "files": [
- "out/**",
- "!out/**/*.map",
- "!out/**/*.spec.*",
- "!out/**/tests/**"
- ],
- "main": "out/index.js",
- "typings": "out/index.d.ts",
- "scripts": {
- "clean": "rimraf {tsconfig.tsbuildinfo,out}",
- "lint": "eslint \"src/**/*.ts\" --cache",
- "compile": "tsc -b .",
- "compile:watch": "tsc -p . --watch --sourceMap",
- "test": "mocha \"out/**/*.spec.js\" -s 0",
- "build": "npm run clean && npm run compile && npm run lint && npm test",
- "watch": "npm run clean && npm run compile:watch"
- },
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "devDependencies": {
- "@nodelib/fs.macchiato": "1.0.4"
- },
- "gitHead": "1e5bad48565da2b06b8600e744324ea240bf49d8"
-}
diff --git a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/fastq b/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/fastq
deleted file mode 120000
index 03bee8f9..00000000
--- a/frontend/node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/fastq
+++ /dev/null
@@ -1 +0,0 @@
-../../fastq@1.19.1/node_modules/fastq
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/LICENSE b/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/LICENSE
deleted file mode 100644
index f7be747d..00000000
--- a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Sukka
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/index.d.ts b/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/index.d.ts
deleted file mode 100644
index 8c0bd0dd..00000000
--- a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-declare const isCore: (x: string, _nodeVersion?: any) => boolean;
-
-export = isCore;
diff --git a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/index.js b/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/index.js
deleted file mode 100644
index 24cbbc53..00000000
--- a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/index.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";const e=require("module"),s=new Set(["assert/strict","node:assert/strict","diagnostics_channel","node:diagnostics_channel","dns/promises","node:dns/promises","fs/promises","node:fs/promises","inspector/promises","node:inspector/promises","path/posix","node:path/posix","path/win32","node:path/win32","readline/promises","node:readline/promises","node:sea","stream/consumers","node:stream/consumers","stream/promises","node:stream/promises","stream/web","node:stream/web","node:test/reporters","test/mock_loader","node:test/mock_loader","node:test","timers/promises","node:timers/promises","util/types","node:util/types","wasi","node:wasi"].concat(e.builtinModules,e.builtinModules.map(e=>"node:"+e)));module.exports=(e,o)=>s.has(e);
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/package.json b/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/package.json
deleted file mode 100644
index 20f492c6..00000000
--- a/frontend/node_modules/.pnpm/@nolyfill+is-core-module@1.0.39/node_modules/@nolyfill/is-core-module/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": "@nolyfill/is-core-module",
- "version": "1.0.39",
- "repository": {
- "type": "git",
- "url": "https://github.com/SukkaW/nolyfill",
- "directory": "packages/manual/is-core-module"
- },
- "main": "./index.js",
- "types": "./index.d.ts",
- "files": [
- "**/*.js",
- "*.d.ts",
- "*.js"
- ],
- "exports": {
- ".": "./index.js",
- "./index.js": "./index.js",
- "./package.json": "./package.json"
- },
- "license": "MIT",
- "devDependencies": {
- "@rollup/plugin-commonjs": "^26.0.1",
- "@rollup/plugin-node-resolve": "^15.2.3",
- "@rollup/plugin-replace": "^5.0.7",
- "ljharb-is-core-module": "npm:is-core-module@^2.15.0",
- "resolve-pkg": "^2.0.0"
- },
- "engines": {
- "node": ">=12.4.0"
- },
- "scripts": {
- "build": "rollup -c rollup.config.ts --configPlugin swc3"
- }
-}
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/LICENSE b/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/LICENSE
deleted file mode 100644
index a7cb450b..00000000
--- a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Ryan Tsao
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/README.md b/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/README.md
deleted file mode 100644
index 4697edd2..00000000
--- a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# `@rtsao/scc`
-
-Find strongly connected components of a directed graph using [Tarjan's algorithm](https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm).
-
-This algorithm efficiently yields both a topological order and list of any cycles.
-
-## Installation
-
-```
-yarn add @rtsao/scc
-```
-
-```
-npm install @rtsao/scc
-```
-
-## Usage
-
-```js
-const scc = require("@rtsao/scc");
-
-const digraph = new Map([
- ["a", new Set(["c", "d"])],
- ["b", new Set(["a"])],
- ["c", new Set(["b"])],
- ["d", new Set(["e"])],
- ["e", new Set()]
-]);
-
-const components = scc(digraph);
-// [ Set { 'e' }, Set { 'd' }, Set { 'b', 'c', 'a' } ]
-```
-
-#### Illustration of example input digraph
-```
-┌───┐ ┌───┐
-│ d │ ◀── │ a │ ◀┐
-└───┘ └───┘ │
- │ │ │
- ▼ ▼ │
-┌───┐ ┌───┐ │
-│ e │ │ c │ │
-└───┘ └───┘ │
- │ │
- ▼ │
- ┌───┐ │
- │ b │ ─┘
- └───┘
-```
diff --git a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.d.ts b/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.d.ts
deleted file mode 100644
index ed46b8bc..00000000
--- a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export default function tarjan(graph: Map>): Array>
diff --git a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.js b/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.js
deleted file mode 100644
index b7dd5bb4..00000000
--- a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-
-module.exports = tarjan;
-
-// Adapted from https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm#The_algorithm_in_pseudocode
-
-function tarjan(graph) {
- const indices = new Map();
- const lowlinks = new Map();
- const onStack = new Set();
- const stack = [];
- const scc = [];
- let idx = 0;
-
- function strongConnect(v) {
- indices.set(v, idx);
- lowlinks.set(v, idx);
- idx++;
- stack.push(v);
- onStack.add(v);
-
- const deps = graph.get(v);
- for (const dep of deps) {
- if (!indices.has(dep)) {
- strongConnect(dep);
- lowlinks.set(v, Math.min(lowlinks.get(v), lowlinks.get(dep)));
- } else if (onStack.has(dep)) {
- lowlinks.set(v, Math.min(lowlinks.get(v), indices.get(dep)));
- }
- }
-
- if (lowlinks.get(v) === indices.get(v)) {
- const vertices = new Set();
- let w = null;
- while (v !== w) {
- w = stack.pop();
- onStack.delete(w);
- vertices.add(w);
- }
- scc.push(vertices);
- }
- }
-
- for (const v of graph.keys()) {
- if (!indices.has(v)) {
- strongConnect(v);
- }
- }
-
- return scc;
-}
diff --git a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.js.flow b/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.js.flow
deleted file mode 100644
index 479ff4ff..00000000
--- a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/index.js.flow
+++ /dev/null
@@ -1,5 +0,0 @@
-// @flow
-
-declare function tarjan(graph: Map>): Array>;
-
-declare module.exports: typeof tarjan;
diff --git a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/package.json b/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/package.json
deleted file mode 100644
index 67f67ccd..00000000
--- a/frontend/node_modules/.pnpm/@rtsao+scc@1.1.0/node_modules/@rtsao/scc/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "@rtsao/scc",
- "version": "1.1.0",
- "repository": "rtsao/scc",
- "main": "index.js",
- "license": "MIT"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/LICENSE b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/LICENSE
deleted file mode 100644
index 6a085049..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
-Copyright 2024 SWC contributors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_apply_decorated_descriptor/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_apply_decorated_descriptor/package.json
deleted file mode 100644
index 7d6b9548..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_apply_decorated_descriptor/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_apply_decorated_descriptor.cjs",
- "module": "../../esm/_apply_decorated_descriptor.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_apply_decs_2203_r/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_apply_decs_2203_r/package.json
deleted file mode 100644
index 80f208cb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_apply_decs_2203_r/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_apply_decs_2203_r.cjs",
- "module": "../../esm/_apply_decs_2203_r.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_like_to_array/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_like_to_array/package.json
deleted file mode 100644
index 37bd07fb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_like_to_array/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_array_like_to_array.cjs",
- "module": "../../esm/_array_like_to_array.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_with_holes/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_with_holes/package.json
deleted file mode 100644
index 7f602bcb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_with_holes/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_array_with_holes.cjs",
- "module": "../../esm/_array_with_holes.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_without_holes/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_without_holes/package.json
deleted file mode 100644
index aeefbfce..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_array_without_holes/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_array_without_holes.cjs",
- "module": "../../esm/_array_without_holes.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_assert_this_initialized/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_assert_this_initialized/package.json
deleted file mode 100644
index fab7d972..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_assert_this_initialized/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_assert_this_initialized.cjs",
- "module": "../../esm/_assert_this_initialized.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_generator/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_generator/package.json
deleted file mode 100644
index 6c367407..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_generator/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_async_generator.cjs",
- "module": "../../esm/_async_generator.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_generator_delegate/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_generator_delegate/package.json
deleted file mode 100644
index aa245053..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_generator_delegate/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_async_generator_delegate.cjs",
- "module": "../../esm/_async_generator_delegate.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_iterator/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_iterator/package.json
deleted file mode 100644
index b87fa5ce..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_iterator/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_async_iterator.cjs",
- "module": "../../esm/_async_iterator.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_to_generator/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_to_generator/package.json
deleted file mode 100644
index 1bfa4159..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_async_to_generator/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_async_to_generator.cjs",
- "module": "../../esm/_async_to_generator.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_await_async_generator/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_await_async_generator/package.json
deleted file mode 100644
index 62d48a7f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_await_async_generator/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_await_async_generator.cjs",
- "module": "../../esm/_await_async_generator.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_await_value/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_await_value/package.json
deleted file mode 100644
index a0fe68d9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_await_value/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_await_value.cjs",
- "module": "../../esm/_await_value.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_call_super/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_call_super/package.json
deleted file mode 100644
index 46cf64de..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_call_super/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_call_super.cjs",
- "module": "../../esm/_call_super.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_check_private_redeclaration/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_check_private_redeclaration/package.json
deleted file mode 100644
index 4d8c7cf4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_check_private_redeclaration/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_check_private_redeclaration.cjs",
- "module": "../../esm/_check_private_redeclaration.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_destructure/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_destructure/package.json
deleted file mode 100644
index 8322bad6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_destructure/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_apply_descriptor_destructure.cjs",
- "module": "../../esm/_class_apply_descriptor_destructure.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_get/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_get/package.json
deleted file mode 100644
index eb0c92d2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_get/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_apply_descriptor_get.cjs",
- "module": "../../esm/_class_apply_descriptor_get.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_set/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_set/package.json
deleted file mode 100644
index 68de7559..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_set/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_apply_descriptor_set.cjs",
- "module": "../../esm/_class_apply_descriptor_set.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_update/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_update/package.json
deleted file mode 100644
index 8b8a5c95..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_apply_descriptor_update/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_apply_descriptor_update.cjs",
- "module": "../../esm/_class_apply_descriptor_update.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_call_check/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_call_check/package.json
deleted file mode 100644
index 69345d45..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_call_check/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_call_check.cjs",
- "module": "../../esm/_class_call_check.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_check_private_static_access/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_check_private_static_access/package.json
deleted file mode 100644
index d69f9f58..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_check_private_static_access/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_check_private_static_access.cjs",
- "module": "../../esm/_class_check_private_static_access.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_check_private_static_field_descriptor/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_check_private_static_field_descriptor/package.json
deleted file mode 100644
index 8dd77c2e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_check_private_static_field_descriptor/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_check_private_static_field_descriptor.cjs",
- "module": "../../esm/_class_check_private_static_field_descriptor.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_extract_field_descriptor/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_extract_field_descriptor/package.json
deleted file mode 100644
index 7c3965f1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_extract_field_descriptor/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_extract_field_descriptor.cjs",
- "module": "../../esm/_class_extract_field_descriptor.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_name_tdz_error/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_name_tdz_error/package.json
deleted file mode 100644
index 8ac4b517..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_name_tdz_error/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_name_tdz_error.cjs",
- "module": "../../esm/_class_name_tdz_error.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_destructure/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_destructure/package.json
deleted file mode 100644
index 044346e6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_destructure/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_destructure.cjs",
- "module": "../../esm/_class_private_field_destructure.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_get/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_get/package.json
deleted file mode 100644
index 4650d80f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_get/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_get.cjs",
- "module": "../../esm/_class_private_field_get.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_init/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_init/package.json
deleted file mode 100644
index 8c57a746..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_init/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_init.cjs",
- "module": "../../esm/_class_private_field_init.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json
deleted file mode 100644
index 07df6d88..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_loose_base/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_loose_base.cjs",
- "module": "../../esm/_class_private_field_loose_base.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json
deleted file mode 100644
index abd74810..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_loose_key/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_loose_key.cjs",
- "module": "../../esm/_class_private_field_loose_key.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_set/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_set/package.json
deleted file mode 100644
index 477326e3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_set/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_set.cjs",
- "module": "../../esm/_class_private_field_set.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_update/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_update/package.json
deleted file mode 100644
index ecb502fa..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_field_update/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_field_update.cjs",
- "module": "../../esm/_class_private_field_update.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_get/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_get/package.json
deleted file mode 100644
index 4d01b2ec..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_get/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_method_get.cjs",
- "module": "../../esm/_class_private_method_get.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_init/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_init/package.json
deleted file mode 100644
index 7c9e406c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_init/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_method_init.cjs",
- "module": "../../esm/_class_private_method_init.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_set/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_set/package.json
deleted file mode 100644
index bc842290..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_private_method_set/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_private_method_set.cjs",
- "module": "../../esm/_class_private_method_set.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_destructure/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_destructure/package.json
deleted file mode 100644
index 7cc7dc62..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_destructure/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_static_private_field_destructure.cjs",
- "module": "../../esm/_class_static_private_field_destructure.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_spec_get/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_spec_get/package.json
deleted file mode 100644
index d626f6f2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_spec_get/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_static_private_field_spec_get.cjs",
- "module": "../../esm/_class_static_private_field_spec_get.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_spec_set/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_spec_set/package.json
deleted file mode 100644
index 7a4d0891..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_spec_set/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_static_private_field_spec_set.cjs",
- "module": "../../esm/_class_static_private_field_spec_set.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_update/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_update/package.json
deleted file mode 100644
index c10abd01..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_field_update/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_static_private_field_update.cjs",
- "module": "../../esm/_class_static_private_field_update.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_method_get/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_method_get/package.json
deleted file mode 100644
index 1f4f139f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_class_static_private_method_get/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_class_static_private_method_get.cjs",
- "module": "../../esm/_class_static_private_method_get.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_construct/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_construct/package.json
deleted file mode 100644
index 0eea2549..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_construct/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_construct.cjs",
- "module": "../../esm/_construct.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_class/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_class/package.json
deleted file mode 100644
index 191f7edb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_class/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_create_class.cjs",
- "module": "../../esm/_create_class.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_for_of_iterator_helper_loose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_for_of_iterator_helper_loose/package.json
deleted file mode 100644
index 68257867..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_for_of_iterator_helper_loose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_create_for_of_iterator_helper_loose.cjs",
- "module": "../../esm/_create_for_of_iterator_helper_loose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_super/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_super/package.json
deleted file mode 100644
index 3442b58a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_create_super/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_create_super.cjs",
- "module": "../../esm/_create_super.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_decorate/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_decorate/package.json
deleted file mode 100644
index d33cc5b3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_decorate/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_decorate.cjs",
- "module": "../../esm/_decorate.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_defaults/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_defaults/package.json
deleted file mode 100644
index e44774f0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_defaults/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_defaults.cjs",
- "module": "../../esm/_defaults.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_define_enumerable_properties/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_define_enumerable_properties/package.json
deleted file mode 100644
index 63c488e0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_define_enumerable_properties/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_define_enumerable_properties.cjs",
- "module": "../../esm/_define_enumerable_properties.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_define_property/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_define_property/package.json
deleted file mode 100644
index ac05789c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_define_property/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_define_property.cjs",
- "module": "../../esm/_define_property.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_dispose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_dispose/package.json
deleted file mode 100644
index a6e5f505..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_dispose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_dispose.cjs",
- "module": "../../esm/_dispose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_export_star/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_export_star/package.json
deleted file mode 100644
index c47d22b8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_export_star/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_export_star.cjs",
- "module": "../../esm/_export_star.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_extends/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_extends/package.json
deleted file mode 100644
index 40fc9ac4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_extends/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_extends.cjs",
- "module": "../../esm/_extends.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_get/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_get/package.json
deleted file mode 100644
index f6cb8108..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_get/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_get.cjs",
- "module": "../../esm/_get.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_get_prototype_of/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_get_prototype_of/package.json
deleted file mode 100644
index 7c4ca8e6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_get_prototype_of/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_get_prototype_of.cjs",
- "module": "../../esm/_get_prototype_of.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_identity/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_identity/package.json
deleted file mode 100644
index 3b45f4c7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_identity/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_identity.cjs",
- "module": "../../esm/_identity.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_inherits/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_inherits/package.json
deleted file mode 100644
index 425da862..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_inherits/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_inherits.cjs",
- "module": "../../esm/_inherits.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_inherits_loose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_inherits_loose/package.json
deleted file mode 100644
index ffa67dc2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_inherits_loose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_inherits_loose.cjs",
- "module": "../../esm/_inherits_loose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_initializer_define_property/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_initializer_define_property/package.json
deleted file mode 100644
index b65ad3b0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_initializer_define_property/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_initializer_define_property.cjs",
- "module": "../../esm/_initializer_define_property.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_initializer_warning_helper/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_initializer_warning_helper/package.json
deleted file mode 100644
index 94653a8f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_initializer_warning_helper/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_initializer_warning_helper.cjs",
- "module": "../../esm/_initializer_warning_helper.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_instanceof/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_instanceof/package.json
deleted file mode 100644
index 523c3447..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_instanceof/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_instanceof.cjs",
- "module": "../../esm/_instanceof.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_interop_require_default/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_interop_require_default/package.json
deleted file mode 100644
index 70d438fc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_interop_require_default/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_interop_require_default.cjs",
- "module": "../../esm/_interop_require_default.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json
deleted file mode 100644
index b3469a5d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_interop_require_wildcard/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_interop_require_wildcard.cjs",
- "module": "../../esm/_interop_require_wildcard.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_is_native_function/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_is_native_function/package.json
deleted file mode 100644
index 6380c813..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_is_native_function/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_is_native_function.cjs",
- "module": "../../esm/_is_native_function.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_is_native_reflect_construct/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_is_native_reflect_construct/package.json
deleted file mode 100644
index 9aa84b0f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_is_native_reflect_construct/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_is_native_reflect_construct.cjs",
- "module": "../../esm/_is_native_reflect_construct.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array/package.json
deleted file mode 100644
index 7754bd48..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_iterable_to_array.cjs",
- "module": "../../esm/_iterable_to_array.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array_limit/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array_limit/package.json
deleted file mode 100644
index a69c45e9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array_limit/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_iterable_to_array_limit.cjs",
- "module": "../../esm/_iterable_to_array_limit.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array_limit_loose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array_limit_loose/package.json
deleted file mode 100644
index a4a392eb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_iterable_to_array_limit_loose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_iterable_to_array_limit_loose.cjs",
- "module": "../../esm/_iterable_to_array_limit_loose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_jsx/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_jsx/package.json
deleted file mode 100644
index be886148..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_jsx/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_jsx.cjs",
- "module": "../../esm/_jsx.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_new_arrow_check/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_new_arrow_check/package.json
deleted file mode 100644
index df1d9eb7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_new_arrow_check/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_new_arrow_check.cjs",
- "module": "../../esm/_new_arrow_check.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_non_iterable_rest/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_non_iterable_rest/package.json
deleted file mode 100644
index 43d3d3a2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_non_iterable_rest/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_non_iterable_rest.cjs",
- "module": "../../esm/_non_iterable_rest.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_non_iterable_spread/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_non_iterable_spread/package.json
deleted file mode 100644
index 0df885d8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_non_iterable_spread/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_non_iterable_spread.cjs",
- "module": "../../esm/_non_iterable_spread.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_destructuring_empty/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_destructuring_empty/package.json
deleted file mode 100644
index b9e7f60c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_destructuring_empty/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_object_destructuring_empty.cjs",
- "module": "../../esm/_object_destructuring_empty.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_spread/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_spread/package.json
deleted file mode 100644
index 79c030a7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_spread/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_object_spread.cjs",
- "module": "../../esm/_object_spread.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_spread_props/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_spread_props/package.json
deleted file mode 100644
index 1fa988bc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_spread_props/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_object_spread_props.cjs",
- "module": "../../esm/_object_spread_props.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_without_properties/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_without_properties/package.json
deleted file mode 100644
index 5553145d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_without_properties/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_object_without_properties.cjs",
- "module": "../../esm/_object_without_properties.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_without_properties_loose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_without_properties_loose/package.json
deleted file mode 100644
index 8f08da9c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_object_without_properties_loose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_object_without_properties_loose.cjs",
- "module": "../../esm/_object_without_properties_loose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_possible_constructor_return/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_possible_constructor_return/package.json
deleted file mode 100644
index 06256ff1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_possible_constructor_return/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_possible_constructor_return.cjs",
- "module": "../../esm/_possible_constructor_return.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_read_only_error/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_read_only_error/package.json
deleted file mode 100644
index c724d5e1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_read_only_error/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_read_only_error.cjs",
- "module": "../../esm/_read_only_error.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_set/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_set/package.json
deleted file mode 100644
index c90145be..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_set/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_set.cjs",
- "module": "../../esm/_set.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_set_prototype_of/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_set_prototype_of/package.json
deleted file mode 100644
index d08cf843..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_set_prototype_of/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_set_prototype_of.cjs",
- "module": "../../esm/_set_prototype_of.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_skip_first_generator_next/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_skip_first_generator_next/package.json
deleted file mode 100644
index cc34934e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_skip_first_generator_next/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_skip_first_generator_next.cjs",
- "module": "../../esm/_skip_first_generator_next.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_sliced_to_array/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_sliced_to_array/package.json
deleted file mode 100644
index 52b4fbba..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_sliced_to_array/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_sliced_to_array.cjs",
- "module": "../../esm/_sliced_to_array.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_sliced_to_array_loose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_sliced_to_array_loose/package.json
deleted file mode 100644
index ca2c35bc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_sliced_to_array_loose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_sliced_to_array_loose.cjs",
- "module": "../../esm/_sliced_to_array_loose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_super_prop_base/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_super_prop_base/package.json
deleted file mode 100644
index f6557ef5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_super_prop_base/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_super_prop_base.cjs",
- "module": "../../esm/_super_prop_base.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_tagged_template_literal/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_tagged_template_literal/package.json
deleted file mode 100644
index 63d2a40a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_tagged_template_literal/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_tagged_template_literal.cjs",
- "module": "../../esm/_tagged_template_literal.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_tagged_template_literal_loose/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_tagged_template_literal_loose/package.json
deleted file mode 100644
index 6a45bd37..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_tagged_template_literal_loose/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_tagged_template_literal_loose.cjs",
- "module": "../../esm/_tagged_template_literal_loose.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_throw/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_throw/package.json
deleted file mode 100644
index 1418ff4b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_throw/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_throw.cjs",
- "module": "../../esm/_throw.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_array/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_array/package.json
deleted file mode 100644
index 2c5ce50b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_array/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_to_array.cjs",
- "module": "../../esm/_to_array.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_consumable_array/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_consumable_array/package.json
deleted file mode 100644
index 6424d11c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_consumable_array/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_to_consumable_array.cjs",
- "module": "../../esm/_to_consumable_array.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_primitive/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_primitive/package.json
deleted file mode 100644
index 1ee625af..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_primitive/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_to_primitive.cjs",
- "module": "../../esm/_to_primitive.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_property_key/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_property_key/package.json
deleted file mode 100644
index 6f2e9a2d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_to_property_key/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_to_property_key.cjs",
- "module": "../../esm/_to_property_key.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_add_disposable_resource/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_add_disposable_resource/package.json
deleted file mode 100644
index 8b20dac0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_add_disposable_resource/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_add_disposable_resource.cjs",
- "module": "../../esm/_ts_add_disposable_resource.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_decorate/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_decorate/package.json
deleted file mode 100644
index 02279e9f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_decorate/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_decorate.cjs",
- "module": "../../esm/_ts_decorate.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_dispose_resources/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_dispose_resources/package.json
deleted file mode 100644
index 47841c0c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_dispose_resources/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_dispose_resources.cjs",
- "module": "../../esm/_ts_dispose_resources.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_generator/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_generator/package.json
deleted file mode 100644
index 0dc9588c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_generator/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_generator.cjs",
- "module": "../../esm/_ts_generator.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_metadata/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_metadata/package.json
deleted file mode 100644
index d7c1f1c4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_metadata/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_metadata.cjs",
- "module": "../../esm/_ts_metadata.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_param/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_param/package.json
deleted file mode 100644
index 18af8228..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_param/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_param.cjs",
- "module": "../../esm/_ts_param.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_values/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_values/package.json
deleted file mode 100644
index 5fe6a464..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_ts_values/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_ts_values.cjs",
- "module": "../../esm/_ts_values.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_type_of/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_type_of/package.json
deleted file mode 100644
index 620eed9e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_type_of/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_type_of.cjs",
- "module": "../../esm/_type_of.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_unsupported_iterable_to_array/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_unsupported_iterable_to_array/package.json
deleted file mode 100644
index 54549be9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_unsupported_iterable_to_array/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_unsupported_iterable_to_array.cjs",
- "module": "../../esm/_unsupported_iterable_to_array.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_update/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_update/package.json
deleted file mode 100644
index f166b0cb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_update/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_update.cjs",
- "module": "../../esm/_update.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_using/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_using/package.json
deleted file mode 100644
index 444f980f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_using/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_using.cjs",
- "module": "../../esm/_using.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_using_ctx/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_using_ctx/package.json
deleted file mode 100644
index b1aaebc9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_using_ctx/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_using_ctx.cjs",
- "module": "../../esm/_using_ctx.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_wrap_async_generator/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_wrap_async_generator/package.json
deleted file mode 100644
index 774dcc1d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_wrap_async_generator/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_wrap_async_generator.cjs",
- "module": "../../esm/_wrap_async_generator.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_wrap_native_super/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_wrap_native_super/package.json
deleted file mode 100644
index ce559339..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_wrap_native_super/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_wrap_native_super.cjs",
- "module": "../../esm/_wrap_native_super.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_write_only_error/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_write_only_error/package.json
deleted file mode 100644
index 1767535a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/_write_only_error/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/_write_only_error.cjs",
- "module": "../../esm/_write_only_error.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/index/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/index/package.json
deleted file mode 100644
index b855fe77..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/_/index/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "../../cjs/index.cjs",
- "module": "../../esm/index.js"
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_apply_decorated_descriptor.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_apply_decorated_descriptor.cjs
deleted file mode 100644
index edd11861..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_apply_decorated_descriptor.cjs
+++ /dev/null
@@ -1,35 +0,0 @@
-"use strict";
-
-function _apply_decorated_descriptor(target, property, decorators, descriptor, context) {
- var desc = {};
-
- Object["ke" + "ys"](descriptor).forEach(function(key) {
- desc[key] = descriptor[key];
- });
- desc.enumerable = !!desc.enumerable;
- desc.configurable = !!desc.configurable;
-
- if ("value" in desc || desc.initializer) desc.writable = true;
- desc = decorators.slice().reverse().reduce(function(desc, decorator) {
- return decorator ? decorator(target, property, desc) || desc : desc;
- }, desc);
-
- var hasAccessor = Object.prototype.hasOwnProperty.call(desc, "get") || Object.prototype.hasOwnProperty.call(desc, "set");
-
- if (context && desc.initializer !== void 0 && !hasAccessor) {
- desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
- desc.initializer = undefined;
- }
- if (hasAccessor) {
- delete desc.writable;
- delete desc.initializer;
- delete desc.value;
- }
- if (desc.initializer === void 0) {
- Object["define" + "Property"](target, property, desc);
- desc = null;
- }
-
- return desc;
-}
-exports._ = _apply_decorated_descriptor;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_apply_decs_2203_r.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_apply_decs_2203_r.cjs
deleted file mode 100644
index c55c7867..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_apply_decs_2203_r.cjs
+++ /dev/null
@@ -1,550 +0,0 @@
-"use strict";
-
-/* @minVersion 7.20.0 */
-
-/**
- Enums are used in this file, but not assigned to vars to avoid non-hoistable values
-
- CONSTRUCTOR = 0;
- PUBLIC = 1;
- PRIVATE = 2;
-
- FIELD = 0;
- ACCESSOR = 1;
- METHOD = 2;
- GETTER = 3;
- SETTER = 4;
-
- STATIC = 5;
-
- CLASS = 10; // only used in assertValidReturnValue
-*/
-
-function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function addInitializer(initializer) {
- assertNotFinished(decoratorFinishedRef, "addInitializer");
- assertCallable(initializer, "An initializer");
- initializers.push(initializer);
- };
- }
-
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
- var kindStr;
-
- switch (kind) {
- case 1 /* ACCESSOR */:
- kindStr = "accessor";
- break;
- case 2 /* METHOD */:
- kindStr = "method";
- break;
- case 3 /* GETTER */:
- kindStr = "getter";
- break;
- case 4 /* SETTER */:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
-
- var ctx = { kind: kindStr, name: isPrivate ? "#" + name : name, static: isStatic, private: isPrivate, metadata: metadata };
-
- var decoratorFinishedRef = { v: false };
-
- ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
-
- var get, set;
- if (kind === 0 /* FIELD */) {
- if (isPrivate) {
- get = desc.get;
- set = desc.set;
- } else {
- get = function() {
- return this[name];
- };
- set = function(v) {
- this[name] = v;
- };
- }
- } else if (kind === 2 /* METHOD */) {
- get = function() {
- return desc.value;
- };
- } else {
- // replace with values that will go through the final getter and setter
- if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {
- get = function() {
- return desc.get.call(this);
- };
- }
-
- if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {
- set = function(v) {
- desc.set.call(this, v);
- };
- }
- }
- ctx.access = get && set ? { get: get, set: set } : get ? { get: get } : { set: set };
-
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = true;
- }
- }
-
- function assertNotFinished(decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) {
- throw new Error("attempted to call " + fnName + " after decoration was finished");
- }
- }
-
- function assertCallable(fn, hint) {
- if (typeof fn !== "function") {
- throw new TypeError(hint + " must be a function");
- }
- }
-
- function assertValidReturnValue(kind, value) {
- var type = typeof value;
-
- if (kind === 1 /* ACCESSOR */) {
- if (type !== "object" || value === null) {
- throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- }
- if (value.get !== undefined) {
- assertCallable(value.get, "accessor.get");
- }
- if (value.set !== undefined) {
- assertCallable(value.set, "accessor.set");
- }
- if (value.init !== undefined) {
- assertCallable(value.init, "accessor.init");
- }
- } else if (type !== "function") {
- var hint;
- if (kind === 0 /* FIELD */) {
- hint = "field";
- } else if (kind === 10 /* CLASS */) {
- hint = "class";
- } else {
- hint = "method";
- }
- throw new TypeError(hint + " decorators must return a function or void 0");
- }
- }
-
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
- var decs = decInfo[0];
-
- var desc, init, value;
-
- if (isPrivate) {
- if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {
- desc = { get: decInfo[3], set: decInfo[4] };
- } else if (kind === 3 /* GETTER */) {
- desc = { get: decInfo[3] };
- } else if (kind === 4 /* SETTER */) {
- desc = { set: decInfo[3] };
- } else {
- desc = { value: decInfo[3] };
- }
- } else if (kind !== 0 /* FIELD */) {
- desc = Object.getOwnPropertyDescriptor(base, name);
- }
-
- if (kind === 1 /* ACCESSOR */) {
- value = { get: desc.get, set: desc.set };
- } else if (kind === 2 /* METHOD */) {
- value = desc.value;
- } else if (kind === 3 /* GETTER */) {
- value = desc.get;
- } else if (kind === 4 /* SETTER */) {
- value = desc.set;
- }
-
- var newValue, get, set;
-
- if (typeof decs === "function") {
- newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
-
- if (newValue !== void 0) {
- assertValidReturnValue(kind, newValue);
-
- if (kind === 0 /* FIELD */) {
- init = newValue;
- } else if (kind === 1 /* ACCESSOR */) {
- init = newValue.init;
- get = newValue.get || value.get;
- set = newValue.set || value.set;
-
- value = { get: get, set: set };
- } else {
- value = newValue;
- }
- }
- } else {
- for (var i = decs.length - 1; i >= 0; i--) {
- var dec = decs[i];
-
- newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
-
- if (newValue !== void 0) {
- assertValidReturnValue(kind, newValue);
- var newInit;
-
- if (kind === 0 /* FIELD */) {
- newInit = newValue;
- } else if (kind === 1 /* ACCESSOR */) {
- newInit = newValue.init;
- get = newValue.get || value.get;
- set = newValue.set || value.set;
-
- value = { get: get, set: set };
- } else {
- value = newValue;
- }
-
- if (newInit !== void 0) {
- if (init === void 0) {
- init = newInit;
- } else if (typeof init === "function") {
- init = [init, newInit];
- } else {
- init.push(newInit);
- }
- }
- }
- }
- }
-
- if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {
- if (init === void 0) {
- // If the initializer was void 0, sub in a dummy initializer
- init = function(instance, init) {
- return init;
- };
- } else if (typeof init !== "function") {
- var ownInitializers = init;
-
- init = function(instance, init) {
- var value = init;
-
- for (var i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
-
- return value;
- };
- } else {
- var originalInitializer = init;
-
- init = function(instance, init) {
- return originalInitializer.call(instance, init);
- };
- }
-
- ret.push(init);
- }
-
- if (kind !== 0 /* FIELD */) {
- if (kind === 1 /* ACCESSOR */) {
- desc.get = value.get;
- desc.set = value.set;
- } else if (kind === 2 /* METHOD */) {
- desc.value = value;
- } else if (kind === 3 /* GETTER */) {
- desc.get = value;
- } else if (kind === 4 /* SETTER */) {
- desc.set = value;
- }
-
- if (isPrivate) {
- if (kind === 1 /* ACCESSOR */) {
- ret.push(function(instance, args) {
- return value.get.call(instance, args);
- });
- ret.push(function(instance, args) {
- return value.set.call(instance, args);
- });
- } else if (kind === 2 /* METHOD */) {
- ret.push(value);
- } else {
- ret.push(function(instance, args) {
- return value.call(instance, args);
- });
- }
- } else {
- Object.defineProperty(base, name, desc);
- }
- }
- }
-
- function applyMemberDecs(Class, decInfos, metadata) {
- var ret = [];
- var protoInitializers;
- var staticInitializers;
-
- var existingProtoNonFields = new Map();
- var existingStaticNonFields = new Map();
-
- for (var i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
-
- // skip computed property names
- if (!Array.isArray(decInfo)) continue;
-
- var kind = decInfo[1];
- var name = decInfo[2];
- var isPrivate = decInfo.length > 3;
-
- var isStatic = kind >= 5; /* STATIC */
- var base;
- var initializers;
-
- if (isStatic) {
- base = Class;
- kind = kind - 5 /* STATIC */;
- // initialize staticInitializers when we see a non-field static member
- staticInitializers = staticInitializers || [];
- initializers = staticInitializers;
- } else {
- base = Class.prototype;
- // initialize protoInitializers when we see a non-field member
- protoInitializers = protoInitializers || [];
- initializers = protoInitializers;
- }
-
- if (kind !== 0 /* FIELD */ && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
-
- var existingKind = existingNonFields.get(name) || 0;
-
- if (existingKind === true || (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ || (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */) {
- throw new Error(
- "Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "
- + name
- );
- } else if (!existingKind && kind > 2 /* METHOD */) {
- existingNonFields.set(name, kind);
- } else {
- existingNonFields.set(name, true);
- }
- }
-
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
- }
-
- pushInitializers(ret, protoInitializers);
- pushInitializers(ret, staticInitializers);
- return ret;
- }
-
- function pushInitializers(ret, initializers) {
- if (initializers) {
- ret.push(function(instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- }
-
- function applyClassDecs(targetClass, classDecs, metadata) {
- if (classDecs.length > 0) {
- var initializers = [];
- var newClass = targetClass;
- var name = targetClass.name;
-
- for (var i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = { v: false };
-
- try {
- var nextNewClass = classDecs[i](newClass, { kind: "class", name: name, addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef), metadata });
- } finally {
- decoratorFinishedRef.v = true;
- }
-
- if (nextNewClass !== undefined) {
- assertValidReturnValue(10, /* CLASS */ nextNewClass);
- newClass = nextNewClass;
- }
- }
-
- return [defineMetadata(newClass, metadata), function() {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
- // The transformer will not emit assignment when there are no class decorators,
- // so we don't have to return an empty array here.
- }
-
- function defineMetadata(Class, metadata) {
- return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: true, enumerable: true, value: metadata });
- }
-
- /**
- Basic usage:
-
- applyDecs(
- Class,
- [
- // member decorators
- [
- dec, // dec or array of decs
- 0, // kind of value being decorated
- 'prop', // name of public prop on class containing the value being decorated,
- '#p', // the name of the private property (if is private, void 0 otherwise),
- ]
- ],
- [
- // class decorators
- dec1, dec2
- ]
- )
- ```
-
- Fully transpiled example:
-
- ```js
- @dec
- class Class {
- @dec
- a = 123;
-
- @dec
- #a = 123;
-
- @dec
- @dec2
- accessor b = 123;
-
- @dec
- accessor #b = 123;
-
- @dec
- c() { console.log('c'); }
-
- @dec
- #c() { console.log('privC'); }
-
- @dec
- get d() { console.log('d'); }
-
- @dec
- get #d() { console.log('privD'); }
-
- @dec
- set e(v) { console.log('e'); }
-
- @dec
- set #e(v) { console.log('privE'); }
- }
-
-
- // becomes
- let initializeInstance;
- let initializeClass;
-
- let initA;
- let initPrivA;
-
- let initB;
- let initPrivB, getPrivB, setPrivB;
-
- let privC;
- let privD;
- let privE;
-
- let Class;
- class _Class {
- static {
- let ret = applyDecs(
- this,
- [
- [dec, 0, 'a'],
- [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],
- [[dec, dec2], 1, 'b'],
- [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],
- [dec, 2, 'c'],
- [dec, 2, 'c', () => console.log('privC')],
- [dec, 3, 'd'],
- [dec, 3, 'd', () => console.log('privD')],
- [dec, 4, 'e'],
- [dec, 4, 'e', () => console.log('privE')],
- ],
- [
- dec
- ]
- )
-
- initA = ret[0];
-
- initPrivA = ret[1];
-
- initB = ret[2];
-
- initPrivB = ret[3];
- getPrivB = ret[4];
- setPrivB = ret[5];
-
- privC = ret[6];
-
- privD = ret[7];
-
- privE = ret[8];
-
- initializeInstance = ret[9];
-
- Class = ret[10]
-
- initializeClass = ret[11];
- }
-
- a = (initializeInstance(this), initA(this, 123));
-
- #a = initPrivA(this, 123);
-
- #bData = initB(this, 123);
- get b() { return this.#bData }
- set b(v) { this.#bData = v }
-
- #privBData = initPrivB(this, 123);
- get #b() { return getPrivB(this); }
- set #b(v) { setPrivB(this, v); }
-
- c() { console.log('c'); }
-
- #c(...args) { return privC(this, ...args) }
-
- get d() { console.log('d'); }
-
- get #d() { return privD(this); }
-
- set e(v) { console.log('e'); }
-
- set #e(v) { privE(this, v); }
- }
-
- initializeClass(Class);
- */
-
- exports._ = _apply_decs_2203_r = function(targetClass, memberDecs, classDecs, parentClass) {
- if (parentClass !== void 0) {
- var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
- }
- var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
- var e = applyMemberDecs(targetClass, memberDecs, metadata);
- if (!classDecs.length) defineMetadata(targetClass, metadata);
- return {
- e: e,
- // Lazily apply class decorations so that member init locals can be properly bound.
- get c() {
- return applyClassDecs(targetClass, classDecs, metadata);
- }
- };
- };
-
- return _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass);
-}
-
-exports._ = _apply_decs_2203_r;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_like_to_array.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_like_to_array.cjs
deleted file mode 100644
index 0f7d69d9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_like_to_array.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-function _array_like_to_array(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
- return arr2;
-}
-exports._ = _array_like_to_array;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_with_holes.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_with_holes.cjs
deleted file mode 100644
index 42f4e1b2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_with_holes.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _array_with_holes(arr) {
- if (Array.isArray(arr)) return arr;
-}
-exports._ = _array_with_holes;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_without_holes.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_without_holes.cjs
deleted file mode 100644
index 7b3f6233..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_array_without_holes.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var _array_like_to_array = require("./_array_like_to_array.cjs");
-
-function _array_without_holes(arr) {
- if (Array.isArray(arr)) return _array_like_to_array._(arr);
-}
-exports._ = _array_without_holes;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_assert_this_initialized.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_assert_this_initialized.cjs
deleted file mode 100644
index e7e220c7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_assert_this_initialized.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _assert_this_initialized(self) {
- if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-
- return self;
-}
-exports._ = _assert_this_initialized;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_generator.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_generator.cjs
deleted file mode 100644
index d806ca21..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_generator.cjs
+++ /dev/null
@@ -1,78 +0,0 @@
-"use strict";
-
-var _await_value = require("./_await_value.cjs");
-
-function _async_generator(gen) {
- var front, back;
-
- function send(key, arg) {
- return new Promise(function(resolve, reject) {
- var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null };
- if (back) back = back.next = request;
- else {
- front = back = request;
- resume(key, arg);
- }
- });
- }
-
- function resume(key, arg) {
- try {
- var result = gen[key](arg);
- var value = result.value;
- var wrappedAwait = value instanceof _await_value._;
- Promise.resolve(wrappedAwait ? value.wrapped : value).then(function(arg) {
- if (wrappedAwait) {
- resume("next", arg);
-
- return;
- }
- settle(result.done ? "return" : "normal", arg);
- }, function(err) {
- resume("throw", err);
- });
- } catch (err) {
- settle("throw", err);
- }
- }
-
- function settle(type, value) {
- switch (type) {
- case "return":
- front.resolve({ value: value, done: true });
- break;
- case "throw":
- front.reject(value);
- break;
- default:
- front.resolve({ value: value, done: false });
- break;
- }
- front = front.next;
- if (front) resume(front.key, front.arg);
- else back = null;
- }
-
- this._invoke = send;
-
- if (typeof gen.return !== "function") this.return = undefined;
-}
-
-if (typeof Symbol === "function" && Symbol.asyncIterator) {
- _async_generator.prototype[Symbol.asyncIterator] = function() {
- return this;
- };
-}
-
-_async_generator.prototype.next = function(arg) {
- return this._invoke("next", arg);
-};
-
-_async_generator.prototype.throw = function(arg) {
- return this._invoke("throw", arg);
-};
-
-_async_generator.prototype.return = function(arg) {
- return this._invoke("return", arg);
-};
-exports._ = _async_generator;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs
deleted file mode 100644
index f14d2deb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_generator_delegate.cjs
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-
-function _async_generator_delegate(inner, awaitWrap) {
- var iter = {}, waiting = false;
-
- function pump(key, value) {
- waiting = true;
- value = new Promise(function(resolve) {
- resolve(inner[key](value));
- });
-
- return { done: false, value: awaitWrap(value) };
- }
-
- if (typeof Symbol === "function" && Symbol.iterator) {
- iter[Symbol.iterator] = function() {
- return this;
- };
- }
-
- iter.next = function(value) {
- if (waiting) {
- waiting = false;
-
- return value;
- }
-
- return pump("next", value);
- };
-
- if (typeof inner.throw === "function") {
- iter.throw = function(value) {
- if (waiting) {
- waiting = false;
- throw value;
- }
-
- return pump("throw", value);
- };
- }
- if (typeof inner.return === "function") {
- iter.return = function(value) {
- return pump("return", value);
- };
- }
-
- return iter;
-}
-exports._ = _async_generator_delegate;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_iterator.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_iterator.cjs
deleted file mode 100644
index aef72537..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_iterator.cjs
+++ /dev/null
@@ -1,46 +0,0 @@
-"use strict";
-
-function _async_iterator(iterable) {
- var method, async, sync, retry = 2;
- for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) {
- if (async && null != (method = iterable[async])) return method.call(iterable);
- if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
- async = "@@asyncIterator", sync = "@@iterator";
- }
- throw new TypeError("Object is not async iterable");
-}
-function AsyncFromSyncIterator(s) {
- function AsyncFromSyncIteratorContinuation(r) {
- if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
-
- var done = r.done;
-
- return Promise.resolve(r.value).then(function(value) {
- return { value: value, done: done };
- });
- }
-
- return AsyncFromSyncIterator = function(s) {
- this.s = s, this.n = s.next;
- },
- AsyncFromSyncIterator.prototype = {
- s: null,
- n: null,
-
- next: function() {
- return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
- },
- return: function(value) {
- var ret = this.s.return;
-
- return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
- },
- throw: function(value) {
- var thr = this.s.return;
-
- return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
- }
- },
- new AsyncFromSyncIterator(s);
-}
-exports._ = _async_iterator;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_to_generator.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_to_generator.cjs
deleted file mode 100644
index b838d476..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_async_to_generator.cjs
+++ /dev/null
@@ -1,33 +0,0 @@
-"use strict";
-
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
- if (info.done) resolve(value);
- else Promise.resolve(value).then(_next, _throw);
-}
-function _async_to_generator(fn) {
- return function() {
- var self = this, args = arguments;
-
- return new Promise(function(resolve, reject) {
- var gen = fn.apply(self, args);
-
- function _next(value) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
- }
-
- function _throw(err) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
- }
-
- _next(undefined);
- });
- };
-}
-exports._ = _async_to_generator;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_await_async_generator.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_await_async_generator.cjs
deleted file mode 100644
index c7ee729d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_await_async_generator.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var _await_value = require("./_await_value.cjs");
-
-function _await_async_generator(value) {
- return new _await_value._(value);
-}
-exports._ = _await_async_generator;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_await_value.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_await_value.cjs
deleted file mode 100644
index f82ebcde..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_await_value.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _await_value(value) {
- this.wrapped = value;
-}
-exports._ = _await_value;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_call_super.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_call_super.cjs
deleted file mode 100644
index c4e77334..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_call_super.cjs
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-
-var _get_prototype_of = require("./_get_prototype_of.cjs");
-var _is_native_reflect_construct = require("./_is_native_reflect_construct.cjs");
-var _possible_constructor_return = require("./_possible_constructor_return.cjs");
-
-function _call_super(_this, derived, args) {
- // Super
- derived = _get_prototype_of._(derived);
- return _possible_constructor_return._(
- _this,
- _is_native_reflect_construct._()
- // NOTE: This doesn't work if this.__proto__.constructor has been modified.
- ? Reflect.construct(derived, args || [], _get_prototype_of._(_this).constructor)
- : derived.apply(_this, args)
- );
-}
-
-exports._ = _call_super;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_check_private_redeclaration.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_check_private_redeclaration.cjs
deleted file mode 100644
index 40390b82..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_check_private_redeclaration.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _check_private_redeclaration(obj, privateCollection) {
- if (privateCollection.has(obj)) {
- throw new TypeError("Cannot initialize the same private elements twice on an object");
- }
-}
-exports._ = _check_private_redeclaration;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_destructure.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_destructure.cjs
deleted file mode 100644
index 874289ff..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_destructure.cjs
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-function _class_apply_descriptor_destructure(receiver, descriptor) {
- if (descriptor.set) {
- if (!("__destrObj" in descriptor)) {
- descriptor.__destrObj = {
- set value(v) {
- descriptor.set.call(receiver, v);
- }
- };
- }
-
- return descriptor.__destrObj;
- } else {
- if (!descriptor.writable) {
- // This should only throw in strict mode, but class bodies are
- // always strict and private fields can only be used inside
- // class bodies.
- throw new TypeError("attempted to set read only private field");
- }
-
- return descriptor;
- }
-}
-exports._ = _class_apply_descriptor_destructure;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_get.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_get.cjs
deleted file mode 100644
index b9a3f78e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_get.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _class_apply_descriptor_get(receiver, descriptor) {
- if (descriptor.get) return descriptor.get.call(receiver);
-
- return descriptor.value;
-}
-exports._ = _class_apply_descriptor_get;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_set.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_set.cjs
deleted file mode 100644
index bcd2c75d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_set.cjs
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-function _class_apply_descriptor_set(receiver, descriptor, value) {
- if (descriptor.set) descriptor.set.call(receiver, value);
- else {
- if (!descriptor.writable) {
- // This should only throw in strict mode, but class bodies are
- // always strict and private fields can only be used inside
- // class bodies.
- throw new TypeError("attempted to set read only private field");
- }
- descriptor.value = value;
- }
-}
-exports._ = _class_apply_descriptor_set;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_update.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_update.cjs
deleted file mode 100644
index 2c3e40fb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_apply_descriptor_update.cjs
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-function _class_apply_descriptor_update(receiver, descriptor) {
- if (descriptor.set) {
- if (!descriptor.get) throw new TypeError("attempted to read set only private field");
-
- if (!("__destrWrapper" in descriptor)) {
- descriptor.__destrWrapper = {
- set value(v) {
- descriptor.set.call(receiver, v);
- },
- get value() {
- return descriptor.get.call(receiver);
- }
- };
- }
-
- return descriptor.__destrWrapper;
- } else {
- if (!descriptor.writable) {
- // This should only throw in strict mode, but class bodies are
- // always strict and private fields can only be used inside
- // class bodies.
- throw new TypeError("attempted to set read only private field");
- }
-
- return descriptor;
- }
-}
-exports._ = _class_apply_descriptor_update;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_call_check.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_call_check.cjs
deleted file mode 100644
index 7d41f0d7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_call_check.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _class_call_check(instance, Constructor) {
- if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
-}
-exports._ = _class_call_check;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_check_private_static_access.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_check_private_static_access.cjs
deleted file mode 100644
index 9adf4d4b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_check_private_static_access.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _class_check_private_static_access(receiver, classConstructor) {
- if (receiver !== classConstructor) throw new TypeError("Private static access of wrong provenance");
-}
-exports._ = _class_check_private_static_access;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_check_private_static_field_descriptor.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_check_private_static_field_descriptor.cjs
deleted file mode 100644
index e73dce11..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_check_private_static_field_descriptor.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _class_check_private_static_field_descriptor(descriptor, action) {
- if (descriptor === undefined) {
- throw new TypeError("attempted to " + action + " private static field before its declaration");
- }
-}
-exports._ = _class_check_private_static_field_descriptor;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_extract_field_descriptor.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_extract_field_descriptor.cjs
deleted file mode 100644
index 16e5106b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_extract_field_descriptor.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _class_extract_field_descriptor(receiver, privateMap, action) {
- if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
-
- return privateMap.get(receiver);
-}
-exports._ = _class_extract_field_descriptor;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_name_tdz_error.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_name_tdz_error.cjs
deleted file mode 100644
index dfcebae7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_name_tdz_error.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _class_name_tdz_error(name) {
- throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
-exports._ = _class_name_tdz_error;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_destructure.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_destructure.cjs
deleted file mode 100644
index 21a35f73..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_destructure.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_destructure = require("./_class_apply_descriptor_destructure.cjs");
-var _class_extract_field_descriptor = require("./_class_extract_field_descriptor.cjs");
-
-function _class_private_field_destructure(receiver, privateMap) {
- var descriptor = _class_extract_field_descriptor._(receiver, privateMap, "set");
- return _class_apply_descriptor_destructure._(receiver, descriptor);
-}
-exports._ = _class_private_field_destructure;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_get.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_get.cjs
deleted file mode 100644
index 8a23b346..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_get.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_get = require("./_class_apply_descriptor_get.cjs");
-var _class_extract_field_descriptor = require("./_class_extract_field_descriptor.cjs");
-
-function _class_private_field_get(receiver, privateMap) {
- var descriptor = _class_extract_field_descriptor._(receiver, privateMap, "get");
- return _class_apply_descriptor_get._(receiver, descriptor);
-}
-exports._ = _class_private_field_get;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_init.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_init.cjs
deleted file mode 100644
index 0b208a00..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_init.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var _check_private_redeclaration = require("./_check_private_redeclaration.cjs");
-
-function _class_private_field_init(obj, privateMap, value) {
- _check_private_redeclaration._(obj, privateMap);
- privateMap.set(obj, value);
-}
-exports._ = _class_private_field_init;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs
deleted file mode 100644
index cb0ba062..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_base.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-function _class_private_field_loose_base(receiver, privateKey) {
- if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
- throw new TypeError("attempted to use private field on non-instance");
- }
-
- return receiver;
-}
-exports._ = _class_private_field_loose_base;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs
deleted file mode 100644
index 8301830c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_loose_key.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-var id = 0;
-
-function _class_private_field_loose_key(name) {
- return "__private_" + id++ + "_" + name;
-}
-exports._ = _class_private_field_loose_key;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_set.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_set.cjs
deleted file mode 100644
index 317e878b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_set.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_set = require("./_class_apply_descriptor_set.cjs");
-var _class_extract_field_descriptor = require("./_class_extract_field_descriptor.cjs");
-
-function _class_private_field_set(receiver, privateMap, value) {
- var descriptor = _class_extract_field_descriptor._(receiver, privateMap, "set");
- _class_apply_descriptor_set._(receiver, descriptor, value);
- return value;
-}
-exports._ = _class_private_field_set;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_update.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_update.cjs
deleted file mode 100644
index 2e713fa4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_field_update.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_update = require("./_class_apply_descriptor_update.cjs");
-var _class_extract_field_descriptor = require("./_class_extract_field_descriptor.cjs");
-
-function _class_private_field_update(receiver, privateMap) {
- var descriptor = _class_extract_field_descriptor._(receiver, privateMap, "update");
- return _class_apply_descriptor_update._(receiver, descriptor);
-}
-exports._ = _class_private_field_update;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_get.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_get.cjs
deleted file mode 100644
index b5ee8b4f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_get.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _class_private_method_get(receiver, privateSet, fn) {
- if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
-
- return fn;
-}
-exports._ = _class_private_method_get;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_init.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_init.cjs
deleted file mode 100644
index 1d84b51f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_init.cjs
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-var _check_private_redeclaration = require("./_check_private_redeclaration.cjs");
-
-function _class_private_method_init(obj, privateSet) {
- _check_private_redeclaration._(obj, privateSet);
- privateSet.add(obj);
-}
-exports._ = _class_private_method_init;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_set.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_set.cjs
deleted file mode 100644
index db06178e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_private_method_set.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _class_private_method_set() {
- throw new TypeError("attempted to reassign private method");
-}
-exports._ = _class_private_method_set;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_destructure.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_destructure.cjs
deleted file mode 100644
index 512a2e38..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_destructure.cjs
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_destructure = require("./_class_apply_descriptor_destructure.cjs");
-var _class_check_private_static_access = require("./_class_check_private_static_access.cjs");
-var _class_check_private_static_field_descriptor = require("./_class_check_private_static_field_descriptor.cjs");
-
-function _class_static_private_field_destructure(receiver, classConstructor, descriptor) {
- _class_check_private_static_access._(receiver, classConstructor);
- _class_check_private_static_field_descriptor._(descriptor, "set");
-
- return _class_apply_descriptor_destructure._(receiver, descriptor);
-}
-exports._ = _class_static_private_field_destructure;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_get.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_get.cjs
deleted file mode 100644
index 43a1f0d0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_get.cjs
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_get = require("./_class_apply_descriptor_get.cjs");
-var _class_check_private_static_access = require("./_class_check_private_static_access.cjs");
-var _class_check_private_static_field_descriptor = require("./_class_check_private_static_field_descriptor.cjs");
-
-function _class_static_private_field_spec_get(receiver, classConstructor, descriptor) {
- _class_check_private_static_access._(receiver, classConstructor);
- _class_check_private_static_field_descriptor._(descriptor, "get");
-
- return _class_apply_descriptor_get._(receiver, descriptor);
-}
-exports._ = _class_static_private_field_spec_get;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_set.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_set.cjs
deleted file mode 100644
index 93a69822..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_spec_set.cjs
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_set = require("./_class_apply_descriptor_set.cjs");
-var _class_check_private_static_access = require("./_class_check_private_static_access.cjs");
-var _class_check_private_static_field_descriptor = require("./_class_check_private_static_field_descriptor.cjs");
-
-function _class_static_private_field_spec_set(receiver, classConstructor, descriptor, value) {
- _class_check_private_static_access._(receiver, classConstructor);
- _class_check_private_static_field_descriptor._(descriptor, "set");
- _class_apply_descriptor_set._(receiver, descriptor, value);
-
- return value;
-}
-exports._ = _class_static_private_field_spec_set;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_update.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_update.cjs
deleted file mode 100644
index c8ae6678..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_field_update.cjs
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var _class_apply_descriptor_update = require("./_class_apply_descriptor_update.cjs");
-var _class_check_private_static_access = require("./_class_check_private_static_access.cjs");
-var _class_check_private_static_field_descriptor = require("./_class_check_private_static_field_descriptor.cjs");
-
-function _class_static_private_field_update(receiver, classConstructor, descriptor) {
- _class_check_private_static_access._(receiver, classConstructor);
- _class_check_private_static_field_descriptor._(descriptor, "update");
-
- return _class_apply_descriptor_update._(receiver, descriptor);
-}
-exports._ = _class_static_private_field_update;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_method_get.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_method_get.cjs
deleted file mode 100644
index 3c1506fa..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_class_static_private_method_get.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var _class_check_private_static_access = require("./_class_check_private_static_access.cjs");
-
-function _class_static_private_method_get(receiver, classConstructor, method) {
- _class_check_private_static_access._(receiver, classConstructor);
-
- return method;
-}
-exports._ = _class_static_private_method_get;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_construct.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_construct.cjs
deleted file mode 100644
index cfd7277d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_construct.cjs
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-var _is_native_reflect_construct = require("./_is_native_reflect_construct.cjs");
-var _set_prototype_of = require("./_set_prototype_of.cjs");
-function _construct(Parent, args, Class) {
- if (_is_native_reflect_construct._()) exports._ = _construct = Reflect.construct;
- else {
- exports._ = _construct = function construct(Parent, args, Class) {
- var a = [null];
- a.push.apply(a, args);
- var Constructor = Function.bind.apply(Parent, a);
- var instance = new Constructor();
-
- if (Class) _set_prototype_of._(instance, Class.prototype);
-
- return instance;
- };
- }
-
- return _construct.apply(null, arguments);
-}
-exports._ = _construct;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_class.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_class.cjs
deleted file mode 100644
index 1c3fe74a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_class.cjs
+++ /dev/null
@@ -1,20 +0,0 @@
-"use strict";
-
-function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
-
- if ("value" in descriptor) descriptor.writable = true;
-
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _create_class(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
-
- return Constructor;
-}
-exports._ = _create_class;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_for_of_iterator_helper_loose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_for_of_iterator_helper_loose.cjs
deleted file mode 100644
index 9a5042d3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_for_of_iterator_helper_loose.cjs
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-var _unsupported_iterable_to_array = require("./_unsupported_iterable_to_array.cjs");
-
-function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
-
- if (it) return (it = it.call(o)).next.bind(it);
- // Fallback for engines without symbol support
- if (Array.isArray(o) || (it = _unsupported_iterable_to_array._(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
-
- var i = 0;
-
- return function() {
- if (i >= o.length) return { done: true };
-
- return { done: false, value: o[i++] };
- };
- }
-
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-exports._ = _create_for_of_iterator_helper_loose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_super.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_super.cjs
deleted file mode 100644
index dc7f3cbd..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_create_super.cjs
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var _get_prototype_of = require("./_get_prototype_of.cjs");
-var _is_native_reflect_construct = require("./_is_native_reflect_construct.cjs");
-var _possible_constructor_return = require("./_possible_constructor_return.cjs");
-
-function _create_super(Derived) {
- var hasNativeReflectConstruct = _is_native_reflect_construct._();
-
- return function _createSuperInternal() {
- var Super = _get_prototype_of._(Derived), result;
-
- if (hasNativeReflectConstruct) {
- var NewTarget = _get_prototype_of._(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
-
- return _possible_constructor_return._(this, result);
- };
-}
-exports._ = _create_super;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_decorate.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_decorate.cjs
deleted file mode 100644
index 13b171da..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_decorate.cjs
+++ /dev/null
@@ -1,270 +0,0 @@
-"use strict";
-
-var _to_array = require("./_to_array.cjs");
-var _to_property_key = require("./_to_property_key.cjs");
-var _type_of = require("./_type_of.cjs");
-
-function _decorate(decorators, factory, superClass) {
- var r = factory(function initialize(O) {
- _initializeInstanceElements(O, decorated.elements);
- }, superClass);
- var decorated = _decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
- _initializeClassElements(r.F, decorated.elements);
-
- return _runClassFinishers(r.F, decorated.finishers);
-}
-
-function _createElementDescriptor(def) {
- var key = _to_property_key._(def.key);
- var descriptor;
-
- if (def.kind === "method") {
- descriptor = { value: def.value, writable: true, configurable: true, enumerable: false };
- Object.defineProperty(def.value, "name", { value: _type_of._(key) === "symbol" ? "" : key, configurable: true });
- } else if (def.kind === "get") descriptor = { get: def.value, configurable: true, enumerable: false };
- else if (def.kind === "set") descriptor = { set: def.value, configurable: true, enumerable: false };
- else if (def.kind === "field") descriptor = { configurable: true, writable: true, enumerable: true };
-
- var element = { kind: def.kind === "field" ? "field" : "method", key: key, placement: def.static ? "static" : def.kind === "field" ? "own" : "prototype", descriptor: descriptor };
-
- if (def.decorators) element.decorators = def.decorators;
-
- if (def.kind === "field") element.initializer = def.value;
-
- return element;
-}
-function _coalesceGetterSetter(element, other) {
- if (element.descriptor.get !== undefined) other.descriptor.get = element.descriptor.get;
- else other.descriptor.set = element.descriptor.set;
-}
-function _coalesceClassElements(elements) {
- var newElements = [];
- var isSameElement = function isSameElement(other) {
- return other.kind === "method" && other.key === element.key && other.placement === element.placement;
- };
-
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- var other;
-
- if (element.kind === "method" && (other = newElements.find(isSameElement))) {
- if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
- if (_hasDecorators(element) || _hasDecorators(other)) {
- throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
- }
- other.descriptor = element.descriptor;
- } else {
- if (_hasDecorators(element)) {
- if (_hasDecorators(other)) {
- throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
- }
- other.decorators = element.decorators;
- }
- _coalesceGetterSetter(element, other);
- }
- } else {
- newElements.push(element);
- }
- }
-
- return newElements;
-}
-function _hasDecorators(element) {
- return element.decorators && element.decorators.length;
-}
-function _isDataDescriptor(desc) {
- return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-function _initializeClassElements(F, elements) {
- var proto = F.prototype;
- ["method", "field"].forEach(function(kind) {
- elements.forEach(function(element) {
- var placement = element.placement;
- if (element.kind === kind && (placement === "static" || placement === "prototype")) {
- var receiver = placement === "static" ? F : proto;
- _defineClassElement(receiver, element);
- }
- });
- });
-}
-function _initializeInstanceElements(O, elements) {
- ["method", "field"].forEach(function(kind) {
- elements.forEach(function(element) {
- if (element.kind === kind && element.placement === "own") _defineClassElement(O, element);
- });
- });
-}
-function _defineClassElement(receiver, element) {
- var descriptor = element.descriptor;
- if (element.kind === "field") {
- var initializer = element.initializer;
- descriptor = { enumerable: descriptor.enumerable, writable: descriptor.writable, configurable: descriptor.configurable, value: initializer === void 0 ? void 0 : initializer.call(receiver) };
- }
- Object.defineProperty(receiver, element.key, descriptor);
-}
-function _decorateClass(elements, decorators) {
- var newElements = [];
- var finishers = [];
- var placements = { static: [], prototype: [], own: [] };
- elements.forEach(function(element) {
- _addElementPlacement(element, placements);
- });
- elements.forEach(function(element) {
- if (!_hasDecorators(element)) return newElements.push(element);
- var elementFinishersExtras = _decorateElement(element, placements);
- newElements.push(elementFinishersExtras.element);
- newElements.push.apply(newElements, elementFinishersExtras.extras);
- finishers.push.apply(finishers, elementFinishersExtras.finishers);
- });
- if (!decorators) return { elements: newElements, finishers: finishers };
- var result = _decorateConstructor(newElements, decorators);
- finishers.push.apply(finishers, result.finishers);
- result.finishers = finishers;
-
- return result;
-}
-function _addElementPlacement(element, placements, silent) {
- var keys = placements[element.placement];
- if (!silent && keys.indexOf(element.key) !== -1) throw new TypeError("Duplicated element (" + element.key + ")");
- keys.push(element.key);
-}
-function _decorateElement(element, placements) {
- var extras = [];
- var finishers = [];
- for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
- var keys = placements[element.placement];
- keys.splice(keys.indexOf(element.key), 1);
- var elementObject = _fromElementDescriptor(element);
- var elementFinisherExtras = _toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
- element = elementFinisherExtras.element;
- _addElementPlacement(element, placements);
- if (elementFinisherExtras.finisher) finishers.push(elementFinisherExtras.finisher);
- var newExtras = elementFinisherExtras.extras;
- if (newExtras) {
- for (var j = 0; j < newExtras.length; j++) _addElementPlacement(newExtras[j], placements);
- extras.push.apply(extras, newExtras);
- }
- }
-
- return { element: element, finishers: finishers, extras: extras };
-}
-function _decorateConstructor(elements, decorators) {
- var finishers = [];
- for (var i = decorators.length - 1; i >= 0; i--) {
- var obj = _fromClassDescriptor(elements);
- var elementsAndFinisher = _toClassDescriptor((0, decorators[i])(obj) || obj);
- if (elementsAndFinisher.finisher !== undefined) finishers.push(elementsAndFinisher.finisher);
- if (elementsAndFinisher.elements !== undefined) {
- elements = elementsAndFinisher.elements;
- for (var j = 0; j < elements.length - 1; j++) {
- for (var k = j + 1; k < elements.length; k++) {
- if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
- throw new TypeError("Duplicated element (" + elements[j].key + ")");
- }
- }
- }
- }
- }
-
- return { elements: elements, finishers: finishers };
-}
-function _fromElementDescriptor(element) {
- var obj = { kind: element.kind, key: element.key, placement: element.placement, descriptor: element.descriptor };
- var desc = { value: "Descriptor", configurable: true };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
- if (element.kind === "field") obj.initializer = element.initializer;
-
- return obj;
-}
-function _toElementDescriptors(elementObjects) {
- if (elementObjects === undefined) return;
-
- return _to_array._(elementObjects).map(function(elementObject) {
- var element = _toElementDescriptor(elementObject);
- _disallowProperty(elementObject, "finisher", "An element descriptor");
- _disallowProperty(elementObject, "extras", "An element descriptor");
-
- return element;
- });
-}
-function _toElementDescriptor(elementObject) {
- var kind = String(elementObject.kind);
- if (kind !== "method" && kind !== "field") {
- throw new TypeError("An element descriptor's .kind property must be either \"method\" or" + " \"field\", but a decorator created an element descriptor with" + " .kind \"" + kind + "\"");
- }
- var key = _to_property_key._(elementObject.key);
- var placement = String(elementObject.placement);
- if (placement !== "static" && placement !== "prototype" && placement !== "own") {
- throw new TypeError(
- "An element descriptor's .placement property must be one of \"static\","
- + " \"prototype\" or \"own\", but a decorator created an element descriptor"
- + " with .placement \""
- + placement
- + "\""
- );
- }
- var descriptor = elementObject.descriptor;
- _disallowProperty(elementObject, "elements", "An element descriptor");
- var element = { kind: kind, key: key, placement: placement, descriptor: Object.assign({}, descriptor) };
- if (kind !== "field") _disallowProperty(elementObject, "initializer", "A method descriptor");
- else {
- _disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
- _disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
- _disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
- element.initializer = elementObject.initializer;
- }
-
- return element;
-}
-function _toElementFinisherExtras(elementObject) {
- var element = _toElementDescriptor(elementObject);
- var finisher = _optionalCallableProperty(elementObject, "finisher");
- var extras = _toElementDescriptors(elementObject.extras);
-
- return { element: element, finisher: finisher, extras: extras };
-}
-function _fromClassDescriptor(elements) {
- var obj = { kind: "class", elements: elements.map(_fromElementDescriptor) };
- var desc = { value: "Descriptor", configurable: true };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
-
- return obj;
-}
-function _toClassDescriptor(obj) {
- var kind = String(obj.kind);
- if (kind !== "class") {
- throw new TypeError("A class descriptor's .kind property must be \"class\", but a decorator" + " created a class descriptor with .kind \"" + kind + "\"");
- }
- _disallowProperty(obj, "key", "A class descriptor");
- _disallowProperty(obj, "placement", "A class descriptor");
- _disallowProperty(obj, "descriptor", "A class descriptor");
- _disallowProperty(obj, "initializer", "A class descriptor");
- _disallowProperty(obj, "extras", "A class descriptor");
- var finisher = _optionalCallableProperty(obj, "finisher");
- var elements = _toElementDescriptors(obj.elements);
-
- return { elements: elements, finisher: finisher };
-}
-function _disallowProperty(obj, name, objectType) {
- if (obj[name] !== undefined) throw new TypeError(objectType + " can't have a ." + name + " property.");
-}
-function _optionalCallableProperty(obj, name) {
- var value = obj[name];
- if (value !== undefined && typeof value !== "function") {
- throw new TypeError("Expected '" + name + "' to be a function");
- }
-
- return value;
-}
-function _runClassFinishers(constructor, finishers) {
- for (var i = 0; i < finishers.length; i++) {
- var newConstructor = (0, finishers[i])(constructor);
- if (newConstructor !== undefined) {
- if (typeof newConstructor !== "function") throw new TypeError("Finishers must return a constructor.");
- constructor = newConstructor;
- }
- }
-
- return constructor;
-}
-exports._ = _decorate;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_defaults.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_defaults.cjs
deleted file mode 100644
index eb832e9b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_defaults.cjs
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-function _defaults(obj, defaults) {
- var keys = Object.getOwnPropertyNames(defaults);
-
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = Object.getOwnPropertyDescriptor(defaults, key);
-
- if (value && value.configurable && obj[key] === undefined) Object.defineProperty(obj, key, value);
- }
-
- return obj;
-}
-exports._ = _defaults;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_define_enumerable_properties.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_define_enumerable_properties.cjs
deleted file mode 100644
index 6c4c3343..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_define_enumerable_properties.cjs
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-
-function _define_enumerable_properties(obj, descs) {
- for (var key in descs) {
- var desc = descs[key];
- desc.configurable = desc.enumerable = true;
-
- if ("value" in desc) desc.writable = true;
-
- Object.defineProperty(obj, key, desc);
- }
-
- if (Object.getOwnPropertySymbols) {
- var objectSymbols = Object.getOwnPropertySymbols(descs);
- for (var i = 0; i < objectSymbols.length; i++) {
- var sym = objectSymbols[i];
- var desc = descs[sym];
- desc.configurable = desc.enumerable = true;
- if ("value" in desc) desc.writable = true;
- Object.defineProperty(obj, sym, desc);
- }
- }
-
- return obj;
-}
-exports._ = _define_enumerable_properties;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_define_property.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_define_property.cjs
deleted file mode 100644
index 9063d6e9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_define_property.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-function _define_property(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
- } else obj[key] = value;
-
- return obj;
-}
-exports._ = _define_property;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_dispose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_dispose.cjs
deleted file mode 100644
index 5fc3481c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_dispose.cjs
+++ /dev/null
@@ -1,43 +0,0 @@
-"use strict";
-
-/* @minVersion 7.22.0 */
-function dispose_SuppressedError(suppressed, error) {
- if (typeof SuppressedError !== "undefined") {
- // eslint-disable-next-line no-undef
- dispose_SuppressedError = SuppressedError;
- } else {
- dispose_SuppressedError = function SuppressedError(suppressed, error) {
- this.suppressed = suppressed;
- this.error = error;
- this.stack = new Error().stack;
- };
- dispose_SuppressedError.prototype = Object.create(Error.prototype, { constructor: { value: dispose_SuppressedError, writable: true, configurable: true } });
- }
- return new dispose_SuppressedError(suppressed, error);
-}
-
-function _dispose(stack, error, hasError) {
- function next() {
- while (stack.length > 0) {
- try {
- var r = stack.pop();
- var p = r.d.call(r.v);
- if (r.a) return Promise.resolve(p).then(next, err);
- } catch (e) {
- return err(e);
- }
- }
- if (hasError) throw error;
- }
-
- function err(e) {
- error = hasError ? new dispose_SuppressedError(e, error) : e;
- hasError = true;
-
- return next();
- }
-
- return next();
-}
-
-exports._ = _dispose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_export_star.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_export_star.cjs
deleted file mode 100644
index 51af20b9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_export_star.cjs
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-function _export_star(from, to) {
- Object.keys(from).forEach(function(k) {
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
- Object.defineProperty(to, k, {
- enumerable: true,
- get: function() {
- return from[k];
- }
- });
- }
- });
-
- return from;
-}
-exports._ = _export_star;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_extends.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_extends.cjs
deleted file mode 100644
index 2bb15929..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_extends.cjs
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-function _extends() {
- exports._ = _extends = Object.assign || function assign(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
- }
-
- return target;
- };
-
- return _extends.apply(this, arguments);
-}
-exports._ = _extends;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_get.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_get.cjs
deleted file mode 100644
index 1c5bfcd0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_get.cjs
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var _super_prop_base = require("./_super_prop_base.cjs");
-
-function _get(target, property, receiver) {
- if (typeof Reflect !== "undefined" && Reflect.get) exports._ = _get = Reflect.get;
- else {
- exports._ = _get = function get(target, property, receiver) {
- var base = _super_prop_base._(target, property);
-
- if (!base) return;
-
- var desc = Object.getOwnPropertyDescriptor(base, property);
-
- if (desc.get) return desc.get.call(receiver || target);
-
- return desc.value;
- };
- }
-
- return _get(target, property, receiver || target);
-}
-exports._ = _get;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_get_prototype_of.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_get_prototype_of.cjs
deleted file mode 100644
index 6ef956a1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_get_prototype_of.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-function _get_prototype_of(o) {
- exports._ = _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
- return o.__proto__ || Object.getPrototypeOf(o);
- };
-
- return _get_prototype_of(o);
-}
-exports._ = _get_prototype_of;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_identity.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_identity.cjs
deleted file mode 100644
index aab1b0da..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_identity.cjs
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-function _identity(x) {
- return x;
-}
-
-exports._ = _identity;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_inherits.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_inherits.cjs
deleted file mode 100644
index c803df5f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_inherits.cjs
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-var _set_prototype_of = require("./_set_prototype_of.cjs");
-
-function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
-
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
-
- if (superClass) _set_prototype_of._(subClass, superClass);
-}
-exports._ = _inherits;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_inherits_loose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_inherits_loose.cjs
deleted file mode 100644
index 30f35415..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_inherits_loose.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _inherits_loose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- subClass.__proto__ = superClass;
-}
-exports._ = _inherits_loose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_initializer_define_property.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_initializer_define_property.cjs
deleted file mode 100644
index ac28e5d8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_initializer_define_property.cjs
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-function _initializer_define_property(target, property, descriptor, context) {
- if (!descriptor) return;
-
- Object.defineProperty(target, property, {
- enumerable: descriptor.enumerable,
- configurable: descriptor.configurable,
- writable: descriptor.writable,
- value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
- });
-}
-exports._ = _initializer_define_property;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_initializer_warning_helper.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_initializer_warning_helper.cjs
deleted file mode 100644
index 2c333dbb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_initializer_warning_helper.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-function _initializer_warning_helper(descriptor, context) {
- throw new Error(
- "Decorating class property failed. Please ensure that "
- + "proposal-class-properties is enabled and set to use loose mode. "
- + "To use proposal-class-properties in spec mode with decorators, wait for "
- + "the next major version of decorators in stage 2."
- );
-}
-exports._ = _initializer_warning_helper;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_instanceof.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_instanceof.cjs
deleted file mode 100644
index 8234b95a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_instanceof.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _instanceof(left, right) {
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
- return !!right[Symbol.hasInstance](left);
- } else return left instanceof right;
-}
-exports._ = _instanceof;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs
deleted file mode 100644
index c9e5240c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
-}
-exports._ = _interop_require_default;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs
deleted file mode 100644
index 9c2abcde..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-
-function _getRequireWildcardCache(nodeInterop) {
- if (typeof WeakMap !== "function") return null;
-
- var cacheBabelInterop = new WeakMap();
- var cacheNodeInterop = new WeakMap();
-
- return (_getRequireWildcardCache = function(nodeInterop) {
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
- })(nodeInterop);
-}
-function _interop_require_wildcard(obj, nodeInterop) {
- if (!nodeInterop && obj && obj.__esModule) return obj;
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj };
-
- var cache = _getRequireWildcardCache(nodeInterop);
-
- if (cache && cache.has(obj)) return cache.get(obj);
-
- var newObj = { __proto__: null };
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
-
- for (var key in obj) {
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
- if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
- else newObj[key] = obj[key];
- }
- }
-
- newObj.default = obj;
-
- if (cache) cache.set(obj, newObj);
-
- return newObj;
-}
-exports._ = _interop_require_wildcard;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_is_native_function.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_is_native_function.cjs
deleted file mode 100644
index 92037116..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_is_native_function.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _is_native_function(fn) {
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
-}
-exports._ = _is_native_function;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_is_native_reflect_construct.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_is_native_reflect_construct.cjs
deleted file mode 100644
index 42ea82f5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_is_native_reflect_construct.cjs
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-function _is_native_reflect_construct() {
- // Since Reflect.construct can't be properly polyfilled, some
- // implementations (e.g. core-js@2) don't set the correct internal slots.
- // Those polyfills don't allow us to subclass built-ins, so we need to
- // use our fallback implementation.
- try {
- // If the internal slots aren't set, this throws an error similar to
- // TypeError: this is not a Boolean object.
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
- } catch (_) {}
- return (exports._ = _is_native_reflect_construct = function() {
- return !!result;
- })();
-}
-
-exports._ = _is_native_reflect_construct;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array.cjs
deleted file mode 100644
index cc73cf5f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _iterable_to_array(iter) {
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
- return Array.from(iter);
- }
-}
-exports._ = _iterable_to_array;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array_limit.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array_limit.cjs
deleted file mode 100644
index 634876bc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array_limit.cjs
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-
-function _iterable_to_array_limit(arr, i) {
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
-
- if (_i == null) return;
-
- var _arr = [];
- var _n = true;
- var _d = false;
- var _s, _e;
-
- try {
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"] != null) _i["return"]();
- } finally {
- if (_d) throw _e;
- }
- }
-
- return _arr;
-}
-exports._ = _iterable_to_array_limit;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array_limit_loose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array_limit_loose.cjs
deleted file mode 100644
index 78ddf90b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_iterable_to_array_limit_loose.cjs
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-
-function _iterable_to_array_limit_loose(arr, i) {
- var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
-
- if (_i == null) return;
-
- var _arr = [];
-
- for (_i = _i.call(arr), _step; !(_step = _i.next()).done;) {
- _arr.push(_step.value);
- if (i && _arr.length === i) break;
- }
-
- return _arr;
-}
-exports._ = _iterable_to_array_limit_loose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_jsx.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_jsx.cjs
deleted file mode 100644
index bf1a20b0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_jsx.cjs
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var REACT_ELEMENT_TYPE;
-function _jsx(type, props, key, children) {
- if (!REACT_ELEMENT_TYPE) {
- REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7;
- }
-
- var defaultProps = type && type.defaultProps;
- var childrenLength = arguments.length - 3;
-
- if (!props && childrenLength !== 0) props = { children: void 0 };
- if (props && defaultProps) {
- for (var propName in defaultProps) {
- if (props[propName] === void 0) props[propName] = defaultProps[propName];
- else if (!props) props = defaultProps || {};
- }
- }
- if (childrenLength === 1) props.children = children;
- else if (childrenLength > 1) {
- var childArray = new Array(childrenLength);
- for (var i = 0; i < childrenLength; i++) childArray[i] = arguments[i + 3];
- props.children = childArray;
- }
-
- return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : "" + key, ref: null, props: props, _owner: null };
-}
-exports._ = _jsx;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_new_arrow_check.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_new_arrow_check.cjs
deleted file mode 100644
index 2df59f9c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_new_arrow_check.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _new_arrow_check(innerThis, boundThis) {
- if (innerThis !== boundThis) throw new TypeError("Cannot instantiate an arrow function");
-}
-exports._ = _new_arrow_check;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_non_iterable_rest.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_non_iterable_rest.cjs
deleted file mode 100644
index 3baab4b6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_non_iterable_rest.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _non_iterable_rest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-exports._ = _non_iterable_rest;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs
deleted file mode 100644
index c213de55..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_non_iterable_spread.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _non_iterable_spread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-exports._ = _non_iterable_spread;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_destructuring_empty.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_destructuring_empty.cjs
deleted file mode 100644
index c84fb668..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_destructuring_empty.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _object_destructuring_empty(o) {
- if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
-
- return o;
-}
-exports._ = _object_destructuring_empty;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_spread.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_spread.cjs
deleted file mode 100644
index 45cec710..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_spread.cjs
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-var _define_property = require("./_define_property.cjs");
-
-function _object_spread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {};
- var ownKeys = Object.keys(source);
-
- if (typeof Object.getOwnPropertySymbols === "function") {
- ownKeys = ownKeys.concat(
- Object.getOwnPropertySymbols(source).filter(function(sym) {
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
- })
- );
- }
-
- ownKeys.forEach(function(key) {
- _define_property._(target, key, source[key]);
- });
- }
-
- return target;
-}
-exports._ = _object_spread;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_spread_props.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_spread_props.cjs
deleted file mode 100644
index 1c27f1c3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_spread_props.cjs
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-
-function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
-
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- if (enumerableOnly) {
- symbols = symbols.filter(function(sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- });
- }
- keys.push.apply(keys, symbols);
- }
-
- return keys;
-}
-function _object_spread_props(target, source) {
- source = source != null ? source : {};
-
- if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
- else {
- ownKeys(Object(source)).forEach(function(key) {
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
- });
- }
-
- return target;
-}
-exports._ = _object_spread_props;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_without_properties.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_without_properties.cjs
deleted file mode 100644
index 2cd10858..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_without_properties.cjs
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-
-var _object_without_properties_loose = require("./_object_without_properties_loose.cjs");
-
-function _object_without_properties(source, excluded) {
- if (source == null) return {};
-
- var target = _object_without_properties_loose._(source, excluded);
- var key, i;
-
- if (Object.getOwnPropertySymbols) {
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
- for (i = 0; i < sourceSymbolKeys.length; i++) {
- key = sourceSymbolKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
- target[key] = source[key];
- }
- }
-
- return target;
-}
-exports._ = _object_without_properties;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_without_properties_loose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_without_properties_loose.cjs
deleted file mode 100644
index dc90d623..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_object_without_properties_loose.cjs
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-function _object_without_properties_loose(source, excluded) {
- if (source == null) return {};
-
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
-
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
-
- return target;
-}
-exports._ = _object_without_properties_loose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_possible_constructor_return.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_possible_constructor_return.cjs
deleted file mode 100644
index fa040185..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_possible_constructor_return.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _assert_this_initialized = require("./_assert_this_initialized.cjs");
-var _type_of = require("./_type_of.cjs");
-
-function _possible_constructor_return(self, call) {
- if (call && (_type_of._(call) === "object" || typeof call === "function")) return call;
-
- return _assert_this_initialized._(self);
-}
-exports._ = _possible_constructor_return;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_read_only_error.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_read_only_error.cjs
deleted file mode 100644
index 302cf5c7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_read_only_error.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _read_only_error(name) {
- throw new TypeError("\"" + name + "\" is read-only");
-}
-exports._ = _read_only_error;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_set.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_set.cjs
deleted file mode 100644
index adbf4848..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_set.cjs
+++ /dev/null
@@ -1,44 +0,0 @@
-"use strict";
-
-var _define_property = require("./_define_property.cjs");
-var _super_prop_base = require("./_super_prop_base.cjs");
-
-function set(target, property, value, receiver) {
- if (typeof Reflect !== "undefined" && Reflect.set) set = Reflect.set;
- else {
- set = function set(target, property, value, receiver) {
- var base = _super_prop_base._(target, property);
- var desc;
- if (base) {
- desc = Object.getOwnPropertyDescriptor(base, property);
- if (desc.set) {
- desc.set.call(receiver, value);
-
- return true;
- } else if (!desc.writable) {
- return false;
- }
- }
- desc = Object.getOwnPropertyDescriptor(receiver, property);
- if (desc) {
- if (!desc.writable) return false;
- desc.value = value;
- Object.defineProperty(receiver, property, desc);
- } else {
- _define_property._(receiver, property, value);
- }
-
- return true;
- };
- }
-
- return set(target, property, value, receiver);
-}
-
-function _set(target, property, value, receiver, isStrict) {
- var s = set(target, property, value, receiver || target);
- if (!s && isStrict) throw new Error("failed to set property");
-
- return value;
-}
-exports._ = _set;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_set_prototype_of.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_set_prototype_of.cjs
deleted file mode 100644
index acf501db..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_set_prototype_of.cjs
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-
-function _set_prototype_of(o, p) {
- exports._ = _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
- o.__proto__ = p;
-
- return o;
- };
-
- return _set_prototype_of(o, p);
-}
-exports._ = _set_prototype_of;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_skip_first_generator_next.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_skip_first_generator_next.cjs
deleted file mode 100644
index e4c42543..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_skip_first_generator_next.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-function _skip_first_generator_next(fn) {
- return function() {
- var it = fn.apply(this, arguments);
- it.next();
-
- return it;
- };
-}
-exports._ = _skip_first_generator_next;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_sliced_to_array.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_sliced_to_array.cjs
deleted file mode 100644
index e9fe47e8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_sliced_to_array.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _array_with_holes = require("./_array_with_holes.cjs");
-var _iterable_to_array_limit = require("./_iterable_to_array_limit.cjs");
-var _non_iterable_rest = require("./_non_iterable_rest.cjs");
-var _unsupported_iterable_to_array = require("./_unsupported_iterable_to_array.cjs");
-
-function _sliced_to_array(arr, i) {
- return _array_with_holes._(arr) || _iterable_to_array_limit._(arr, i) || _unsupported_iterable_to_array._(arr, i) || _non_iterable_rest._();
-}
-exports._ = _sliced_to_array;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_sliced_to_array_loose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_sliced_to_array_loose.cjs
deleted file mode 100644
index 562dcaf9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_sliced_to_array_loose.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _array_with_holes = require("./_array_with_holes.cjs");
-var _iterable_to_array_limit_loose = require("./_iterable_to_array_limit_loose.cjs");
-var _non_iterable_rest = require("./_non_iterable_rest.cjs");
-var _unsupported_iterable_to_array = require("./_unsupported_iterable_to_array.cjs");
-
-function _sliced_to_array_loose(arr, i) {
- return _array_with_holes._(arr) || _iterable_to_array_limit_loose._(arr, i) || _unsupported_iterable_to_array._(arr, i) || _non_iterable_rest._();
-}
-exports._ = _sliced_to_array_loose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_super_prop_base.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_super_prop_base.cjs
deleted file mode 100644
index eaf3199a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_super_prop_base.cjs
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-var _get_prototype_of = require("./_get_prototype_of.cjs");
-
-function _super_prop_base(object, property) {
- while (!Object.prototype.hasOwnProperty.call(object, property)) {
- object = _get_prototype_of._(object);
- if (object === null) break;
- }
-
- return object;
-}
-exports._ = _super_prop_base;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_tagged_template_literal.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_tagged_template_literal.cjs
deleted file mode 100644
index 89a579de..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_tagged_template_literal.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _tagged_template_literal(strings, raw) {
- if (!raw) raw = strings.slice(0);
-
- return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } }));
-}
-exports._ = _tagged_template_literal;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_tagged_template_literal_loose.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_tagged_template_literal_loose.cjs
deleted file mode 100644
index 48db14d4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_tagged_template_literal_loose.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-function _tagged_template_literal_loose(strings, raw) {
- if (!raw) raw = strings.slice(0);
-
- strings.raw = raw;
-
- return strings;
-}
-exports._ = _tagged_template_literal_loose;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_throw.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_throw.cjs
deleted file mode 100644
index 26f2e2ba..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_throw.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _throw(e) {
- throw e;
-}
-exports._ = _throw;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_array.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_array.cjs
deleted file mode 100644
index 0887dd40..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_array.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _array_with_holes = require("./_array_with_holes.cjs");
-var _iterable_to_array = require("./_iterable_to_array.cjs");
-var _non_iterable_rest = require("./_non_iterable_rest.cjs");
-var _unsupported_iterable_to_array = require("./_unsupported_iterable_to_array.cjs");
-
-function _to_array(arr) {
- return _array_with_holes._(arr) || _iterable_to_array._(arr) || _unsupported_iterable_to_array._(arr) || _non_iterable_rest._();
-}
-exports._ = _to_array;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_consumable_array.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_consumable_array.cjs
deleted file mode 100644
index 85d19126..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_consumable_array.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _array_without_holes = require("./_array_without_holes.cjs");
-var _iterable_to_array = require("./_iterable_to_array.cjs");
-var _non_iterable_spread = require("./_non_iterable_spread.cjs");
-var _unsupported_iterable_to_array = require("./_unsupported_iterable_to_array.cjs");
-
-function _to_consumable_array(arr) {
- return _array_without_holes._(arr) || _iterable_to_array._(arr) || _unsupported_iterable_to_array._(arr) || _non_iterable_spread._();
-}
-exports._ = _to_consumable_array;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_primitive.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_primitive.cjs
deleted file mode 100644
index da357948..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_primitive.cjs
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-
-var _type_of = require("./_type_of.cjs");
-
-function _to_primitive(input, hint) {
- if (_type_of._(input) !== "object" || input === null) return input;
-
- var prim = input[Symbol.toPrimitive];
-
- if (prim !== undefined) {
- var res = prim.call(input, hint || "default");
- if (_type_of._(res) !== "object") return res;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
-
- return (hint === "string" ? String : Number)(input);
-}
-exports._ = _to_primitive;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_property_key.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_property_key.cjs
deleted file mode 100644
index 86075ac1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_to_property_key.cjs
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-
-var _to_primitive = require("./_to_primitive.cjs");
-var _type_of = require("./_type_of.cjs");
-
-function _to_property_key(arg) {
- var key = _to_primitive._(arg, "string");
-
- return _type_of._(key) === "symbol" ? key : String(key);
-}
-exports._ = _to_property_key;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_add_disposable_resource.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_add_disposable_resource.cjs
deleted file mode 100644
index 24848ca7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_add_disposable_resource.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__addDisposableResource;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_decorate.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_decorate.cjs
deleted file mode 100644
index 9abfbda5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_decorate.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__decorate;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_dispose_resources.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_dispose_resources.cjs
deleted file mode 100644
index 4ad32f10..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_dispose_resources.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__disposeResources;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_generator.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_generator.cjs
deleted file mode 100644
index 6ea3e34d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_generator.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__generator;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_metadata.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_metadata.cjs
deleted file mode 100644
index d39e6e41..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_metadata.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__metadata;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_param.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_param.cjs
deleted file mode 100644
index 6e2dca6e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_param.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__param;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_values.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_values.cjs
deleted file mode 100644
index 0696a1f4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_ts_values.cjs
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-
-exports._ = require("tslib").__values;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_type_of.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_type_of.cjs
deleted file mode 100644
index 2749e8e7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_type_of.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-function _type_of(obj) {
- "@swc/helpers - typeof";
-
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
-}
-exports._ = _type_of;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs
deleted file mode 100644
index a1765e15..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_unsupported_iterable_to_array.cjs
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-var _array_like_to_array = require("./_array_like_to_array.cjs");
-
-function _unsupported_iterable_to_array(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return _array_like_to_array._(o, minLen);
-
- var n = Object.prototype.toString.call(o).slice(8, -1);
-
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(n);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array._(o, minLen);
-}
-exports._ = _unsupported_iterable_to_array;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_update.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_update.cjs
deleted file mode 100644
index abb90f34..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_update.cjs
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-
-var _get = require("./_get.cjs");
-var _set = require("./_set.cjs");
-
-function _update(target, property, receiver, isStrict) {
- return {
- get _() {
- return _get._(target, property, receiver);
- },
- set _(value) {
- _set._(target, property, value, receiver, isStrict);
- }
- };
-}
-exports._ = _update;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_using.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_using.cjs
deleted file mode 100644
index 903837e7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_using.cjs
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-
-/* @minVersion 7.22.0 */
-
-function _using(stack, value, isAwait) {
- if (value === null || value === void 0) return value;
- if (Object(value) !== value) {
- throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
- }
- // core-js-pure uses Symbol.for for polyfilling well-known symbols
- if (isAwait) {
- var dispose = value[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")];
- }
- if (dispose === null || dispose === void 0) {
- dispose = value[Symbol.dispose || Symbol.for("Symbol.dispose")];
- }
- if (typeof dispose !== "function") {
- throw new TypeError(`Property [Symbol.dispose] is not a function.`);
- }
- stack.push({ v: value, d: dispose, a: isAwait });
- return value;
-}
-
-exports._ = _using;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_using_ctx.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_using_ctx.cjs
deleted file mode 100644
index 921b6efc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_using_ctx.cjs
+++ /dev/null
@@ -1,75 +0,0 @@
-"use strict";
-
-function _using_ctx() {
- var _disposeSuppressedError = typeof SuppressedError === "function"
- // eslint-disable-next-line no-undef
- ? SuppressedError
- : (function(error, suppressed) {
- var err = new Error();
- err.name = "SuppressedError";
- err.suppressed = suppressed;
- err.error = error;
- return err;
- }),
- empty = {},
- stack = [];
- function using(isAwait, value) {
- if (value != null) {
- if (Object(value) !== value) {
- throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
- }
- // core-js-pure uses Symbol.for for polyfilling well-known symbols
- if (isAwait) {
- var dispose = value[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")];
- }
- if (dispose == null) {
- dispose = value[Symbol.dispose || Symbol.for("Symbol.dispose")];
- }
- if (typeof dispose !== "function") {
- throw new TypeError(`Property [Symbol.dispose] is not a function.`);
- }
- stack.push({ v: value, d: dispose, a: isAwait });
- } else if (isAwait) {
- // provide the nullish `value` as `d` for minification gain
- stack.push({ d: value, a: isAwait });
- }
- return value;
- }
- return {
- // error
- e: empty,
- // using
- u: using.bind(null, false),
- // await using
- a: using.bind(null, true),
- // dispose
- d: function() {
- var error = this.e;
-
- function next() {
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
- while ((resource = stack.pop())) {
- try {
- var resource, disposalResult = resource.d && resource.d.call(resource.v);
- if (resource.a) {
- return Promise.resolve(disposalResult).then(next, err);
- }
- } catch (e) {
- return err(e);
- }
- }
- if (error !== empty) throw error;
- }
-
- function err(e) {
- error = error !== empty ? new _disposeSuppressedError(error, e) : e;
-
- return next();
- }
-
- return next();
- }
- };
-}
-
-exports._ = _using_ctx;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_wrap_async_generator.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_wrap_async_generator.cjs
deleted file mode 100644
index 09adf255..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_wrap_async_generator.cjs
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-
-var _async_generator = require("./_async_generator.cjs");
-
-function _wrap_async_generator(fn) {
- return function() {
- return new _async_generator._(fn.apply(this, arguments));
- };
-}
-exports._ = _wrap_async_generator;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_wrap_native_super.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_wrap_native_super.cjs
deleted file mode 100644
index 6babaefd..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_wrap_native_super.cjs
+++ /dev/null
@@ -1,28 +0,0 @@
-"use strict";
-
-var _construct = require("./_construct.cjs");
-var _get_prototype_of = require("./_get_prototype_of.cjs");
-var _is_native_function = require("./_is_native_function.cjs");
-var _set_prototype_of = require("./_set_prototype_of.cjs");
-
-function _wrap_native_super(Class) {
- var _cache = typeof Map === "function" ? new Map() : undefined;
- exports._ = _wrap_native_super = function(Class) {
- if (Class === null || !_is_native_function._(Class)) return Class;
- if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function");
- if (typeof _cache !== "undefined") {
- if (_cache.has(Class)) return _cache.get(Class);
- _cache.set(Class, Wrapper);
- }
-
- function Wrapper() {
- return _construct._(Class, arguments, _get_prototype_of._(this).constructor);
- }
- Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });
-
- return _set_prototype_of._(Wrapper, Class);
- };
-
- return _wrap_native_super(Class);
-}
-exports._ = _wrap_native_super;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_write_only_error.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_write_only_error.cjs
deleted file mode 100644
index 799fc3a5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_write_only_error.cjs
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-
-function _write_only_error(name) {
- throw new TypeError("\"" + name + "\" is write-only");
-}
-exports._ = _write_only_error;
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/index.cjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/index.cjs
deleted file mode 100644
index a0b5f662..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/index.cjs
+++ /dev/null
@@ -1,423 +0,0 @@
-"use strict";
-
-/* This file is automatically generated and should not be manually edited. */
-/* To modify this file, please run the `npm run build` command instead. */
-
-0 && (module.exports = {
- /* @Annotate_start: the CommonJS named exports for ESM import in node */
- _apply_decorated_descriptor: null,
- _apply_decs_2203_r: null,
- _array_like_to_array: null,
- _array_with_holes: null,
- _array_without_holes: null,
- _assert_this_initialized: null,
- _async_generator: null,
- _async_generator_delegate: null,
- _async_iterator: null,
- _async_to_generator: null,
- _await_async_generator: null,
- _await_value: null,
- _call_super: null,
- _check_private_redeclaration: null,
- _class_apply_descriptor_destructure: null,
- _class_apply_descriptor_get: null,
- _class_apply_descriptor_set: null,
- _class_apply_descriptor_update: null,
- _class_call_check: null,
- _class_check_private_static_access: null,
- _class_check_private_static_field_descriptor: null,
- _class_extract_field_descriptor: null,
- _class_name_tdz_error: null,
- _class_private_field_destructure: null,
- _class_private_field_get: null,
- _class_private_field_init: null,
- _class_private_field_loose_base: null,
- _class_private_field_loose_key: null,
- _class_private_field_set: null,
- _class_private_field_update: null,
- _class_private_method_get: null,
- _class_private_method_init: null,
- _class_private_method_set: null,
- _class_static_private_field_destructure: null,
- _class_static_private_field_spec_get: null,
- _class_static_private_field_spec_set: null,
- _class_static_private_field_update: null,
- _class_static_private_method_get: null,
- _construct: null,
- _create_class: null,
- _create_for_of_iterator_helper_loose: null,
- _create_super: null,
- _decorate: null,
- _defaults: null,
- _define_enumerable_properties: null,
- _define_property: null,
- _dispose: null,
- _export_star: null,
- _extends: null,
- _get: null,
- _get_prototype_of: null,
- _identity: null,
- _inherits: null,
- _inherits_loose: null,
- _initializer_define_property: null,
- _initializer_warning_helper: null,
- _instanceof: null,
- _interop_require_default: null,
- _interop_require_wildcard: null,
- _is_native_function: null,
- _is_native_reflect_construct: null,
- _iterable_to_array: null,
- _iterable_to_array_limit: null,
- _iterable_to_array_limit_loose: null,
- _jsx: null,
- _new_arrow_check: null,
- _non_iterable_rest: null,
- _non_iterable_spread: null,
- _object_destructuring_empty: null,
- _object_spread: null,
- _object_spread_props: null,
- _object_without_properties: null,
- _object_without_properties_loose: null,
- _possible_constructor_return: null,
- _read_only_error: null,
- _set: null,
- _set_prototype_of: null,
- _skip_first_generator_next: null,
- _sliced_to_array: null,
- _sliced_to_array_loose: null,
- _super_prop_base: null,
- _tagged_template_literal: null,
- _tagged_template_literal_loose: null,
- _throw: null,
- _to_array: null,
- _to_consumable_array: null,
- _to_primitive: null,
- _to_property_key: null,
- _ts_add_disposable_resource: null,
- _ts_decorate: null,
- _ts_dispose_resources: null,
- _ts_generator: null,
- _ts_metadata: null,
- _ts_param: null,
- _ts_values: null,
- _type_of: null,
- _unsupported_iterable_to_array: null,
- _update: null,
- _using: null,
- _using_ctx: null,
- _wrap_async_generator: null,
- _wrap_native_super: null,
- _write_only_error: null
- /* @Annotate_end */
-});
-module.exports = {
- get _apply_decorated_descriptor() {
- return require("./_apply_decorated_descriptor.cjs")._;
- },
- get _apply_decs_2203_r() {
- return require("./_apply_decs_2203_r.cjs")._;
- },
- get _array_like_to_array() {
- return require("./_array_like_to_array.cjs")._;
- },
- get _array_with_holes() {
- return require("./_array_with_holes.cjs")._;
- },
- get _array_without_holes() {
- return require("./_array_without_holes.cjs")._;
- },
- get _assert_this_initialized() {
- return require("./_assert_this_initialized.cjs")._;
- },
- get _async_generator() {
- return require("./_async_generator.cjs")._;
- },
- get _async_generator_delegate() {
- return require("./_async_generator_delegate.cjs")._;
- },
- get _async_iterator() {
- return require("./_async_iterator.cjs")._;
- },
- get _async_to_generator() {
- return require("./_async_to_generator.cjs")._;
- },
- get _await_async_generator() {
- return require("./_await_async_generator.cjs")._;
- },
- get _await_value() {
- return require("./_await_value.cjs")._;
- },
- get _call_super() {
- return require("./_call_super.cjs")._;
- },
- get _check_private_redeclaration() {
- return require("./_check_private_redeclaration.cjs")._;
- },
- get _class_apply_descriptor_destructure() {
- return require("./_class_apply_descriptor_destructure.cjs")._;
- },
- get _class_apply_descriptor_get() {
- return require("./_class_apply_descriptor_get.cjs")._;
- },
- get _class_apply_descriptor_set() {
- return require("./_class_apply_descriptor_set.cjs")._;
- },
- get _class_apply_descriptor_update() {
- return require("./_class_apply_descriptor_update.cjs")._;
- },
- get _class_call_check() {
- return require("./_class_call_check.cjs")._;
- },
- get _class_check_private_static_access() {
- return require("./_class_check_private_static_access.cjs")._;
- },
- get _class_check_private_static_field_descriptor() {
- return require("./_class_check_private_static_field_descriptor.cjs")._;
- },
- get _class_extract_field_descriptor() {
- return require("./_class_extract_field_descriptor.cjs")._;
- },
- get _class_name_tdz_error() {
- return require("./_class_name_tdz_error.cjs")._;
- },
- get _class_private_field_destructure() {
- return require("./_class_private_field_destructure.cjs")._;
- },
- get _class_private_field_get() {
- return require("./_class_private_field_get.cjs")._;
- },
- get _class_private_field_init() {
- return require("./_class_private_field_init.cjs")._;
- },
- get _class_private_field_loose_base() {
- return require("./_class_private_field_loose_base.cjs")._;
- },
- get _class_private_field_loose_key() {
- return require("./_class_private_field_loose_key.cjs")._;
- },
- get _class_private_field_set() {
- return require("./_class_private_field_set.cjs")._;
- },
- get _class_private_field_update() {
- return require("./_class_private_field_update.cjs")._;
- },
- get _class_private_method_get() {
- return require("./_class_private_method_get.cjs")._;
- },
- get _class_private_method_init() {
- return require("./_class_private_method_init.cjs")._;
- },
- get _class_private_method_set() {
- return require("./_class_private_method_set.cjs")._;
- },
- get _class_static_private_field_destructure() {
- return require("./_class_static_private_field_destructure.cjs")._;
- },
- get _class_static_private_field_spec_get() {
- return require("./_class_static_private_field_spec_get.cjs")._;
- },
- get _class_static_private_field_spec_set() {
- return require("./_class_static_private_field_spec_set.cjs")._;
- },
- get _class_static_private_field_update() {
- return require("./_class_static_private_field_update.cjs")._;
- },
- get _class_static_private_method_get() {
- return require("./_class_static_private_method_get.cjs")._;
- },
- get _construct() {
- return require("./_construct.cjs")._;
- },
- get _create_class() {
- return require("./_create_class.cjs")._;
- },
- get _create_for_of_iterator_helper_loose() {
- return require("./_create_for_of_iterator_helper_loose.cjs")._;
- },
- get _create_super() {
- return require("./_create_super.cjs")._;
- },
- get _decorate() {
- return require("./_decorate.cjs")._;
- },
- get _defaults() {
- return require("./_defaults.cjs")._;
- },
- get _define_enumerable_properties() {
- return require("./_define_enumerable_properties.cjs")._;
- },
- get _define_property() {
- return require("./_define_property.cjs")._;
- },
- get _dispose() {
- return require("./_dispose.cjs")._;
- },
- get _export_star() {
- return require("./_export_star.cjs")._;
- },
- get _extends() {
- return require("./_extends.cjs")._;
- },
- get _get() {
- return require("./_get.cjs")._;
- },
- get _get_prototype_of() {
- return require("./_get_prototype_of.cjs")._;
- },
- get _identity() {
- return require("./_identity.cjs")._;
- },
- get _inherits() {
- return require("./_inherits.cjs")._;
- },
- get _inherits_loose() {
- return require("./_inherits_loose.cjs")._;
- },
- get _initializer_define_property() {
- return require("./_initializer_define_property.cjs")._;
- },
- get _initializer_warning_helper() {
- return require("./_initializer_warning_helper.cjs")._;
- },
- get _instanceof() {
- return require("./_instanceof.cjs")._;
- },
- get _interop_require_default() {
- return require("./_interop_require_default.cjs")._;
- },
- get _interop_require_wildcard() {
- return require("./_interop_require_wildcard.cjs")._;
- },
- get _is_native_function() {
- return require("./_is_native_function.cjs")._;
- },
- get _is_native_reflect_construct() {
- return require("./_is_native_reflect_construct.cjs")._;
- },
- get _iterable_to_array() {
- return require("./_iterable_to_array.cjs")._;
- },
- get _iterable_to_array_limit() {
- return require("./_iterable_to_array_limit.cjs")._;
- },
- get _iterable_to_array_limit_loose() {
- return require("./_iterable_to_array_limit_loose.cjs")._;
- },
- get _jsx() {
- return require("./_jsx.cjs")._;
- },
- get _new_arrow_check() {
- return require("./_new_arrow_check.cjs")._;
- },
- get _non_iterable_rest() {
- return require("./_non_iterable_rest.cjs")._;
- },
- get _non_iterable_spread() {
- return require("./_non_iterable_spread.cjs")._;
- },
- get _object_destructuring_empty() {
- return require("./_object_destructuring_empty.cjs")._;
- },
- get _object_spread() {
- return require("./_object_spread.cjs")._;
- },
- get _object_spread_props() {
- return require("./_object_spread_props.cjs")._;
- },
- get _object_without_properties() {
- return require("./_object_without_properties.cjs")._;
- },
- get _object_without_properties_loose() {
- return require("./_object_without_properties_loose.cjs")._;
- },
- get _possible_constructor_return() {
- return require("./_possible_constructor_return.cjs")._;
- },
- get _read_only_error() {
- return require("./_read_only_error.cjs")._;
- },
- get _set() {
- return require("./_set.cjs")._;
- },
- get _set_prototype_of() {
- return require("./_set_prototype_of.cjs")._;
- },
- get _skip_first_generator_next() {
- return require("./_skip_first_generator_next.cjs")._;
- },
- get _sliced_to_array() {
- return require("./_sliced_to_array.cjs")._;
- },
- get _sliced_to_array_loose() {
- return require("./_sliced_to_array_loose.cjs")._;
- },
- get _super_prop_base() {
- return require("./_super_prop_base.cjs")._;
- },
- get _tagged_template_literal() {
- return require("./_tagged_template_literal.cjs")._;
- },
- get _tagged_template_literal_loose() {
- return require("./_tagged_template_literal_loose.cjs")._;
- },
- get _throw() {
- return require("./_throw.cjs")._;
- },
- get _to_array() {
- return require("./_to_array.cjs")._;
- },
- get _to_consumable_array() {
- return require("./_to_consumable_array.cjs")._;
- },
- get _to_primitive() {
- return require("./_to_primitive.cjs")._;
- },
- get _to_property_key() {
- return require("./_to_property_key.cjs")._;
- },
- get _ts_add_disposable_resource() {
- return require("./_ts_add_disposable_resource.cjs")._;
- },
- get _ts_decorate() {
- return require("./_ts_decorate.cjs")._;
- },
- get _ts_dispose_resources() {
- return require("./_ts_dispose_resources.cjs")._;
- },
- get _ts_generator() {
- return require("./_ts_generator.cjs")._;
- },
- get _ts_metadata() {
- return require("./_ts_metadata.cjs")._;
- },
- get _ts_param() {
- return require("./_ts_param.cjs")._;
- },
- get _ts_values() {
- return require("./_ts_values.cjs")._;
- },
- get _type_of() {
- return require("./_type_of.cjs")._;
- },
- get _unsupported_iterable_to_array() {
- return require("./_unsupported_iterable_to_array.cjs")._;
- },
- get _update() {
- return require("./_update.cjs")._;
- },
- get _using() {
- return require("./_using.cjs")._;
- },
- get _using_ctx() {
- return require("./_using_ctx.cjs")._;
- },
- get _wrap_async_generator() {
- return require("./_wrap_async_generator.cjs")._;
- },
- get _wrap_native_super() {
- return require("./_wrap_native_super.cjs")._;
- },
- get _write_only_error() {
- return require("./_write_only_error.cjs")._;
- }
-};
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_apply_decorated_descriptor.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_apply_decorated_descriptor.js
deleted file mode 100644
index 671db1fb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_apply_decorated_descriptor.js
+++ /dev/null
@@ -1,33 +0,0 @@
-function _apply_decorated_descriptor(target, property, decorators, descriptor, context) {
- var desc = {};
-
- Object["ke" + "ys"](descriptor).forEach(function(key) {
- desc[key] = descriptor[key];
- });
- desc.enumerable = !!desc.enumerable;
- desc.configurable = !!desc.configurable;
-
- if ("value" in desc || desc.initializer) desc.writable = true;
- desc = decorators.slice().reverse().reduce(function(desc, decorator) {
- return decorator ? decorator(target, property, desc) || desc : desc;
- }, desc);
-
- var hasAccessor = Object.prototype.hasOwnProperty.call(desc, "get") || Object.prototype.hasOwnProperty.call(desc, "set");
-
- if (context && desc.initializer !== void 0 && !hasAccessor) {
- desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
- desc.initializer = undefined;
- }
- if (hasAccessor) {
- delete desc.writable;
- delete desc.initializer;
- delete desc.value;
- }
- if (desc.initializer === void 0) {
- Object["define" + "Property"](target, property, desc);
- desc = null;
- }
-
- return desc;
-}
-export { _apply_decorated_descriptor as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js
deleted file mode 100644
index bd6d0013..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_apply_decs_2203_r.js
+++ /dev/null
@@ -1,548 +0,0 @@
-/* @minVersion 7.20.0 */
-
-/**
- Enums are used in this file, but not assigned to vars to avoid non-hoistable values
-
- CONSTRUCTOR = 0;
- PUBLIC = 1;
- PRIVATE = 2;
-
- FIELD = 0;
- ACCESSOR = 1;
- METHOD = 2;
- GETTER = 3;
- SETTER = 4;
-
- STATIC = 5;
-
- CLASS = 10; // only used in assertValidReturnValue
-*/
-
-function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
- function createAddInitializerMethod(initializers, decoratorFinishedRef) {
- return function addInitializer(initializer) {
- assertNotFinished(decoratorFinishedRef, "addInitializer");
- assertCallable(initializer, "An initializer");
- initializers.push(initializer);
- };
- }
-
- function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
- var kindStr;
-
- switch (kind) {
- case 1 /* ACCESSOR */:
- kindStr = "accessor";
- break;
- case 2 /* METHOD */:
- kindStr = "method";
- break;
- case 3 /* GETTER */:
- kindStr = "getter";
- break;
- case 4 /* SETTER */:
- kindStr = "setter";
- break;
- default:
- kindStr = "field";
- }
-
- var ctx = { kind: kindStr, name: isPrivate ? "#" + name : name, static: isStatic, private: isPrivate, metadata: metadata };
-
- var decoratorFinishedRef = { v: false };
-
- ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
-
- var get, set;
- if (kind === 0 /* FIELD */) {
- if (isPrivate) {
- get = desc.get;
- set = desc.set;
- } else {
- get = function() {
- return this[name];
- };
- set = function(v) {
- this[name] = v;
- };
- }
- } else if (kind === 2 /* METHOD */) {
- get = function() {
- return desc.value;
- };
- } else {
- // replace with values that will go through the final getter and setter
- if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {
- get = function() {
- return desc.get.call(this);
- };
- }
-
- if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {
- set = function(v) {
- desc.set.call(this, v);
- };
- }
- }
- ctx.access = get && set ? { get: get, set: set } : get ? { get: get } : { set: set };
-
- try {
- return dec(value, ctx);
- } finally {
- decoratorFinishedRef.v = true;
- }
- }
-
- function assertNotFinished(decoratorFinishedRef, fnName) {
- if (decoratorFinishedRef.v) {
- throw new Error("attempted to call " + fnName + " after decoration was finished");
- }
- }
-
- function assertCallable(fn, hint) {
- if (typeof fn !== "function") {
- throw new TypeError(hint + " must be a function");
- }
- }
-
- function assertValidReturnValue(kind, value) {
- var type = typeof value;
-
- if (kind === 1 /* ACCESSOR */) {
- if (type !== "object" || value === null) {
- throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
- }
- if (value.get !== undefined) {
- assertCallable(value.get, "accessor.get");
- }
- if (value.set !== undefined) {
- assertCallable(value.set, "accessor.set");
- }
- if (value.init !== undefined) {
- assertCallable(value.init, "accessor.init");
- }
- } else if (type !== "function") {
- var hint;
- if (kind === 0 /* FIELD */) {
- hint = "field";
- } else if (kind === 10 /* CLASS */) {
- hint = "class";
- } else {
- hint = "method";
- }
- throw new TypeError(hint + " decorators must return a function or void 0");
- }
- }
-
- function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
- var decs = decInfo[0];
-
- var desc, init, value;
-
- if (isPrivate) {
- if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {
- desc = { get: decInfo[3], set: decInfo[4] };
- } else if (kind === 3 /* GETTER */) {
- desc = { get: decInfo[3] };
- } else if (kind === 4 /* SETTER */) {
- desc = { set: decInfo[3] };
- } else {
- desc = { value: decInfo[3] };
- }
- } else if (kind !== 0 /* FIELD */) {
- desc = Object.getOwnPropertyDescriptor(base, name);
- }
-
- if (kind === 1 /* ACCESSOR */) {
- value = { get: desc.get, set: desc.set };
- } else if (kind === 2 /* METHOD */) {
- value = desc.value;
- } else if (kind === 3 /* GETTER */) {
- value = desc.get;
- } else if (kind === 4 /* SETTER */) {
- value = desc.set;
- }
-
- var newValue, get, set;
-
- if (typeof decs === "function") {
- newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
-
- if (newValue !== void 0) {
- assertValidReturnValue(kind, newValue);
-
- if (kind === 0 /* FIELD */) {
- init = newValue;
- } else if (kind === 1 /* ACCESSOR */) {
- init = newValue.init;
- get = newValue.get || value.get;
- set = newValue.set || value.set;
-
- value = { get: get, set: set };
- } else {
- value = newValue;
- }
- }
- } else {
- for (var i = decs.length - 1; i >= 0; i--) {
- var dec = decs[i];
-
- newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
-
- if (newValue !== void 0) {
- assertValidReturnValue(kind, newValue);
- var newInit;
-
- if (kind === 0 /* FIELD */) {
- newInit = newValue;
- } else if (kind === 1 /* ACCESSOR */) {
- newInit = newValue.init;
- get = newValue.get || value.get;
- set = newValue.set || value.set;
-
- value = { get: get, set: set };
- } else {
- value = newValue;
- }
-
- if (newInit !== void 0) {
- if (init === void 0) {
- init = newInit;
- } else if (typeof init === "function") {
- init = [init, newInit];
- } else {
- init.push(newInit);
- }
- }
- }
- }
- }
-
- if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {
- if (init === void 0) {
- // If the initializer was void 0, sub in a dummy initializer
- init = function(instance, init) {
- return init;
- };
- } else if (typeof init !== "function") {
- var ownInitializers = init;
-
- init = function(instance, init) {
- var value = init;
-
- for (var i = 0; i < ownInitializers.length; i++) value = ownInitializers[i].call(instance, value);
-
- return value;
- };
- } else {
- var originalInitializer = init;
-
- init = function(instance, init) {
- return originalInitializer.call(instance, init);
- };
- }
-
- ret.push(init);
- }
-
- if (kind !== 0 /* FIELD */) {
- if (kind === 1 /* ACCESSOR */) {
- desc.get = value.get;
- desc.set = value.set;
- } else if (kind === 2 /* METHOD */) {
- desc.value = value;
- } else if (kind === 3 /* GETTER */) {
- desc.get = value;
- } else if (kind === 4 /* SETTER */) {
- desc.set = value;
- }
-
- if (isPrivate) {
- if (kind === 1 /* ACCESSOR */) {
- ret.push(function(instance, args) {
- return value.get.call(instance, args);
- });
- ret.push(function(instance, args) {
- return value.set.call(instance, args);
- });
- } else if (kind === 2 /* METHOD */) {
- ret.push(value);
- } else {
- ret.push(function(instance, args) {
- return value.call(instance, args);
- });
- }
- } else {
- Object.defineProperty(base, name, desc);
- }
- }
- }
-
- function applyMemberDecs(Class, decInfos, metadata) {
- var ret = [];
- var protoInitializers;
- var staticInitializers;
-
- var existingProtoNonFields = new Map();
- var existingStaticNonFields = new Map();
-
- for (var i = 0; i < decInfos.length; i++) {
- var decInfo = decInfos[i];
-
- // skip computed property names
- if (!Array.isArray(decInfo)) continue;
-
- var kind = decInfo[1];
- var name = decInfo[2];
- var isPrivate = decInfo.length > 3;
-
- var isStatic = kind >= 5; /* STATIC */
- var base;
- var initializers;
-
- if (isStatic) {
- base = Class;
- kind = kind - 5 /* STATIC */;
- // initialize staticInitializers when we see a non-field static member
- staticInitializers = staticInitializers || [];
- initializers = staticInitializers;
- } else {
- base = Class.prototype;
- // initialize protoInitializers when we see a non-field member
- protoInitializers = protoInitializers || [];
- initializers = protoInitializers;
- }
-
- if (kind !== 0 /* FIELD */ && !isPrivate) {
- var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
-
- var existingKind = existingNonFields.get(name) || 0;
-
- if (existingKind === true || (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ || (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */) {
- throw new Error(
- "Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "
- + name
- );
- } else if (!existingKind && kind > 2 /* METHOD */) {
- existingNonFields.set(name, kind);
- } else {
- existingNonFields.set(name, true);
- }
- }
-
- applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
- }
-
- pushInitializers(ret, protoInitializers);
- pushInitializers(ret, staticInitializers);
- return ret;
- }
-
- function pushInitializers(ret, initializers) {
- if (initializers) {
- ret.push(function(instance) {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(instance);
- return instance;
- });
- }
- }
-
- function applyClassDecs(targetClass, classDecs, metadata) {
- if (classDecs.length > 0) {
- var initializers = [];
- var newClass = targetClass;
- var name = targetClass.name;
-
- for (var i = classDecs.length - 1; i >= 0; i--) {
- var decoratorFinishedRef = { v: false };
-
- try {
- var nextNewClass = classDecs[i](newClass, { kind: "class", name: name, addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef), metadata });
- } finally {
- decoratorFinishedRef.v = true;
- }
-
- if (nextNewClass !== undefined) {
- assertValidReturnValue(10, /* CLASS */ nextNewClass);
- newClass = nextNewClass;
- }
- }
-
- return [defineMetadata(newClass, metadata), function() {
- for (var i = 0; i < initializers.length; i++) initializers[i].call(newClass);
- }];
- }
- // The transformer will not emit assignment when there are no class decorators,
- // so we don't have to return an empty array here.
- }
-
- function defineMetadata(Class, metadata) {
- return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), { configurable: true, enumerable: true, value: metadata });
- }
-
- /**
- Basic usage:
-
- applyDecs(
- Class,
- [
- // member decorators
- [
- dec, // dec or array of decs
- 0, // kind of value being decorated
- 'prop', // name of public prop on class containing the value being decorated,
- '#p', // the name of the private property (if is private, void 0 otherwise),
- ]
- ],
- [
- // class decorators
- dec1, dec2
- ]
- )
- ```
-
- Fully transpiled example:
-
- ```js
- @dec
- class Class {
- @dec
- a = 123;
-
- @dec
- #a = 123;
-
- @dec
- @dec2
- accessor b = 123;
-
- @dec
- accessor #b = 123;
-
- @dec
- c() { console.log('c'); }
-
- @dec
- #c() { console.log('privC'); }
-
- @dec
- get d() { console.log('d'); }
-
- @dec
- get #d() { console.log('privD'); }
-
- @dec
- set e(v) { console.log('e'); }
-
- @dec
- set #e(v) { console.log('privE'); }
- }
-
-
- // becomes
- let initializeInstance;
- let initializeClass;
-
- let initA;
- let initPrivA;
-
- let initB;
- let initPrivB, getPrivB, setPrivB;
-
- let privC;
- let privD;
- let privE;
-
- let Class;
- class _Class {
- static {
- let ret = applyDecs(
- this,
- [
- [dec, 0, 'a'],
- [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],
- [[dec, dec2], 1, 'b'],
- [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],
- [dec, 2, 'c'],
- [dec, 2, 'c', () => console.log('privC')],
- [dec, 3, 'd'],
- [dec, 3, 'd', () => console.log('privD')],
- [dec, 4, 'e'],
- [dec, 4, 'e', () => console.log('privE')],
- ],
- [
- dec
- ]
- )
-
- initA = ret[0];
-
- initPrivA = ret[1];
-
- initB = ret[2];
-
- initPrivB = ret[3];
- getPrivB = ret[4];
- setPrivB = ret[5];
-
- privC = ret[6];
-
- privD = ret[7];
-
- privE = ret[8];
-
- initializeInstance = ret[9];
-
- Class = ret[10]
-
- initializeClass = ret[11];
- }
-
- a = (initializeInstance(this), initA(this, 123));
-
- #a = initPrivA(this, 123);
-
- #bData = initB(this, 123);
- get b() { return this.#bData }
- set b(v) { this.#bData = v }
-
- #privBData = initPrivB(this, 123);
- get #b() { return getPrivB(this); }
- set #b(v) { setPrivB(this, v); }
-
- c() { console.log('c'); }
-
- #c(...args) { return privC(this, ...args) }
-
- get d() { console.log('d'); }
-
- get #d() { return privD(this); }
-
- set e(v) { console.log('e'); }
-
- set #e(v) { privE(this, v); }
- }
-
- initializeClass(Class);
- */
-
- _apply_decs_2203_r = function(targetClass, memberDecs, classDecs, parentClass) {
- if (parentClass !== void 0) {
- var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
- }
- var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
- var e = applyMemberDecs(targetClass, memberDecs, metadata);
- if (!classDecs.length) defineMetadata(targetClass, metadata);
- return {
- e: e,
- // Lazily apply class decorations so that member init locals can be properly bound.
- get c() {
- return applyClassDecs(targetClass, classDecs, metadata);
- }
- };
- };
-
- return _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass);
-}
-
-export { _apply_decs_2203_r as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js
deleted file mode 100644
index eb80534d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _array_like_to_array(arr, len) {
- if (len == null || len > arr.length) len = arr.length;
-
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
-
- return arr2;
-}
-export { _array_like_to_array as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_with_holes.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_with_holes.js
deleted file mode 100644
index 2532c929..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_with_holes.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _array_with_holes(arr) {
- if (Array.isArray(arr)) return arr;
-}
-export { _array_with_holes as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_without_holes.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_without_holes.js
deleted file mode 100644
index cbdbc322..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_without_holes.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { _ as _array_like_to_array } from "./_array_like_to_array.js";
-
-function _array_without_holes(arr) {
- if (Array.isArray(arr)) return _array_like_to_array(arr);
-}
-export { _array_without_holes as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_assert_this_initialized.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_assert_this_initialized.js
deleted file mode 100644
index 0e2830a3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_assert_this_initialized.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _assert_this_initialized(self) {
- if (self === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
-
- return self;
-}
-export { _assert_this_initialized as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_generator.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_generator.js
deleted file mode 100644
index 76148e32..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_generator.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import { _ as _await_value } from "./_await_value.js";
-
-function _async_generator(gen) {
- var front, back;
-
- function send(key, arg) {
- return new Promise(function(resolve, reject) {
- var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null };
- if (back) back = back.next = request;
- else {
- front = back = request;
- resume(key, arg);
- }
- });
- }
-
- function resume(key, arg) {
- try {
- var result = gen[key](arg);
- var value = result.value;
- var wrappedAwait = value instanceof _await_value;
- Promise.resolve(wrappedAwait ? value.wrapped : value).then(function(arg) {
- if (wrappedAwait) {
- resume("next", arg);
-
- return;
- }
- settle(result.done ? "return" : "normal", arg);
- }, function(err) {
- resume("throw", err);
- });
- } catch (err) {
- settle("throw", err);
- }
- }
-
- function settle(type, value) {
- switch (type) {
- case "return":
- front.resolve({ value: value, done: true });
- break;
- case "throw":
- front.reject(value);
- break;
- default:
- front.resolve({ value: value, done: false });
- break;
- }
- front = front.next;
- if (front) resume(front.key, front.arg);
- else back = null;
- }
-
- this._invoke = send;
-
- if (typeof gen.return !== "function") this.return = undefined;
-}
-
-if (typeof Symbol === "function" && Symbol.asyncIterator) {
- _async_generator.prototype[Symbol.asyncIterator] = function() {
- return this;
- };
-}
-
-_async_generator.prototype.next = function(arg) {
- return this._invoke("next", arg);
-};
-
-_async_generator.prototype.throw = function(arg) {
- return this._invoke("throw", arg);
-};
-
-_async_generator.prototype.return = function(arg) {
- return this._invoke("return", arg);
-};
-export { _async_generator as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_generator_delegate.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_generator_delegate.js
deleted file mode 100644
index fb14b23c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_generator_delegate.js
+++ /dev/null
@@ -1,47 +0,0 @@
-function _async_generator_delegate(inner, awaitWrap) {
- var iter = {}, waiting = false;
-
- function pump(key, value) {
- waiting = true;
- value = new Promise(function(resolve) {
- resolve(inner[key](value));
- });
-
- return { done: false, value: awaitWrap(value) };
- }
-
- if (typeof Symbol === "function" && Symbol.iterator) {
- iter[Symbol.iterator] = function() {
- return this;
- };
- }
-
- iter.next = function(value) {
- if (waiting) {
- waiting = false;
-
- return value;
- }
-
- return pump("next", value);
- };
-
- if (typeof inner.throw === "function") {
- iter.throw = function(value) {
- if (waiting) {
- waiting = false;
- throw value;
- }
-
- return pump("throw", value);
- };
- }
- if (typeof inner.return === "function") {
- iter.return = function(value) {
- return pump("return", value);
- };
- }
-
- return iter;
-}
-export { _async_generator_delegate as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_iterator.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_iterator.js
deleted file mode 100644
index b7ffe4cc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_iterator.js
+++ /dev/null
@@ -1,44 +0,0 @@
-function _async_iterator(iterable) {
- var method, async, sync, retry = 2;
- for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) {
- if (async && null != (method = iterable[async])) return method.call(iterable);
- if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
- async = "@@asyncIterator", sync = "@@iterator";
- }
- throw new TypeError("Object is not async iterable");
-}
-function AsyncFromSyncIterator(s) {
- function AsyncFromSyncIteratorContinuation(r) {
- if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
-
- var done = r.done;
-
- return Promise.resolve(r.value).then(function(value) {
- return { value: value, done: done };
- });
- }
-
- return AsyncFromSyncIterator = function(s) {
- this.s = s, this.n = s.next;
- },
- AsyncFromSyncIterator.prototype = {
- s: null,
- n: null,
-
- next: function() {
- return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
- },
- return: function(value) {
- var ret = this.s.return;
-
- return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
- },
- throw: function(value) {
- var thr = this.s.return;
-
- return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
- }
- },
- new AsyncFromSyncIterator(s);
-}
-export { _async_iterator as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js
deleted file mode 100644
index 2fcf6ee8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js
+++ /dev/null
@@ -1,31 +0,0 @@
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
- try {
- var info = gen[key](arg);
- var value = info.value;
- } catch (error) {
- reject(error);
- return;
- }
- if (info.done) resolve(value);
- else Promise.resolve(value).then(_next, _throw);
-}
-function _async_to_generator(fn) {
- return function() {
- var self = this, args = arguments;
-
- return new Promise(function(resolve, reject) {
- var gen = fn.apply(self, args);
-
- function _next(value) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
- }
-
- function _throw(err) {
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
- }
-
- _next(undefined);
- });
- };
-}
-export { _async_to_generator as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_await_async_generator.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_await_async_generator.js
deleted file mode 100644
index 1ae1df6c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_await_async_generator.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { _ as _await_value } from "./_await_value.js";
-
-function _await_async_generator(value) {
- return new _await_value(value);
-}
-export { _await_async_generator as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_await_value.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_await_value.js
deleted file mode 100644
index 33a09128..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_await_value.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _await_value(value) {
- this.wrapped = value;
-}
-export { _await_value as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_call_super.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_call_super.js
deleted file mode 100644
index f569d627..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_call_super.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { _ as _get_prototype_of } from "./_get_prototype_of.js";
-import { _ as _is_native_reflect_construct } from "./_is_native_reflect_construct.js";
-import { _ as _possible_constructor_return } from "./_possible_constructor_return.js";
-
-function _call_super(_this, derived, args) {
- // Super
- derived = _get_prototype_of(derived);
- return _possible_constructor_return(
- _this,
- _is_native_reflect_construct()
- // NOTE: This doesn't work if this.__proto__.constructor has been modified.
- ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor)
- : derived.apply(_this, args)
- );
-}
-
-export { _call_super as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_check_private_redeclaration.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_check_private_redeclaration.js
deleted file mode 100644
index 21e96da1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_check_private_redeclaration.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _check_private_redeclaration(obj, privateCollection) {
- if (privateCollection.has(obj)) {
- throw new TypeError("Cannot initialize the same private elements twice on an object");
- }
-}
-export { _check_private_redeclaration as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_destructure.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_destructure.js
deleted file mode 100644
index 9bf79ee8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_destructure.js
+++ /dev/null
@@ -1,23 +0,0 @@
-function _class_apply_descriptor_destructure(receiver, descriptor) {
- if (descriptor.set) {
- if (!("__destrObj" in descriptor)) {
- descriptor.__destrObj = {
- set value(v) {
- descriptor.set.call(receiver, v);
- }
- };
- }
-
- return descriptor.__destrObj;
- } else {
- if (!descriptor.writable) {
- // This should only throw in strict mode, but class bodies are
- // always strict and private fields can only be used inside
- // class bodies.
- throw new TypeError("attempted to set read only private field");
- }
-
- return descriptor;
- }
-}
-export { _class_apply_descriptor_destructure as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js
deleted file mode 100644
index 15c6f238..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _class_apply_descriptor_get(receiver, descriptor) {
- if (descriptor.get) return descriptor.get.call(receiver);
-
- return descriptor.value;
-}
-export { _class_apply_descriptor_get as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js
deleted file mode 100644
index 75091e10..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _class_apply_descriptor_set(receiver, descriptor, value) {
- if (descriptor.set) descriptor.set.call(receiver, value);
- else {
- if (!descriptor.writable) {
- // This should only throw in strict mode, but class bodies are
- // always strict and private fields can only be used inside
- // class bodies.
- throw new TypeError("attempted to set read only private field");
- }
- descriptor.value = value;
- }
-}
-export { _class_apply_descriptor_set as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_update.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_update.js
deleted file mode 100644
index adf62fb7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_update.js
+++ /dev/null
@@ -1,28 +0,0 @@
-function _class_apply_descriptor_update(receiver, descriptor) {
- if (descriptor.set) {
- if (!descriptor.get) throw new TypeError("attempted to read set only private field");
-
- if (!("__destrWrapper" in descriptor)) {
- descriptor.__destrWrapper = {
- set value(v) {
- descriptor.set.call(receiver, v);
- },
- get value() {
- return descriptor.get.call(receiver);
- }
- };
- }
-
- return descriptor.__destrWrapper;
- } else {
- if (!descriptor.writable) {
- // This should only throw in strict mode, but class bodies are
- // always strict and private fields can only be used inside
- // class bodies.
- throw new TypeError("attempted to set read only private field");
- }
-
- return descriptor;
- }
-}
-export { _class_apply_descriptor_update as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_call_check.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_call_check.js
deleted file mode 100644
index f0caf9e3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_call_check.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _class_call_check(instance, Constructor) {
- if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
-}
-export { _class_call_check as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_check_private_static_access.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_check_private_static_access.js
deleted file mode 100644
index 380f1d9b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_check_private_static_access.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _class_check_private_static_access(receiver, classConstructor) {
- if (receiver !== classConstructor) throw new TypeError("Private static access of wrong provenance");
-}
-export { _class_check_private_static_access as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_check_private_static_field_descriptor.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_check_private_static_field_descriptor.js
deleted file mode 100644
index a6a0a7fd..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_check_private_static_field_descriptor.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _class_check_private_static_field_descriptor(descriptor, action) {
- if (descriptor === undefined) {
- throw new TypeError("attempted to " + action + " private static field before its declaration");
- }
-}
-export { _class_check_private_static_field_descriptor as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js
deleted file mode 100644
index 44ca9e7f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _class_extract_field_descriptor(receiver, privateMap, action) {
- if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
-
- return privateMap.get(receiver);
-}
-export { _class_extract_field_descriptor as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_name_tdz_error.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_name_tdz_error.js
deleted file mode 100644
index 56620e8d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_name_tdz_error.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _class_name_tdz_error(name) {
- throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
-}
-export { _class_name_tdz_error as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_destructure.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_destructure.js
deleted file mode 100644
index 5c624330..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_destructure.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { _ as _class_apply_descriptor_destructure } from "./_class_apply_descriptor_destructure.js";
-import { _ as _class_extract_field_descriptor } from "./_class_extract_field_descriptor.js";
-
-function _class_private_field_destructure(receiver, privateMap) {
- var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
- return _class_apply_descriptor_destructure(receiver, descriptor);
-}
-export { _class_private_field_destructure as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_get.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_get.js
deleted file mode 100644
index 078d320a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_get.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { _ as _class_apply_descriptor_get } from "./_class_apply_descriptor_get.js";
-import { _ as _class_extract_field_descriptor } from "./_class_extract_field_descriptor.js";
-
-function _class_private_field_get(receiver, privateMap) {
- var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
- return _class_apply_descriptor_get(receiver, descriptor);
-}
-export { _class_private_field_get as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_init.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_init.js
deleted file mode 100644
index 3daa81a5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_init.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { _ as _check_private_redeclaration } from "./_check_private_redeclaration.js";
-
-function _class_private_field_init(obj, privateMap, value) {
- _check_private_redeclaration(obj, privateMap);
- privateMap.set(obj, value);
-}
-export { _class_private_field_init as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js
deleted file mode 100644
index 92f4c072..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _class_private_field_loose_base(receiver, privateKey) {
- if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
- throw new TypeError("attempted to use private field on non-instance");
- }
-
- return receiver;
-}
-export { _class_private_field_loose_base as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js
deleted file mode 100644
index 83e89e7d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var id = 0;
-
-function _class_private_field_loose_key(name) {
- return "__private_" + id++ + "_" + name;
-}
-export { _class_private_field_loose_key as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_set.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_set.js
deleted file mode 100644
index 7640b8ea..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_set.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _class_apply_descriptor_set } from "./_class_apply_descriptor_set.js";
-import { _ as _class_extract_field_descriptor } from "./_class_extract_field_descriptor.js";
-
-function _class_private_field_set(receiver, privateMap, value) {
- var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
- _class_apply_descriptor_set(receiver, descriptor, value);
- return value;
-}
-export { _class_private_field_set as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_update.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_update.js
deleted file mode 100644
index d758a17e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_update.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { _ as _class_apply_descriptor_update } from "./_class_apply_descriptor_update.js";
-import { _ as _class_extract_field_descriptor } from "./_class_extract_field_descriptor.js";
-
-function _class_private_field_update(receiver, privateMap) {
- var descriptor = _class_extract_field_descriptor(receiver, privateMap, "update");
- return _class_apply_descriptor_update(receiver, descriptor);
-}
-export { _class_private_field_update as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_get.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_get.js
deleted file mode 100644
index c9d6946f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_get.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _class_private_method_get(receiver, privateSet, fn) {
- if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
-
- return fn;
-}
-export { _class_private_method_get as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_init.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_init.js
deleted file mode 100644
index f2f4eda7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_init.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { _ as _check_private_redeclaration } from "./_check_private_redeclaration.js";
-
-function _class_private_method_init(obj, privateSet) {
- _check_private_redeclaration(obj, privateSet);
- privateSet.add(obj);
-}
-export { _class_private_method_init as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_set.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_set.js
deleted file mode 100644
index 98e3be1c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_method_set.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _class_private_method_set() {
- throw new TypeError("attempted to reassign private method");
-}
-export { _class_private_method_set as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_destructure.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_destructure.js
deleted file mode 100644
index 1aea4635..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_destructure.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { _ as _class_apply_descriptor_destructure } from "./_class_apply_descriptor_destructure.js";
-import { _ as _class_check_private_static_access } from "./_class_check_private_static_access.js";
-import { _ as _class_check_private_static_field_descriptor } from "./_class_check_private_static_field_descriptor.js";
-
-function _class_static_private_field_destructure(receiver, classConstructor, descriptor) {
- _class_check_private_static_access(receiver, classConstructor);
- _class_check_private_static_field_descriptor(descriptor, "set");
-
- return _class_apply_descriptor_destructure(receiver, descriptor);
-}
-export { _class_static_private_field_destructure as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_spec_get.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_spec_get.js
deleted file mode 100644
index 128476cb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_spec_get.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { _ as _class_apply_descriptor_get } from "./_class_apply_descriptor_get.js";
-import { _ as _class_check_private_static_access } from "./_class_check_private_static_access.js";
-import { _ as _class_check_private_static_field_descriptor } from "./_class_check_private_static_field_descriptor.js";
-
-function _class_static_private_field_spec_get(receiver, classConstructor, descriptor) {
- _class_check_private_static_access(receiver, classConstructor);
- _class_check_private_static_field_descriptor(descriptor, "get");
-
- return _class_apply_descriptor_get(receiver, descriptor);
-}
-export { _class_static_private_field_spec_get as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_spec_set.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_spec_set.js
deleted file mode 100644
index 0137ff7f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_spec_set.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { _ as _class_apply_descriptor_set } from "./_class_apply_descriptor_set.js";
-import { _ as _class_check_private_static_access } from "./_class_check_private_static_access.js";
-import { _ as _class_check_private_static_field_descriptor } from "./_class_check_private_static_field_descriptor.js";
-
-function _class_static_private_field_spec_set(receiver, classConstructor, descriptor, value) {
- _class_check_private_static_access(receiver, classConstructor);
- _class_check_private_static_field_descriptor(descriptor, "set");
- _class_apply_descriptor_set(receiver, descriptor, value);
-
- return value;
-}
-export { _class_static_private_field_spec_set as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_update.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_update.js
deleted file mode 100644
index d53d66ae..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_field_update.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { _ as _class_apply_descriptor_update } from "./_class_apply_descriptor_update.js";
-import { _ as _class_check_private_static_access } from "./_class_check_private_static_access.js";
-import { _ as _class_check_private_static_field_descriptor } from "./_class_check_private_static_field_descriptor.js";
-
-function _class_static_private_field_update(receiver, classConstructor, descriptor) {
- _class_check_private_static_access(receiver, classConstructor);
- _class_check_private_static_field_descriptor(descriptor, "update");
-
- return _class_apply_descriptor_update(receiver, descriptor);
-}
-export { _class_static_private_field_update as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_method_get.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_method_get.js
deleted file mode 100644
index d9309f4d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_static_private_method_get.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { _ as _class_check_private_static_access } from "./_class_check_private_static_access.js";
-
-function _class_static_private_method_get(receiver, classConstructor, method) {
- _class_check_private_static_access(receiver, classConstructor);
-
- return method;
-}
-export { _class_static_private_method_get as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js
deleted file mode 100644
index affce786..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { _ as _is_native_reflect_construct } from "./_is_native_reflect_construct.js";
-import { _ as _set_prototype_of } from "./_set_prototype_of.js";
-function _construct(Parent, args, Class) {
- if (_is_native_reflect_construct()) _construct = Reflect.construct;
- else {
- _construct = function construct(Parent, args, Class) {
- var a = [null];
- a.push.apply(a, args);
- var Constructor = Function.bind.apply(Parent, a);
- var instance = new Constructor();
-
- if (Class) _set_prototype_of(instance, Class.prototype);
-
- return instance;
- };
- }
-
- return _construct.apply(null, arguments);
-}
-export { _construct as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js
deleted file mode 100644
index f251d98b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js
+++ /dev/null
@@ -1,18 +0,0 @@
-function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
-
- if ("value" in descriptor) descriptor.writable = true;
-
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-function _create_class(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
-
- return Constructor;
-}
-export { _create_class as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js
deleted file mode 100644
index d848f09d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { _ as _unsupported_iterable_to_array } from "./_unsupported_iterable_to_array.js";
-
-function _create_for_of_iterator_helper_loose(o, allowArrayLike) {
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
-
- if (it) return (it = it.call(o)).next.bind(it);
- // Fallback for engines without symbol support
- if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === "number") {
- if (it) o = it;
-
- var i = 0;
-
- return function() {
- if (i >= o.length) return { done: true };
-
- return { done: false, value: o[i++] };
- };
- }
-
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-export { _create_for_of_iterator_helper_loose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_super.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_super.js
deleted file mode 100644
index 09b3ec02..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_super.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { _ as _get_prototype_of } from "./_get_prototype_of.js";
-import { _ as _is_native_reflect_construct } from "./_is_native_reflect_construct.js";
-import { _ as _possible_constructor_return } from "./_possible_constructor_return.js";
-
-function _create_super(Derived) {
- var hasNativeReflectConstruct = _is_native_reflect_construct();
-
- return function _createSuperInternal() {
- var Super = _get_prototype_of(Derived), result;
-
- if (hasNativeReflectConstruct) {
- var NewTarget = _get_prototype_of(this).constructor;
- result = Reflect.construct(Super, arguments, NewTarget);
- } else {
- result = Super.apply(this, arguments);
- }
-
- return _possible_constructor_return(this, result);
- };
-}
-export { _create_super as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_decorate.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_decorate.js
deleted file mode 100644
index 7131a6dc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_decorate.js
+++ /dev/null
@@ -1,268 +0,0 @@
-import { _ as _to_array } from "./_to_array.js";
-import { _ as _to_property_key } from "./_to_property_key.js";
-import { _ as _type_of } from "./_type_of.js";
-
-function _decorate(decorators, factory, superClass) {
- var r = factory(function initialize(O) {
- _initializeInstanceElements(O, decorated.elements);
- }, superClass);
- var decorated = _decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
- _initializeClassElements(r.F, decorated.elements);
-
- return _runClassFinishers(r.F, decorated.finishers);
-}
-
-function _createElementDescriptor(def) {
- var key = _to_property_key(def.key);
- var descriptor;
-
- if (def.kind === "method") {
- descriptor = { value: def.value, writable: true, configurable: true, enumerable: false };
- Object.defineProperty(def.value, "name", { value: _type_of(key) === "symbol" ? "" : key, configurable: true });
- } else if (def.kind === "get") descriptor = { get: def.value, configurable: true, enumerable: false };
- else if (def.kind === "set") descriptor = { set: def.value, configurable: true, enumerable: false };
- else if (def.kind === "field") descriptor = { configurable: true, writable: true, enumerable: true };
-
- var element = { kind: def.kind === "field" ? "field" : "method", key: key, placement: def.static ? "static" : def.kind === "field" ? "own" : "prototype", descriptor: descriptor };
-
- if (def.decorators) element.decorators = def.decorators;
-
- if (def.kind === "field") element.initializer = def.value;
-
- return element;
-}
-function _coalesceGetterSetter(element, other) {
- if (element.descriptor.get !== undefined) other.descriptor.get = element.descriptor.get;
- else other.descriptor.set = element.descriptor.set;
-}
-function _coalesceClassElements(elements) {
- var newElements = [];
- var isSameElement = function isSameElement(other) {
- return other.kind === "method" && other.key === element.key && other.placement === element.placement;
- };
-
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- var other;
-
- if (element.kind === "method" && (other = newElements.find(isSameElement))) {
- if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
- if (_hasDecorators(element) || _hasDecorators(other)) {
- throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
- }
- other.descriptor = element.descriptor;
- } else {
- if (_hasDecorators(element)) {
- if (_hasDecorators(other)) {
- throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
- }
- other.decorators = element.decorators;
- }
- _coalesceGetterSetter(element, other);
- }
- } else {
- newElements.push(element);
- }
- }
-
- return newElements;
-}
-function _hasDecorators(element) {
- return element.decorators && element.decorators.length;
-}
-function _isDataDescriptor(desc) {
- return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
-}
-function _initializeClassElements(F, elements) {
- var proto = F.prototype;
- ["method", "field"].forEach(function(kind) {
- elements.forEach(function(element) {
- var placement = element.placement;
- if (element.kind === kind && (placement === "static" || placement === "prototype")) {
- var receiver = placement === "static" ? F : proto;
- _defineClassElement(receiver, element);
- }
- });
- });
-}
-function _initializeInstanceElements(O, elements) {
- ["method", "field"].forEach(function(kind) {
- elements.forEach(function(element) {
- if (element.kind === kind && element.placement === "own") _defineClassElement(O, element);
- });
- });
-}
-function _defineClassElement(receiver, element) {
- var descriptor = element.descriptor;
- if (element.kind === "field") {
- var initializer = element.initializer;
- descriptor = { enumerable: descriptor.enumerable, writable: descriptor.writable, configurable: descriptor.configurable, value: initializer === void 0 ? void 0 : initializer.call(receiver) };
- }
- Object.defineProperty(receiver, element.key, descriptor);
-}
-function _decorateClass(elements, decorators) {
- var newElements = [];
- var finishers = [];
- var placements = { static: [], prototype: [], own: [] };
- elements.forEach(function(element) {
- _addElementPlacement(element, placements);
- });
- elements.forEach(function(element) {
- if (!_hasDecorators(element)) return newElements.push(element);
- var elementFinishersExtras = _decorateElement(element, placements);
- newElements.push(elementFinishersExtras.element);
- newElements.push.apply(newElements, elementFinishersExtras.extras);
- finishers.push.apply(finishers, elementFinishersExtras.finishers);
- });
- if (!decorators) return { elements: newElements, finishers: finishers };
- var result = _decorateConstructor(newElements, decorators);
- finishers.push.apply(finishers, result.finishers);
- result.finishers = finishers;
-
- return result;
-}
-function _addElementPlacement(element, placements, silent) {
- var keys = placements[element.placement];
- if (!silent && keys.indexOf(element.key) !== -1) throw new TypeError("Duplicated element (" + element.key + ")");
- keys.push(element.key);
-}
-function _decorateElement(element, placements) {
- var extras = [];
- var finishers = [];
- for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
- var keys = placements[element.placement];
- keys.splice(keys.indexOf(element.key), 1);
- var elementObject = _fromElementDescriptor(element);
- var elementFinisherExtras = _toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
- element = elementFinisherExtras.element;
- _addElementPlacement(element, placements);
- if (elementFinisherExtras.finisher) finishers.push(elementFinisherExtras.finisher);
- var newExtras = elementFinisherExtras.extras;
- if (newExtras) {
- for (var j = 0; j < newExtras.length; j++) _addElementPlacement(newExtras[j], placements);
- extras.push.apply(extras, newExtras);
- }
- }
-
- return { element: element, finishers: finishers, extras: extras };
-}
-function _decorateConstructor(elements, decorators) {
- var finishers = [];
- for (var i = decorators.length - 1; i >= 0; i--) {
- var obj = _fromClassDescriptor(elements);
- var elementsAndFinisher = _toClassDescriptor((0, decorators[i])(obj) || obj);
- if (elementsAndFinisher.finisher !== undefined) finishers.push(elementsAndFinisher.finisher);
- if (elementsAndFinisher.elements !== undefined) {
- elements = elementsAndFinisher.elements;
- for (var j = 0; j < elements.length - 1; j++) {
- for (var k = j + 1; k < elements.length; k++) {
- if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
- throw new TypeError("Duplicated element (" + elements[j].key + ")");
- }
- }
- }
- }
- }
-
- return { elements: elements, finishers: finishers };
-}
-function _fromElementDescriptor(element) {
- var obj = { kind: element.kind, key: element.key, placement: element.placement, descriptor: element.descriptor };
- var desc = { value: "Descriptor", configurable: true };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
- if (element.kind === "field") obj.initializer = element.initializer;
-
- return obj;
-}
-function _toElementDescriptors(elementObjects) {
- if (elementObjects === undefined) return;
-
- return _to_array(elementObjects).map(function(elementObject) {
- var element = _toElementDescriptor(elementObject);
- _disallowProperty(elementObject, "finisher", "An element descriptor");
- _disallowProperty(elementObject, "extras", "An element descriptor");
-
- return element;
- });
-}
-function _toElementDescriptor(elementObject) {
- var kind = String(elementObject.kind);
- if (kind !== "method" && kind !== "field") {
- throw new TypeError("An element descriptor's .kind property must be either \"method\" or" + " \"field\", but a decorator created an element descriptor with" + " .kind \"" + kind + "\"");
- }
- var key = _to_property_key(elementObject.key);
- var placement = String(elementObject.placement);
- if (placement !== "static" && placement !== "prototype" && placement !== "own") {
- throw new TypeError(
- "An element descriptor's .placement property must be one of \"static\","
- + " \"prototype\" or \"own\", but a decorator created an element descriptor"
- + " with .placement \""
- + placement
- + "\""
- );
- }
- var descriptor = elementObject.descriptor;
- _disallowProperty(elementObject, "elements", "An element descriptor");
- var element = { kind: kind, key: key, placement: placement, descriptor: Object.assign({}, descriptor) };
- if (kind !== "field") _disallowProperty(elementObject, "initializer", "A method descriptor");
- else {
- _disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
- _disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
- _disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
- element.initializer = elementObject.initializer;
- }
-
- return element;
-}
-function _toElementFinisherExtras(elementObject) {
- var element = _toElementDescriptor(elementObject);
- var finisher = _optionalCallableProperty(elementObject, "finisher");
- var extras = _toElementDescriptors(elementObject.extras);
-
- return { element: element, finisher: finisher, extras: extras };
-}
-function _fromClassDescriptor(elements) {
- var obj = { kind: "class", elements: elements.map(_fromElementDescriptor) };
- var desc = { value: "Descriptor", configurable: true };
- Object.defineProperty(obj, Symbol.toStringTag, desc);
-
- return obj;
-}
-function _toClassDescriptor(obj) {
- var kind = String(obj.kind);
- if (kind !== "class") {
- throw new TypeError("A class descriptor's .kind property must be \"class\", but a decorator" + " created a class descriptor with .kind \"" + kind + "\"");
- }
- _disallowProperty(obj, "key", "A class descriptor");
- _disallowProperty(obj, "placement", "A class descriptor");
- _disallowProperty(obj, "descriptor", "A class descriptor");
- _disallowProperty(obj, "initializer", "A class descriptor");
- _disallowProperty(obj, "extras", "A class descriptor");
- var finisher = _optionalCallableProperty(obj, "finisher");
- var elements = _toElementDescriptors(obj.elements);
-
- return { elements: elements, finisher: finisher };
-}
-function _disallowProperty(obj, name, objectType) {
- if (obj[name] !== undefined) throw new TypeError(objectType + " can't have a ." + name + " property.");
-}
-function _optionalCallableProperty(obj, name) {
- var value = obj[name];
- if (value !== undefined && typeof value !== "function") {
- throw new TypeError("Expected '" + name + "' to be a function");
- }
-
- return value;
-}
-function _runClassFinishers(constructor, finishers) {
- for (var i = 0; i < finishers.length; i++) {
- var newConstructor = (0, finishers[i])(constructor);
- if (newConstructor !== undefined) {
- if (typeof newConstructor !== "function") throw new TypeError("Finishers must return a constructor.");
- constructor = newConstructor;
- }
- }
-
- return constructor;
-}
-export { _decorate as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_defaults.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_defaults.js
deleted file mode 100644
index de0bc0cb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_defaults.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _defaults(obj, defaults) {
- var keys = Object.getOwnPropertyNames(defaults);
-
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = Object.getOwnPropertyDescriptor(defaults, key);
-
- if (value && value.configurable && obj[key] === undefined) Object.defineProperty(obj, key, value);
- }
-
- return obj;
-}
-export { _defaults as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_define_enumerable_properties.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_define_enumerable_properties.js
deleted file mode 100644
index 7e184ef6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_define_enumerable_properties.js
+++ /dev/null
@@ -1,24 +0,0 @@
-function _define_enumerable_properties(obj, descs) {
- for (var key in descs) {
- var desc = descs[key];
- desc.configurable = desc.enumerable = true;
-
- if ("value" in desc) desc.writable = true;
-
- Object.defineProperty(obj, key, desc);
- }
-
- if (Object.getOwnPropertySymbols) {
- var objectSymbols = Object.getOwnPropertySymbols(descs);
- for (var i = 0; i < objectSymbols.length; i++) {
- var sym = objectSymbols[i];
- var desc = descs[sym];
- desc.configurable = desc.enumerable = true;
- if ("value" in desc) desc.writable = true;
- Object.defineProperty(obj, sym, desc);
- }
- }
-
- return obj;
-}
-export { _define_enumerable_properties as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_define_property.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_define_property.js
deleted file mode 100644
index fe259f2a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_define_property.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _define_property(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
- } else obj[key] = value;
-
- return obj;
-}
-export { _define_property as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_dispose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_dispose.js
deleted file mode 100644
index 8e083731..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_dispose.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* @minVersion 7.22.0 */
-function dispose_SuppressedError(suppressed, error) {
- if (typeof SuppressedError !== "undefined") {
- // eslint-disable-next-line no-undef
- dispose_SuppressedError = SuppressedError;
- } else {
- dispose_SuppressedError = function SuppressedError(suppressed, error) {
- this.suppressed = suppressed;
- this.error = error;
- this.stack = new Error().stack;
- };
- dispose_SuppressedError.prototype = Object.create(Error.prototype, { constructor: { value: dispose_SuppressedError, writable: true, configurable: true } });
- }
- return new dispose_SuppressedError(suppressed, error);
-}
-
-function _dispose(stack, error, hasError) {
- function next() {
- while (stack.length > 0) {
- try {
- var r = stack.pop();
- var p = r.d.call(r.v);
- if (r.a) return Promise.resolve(p).then(next, err);
- } catch (e) {
- return err(e);
- }
- }
- if (hasError) throw error;
- }
-
- function err(e) {
- error = hasError ? new dispose_SuppressedError(e, error) : e;
- hasError = true;
-
- return next();
- }
-
- return next();
-}
-
-export { _dispose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_export_star.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_export_star.js
deleted file mode 100644
index 98789f73..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_export_star.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function _export_star(from, to) {
- Object.keys(from).forEach(function(k) {
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
- Object.defineProperty(to, k, {
- enumerable: true,
- get: function() {
- return from[k];
- }
- });
- }
- });
-
- return from;
-}
-export { _export_star as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js
deleted file mode 100644
index 7baa58ee..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_extends.js
+++ /dev/null
@@ -1,13 +0,0 @@
-function _extends() {
- _extends = Object.assign || function assign(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
- }
-
- return target;
- };
-
- return _extends.apply(this, arguments);
-}
-export { _extends as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get.js
deleted file mode 100644
index 0d5fd281..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { _ as _super_prop_base } from "./_super_prop_base.js";
-
-function _get(target, property, receiver) {
- if (typeof Reflect !== "undefined" && Reflect.get) _get = Reflect.get;
- else {
- _get = function get(target, property, receiver) {
- var base = _super_prop_base(target, property);
-
- if (!base) return;
-
- var desc = Object.getOwnPropertyDescriptor(base, property);
-
- if (desc.get) return desc.get.call(receiver || target);
-
- return desc.value;
- };
- }
-
- return _get(target, property, receiver || target);
-}
-export { _get as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js
deleted file mode 100644
index 951dd01d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _get_prototype_of(o) {
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
- return o.__proto__ || Object.getPrototypeOf(o);
- };
-
- return _get_prototype_of(o);
-}
-export { _get_prototype_of as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_identity.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_identity.js
deleted file mode 100644
index 9af20108..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_identity.js
+++ /dev/null
@@ -1,5 +0,0 @@
-function _identity(x) {
- return x;
-}
-
-export { _identity as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js
deleted file mode 100644
index 563d0d25..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { _ as _set_prototype_of } from "./_set_prototype_of.js";
-
-function _inherits(subClass, superClass) {
- if (typeof superClass !== "function" && superClass !== null) {
- throw new TypeError("Super expression must either be null or a function");
- }
-
- subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });
-
- if (superClass) _set_prototype_of(subClass, superClass);
-}
-export { _inherits as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits_loose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits_loose.js
deleted file mode 100644
index d222f69f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits_loose.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _inherits_loose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- subClass.__proto__ = superClass;
-}
-export { _inherits_loose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_initializer_define_property.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_initializer_define_property.js
deleted file mode 100644
index 39694602..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_initializer_define_property.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function _initializer_define_property(target, property, descriptor, context) {
- if (!descriptor) return;
-
- Object.defineProperty(target, property, {
- enumerable: descriptor.enumerable,
- configurable: descriptor.configurable,
- writable: descriptor.writable,
- value: descriptor.initializer ? descriptor.initializer.call(context) : void 0
- });
-}
-export { _initializer_define_property as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_initializer_warning_helper.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_initializer_warning_helper.js
deleted file mode 100644
index 2590876e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_initializer_warning_helper.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _initializer_warning_helper(descriptor, context) {
- throw new Error(
- "Decorating class property failed. Please ensure that "
- + "proposal-class-properties is enabled and set to use loose mode. "
- + "To use proposal-class-properties in spec mode with decorators, wait for "
- + "the next major version of decorators in stage 2."
- );
-}
-export { _initializer_warning_helper as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js
deleted file mode 100644
index ba3a6618..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _instanceof(left, right) {
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
- return !!right[Symbol.hasInstance](left);
- } else return left instanceof right;
-}
-export { _instanceof as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_default.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_default.js
deleted file mode 100644
index 12458929..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_default.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _interop_require_default(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
-}
-export { _interop_require_default as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_wildcard.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_wildcard.js
deleted file mode 100644
index fd78233b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_wildcard.js
+++ /dev/null
@@ -1,36 +0,0 @@
-function _getRequireWildcardCache(nodeInterop) {
- if (typeof WeakMap !== "function") return null;
-
- var cacheBabelInterop = new WeakMap();
- var cacheNodeInterop = new WeakMap();
-
- return (_getRequireWildcardCache = function(nodeInterop) {
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
- })(nodeInterop);
-}
-function _interop_require_wildcard(obj, nodeInterop) {
- if (!nodeInterop && obj && obj.__esModule) return obj;
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj };
-
- var cache = _getRequireWildcardCache(nodeInterop);
-
- if (cache && cache.has(obj)) return cache.get(obj);
-
- var newObj = { __proto__: null };
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
-
- for (var key in obj) {
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
- if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
- else newObj[key] = obj[key];
- }
- }
-
- newObj.default = obj;
-
- if (cache) cache.set(obj, newObj);
-
- return newObj;
-}
-export { _interop_require_wildcard as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js
deleted file mode 100644
index c7cf1987..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _is_native_function(fn) {
- return Function.toString.call(fn).indexOf("[native code]") !== -1;
-}
-export { _is_native_function as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js
deleted file mode 100644
index af046032..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function _is_native_reflect_construct() {
- // Since Reflect.construct can't be properly polyfilled, some
- // implementations (e.g. core-js@2) don't set the correct internal slots.
- // Those polyfills don't allow us to subclass built-ins, so we need to
- // use our fallback implementation.
- try {
- // If the internal slots aren't set, this throws an error similar to
- // TypeError: this is not a Boolean object.
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
- } catch (_) {}
- return (_is_native_reflect_construct = function() {
- return !!result;
- })();
-}
-
-export { _is_native_reflect_construct as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array.js
deleted file mode 100644
index e44dfb00..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _iterable_to_array(iter) {
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
- return Array.from(iter);
- }
-}
-export { _iterable_to_array as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js
deleted file mode 100644
index 1ce2bc94..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array_limit.js
+++ /dev/null
@@ -1,29 +0,0 @@
-function _iterable_to_array_limit(arr, i) {
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
-
- if (_i == null) return;
-
- var _arr = [];
- var _n = true;
- var _d = false;
- var _s, _e;
-
- try {
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i["return"] != null) _i["return"]();
- } finally {
- if (_d) throw _e;
- }
- }
-
- return _arr;
-}
-export { _iterable_to_array_limit as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array_limit_loose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array_limit_loose.js
deleted file mode 100644
index 2369e8b6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_iterable_to_array_limit_loose.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function _iterable_to_array_limit_loose(arr, i) {
- var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]);
-
- if (_i == null) return;
-
- var _arr = [];
-
- for (_i = _i.call(arr), _step; !(_step = _i.next()).done;) {
- _arr.push(_step.value);
- if (i && _arr.length === i) break;
- }
-
- return _arr;
-}
-export { _iterable_to_array_limit_loose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_jsx.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_jsx.js
deleted file mode 100644
index 0695535c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_jsx.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var REACT_ELEMENT_TYPE;
-function _jsx(type, props, key, children) {
- if (!REACT_ELEMENT_TYPE) {
- REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7;
- }
-
- var defaultProps = type && type.defaultProps;
- var childrenLength = arguments.length - 3;
-
- if (!props && childrenLength !== 0) props = { children: void 0 };
- if (props && defaultProps) {
- for (var propName in defaultProps) {
- if (props[propName] === void 0) props[propName] = defaultProps[propName];
- else if (!props) props = defaultProps || {};
- }
- }
- if (childrenLength === 1) props.children = children;
- else if (childrenLength > 1) {
- var childArray = new Array(childrenLength);
- for (var i = 0; i < childrenLength; i++) childArray[i] = arguments[i + 3];
- props.children = childArray;
- }
-
- return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : "" + key, ref: null, props: props, _owner: null };
-}
-export { _jsx as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_new_arrow_check.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_new_arrow_check.js
deleted file mode 100644
index 0651b3c5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_new_arrow_check.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _new_arrow_check(innerThis, boundThis) {
- if (innerThis !== boundThis) throw new TypeError("Cannot instantiate an arrow function");
-}
-export { _new_arrow_check as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_rest.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_rest.js
deleted file mode 100644
index b41d9c23..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_rest.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _non_iterable_rest() {
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-export { _non_iterable_rest as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_spread.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_spread.js
deleted file mode 100644
index fd7b50e7..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_non_iterable_spread.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _non_iterable_spread() {
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
-}
-export { _non_iterable_spread as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_destructuring_empty.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_destructuring_empty.js
deleted file mode 100644
index 97a6dd75..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_destructuring_empty.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _object_destructuring_empty(o) {
- if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
-
- return o;
-}
-export { _object_destructuring_empty as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_spread.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_spread.js
deleted file mode 100644
index a71c747f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_spread.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { _ as _define_property } from "./_define_property.js";
-
-function _object_spread(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i] != null ? arguments[i] : {};
- var ownKeys = Object.keys(source);
-
- if (typeof Object.getOwnPropertySymbols === "function") {
- ownKeys = ownKeys.concat(
- Object.getOwnPropertySymbols(source).filter(function(sym) {
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
- })
- );
- }
-
- ownKeys.forEach(function(key) {
- _define_property(target, key, source[key]);
- });
- }
-
- return target;
-}
-export { _object_spread as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_spread_props.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_spread_props.js
deleted file mode 100644
index 88593ee3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_spread_props.js
+++ /dev/null
@@ -1,28 +0,0 @@
-function ownKeys(object, enumerableOnly) {
- var keys = Object.keys(object);
-
- if (Object.getOwnPropertySymbols) {
- var symbols = Object.getOwnPropertySymbols(object);
- if (enumerableOnly) {
- symbols = symbols.filter(function(sym) {
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
- });
- }
- keys.push.apply(keys, symbols);
- }
-
- return keys;
-}
-function _object_spread_props(target, source) {
- source = source != null ? source : {};
-
- if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
- else {
- ownKeys(Object(source)).forEach(function(key) {
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
- });
- }
-
- return target;
-}
-export { _object_spread_props as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_without_properties.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_without_properties.js
deleted file mode 100644
index bb63487b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_without_properties.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { _ as _object_without_properties_loose } from "./_object_without_properties_loose.js";
-
-function _object_without_properties(source, excluded) {
- if (source == null) return {};
-
- var target = _object_without_properties_loose(source, excluded);
- var key, i;
-
- if (Object.getOwnPropertySymbols) {
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
- for (i = 0; i < sourceSymbolKeys.length; i++) {
- key = sourceSymbolKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
- target[key] = source[key];
- }
- }
-
- return target;
-}
-export { _object_without_properties as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_without_properties_loose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_without_properties_loose.js
deleted file mode 100644
index db7b040e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_object_without_properties_loose.js
+++ /dev/null
@@ -1,16 +0,0 @@
-function _object_without_properties_loose(source, excluded) {
- if (source == null) return {};
-
- var target = {};
- var sourceKeys = Object.keys(source);
- var key, i;
-
- for (i = 0; i < sourceKeys.length; i++) {
- key = sourceKeys[i];
- if (excluded.indexOf(key) >= 0) continue;
- target[key] = source[key];
- }
-
- return target;
-}
-export { _object_without_properties_loose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_possible_constructor_return.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_possible_constructor_return.js
deleted file mode 100644
index b07f3907..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_possible_constructor_return.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _assert_this_initialized } from "./_assert_this_initialized.js";
-import { _ as _type_of } from "./_type_of.js";
-
-function _possible_constructor_return(self, call) {
- if (call && (_type_of(call) === "object" || typeof call === "function")) return call;
-
- return _assert_this_initialized(self);
-}
-export { _possible_constructor_return as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_read_only_error.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_read_only_error.js
deleted file mode 100644
index 4b63ee3e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_read_only_error.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _read_only_error(name) {
- throw new TypeError("\"" + name + "\" is read-only");
-}
-export { _read_only_error as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set.js
deleted file mode 100644
index 15dc2f1b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { _ as _define_property } from "./_define_property.js";
-import { _ as _super_prop_base } from "./_super_prop_base.js";
-
-function set(target, property, value, receiver) {
- if (typeof Reflect !== "undefined" && Reflect.set) set = Reflect.set;
- else {
- set = function set(target, property, value, receiver) {
- var base = _super_prop_base(target, property);
- var desc;
- if (base) {
- desc = Object.getOwnPropertyDescriptor(base, property);
- if (desc.set) {
- desc.set.call(receiver, value);
-
- return true;
- } else if (!desc.writable) {
- return false;
- }
- }
- desc = Object.getOwnPropertyDescriptor(receiver, property);
- if (desc) {
- if (!desc.writable) return false;
- desc.value = value;
- Object.defineProperty(receiver, property, desc);
- } else {
- _define_property(receiver, property, value);
- }
-
- return true;
- };
- }
-
- return set(target, property, value, receiver);
-}
-
-function _set(target, property, value, receiver, isStrict) {
- var s = set(target, property, value, receiver || target);
- if (!s && isStrict) throw new Error("failed to set property");
-
- return value;
-}
-export { _set as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js
deleted file mode 100644
index 6a1f4df4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function _set_prototype_of(o, p) {
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
- o.__proto__ = p;
-
- return o;
- };
-
- return _set_prototype_of(o, p);
-}
-export { _set_prototype_of as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_skip_first_generator_next.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_skip_first_generator_next.js
deleted file mode 100644
index 1ccf4890..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_skip_first_generator_next.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function _skip_first_generator_next(fn) {
- return function() {
- var it = fn.apply(this, arguments);
- it.next();
-
- return it;
- };
-}
-export { _skip_first_generator_next as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_sliced_to_array.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_sliced_to_array.js
deleted file mode 100644
index 750c3019..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_sliced_to_array.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _array_with_holes } from "./_array_with_holes.js";
-import { _ as _iterable_to_array_limit } from "./_iterable_to_array_limit.js";
-import { _ as _non_iterable_rest } from "./_non_iterable_rest.js";
-import { _ as _unsupported_iterable_to_array } from "./_unsupported_iterable_to_array.js";
-
-function _sliced_to_array(arr, i) {
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
-}
-export { _sliced_to_array as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_sliced_to_array_loose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_sliced_to_array_loose.js
deleted file mode 100644
index 859de45d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_sliced_to_array_loose.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _array_with_holes } from "./_array_with_holes.js";
-import { _ as _iterable_to_array_limit_loose } from "./_iterable_to_array_limit_loose.js";
-import { _ as _non_iterable_rest } from "./_non_iterable_rest.js";
-import { _ as _unsupported_iterable_to_array } from "./_unsupported_iterable_to_array.js";
-
-function _sliced_to_array_loose(arr, i) {
- return _array_with_holes(arr) || _iterable_to_array_limit_loose(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
-}
-export { _sliced_to_array_loose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_super_prop_base.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_super_prop_base.js
deleted file mode 100644
index 47dec411..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_super_prop_base.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { _ as _get_prototype_of } from "./_get_prototype_of.js";
-
-function _super_prop_base(object, property) {
- while (!Object.prototype.hasOwnProperty.call(object, property)) {
- object = _get_prototype_of(object);
- if (object === null) break;
- }
-
- return object;
-}
-export { _super_prop_base as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_tagged_template_literal.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_tagged_template_literal.js
deleted file mode 100644
index 429cc779..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_tagged_template_literal.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _tagged_template_literal(strings, raw) {
- if (!raw) raw = strings.slice(0);
-
- return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } }));
-}
-export { _tagged_template_literal as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js
deleted file mode 100644
index 1fbb61e6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function _tagged_template_literal_loose(strings, raw) {
- if (!raw) raw = strings.slice(0);
-
- strings.raw = raw;
-
- return strings;
-}
-export { _tagged_template_literal_loose as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_throw.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_throw.js
deleted file mode 100644
index 5de41f16..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_throw.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _throw(e) {
- throw e;
-}
-export { _throw as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_array.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_array.js
deleted file mode 100644
index 7451fb2a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_array.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _array_with_holes } from "./_array_with_holes.js";
-import { _ as _iterable_to_array } from "./_iterable_to_array.js";
-import { _ as _non_iterable_rest } from "./_non_iterable_rest.js";
-import { _ as _unsupported_iterable_to_array } from "./_unsupported_iterable_to_array.js";
-
-function _to_array(arr) {
- return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
-}
-export { _to_array as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_consumable_array.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_consumable_array.js
deleted file mode 100644
index 048ad6e2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_consumable_array.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _array_without_holes } from "./_array_without_holes.js";
-import { _ as _iterable_to_array } from "./_iterable_to_array.js";
-import { _ as _non_iterable_spread } from "./_non_iterable_spread.js";
-import { _ as _unsupported_iterable_to_array } from "./_unsupported_iterable_to_array.js";
-
-function _to_consumable_array(arr) {
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
-}
-export { _to_consumable_array as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_primitive.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_primitive.js
deleted file mode 100644
index 7c8e4255..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_primitive.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { _ as _type_of } from "./_type_of.js";
-
-function _to_primitive(input, hint) {
- if (_type_of(input) !== "object" || input === null) return input;
-
- var prim = input[Symbol.toPrimitive];
-
- if (prim !== undefined) {
- var res = prim.call(input, hint || "default");
- if (_type_of(res) !== "object") return res;
- throw new TypeError("@@toPrimitive must return a primitive value.");
- }
-
- return (hint === "string" ? String : Number)(input);
-}
-export { _to_primitive as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_property_key.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_property_key.js
deleted file mode 100644
index b6f8d38e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_to_property_key.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { _ as _to_primitive } from "./_to_primitive.js";
-import { _ as _type_of } from "./_type_of.js";
-
-function _to_property_key(arg) {
- var key = _to_primitive(arg, "string");
-
- return _type_of(key) === "symbol" ? key : String(key);
-}
-export { _to_property_key as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_add_disposable_resource.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_add_disposable_resource.js
deleted file mode 100644
index 62fd1cb3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_add_disposable_resource.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __addDisposableResource as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_decorate.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_decorate.js
deleted file mode 100644
index 8e0e46e6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_decorate.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __decorate as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_dispose_resources.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_dispose_resources.js
deleted file mode 100644
index 5d06d4a5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_dispose_resources.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __disposeResources as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_generator.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_generator.js
deleted file mode 100644
index dfe3b633..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_generator.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __generator as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_metadata.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_metadata.js
deleted file mode 100644
index 0aa522ed..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_metadata.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __metadata as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_param.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_param.js
deleted file mode 100644
index f332a403..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_param.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __param as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_values.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_values.js
deleted file mode 100644
index 298fd4b5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_ts_values.js
+++ /dev/null
@@ -1 +0,0 @@
-export { __values as _ } from "tslib";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_type_of.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_type_of.js
deleted file mode 100644
index dc7b859b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_type_of.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function _type_of(obj) {
- "@swc/helpers - typeof";
-
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
-}
-export { _type_of as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js
deleted file mode 100644
index 47ce8581..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { _ as _array_like_to_array } from "./_array_like_to_array.js";
-
-function _unsupported_iterable_to_array(o, minLen) {
- if (!o) return;
- if (typeof o === "string") return _array_like_to_array(o, minLen);
-
- var n = Object.prototype.toString.call(o).slice(8, -1);
-
- if (n === "Object" && o.constructor) n = o.constructor.name;
- if (n === "Map" || n === "Set") return Array.from(n);
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
-}
-export { _unsupported_iterable_to_array as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_update.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_update.js
deleted file mode 100644
index 86a7d688..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_update.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { _ as _get } from "./_get.js";
-import { _ as _set } from "./_set.js";
-
-function _update(target, property, receiver, isStrict) {
- return {
- get _() {
- return _get(target, property, receiver);
- },
- set _(value) {
- _set(target, property, value, receiver, isStrict);
- }
- };
-}
-export { _update as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_using.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_using.js
deleted file mode 100644
index b46fe691..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_using.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* @minVersion 7.22.0 */
-
-function _using(stack, value, isAwait) {
- if (value === null || value === void 0) return value;
- if (Object(value) !== value) {
- throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
- }
- // core-js-pure uses Symbol.for for polyfilling well-known symbols
- if (isAwait) {
- var dispose = value[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")];
- }
- if (dispose === null || dispose === void 0) {
- dispose = value[Symbol.dispose || Symbol.for("Symbol.dispose")];
- }
- if (typeof dispose !== "function") {
- throw new TypeError(`Property [Symbol.dispose] is not a function.`);
- }
- stack.push({ v: value, d: dispose, a: isAwait });
- return value;
-}
-
-export { _using as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_using_ctx.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_using_ctx.js
deleted file mode 100644
index b94ad75b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_using_ctx.js
+++ /dev/null
@@ -1,73 +0,0 @@
-function _using_ctx() {
- var _disposeSuppressedError = typeof SuppressedError === "function"
- // eslint-disable-next-line no-undef
- ? SuppressedError
- : (function(error, suppressed) {
- var err = new Error();
- err.name = "SuppressedError";
- err.suppressed = suppressed;
- err.error = error;
- return err;
- }),
- empty = {},
- stack = [];
- function using(isAwait, value) {
- if (value != null) {
- if (Object(value) !== value) {
- throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
- }
- // core-js-pure uses Symbol.for for polyfilling well-known symbols
- if (isAwait) {
- var dispose = value[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")];
- }
- if (dispose == null) {
- dispose = value[Symbol.dispose || Symbol.for("Symbol.dispose")];
- }
- if (typeof dispose !== "function") {
- throw new TypeError(`Property [Symbol.dispose] is not a function.`);
- }
- stack.push({ v: value, d: dispose, a: isAwait });
- } else if (isAwait) {
- // provide the nullish `value` as `d` for minification gain
- stack.push({ d: value, a: isAwait });
- }
- return value;
- }
- return {
- // error
- e: empty,
- // using
- u: using.bind(null, false),
- // await using
- a: using.bind(null, true),
- // dispose
- d: function() {
- var error = this.e;
-
- function next() {
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
- while ((resource = stack.pop())) {
- try {
- var resource, disposalResult = resource.d && resource.d.call(resource.v);
- if (resource.a) {
- return Promise.resolve(disposalResult).then(next, err);
- }
- } catch (e) {
- return err(e);
- }
- }
- if (error !== empty) throw error;
- }
-
- function err(e) {
- error = error !== empty ? new _disposeSuppressedError(error, e) : e;
-
- return next();
- }
-
- return next();
- }
- };
-}
-
-export { _using_ctx as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_async_generator.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_async_generator.js
deleted file mode 100644
index b9557403..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_async_generator.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { _ as _async_generator } from "./_async_generator.js";
-
-function _wrap_async_generator(fn) {
- return function() {
- return new _async_generator(fn.apply(this, arguments));
- };
-}
-export { _wrap_async_generator as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js
deleted file mode 100644
index e942eb5d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import { _ as _construct } from "./_construct.js";
-import { _ as _get_prototype_of } from "./_get_prototype_of.js";
-import { _ as _is_native_function } from "./_is_native_function.js";
-import { _ as _set_prototype_of } from "./_set_prototype_of.js";
-
-function _wrap_native_super(Class) {
- var _cache = typeof Map === "function" ? new Map() : undefined;
- _wrap_native_super = function(Class) {
- if (Class === null || !_is_native_function(Class)) return Class;
- if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function");
- if (typeof _cache !== "undefined") {
- if (_cache.has(Class)) return _cache.get(Class);
- _cache.set(Class, Wrapper);
- }
-
- function Wrapper() {
- return _construct(Class, arguments, _get_prototype_of(this).constructor);
- }
- Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });
-
- return _set_prototype_of(Wrapper, Class);
- };
-
- return _wrap_native_super(Class);
-}
-export { _wrap_native_super as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_write_only_error.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_write_only_error.js
deleted file mode 100644
index 87c24aa0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_write_only_error.js
+++ /dev/null
@@ -1,4 +0,0 @@
-function _write_only_error(name) {
- throw new TypeError("\"" + name + "\" is write-only");
-}
-export { _write_only_error as _ };
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/index.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/index.js
deleted file mode 100644
index fe511005..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/index.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/* This file is automatically generated and should not be manually edited. */
-/* To modify this file, please run the `npm run build` command instead. */
-
-export { _ as _apply_decorated_descriptor } from "./_apply_decorated_descriptor.js";
-export { _ as _apply_decs_2203_r } from "./_apply_decs_2203_r.js";
-export { _ as _array_like_to_array } from "./_array_like_to_array.js";
-export { _ as _array_with_holes } from "./_array_with_holes.js";
-export { _ as _array_without_holes } from "./_array_without_holes.js";
-export { _ as _assert_this_initialized } from "./_assert_this_initialized.js";
-export { _ as _async_generator } from "./_async_generator.js";
-export { _ as _async_generator_delegate } from "./_async_generator_delegate.js";
-export { _ as _async_iterator } from "./_async_iterator.js";
-export { _ as _async_to_generator } from "./_async_to_generator.js";
-export { _ as _await_async_generator } from "./_await_async_generator.js";
-export { _ as _await_value } from "./_await_value.js";
-export { _ as _call_super } from "./_call_super.js";
-export { _ as _check_private_redeclaration } from "./_check_private_redeclaration.js";
-export { _ as _class_apply_descriptor_destructure } from "./_class_apply_descriptor_destructure.js";
-export { _ as _class_apply_descriptor_get } from "./_class_apply_descriptor_get.js";
-export { _ as _class_apply_descriptor_set } from "./_class_apply_descriptor_set.js";
-export { _ as _class_apply_descriptor_update } from "./_class_apply_descriptor_update.js";
-export { _ as _class_call_check } from "./_class_call_check.js";
-export { _ as _class_check_private_static_access } from "./_class_check_private_static_access.js";
-export { _ as _class_check_private_static_field_descriptor } from "./_class_check_private_static_field_descriptor.js";
-export { _ as _class_extract_field_descriptor } from "./_class_extract_field_descriptor.js";
-export { _ as _class_name_tdz_error } from "./_class_name_tdz_error.js";
-export { _ as _class_private_field_destructure } from "./_class_private_field_destructure.js";
-export { _ as _class_private_field_get } from "./_class_private_field_get.js";
-export { _ as _class_private_field_init } from "./_class_private_field_init.js";
-export { _ as _class_private_field_loose_base } from "./_class_private_field_loose_base.js";
-export { _ as _class_private_field_loose_key } from "./_class_private_field_loose_key.js";
-export { _ as _class_private_field_set } from "./_class_private_field_set.js";
-export { _ as _class_private_field_update } from "./_class_private_field_update.js";
-export { _ as _class_private_method_get } from "./_class_private_method_get.js";
-export { _ as _class_private_method_init } from "./_class_private_method_init.js";
-export { _ as _class_private_method_set } from "./_class_private_method_set.js";
-export { _ as _class_static_private_field_destructure } from "./_class_static_private_field_destructure.js";
-export { _ as _class_static_private_field_spec_get } from "./_class_static_private_field_spec_get.js";
-export { _ as _class_static_private_field_spec_set } from "./_class_static_private_field_spec_set.js";
-export { _ as _class_static_private_field_update } from "./_class_static_private_field_update.js";
-export { _ as _class_static_private_method_get } from "./_class_static_private_method_get.js";
-export { _ as _construct } from "./_construct.js";
-export { _ as _create_class } from "./_create_class.js";
-export { _ as _create_for_of_iterator_helper_loose } from "./_create_for_of_iterator_helper_loose.js";
-export { _ as _create_super } from "./_create_super.js";
-export { _ as _decorate } from "./_decorate.js";
-export { _ as _defaults } from "./_defaults.js";
-export { _ as _define_enumerable_properties } from "./_define_enumerable_properties.js";
-export { _ as _define_property } from "./_define_property.js";
-export { _ as _dispose } from "./_dispose.js";
-export { _ as _export_star } from "./_export_star.js";
-export { _ as _extends } from "./_extends.js";
-export { _ as _get } from "./_get.js";
-export { _ as _get_prototype_of } from "./_get_prototype_of.js";
-export { _ as _identity } from "./_identity.js";
-export { _ as _inherits } from "./_inherits.js";
-export { _ as _inherits_loose } from "./_inherits_loose.js";
-export { _ as _initializer_define_property } from "./_initializer_define_property.js";
-export { _ as _initializer_warning_helper } from "./_initializer_warning_helper.js";
-export { _ as _instanceof } from "./_instanceof.js";
-export { _ as _interop_require_default } from "./_interop_require_default.js";
-export { _ as _interop_require_wildcard } from "./_interop_require_wildcard.js";
-export { _ as _is_native_function } from "./_is_native_function.js";
-export { _ as _is_native_reflect_construct } from "./_is_native_reflect_construct.js";
-export { _ as _iterable_to_array } from "./_iterable_to_array.js";
-export { _ as _iterable_to_array_limit } from "./_iterable_to_array_limit.js";
-export { _ as _iterable_to_array_limit_loose } from "./_iterable_to_array_limit_loose.js";
-export { _ as _jsx } from "./_jsx.js";
-export { _ as _new_arrow_check } from "./_new_arrow_check.js";
-export { _ as _non_iterable_rest } from "./_non_iterable_rest.js";
-export { _ as _non_iterable_spread } from "./_non_iterable_spread.js";
-export { _ as _object_destructuring_empty } from "./_object_destructuring_empty.js";
-export { _ as _object_spread } from "./_object_spread.js";
-export { _ as _object_spread_props } from "./_object_spread_props.js";
-export { _ as _object_without_properties } from "./_object_without_properties.js";
-export { _ as _object_without_properties_loose } from "./_object_without_properties_loose.js";
-export { _ as _possible_constructor_return } from "./_possible_constructor_return.js";
-export { _ as _read_only_error } from "./_read_only_error.js";
-export { _ as _set } from "./_set.js";
-export { _ as _set_prototype_of } from "./_set_prototype_of.js";
-export { _ as _skip_first_generator_next } from "./_skip_first_generator_next.js";
-export { _ as _sliced_to_array } from "./_sliced_to_array.js";
-export { _ as _sliced_to_array_loose } from "./_sliced_to_array_loose.js";
-export { _ as _super_prop_base } from "./_super_prop_base.js";
-export { _ as _tagged_template_literal } from "./_tagged_template_literal.js";
-export { _ as _tagged_template_literal_loose } from "./_tagged_template_literal_loose.js";
-export { _ as _throw } from "./_throw.js";
-export { _ as _to_array } from "./_to_array.js";
-export { _ as _to_consumable_array } from "./_to_consumable_array.js";
-export { _ as _to_primitive } from "./_to_primitive.js";
-export { _ as _to_property_key } from "./_to_property_key.js";
-export { _ as _ts_add_disposable_resource } from "./_ts_add_disposable_resource.js";
-export { _ as _ts_decorate } from "./_ts_decorate.js";
-export { _ as _ts_dispose_resources } from "./_ts_dispose_resources.js";
-export { _ as _ts_generator } from "./_ts_generator.js";
-export { _ as _ts_metadata } from "./_ts_metadata.js";
-export { _ as _ts_param } from "./_ts_param.js";
-export { _ as _ts_values } from "./_ts_values.js";
-export { _ as _type_of } from "./_type_of.js";
-export { _ as _unsupported_iterable_to_array } from "./_unsupported_iterable_to_array.js";
-export { _ as _update } from "./_update.js";
-export { _ as _using } from "./_using.js";
-export { _ as _using_ctx } from "./_using_ctx.js";
-export { _ as _wrap_async_generator } from "./_wrap_async_generator.js";
-export { _ as _wrap_native_super } from "./_wrap_native_super.js";
-export { _ as _write_only_error } from "./_write_only_error.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/package.json b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/package.json
deleted file mode 100644
index c8472759..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/package.json
+++ /dev/null
@@ -1,471 +0,0 @@
-{
- "name": "@swc/helpers",
- "packageManager": "yarn@4.0.2",
- "version": "0.5.15",
- "description": "External helpers for the swc project.",
- "module": "esm/index.js",
- "main": "cjs/index.cjs",
- "sideEffects": false,
- "scripts": {
- "build": "zx ./scripts/build.js",
- "prepack": "zx ./scripts/build.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/swc-project/swc.git"
- },
- "publishConfig": {
- "registry": "https://registry.npmjs.org/",
- "access": "public"
- },
- "keywords": [
- "swc",
- "helpers"
- ],
- "author": "강동윤 ",
- "license": "Apache-2.0",
- "bugs": {
- "url": "https://github.com/swc-project/swc/issues"
- },
- "homepage": "https://swc.rs",
- "type": "module",
- "devDependencies": {
- "@ast-grep/napi": "^0.3.1",
- "dprint": "^0.35.3",
- "magic-string": "^0.30.0",
- "zx": "^7.2.1"
- },
- "dependencies": {
- "tslib": "^2.8.0"
- },
- "exports": {
- "./package.json": "./package.json",
- "./esm/*": "./esm/*",
- "./cjs/*": "./cjs/*",
- "./src/*": "./src/*",
- ".": {
- "import": "./esm/index.js",
- "default": "./cjs/index.cjs"
- },
- "./_": {
- "import": "./esm/index.js",
- "default": "./cjs/index.cjs"
- },
- "./_/_apply_decorated_descriptor": {
- "import": "./esm/_apply_decorated_descriptor.js",
- "default": "./cjs/_apply_decorated_descriptor.cjs"
- },
- "./_/_apply_decs_2203_r": {
- "import": "./esm/_apply_decs_2203_r.js",
- "default": "./cjs/_apply_decs_2203_r.cjs"
- },
- "./_/_array_like_to_array": {
- "import": "./esm/_array_like_to_array.js",
- "default": "./cjs/_array_like_to_array.cjs"
- },
- "./_/_array_with_holes": {
- "import": "./esm/_array_with_holes.js",
- "default": "./cjs/_array_with_holes.cjs"
- },
- "./_/_array_without_holes": {
- "import": "./esm/_array_without_holes.js",
- "default": "./cjs/_array_without_holes.cjs"
- },
- "./_/_assert_this_initialized": {
- "import": "./esm/_assert_this_initialized.js",
- "default": "./cjs/_assert_this_initialized.cjs"
- },
- "./_/_async_generator": {
- "import": "./esm/_async_generator.js",
- "default": "./cjs/_async_generator.cjs"
- },
- "./_/_async_generator_delegate": {
- "import": "./esm/_async_generator_delegate.js",
- "default": "./cjs/_async_generator_delegate.cjs"
- },
- "./_/_async_iterator": {
- "import": "./esm/_async_iterator.js",
- "default": "./cjs/_async_iterator.cjs"
- },
- "./_/_async_to_generator": {
- "import": "./esm/_async_to_generator.js",
- "default": "./cjs/_async_to_generator.cjs"
- },
- "./_/_await_async_generator": {
- "import": "./esm/_await_async_generator.js",
- "default": "./cjs/_await_async_generator.cjs"
- },
- "./_/_await_value": {
- "import": "./esm/_await_value.js",
- "default": "./cjs/_await_value.cjs"
- },
- "./_/_call_super": {
- "import": "./esm/_call_super.js",
- "default": "./cjs/_call_super.cjs"
- },
- "./_/_check_private_redeclaration": {
- "import": "./esm/_check_private_redeclaration.js",
- "default": "./cjs/_check_private_redeclaration.cjs"
- },
- "./_/_class_apply_descriptor_destructure": {
- "import": "./esm/_class_apply_descriptor_destructure.js",
- "default": "./cjs/_class_apply_descriptor_destructure.cjs"
- },
- "./_/_class_apply_descriptor_get": {
- "import": "./esm/_class_apply_descriptor_get.js",
- "default": "./cjs/_class_apply_descriptor_get.cjs"
- },
- "./_/_class_apply_descriptor_set": {
- "import": "./esm/_class_apply_descriptor_set.js",
- "default": "./cjs/_class_apply_descriptor_set.cjs"
- },
- "./_/_class_apply_descriptor_update": {
- "import": "./esm/_class_apply_descriptor_update.js",
- "default": "./cjs/_class_apply_descriptor_update.cjs"
- },
- "./_/_class_call_check": {
- "import": "./esm/_class_call_check.js",
- "default": "./cjs/_class_call_check.cjs"
- },
- "./_/_class_check_private_static_access": {
- "import": "./esm/_class_check_private_static_access.js",
- "default": "./cjs/_class_check_private_static_access.cjs"
- },
- "./_/_class_check_private_static_field_descriptor": {
- "import": "./esm/_class_check_private_static_field_descriptor.js",
- "default": "./cjs/_class_check_private_static_field_descriptor.cjs"
- },
- "./_/_class_extract_field_descriptor": {
- "import": "./esm/_class_extract_field_descriptor.js",
- "default": "./cjs/_class_extract_field_descriptor.cjs"
- },
- "./_/_class_name_tdz_error": {
- "import": "./esm/_class_name_tdz_error.js",
- "default": "./cjs/_class_name_tdz_error.cjs"
- },
- "./_/_class_private_field_destructure": {
- "import": "./esm/_class_private_field_destructure.js",
- "default": "./cjs/_class_private_field_destructure.cjs"
- },
- "./_/_class_private_field_get": {
- "import": "./esm/_class_private_field_get.js",
- "default": "./cjs/_class_private_field_get.cjs"
- },
- "./_/_class_private_field_init": {
- "import": "./esm/_class_private_field_init.js",
- "default": "./cjs/_class_private_field_init.cjs"
- },
- "./_/_class_private_field_loose_base": {
- "import": "./esm/_class_private_field_loose_base.js",
- "default": "./cjs/_class_private_field_loose_base.cjs"
- },
- "./_/_class_private_field_loose_key": {
- "import": "./esm/_class_private_field_loose_key.js",
- "default": "./cjs/_class_private_field_loose_key.cjs"
- },
- "./_/_class_private_field_set": {
- "import": "./esm/_class_private_field_set.js",
- "default": "./cjs/_class_private_field_set.cjs"
- },
- "./_/_class_private_field_update": {
- "import": "./esm/_class_private_field_update.js",
- "default": "./cjs/_class_private_field_update.cjs"
- },
- "./_/_class_private_method_get": {
- "import": "./esm/_class_private_method_get.js",
- "default": "./cjs/_class_private_method_get.cjs"
- },
- "./_/_class_private_method_init": {
- "import": "./esm/_class_private_method_init.js",
- "default": "./cjs/_class_private_method_init.cjs"
- },
- "./_/_class_private_method_set": {
- "import": "./esm/_class_private_method_set.js",
- "default": "./cjs/_class_private_method_set.cjs"
- },
- "./_/_class_static_private_field_destructure": {
- "import": "./esm/_class_static_private_field_destructure.js",
- "default": "./cjs/_class_static_private_field_destructure.cjs"
- },
- "./_/_class_static_private_field_spec_get": {
- "import": "./esm/_class_static_private_field_spec_get.js",
- "default": "./cjs/_class_static_private_field_spec_get.cjs"
- },
- "./_/_class_static_private_field_spec_set": {
- "import": "./esm/_class_static_private_field_spec_set.js",
- "default": "./cjs/_class_static_private_field_spec_set.cjs"
- },
- "./_/_class_static_private_field_update": {
- "import": "./esm/_class_static_private_field_update.js",
- "default": "./cjs/_class_static_private_field_update.cjs"
- },
- "./_/_class_static_private_method_get": {
- "import": "./esm/_class_static_private_method_get.js",
- "default": "./cjs/_class_static_private_method_get.cjs"
- },
- "./_/_construct": {
- "import": "./esm/_construct.js",
- "default": "./cjs/_construct.cjs"
- },
- "./_/_create_class": {
- "import": "./esm/_create_class.js",
- "default": "./cjs/_create_class.cjs"
- },
- "./_/_create_for_of_iterator_helper_loose": {
- "import": "./esm/_create_for_of_iterator_helper_loose.js",
- "default": "./cjs/_create_for_of_iterator_helper_loose.cjs"
- },
- "./_/_create_super": {
- "import": "./esm/_create_super.js",
- "default": "./cjs/_create_super.cjs"
- },
- "./_/_decorate": {
- "import": "./esm/_decorate.js",
- "default": "./cjs/_decorate.cjs"
- },
- "./_/_defaults": {
- "import": "./esm/_defaults.js",
- "default": "./cjs/_defaults.cjs"
- },
- "./_/_define_enumerable_properties": {
- "import": "./esm/_define_enumerable_properties.js",
- "default": "./cjs/_define_enumerable_properties.cjs"
- },
- "./_/_define_property": {
- "import": "./esm/_define_property.js",
- "default": "./cjs/_define_property.cjs"
- },
- "./_/_dispose": {
- "import": "./esm/_dispose.js",
- "default": "./cjs/_dispose.cjs"
- },
- "./_/_export_star": {
- "import": "./esm/_export_star.js",
- "default": "./cjs/_export_star.cjs"
- },
- "./_/_extends": {
- "import": "./esm/_extends.js",
- "default": "./cjs/_extends.cjs"
- },
- "./_/_get": {
- "import": "./esm/_get.js",
- "default": "./cjs/_get.cjs"
- },
- "./_/_get_prototype_of": {
- "import": "./esm/_get_prototype_of.js",
- "default": "./cjs/_get_prototype_of.cjs"
- },
- "./_/_identity": {
- "import": "./esm/_identity.js",
- "default": "./cjs/_identity.cjs"
- },
- "./_/_inherits": {
- "import": "./esm/_inherits.js",
- "default": "./cjs/_inherits.cjs"
- },
- "./_/_inherits_loose": {
- "import": "./esm/_inherits_loose.js",
- "default": "./cjs/_inherits_loose.cjs"
- },
- "./_/_initializer_define_property": {
- "import": "./esm/_initializer_define_property.js",
- "default": "./cjs/_initializer_define_property.cjs"
- },
- "./_/_initializer_warning_helper": {
- "import": "./esm/_initializer_warning_helper.js",
- "default": "./cjs/_initializer_warning_helper.cjs"
- },
- "./_/_instanceof": {
- "import": "./esm/_instanceof.js",
- "default": "./cjs/_instanceof.cjs"
- },
- "./_/_interop_require_default": {
- "import": "./esm/_interop_require_default.js",
- "default": "./cjs/_interop_require_default.cjs"
- },
- "./_/_interop_require_wildcard": {
- "import": "./esm/_interop_require_wildcard.js",
- "default": "./cjs/_interop_require_wildcard.cjs"
- },
- "./_/_is_native_function": {
- "import": "./esm/_is_native_function.js",
- "default": "./cjs/_is_native_function.cjs"
- },
- "./_/_is_native_reflect_construct": {
- "import": "./esm/_is_native_reflect_construct.js",
- "default": "./cjs/_is_native_reflect_construct.cjs"
- },
- "./_/_iterable_to_array": {
- "import": "./esm/_iterable_to_array.js",
- "default": "./cjs/_iterable_to_array.cjs"
- },
- "./_/_iterable_to_array_limit": {
- "import": "./esm/_iterable_to_array_limit.js",
- "default": "./cjs/_iterable_to_array_limit.cjs"
- },
- "./_/_iterable_to_array_limit_loose": {
- "import": "./esm/_iterable_to_array_limit_loose.js",
- "default": "./cjs/_iterable_to_array_limit_loose.cjs"
- },
- "./_/_jsx": {
- "import": "./esm/_jsx.js",
- "default": "./cjs/_jsx.cjs"
- },
- "./_/_new_arrow_check": {
- "import": "./esm/_new_arrow_check.js",
- "default": "./cjs/_new_arrow_check.cjs"
- },
- "./_/_non_iterable_rest": {
- "import": "./esm/_non_iterable_rest.js",
- "default": "./cjs/_non_iterable_rest.cjs"
- },
- "./_/_non_iterable_spread": {
- "import": "./esm/_non_iterable_spread.js",
- "default": "./cjs/_non_iterable_spread.cjs"
- },
- "./_/_object_destructuring_empty": {
- "import": "./esm/_object_destructuring_empty.js",
- "default": "./cjs/_object_destructuring_empty.cjs"
- },
- "./_/_object_spread": {
- "import": "./esm/_object_spread.js",
- "default": "./cjs/_object_spread.cjs"
- },
- "./_/_object_spread_props": {
- "import": "./esm/_object_spread_props.js",
- "default": "./cjs/_object_spread_props.cjs"
- },
- "./_/_object_without_properties": {
- "import": "./esm/_object_without_properties.js",
- "default": "./cjs/_object_without_properties.cjs"
- },
- "./_/_object_without_properties_loose": {
- "import": "./esm/_object_without_properties_loose.js",
- "default": "./cjs/_object_without_properties_loose.cjs"
- },
- "./_/_possible_constructor_return": {
- "import": "./esm/_possible_constructor_return.js",
- "default": "./cjs/_possible_constructor_return.cjs"
- },
- "./_/_read_only_error": {
- "import": "./esm/_read_only_error.js",
- "default": "./cjs/_read_only_error.cjs"
- },
- "./_/_set": {
- "import": "./esm/_set.js",
- "default": "./cjs/_set.cjs"
- },
- "./_/_set_prototype_of": {
- "import": "./esm/_set_prototype_of.js",
- "default": "./cjs/_set_prototype_of.cjs"
- },
- "./_/_skip_first_generator_next": {
- "import": "./esm/_skip_first_generator_next.js",
- "default": "./cjs/_skip_first_generator_next.cjs"
- },
- "./_/_sliced_to_array": {
- "import": "./esm/_sliced_to_array.js",
- "default": "./cjs/_sliced_to_array.cjs"
- },
- "./_/_sliced_to_array_loose": {
- "import": "./esm/_sliced_to_array_loose.js",
- "default": "./cjs/_sliced_to_array_loose.cjs"
- },
- "./_/_super_prop_base": {
- "import": "./esm/_super_prop_base.js",
- "default": "./cjs/_super_prop_base.cjs"
- },
- "./_/_tagged_template_literal": {
- "import": "./esm/_tagged_template_literal.js",
- "default": "./cjs/_tagged_template_literal.cjs"
- },
- "./_/_tagged_template_literal_loose": {
- "import": "./esm/_tagged_template_literal_loose.js",
- "default": "./cjs/_tagged_template_literal_loose.cjs"
- },
- "./_/_throw": {
- "import": "./esm/_throw.js",
- "default": "./cjs/_throw.cjs"
- },
- "./_/_to_array": {
- "import": "./esm/_to_array.js",
- "default": "./cjs/_to_array.cjs"
- },
- "./_/_to_consumable_array": {
- "import": "./esm/_to_consumable_array.js",
- "default": "./cjs/_to_consumable_array.cjs"
- },
- "./_/_to_primitive": {
- "import": "./esm/_to_primitive.js",
- "default": "./cjs/_to_primitive.cjs"
- },
- "./_/_to_property_key": {
- "import": "./esm/_to_property_key.js",
- "default": "./cjs/_to_property_key.cjs"
- },
- "./_/_ts_add_disposable_resource": {
- "import": "./esm/_ts_add_disposable_resource.js",
- "default": "./cjs/_ts_add_disposable_resource.cjs"
- },
- "./_/_ts_decorate": {
- "import": "./esm/_ts_decorate.js",
- "default": "./cjs/_ts_decorate.cjs"
- },
- "./_/_ts_dispose_resources": {
- "import": "./esm/_ts_dispose_resources.js",
- "default": "./cjs/_ts_dispose_resources.cjs"
- },
- "./_/_ts_generator": {
- "import": "./esm/_ts_generator.js",
- "default": "./cjs/_ts_generator.cjs"
- },
- "./_/_ts_metadata": {
- "import": "./esm/_ts_metadata.js",
- "default": "./cjs/_ts_metadata.cjs"
- },
- "./_/_ts_param": {
- "import": "./esm/_ts_param.js",
- "default": "./cjs/_ts_param.cjs"
- },
- "./_/_ts_values": {
- "import": "./esm/_ts_values.js",
- "default": "./cjs/_ts_values.cjs"
- },
- "./_/_type_of": {
- "import": "./esm/_type_of.js",
- "default": "./cjs/_type_of.cjs"
- },
- "./_/_unsupported_iterable_to_array": {
- "import": "./esm/_unsupported_iterable_to_array.js",
- "default": "./cjs/_unsupported_iterable_to_array.cjs"
- },
- "./_/_update": {
- "import": "./esm/_update.js",
- "default": "./cjs/_update.cjs"
- },
- "./_/_using": {
- "import": "./esm/_using.js",
- "default": "./cjs/_using.cjs"
- },
- "./_/_using_ctx": {
- "import": "./esm/_using_ctx.js",
- "default": "./cjs/_using_ctx.cjs"
- },
- "./_/_wrap_async_generator": {
- "import": "./esm/_wrap_async_generator.js",
- "default": "./cjs/_wrap_async_generator.cjs"
- },
- "./_/_wrap_native_super": {
- "import": "./esm/_wrap_native_super.js",
- "default": "./cjs/_wrap_native_super.cjs"
- },
- "./_/_write_only_error": {
- "import": "./esm/_write_only_error.js",
- "default": "./cjs/_write_only_error.cjs"
- },
- "./_/index": {
- "import": "./esm/index.js",
- "default": "./cjs/index.cjs"
- }
- }
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/ast_grep.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/ast_grep.js
deleted file mode 100644
index 30bc1c26..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/ast_grep.js
+++ /dev/null
@@ -1,229 +0,0 @@
-import { parseFiles } from "@ast-grep/napi";
-import MagicString from "magic-string";
-import { chalk, fs, path } from "zx";
-import { errors } from "./errors.js";
-import { root } from "./utils.js";
-
-/**
- * @typedef {import("@ast-grep/napi").SgNode} SgNode
- */
-
-export function ast_grep() {
- const task_queue = [];
-
- const task = parseFiles([root("esm")], (err, tree) => {
- const filename = path.basename(tree.filename(), ".js");
- if (filename === "index") {
- return;
- }
-
- const source = new MagicString(tree.root().text());
- source.prepend(`"use strict";\n\n`);
-
- if (filename.startsWith("_ts")) {
- const match = tree.root().find(`export { $NAME as _ } from "tslib"`);
- if (match) {
- const name = match.getMatch("NAME").text();
-
- const range = match.range();
-
- source.update(
- range.start.index,
- range.end.index,
- `exports._ = require("tslib").${name};`,
- );
- task_queue.push(
- fs.writeFile(root("cjs", `${filename}.cjs`), source.toString(), {
- encoding: "utf-8",
- }),
- );
- } else {
- report_noexport(tree.filename());
- }
- return;
- }
-
- // rewrite export named function
- const match = tree.root().find({
- rule: {
- kind: "export_statement",
- pattern: "export { $FUNC as _ }",
- },
- });
-
- if (match) {
- const func = match.getMatch("FUNC");
- const func_name = func.text();
- if (func_name !== filename) {
- report_export_mismatch(tree.filename(), match);
- }
-
- const range = match.range();
- source.update(
- range.start.index,
- range.end.index,
- `exports._ = ${func_name};`,
- );
-
- // since we match the { export x as _ } pattern,
- // we need to find the assignment expression from the root
- tree
- .root()
- .findAll({
- rule: {
- pattern: func_name,
- kind: "identifier",
- inside: { kind: "assignment_expression", field: "left" },
- },
- })
- .forEach((match) => {
- const range = match.range();
-
- source.prependLeft(range.start.index, `exports._ = `);
- });
- } else {
- report_noexport(tree.filename(tree.filename()));
- }
-
- // rewrite import
- tree
- .root()
- .findAll({ rule: { pattern: `import { _ as $BINDING } from "$SOURCE"` } })
- .forEach((match) => {
- const import_binding = match.getMatch("BINDING").text();
- const import_source = match.getMatch("SOURCE").text();
-
- const import_basename = path.basename(import_source, ".js");
-
- if (import_binding !== import_basename) {
- report_import_mismatch(tree.filename(), match);
- }
-
- const range = match.range();
-
- source.update(
- range.start.index,
- range.end.index,
- `var ${import_binding} = require("./${import_binding}.cjs");`,
- );
-
- tree
- .root()
- .findAll({
- rule: {
- pattern: import_binding,
- kind: "identifier",
- inside: {
- not: {
- kind: "import_specifier",
- },
- },
- },
- })
- .forEach((match) => {
- const range = match.range();
- const ref_name = match.text();
-
- source.update(
- range.start.index,
- range.end.index,
- `${ref_name}._`,
- );
- });
- });
-
- task_queue.push(
- fs.writeFile(root("cjs", `${filename}.cjs`), source.toString(), {
- encoding: "utf-8",
- }),
- );
- });
-
- task_queue.push(task);
-
- return task_queue;
-}
-
-/**
- * @param {string} filename
- * @param {SgNode} match
- */
-function report_export_mismatch(filename, match) {
- const func = match.getMatch("FUNC");
- const func_range = func.range();
-
- const text = match.text().split("\n");
- const offset = func_range.start.line - match.range().start.line;
-
- text.splice(
- offset + 1,
- text.length,
- chalk.red(
- [
- " ".repeat(func_range.start.column),
- "^".repeat(func_range.end.column - func_range.start.column),
- ]
- .join(""),
- ),
- );
-
- errors.push(
- [
- `${chalk.bold.red("error")}: mismatch exported function name.`,
- "",
- `${chalk.blue("-->")} ${filename}:${func_range.start.line + 1}:${func_range.start.column + 1}`,
- "",
- ...text,
- "",
- `${
- chalk.bold(
- "note:",
- )
- } The exported name should be the same as the filename.`,
- "",
- ]
- .join("\n"),
- );
-}
-
-/**
- * @param {string} filename
- * @param {SgNode} match
- */
-function report_import_mismatch(filename, match) {
- const binding_range = match.getMatch("BINDING").range();
- const source_range = match.getMatch("SOURCE").range();
-
- errors.push(
- [
- `${chalk.bold.red("error")}: mismatch imported binding name.`,
- "",
- `${chalk.blue("-->")} ${filename}:${match.range().start.line + 1}`,
- "",
- match.text(),
- [
- " ".repeat(binding_range.start.column),
- chalk.red("^".repeat(binding_range.end.column - binding_range.start.column)),
- " ".repeat(source_range.start.column - binding_range.end.column),
- chalk.blue("-".repeat(source_range.end.column - source_range.start.column)),
- ]
- .join(""),
- `${
- chalk.bold(
- "note:",
- )
- } The imported binding name should be the same as the import source basename.`,
- "",
- ]
- .join("\n"),
- );
-}
-
-/**
- * @param {string} filename
- */
-function report_noexport(filename) {
- errors.push(
- [`${chalk.bold.red("error")}: exported name not found`, `${chalk.blue("-->")} ${filename}`].join("\n"),
- );
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/build.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/build.js
deleted file mode 100644
index 6857eab1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/build.js
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/env zx
-
-import { $, fs, glob } from "zx";
-import { ast_grep } from "./ast_grep.js";
-import { errors } from "./errors.js";
-import { root } from "./utils.js";
-
-// clear generated content
-await Promise.all([
- fs.remove(root("cjs")),
- fs.remove(root("_")),
- fs.remove(root("src")),
-]);
-
-let modules = await glob("*.js", { cwd: root("esm") });
-
-const task_queue = [];
-
-const NO_MODIFY = [
- "/* This file is automatically generated and should not be manually edited. */",
- "/* To modify this file, please run the `npm run build` command instead. */",
-];
-
-// generate index.js
-const indexESM = [...NO_MODIFY, ""];
-
-const indexCJS = [`"use strict";`, "", ...NO_MODIFY, ""];
-
-const cjs_export_list = [];
-const cjs_module_lexer = [];
-
-const main_package_json = fs.readJSONSync(root("package.json"));
-
-main_package_json.exports = {
- "./package.json": "./package.json",
- "./esm/*": "./esm/*",
- "./cjs/*": "./cjs/*",
- "./src/*": "./src/*",
- ".": { import: "./esm/index.js", default: "./cjs/index.cjs" },
- "./_": { import: "./esm/index.js", default: "./cjs/index.cjs" },
-};
-
-modules.forEach((p) => {
- const importBinding = p.slice(0, -3);
-
- main_package_json.exports[`./_/${importBinding}`] = {
- import: `./esm/${importBinding}.js`,
- default: `./cjs/${importBinding}.cjs`,
- };
-
- const alias_package = {
- main: `../../cjs/${importBinding}.cjs`,
- module: `../../esm/${importBinding}.js`,
- };
- task_queue.push(
- fs.outputJSON(root("_", importBinding, "package.json"), alias_package, {
- encoding: "utf-8",
- spaces: 4,
- }),
- );
-
- if (importBinding === "index") {
- return;
- }
-
- task_queue.push(
- fs.outputFile(root("src", `${importBinding}.mjs`), re_export_esm(importBinding), {
- encoding: "utf-8",
- }),
- );
-
- indexESM.push(`export { _ as ${importBinding} } from "./${importBinding}.js";`);
-
- cjs_module_lexer.push(`${importBinding}: null,`);
- cjs_export_list.push(`get ${importBinding}() {
- return require("./${importBinding}.cjs")._;
- },`);
-});
-
-indexCJS.push(
- `0 && (module.exports = {`,
- "/* @Annotate_start: the CommonJS named exports for ESM import in node */",
- ...cjs_module_lexer,
- "/* @Annotate_end */",
- `});`,
- `module.exports = {`,
- ...cjs_export_list,
- `};`,
-);
-
-task_queue.push(
- fs.outputJSON(root("package.json"), main_package_json, { spaces: 4 }),
- fs.outputFile(root("esm", "index.js"), indexESM.join("\n") + "\n", {
- encoding: "utf-8",
- }),
- fs.outputFile(root("cjs", "index.cjs"), indexCJS.join("\n") + "\n", {
- encoding: "utf-8",
- }),
- fs.outputFile(root("src", "index.mjs"), `export * from "../esm/index.js"`, {
- "encoding": "utf-8",
- }),
-);
-
-task_queue.push(...ast_grep());
-
-await Promise.all(task_queue);
-
-if (errors.length > 0) {
- errors.forEach((e) => {
- console.error(e);
- });
- process.exitCode = 1;
-} else {
- $.cwd = root(".");
- await $`dprint fmt`;
- await $`dprint fmt "scripts/*.js" -c scripts/.dprint.json`;
-}
-
-function re_export_esm(importBinding) {
- return `export { _ as default } from "../esm/${importBinding}.js"`;
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/errors.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/errors.js
deleted file mode 100644
index b5b3c159..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/errors.js
+++ /dev/null
@@ -1 +0,0 @@
-export const errors = [];
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/utils.js b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/utils.js
deleted file mode 100644
index 479b100c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/scripts/utils.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export function root(...p) {
- return path.resolve(__dirname, "..", ...p);
-}
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_apply_decorated_descriptor.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_apply_decorated_descriptor.mjs
deleted file mode 100644
index e4839a15..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_apply_decorated_descriptor.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_apply_decorated_descriptor.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_apply_decs_2203_r.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_apply_decs_2203_r.mjs
deleted file mode 100644
index c10cb561..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_apply_decs_2203_r.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_apply_decs_2203_r.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_like_to_array.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_like_to_array.mjs
deleted file mode 100644
index 7691b320..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_like_to_array.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_array_like_to_array.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_with_holes.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_with_holes.mjs
deleted file mode 100644
index 1a622996..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_with_holes.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_array_with_holes.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_without_holes.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_without_holes.mjs
deleted file mode 100644
index ee2f265e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_array_without_holes.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_array_without_holes.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_assert_this_initialized.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_assert_this_initialized.mjs
deleted file mode 100644
index 36772535..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_assert_this_initialized.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_assert_this_initialized.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_generator.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_generator.mjs
deleted file mode 100644
index b3ced536..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_generator.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_async_generator.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_generator_delegate.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_generator_delegate.mjs
deleted file mode 100644
index 29dd8b22..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_generator_delegate.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_async_generator_delegate.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_iterator.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_iterator.mjs
deleted file mode 100644
index d1300321..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_iterator.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_async_iterator.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_to_generator.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_to_generator.mjs
deleted file mode 100644
index 18adef55..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_async_to_generator.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_async_to_generator.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_await_async_generator.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_await_async_generator.mjs
deleted file mode 100644
index da13a9fb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_await_async_generator.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_await_async_generator.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_await_value.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_await_value.mjs
deleted file mode 100644
index 3c241617..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_await_value.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_await_value.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_call_super.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_call_super.mjs
deleted file mode 100644
index da607166..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_call_super.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_call_super.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_check_private_redeclaration.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_check_private_redeclaration.mjs
deleted file mode 100644
index 7d78cfe1..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_check_private_redeclaration.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_check_private_redeclaration.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_destructure.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_destructure.mjs
deleted file mode 100644
index b606b537..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_destructure.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_apply_descriptor_destructure.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_get.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_get.mjs
deleted file mode 100644
index f888b6be..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_get.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_apply_descriptor_get.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_set.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_set.mjs
deleted file mode 100644
index fb006799..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_set.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_apply_descriptor_set.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_update.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_update.mjs
deleted file mode 100644
index e7a9915b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_apply_descriptor_update.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_apply_descriptor_update.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_call_check.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_call_check.mjs
deleted file mode 100644
index 220c3c81..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_call_check.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_call_check.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_check_private_static_access.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_check_private_static_access.mjs
deleted file mode 100644
index a52a4d8d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_check_private_static_access.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_check_private_static_access.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_check_private_static_field_descriptor.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_check_private_static_field_descriptor.mjs
deleted file mode 100644
index cb8a623d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_check_private_static_field_descriptor.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_check_private_static_field_descriptor.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_extract_field_descriptor.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_extract_field_descriptor.mjs
deleted file mode 100644
index 7586ce82..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_extract_field_descriptor.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_extract_field_descriptor.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_name_tdz_error.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_name_tdz_error.mjs
deleted file mode 100644
index c211d7fb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_name_tdz_error.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_name_tdz_error.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_destructure.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_destructure.mjs
deleted file mode 100644
index b06b763f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_destructure.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_destructure.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_get.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_get.mjs
deleted file mode 100644
index 1f8854a8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_get.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_get.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_init.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_init.mjs
deleted file mode 100644
index 48d4d17b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_init.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_init.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_loose_base.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_loose_base.mjs
deleted file mode 100644
index a10b033f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_loose_base.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_loose_base.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_loose_key.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_loose_key.mjs
deleted file mode 100644
index 6e80fd98..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_loose_key.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_loose_key.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_set.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_set.mjs
deleted file mode 100644
index cb54a1be..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_set.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_set.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_update.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_update.mjs
deleted file mode 100644
index c5f0c633..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_field_update.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_field_update.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_get.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_get.mjs
deleted file mode 100644
index 9f5248a5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_get.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_method_get.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_init.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_init.mjs
deleted file mode 100644
index afce453b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_init.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_method_init.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_set.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_set.mjs
deleted file mode 100644
index 327252da..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_private_method_set.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_private_method_set.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_destructure.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_destructure.mjs
deleted file mode 100644
index c35376d2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_destructure.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_static_private_field_destructure.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_spec_get.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_spec_get.mjs
deleted file mode 100644
index 0cc7854d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_spec_get.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_static_private_field_spec_get.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_spec_set.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_spec_set.mjs
deleted file mode 100644
index 208cf973..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_spec_set.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_static_private_field_spec_set.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_update.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_update.mjs
deleted file mode 100644
index 87e04381..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_field_update.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_static_private_field_update.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_method_get.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_method_get.mjs
deleted file mode 100644
index 2241a1a8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_class_static_private_method_get.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_class_static_private_method_get.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_construct.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_construct.mjs
deleted file mode 100644
index 54acb64d..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_construct.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_construct.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_class.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_class.mjs
deleted file mode 100644
index 78c2af22..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_class.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_create_class.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_for_of_iterator_helper_loose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_for_of_iterator_helper_loose.mjs
deleted file mode 100644
index 303e056c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_for_of_iterator_helper_loose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_create_for_of_iterator_helper_loose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_super.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_super.mjs
deleted file mode 100644
index 44a06bfe..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_create_super.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_create_super.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_decorate.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_decorate.mjs
deleted file mode 100644
index 08789916..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_decorate.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_decorate.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_defaults.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_defaults.mjs
deleted file mode 100644
index 624e6846..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_defaults.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_defaults.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_define_enumerable_properties.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_define_enumerable_properties.mjs
deleted file mode 100644
index b6a87fc8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_define_enumerable_properties.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_define_enumerable_properties.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_define_property.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_define_property.mjs
deleted file mode 100644
index b60b2c82..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_define_property.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_define_property.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_dispose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_dispose.mjs
deleted file mode 100644
index 2f217e87..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_dispose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_dispose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_export_star.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_export_star.mjs
deleted file mode 100644
index c7011c2f..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_export_star.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_export_star.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_extends.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_extends.mjs
deleted file mode 100644
index 804a28ba..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_extends.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_extends.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_get.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_get.mjs
deleted file mode 100644
index fae4b22b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_get.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_get.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_get_prototype_of.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_get_prototype_of.mjs
deleted file mode 100644
index 57e820ce..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_get_prototype_of.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_get_prototype_of.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_identity.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_identity.mjs
deleted file mode 100644
index 5ab4a08a..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_identity.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_identity.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_inherits.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_inherits.mjs
deleted file mode 100644
index d5e37677..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_inherits.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_inherits.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_inherits_loose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_inherits_loose.mjs
deleted file mode 100644
index 4f5187d9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_inherits_loose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_inherits_loose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_initializer_define_property.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_initializer_define_property.mjs
deleted file mode 100644
index fa0a3b8e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_initializer_define_property.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_initializer_define_property.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_initializer_warning_helper.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_initializer_warning_helper.mjs
deleted file mode 100644
index f9251ab5..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_initializer_warning_helper.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_initializer_warning_helper.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_instanceof.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_instanceof.mjs
deleted file mode 100644
index 609f7869..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_instanceof.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_instanceof.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_interop_require_default.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_interop_require_default.mjs
deleted file mode 100644
index 454ce715..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_interop_require_default.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_interop_require_default.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_interop_require_wildcard.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_interop_require_wildcard.mjs
deleted file mode 100644
index 07f7a7ed..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_interop_require_wildcard.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_interop_require_wildcard.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_is_native_function.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_is_native_function.mjs
deleted file mode 100644
index 8bacb3ab..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_is_native_function.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_is_native_function.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs
deleted file mode 100644
index 7c0394d9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_is_native_reflect_construct.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array.mjs
deleted file mode 100644
index 4baf94af..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_iterable_to_array.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array_limit.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array_limit.mjs
deleted file mode 100644
index 45f70f50..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array_limit.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_iterable_to_array_limit.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array_limit_loose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array_limit_loose.mjs
deleted file mode 100644
index 400a9e01..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_iterable_to_array_limit_loose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_iterable_to_array_limit_loose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_jsx.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_jsx.mjs
deleted file mode 100644
index 8b0646a0..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_jsx.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_jsx.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_new_arrow_check.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_new_arrow_check.mjs
deleted file mode 100644
index e694d150..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_new_arrow_check.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_new_arrow_check.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_non_iterable_rest.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_non_iterable_rest.mjs
deleted file mode 100644
index 83218078..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_non_iterable_rest.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_non_iterable_rest.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_non_iterable_spread.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_non_iterable_spread.mjs
deleted file mode 100644
index 12993f13..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_non_iterable_spread.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_non_iterable_spread.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_destructuring_empty.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_destructuring_empty.mjs
deleted file mode 100644
index b8aed9ce..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_destructuring_empty.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_object_destructuring_empty.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_spread.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_spread.mjs
deleted file mode 100644
index 9b536f58..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_spread.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_object_spread.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_spread_props.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_spread_props.mjs
deleted file mode 100644
index 799de3f6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_spread_props.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_object_spread_props.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_without_properties.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_without_properties.mjs
deleted file mode 100644
index f0ce12c6..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_without_properties.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_object_without_properties.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs
deleted file mode 100644
index f6f26696..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_object_without_properties_loose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_object_without_properties_loose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_possible_constructor_return.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_possible_constructor_return.mjs
deleted file mode 100644
index ee9657d2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_possible_constructor_return.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_possible_constructor_return.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_read_only_error.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_read_only_error.mjs
deleted file mode 100644
index 3e95329b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_read_only_error.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_read_only_error.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_set.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_set.mjs
deleted file mode 100644
index 5cc03377..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_set.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_set.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_set_prototype_of.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_set_prototype_of.mjs
deleted file mode 100644
index f244856c..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_set_prototype_of.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_set_prototype_of.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_skip_first_generator_next.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_skip_first_generator_next.mjs
deleted file mode 100644
index f437b3ce..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_skip_first_generator_next.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_skip_first_generator_next.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_sliced_to_array.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_sliced_to_array.mjs
deleted file mode 100644
index 34f97233..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_sliced_to_array.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_sliced_to_array.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_sliced_to_array_loose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_sliced_to_array_loose.mjs
deleted file mode 100644
index 116211bc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_sliced_to_array_loose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_sliced_to_array_loose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_super_prop_base.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_super_prop_base.mjs
deleted file mode 100644
index 25a1b4b4..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_super_prop_base.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_super_prop_base.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_tagged_template_literal.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_tagged_template_literal.mjs
deleted file mode 100644
index ea788727..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_tagged_template_literal.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_tagged_template_literal.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_tagged_template_literal_loose.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_tagged_template_literal_loose.mjs
deleted file mode 100644
index f65c3bb9..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_tagged_template_literal_loose.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_tagged_template_literal_loose.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_throw.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_throw.mjs
deleted file mode 100644
index a0b50e04..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_throw.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_throw.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_array.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_array.mjs
deleted file mode 100644
index d42cba53..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_array.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_to_array.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_consumable_array.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_consumable_array.mjs
deleted file mode 100644
index e23f2ebc..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_consumable_array.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_to_consumable_array.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_primitive.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_primitive.mjs
deleted file mode 100644
index 0d4a2486..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_primitive.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_to_primitive.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_property_key.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_property_key.mjs
deleted file mode 100644
index 7b767073..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_to_property_key.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_to_property_key.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_add_disposable_resource.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_add_disposable_resource.mjs
deleted file mode 100644
index b059656e..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_add_disposable_resource.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_add_disposable_resource.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_decorate.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_decorate.mjs
deleted file mode 100644
index 2d7763f3..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_decorate.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_decorate.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_dispose_resources.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_dispose_resources.mjs
deleted file mode 100644
index ba5ec136..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_dispose_resources.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_dispose_resources.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_generator.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_generator.mjs
deleted file mode 100644
index f595f6d8..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_generator.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_generator.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_metadata.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_metadata.mjs
deleted file mode 100644
index 424457eb..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_metadata.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_metadata.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_param.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_param.mjs
deleted file mode 100644
index 18063179..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_param.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_param.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_values.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_values.mjs
deleted file mode 100644
index 126c7837..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_ts_values.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_ts_values.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_type_of.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_type_of.mjs
deleted file mode 100644
index 4f8a9365..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_type_of.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_type_of.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs
deleted file mode 100644
index 9e422221..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_unsupported_iterable_to_array.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_update.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_update.mjs
deleted file mode 100644
index 6adb4a42..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_update.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_update.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_using.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_using.mjs
deleted file mode 100644
index f7168155..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_using.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_using.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_using_ctx.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_using_ctx.mjs
deleted file mode 100644
index 87e80979..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_using_ctx.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_using_ctx.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_wrap_async_generator.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_wrap_async_generator.mjs
deleted file mode 100644
index 44acb1ab..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_wrap_async_generator.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_wrap_async_generator.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_wrap_native_super.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_wrap_native_super.mjs
deleted file mode 100644
index 266f5d3b..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_wrap_native_super.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_wrap_native_super.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_write_only_error.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_write_only_error.mjs
deleted file mode 100644
index 68c8af26..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/_write_only_error.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export { _ as default } from "../esm/_write_only_error.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/index.mjs b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/index.mjs
deleted file mode 100644
index d0d08129..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/src/index.mjs
+++ /dev/null
@@ -1 +0,0 @@
-export * from "../esm/index.js";
diff --git a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/tslib b/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/tslib
deleted file mode 120000
index 4edba0e2..00000000
--- a/frontend/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/tslib
+++ /dev/null
@@ -1 +0,0 @@
-../../tslib@2.8.1/node_modules/tslib
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/LICENSE b/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/LICENSE
deleted file mode 100644
index 9e841e7a..00000000
--- a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
- MIT License
-
- Copyright (c) Microsoft Corporation.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
diff --git a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/README.md b/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/README.md
deleted file mode 100644
index 78c610f0..00000000
--- a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Installation
-> `npm install --save @types/json-schema`
-
-# Summary
-This package contains type definitions for json-schema (https://github.com/kriszyp/json-schema).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema.
-
-### Additional Details
- * Last updated: Tue, 07 Nov 2023 03:09:37 GMT
- * Dependencies: none
-
-# Credits
-These definitions were written by [Boris Cherny](https://github.com/bcherny), [Lucian Buzzo](https://github.com/lucianbuzzo), [Roland Groza](https://github.com/rolandjitsu), and [Jason Kwok](https://github.com/JasonHK).
diff --git a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts b/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts
deleted file mode 100644
index 9381e999..00000000
--- a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts
+++ /dev/null
@@ -1,749 +0,0 @@
-// ==================================================================================================
-// JSON Schema Draft 04
-// ==================================================================================================
-
-/**
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
- */
-export type JSONSchema4TypeName =
- | "string" //
- | "number"
- | "integer"
- | "boolean"
- | "object"
- | "array"
- | "null"
- | "any";
-
-/**
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-04#section-3.5
- */
-export type JSONSchema4Type =
- | string //
- | number
- | boolean
- | JSONSchema4Object
- | JSONSchema4Array
- | null;
-
-// Workaround for infinite type recursion
-export interface JSONSchema4Object {
- [key: string]: JSONSchema4Type;
-}
-
-// Workaround for infinite type recursion
-// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540
-export interface JSONSchema4Array extends Array {}
-
-/**
- * Meta schema
- *
- * Recommended values:
- * - 'http://json-schema.org/schema#'
- * - 'http://json-schema.org/hyper-schema#'
- * - 'http://json-schema.org/draft-04/schema#'
- * - 'http://json-schema.org/draft-04/hyper-schema#'
- * - 'http://json-schema.org/draft-03/schema#'
- * - 'http://json-schema.org/draft-03/hyper-schema#'
- *
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-5
- */
-export type JSONSchema4Version = string;
-
-/**
- * JSON Schema V4
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-04
- */
-export interface JSONSchema4 {
- id?: string | undefined;
- $ref?: string | undefined;
- $schema?: JSONSchema4Version | undefined;
-
- /**
- * This attribute is a string that provides a short description of the
- * instance property.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.21
- */
- title?: string | undefined;
-
- /**
- * This attribute is a string that provides a full description of the of
- * purpose the instance property.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.22
- */
- description?: string | undefined;
-
- default?: JSONSchema4Type | undefined;
- multipleOf?: number | undefined;
- maximum?: number | undefined;
- exclusiveMaximum?: boolean | undefined;
- minimum?: number | undefined;
- exclusiveMinimum?: boolean | undefined;
- maxLength?: number | undefined;
- minLength?: number | undefined;
- pattern?: string | undefined;
-
- /**
- * May only be defined when "items" is defined, and is a tuple of JSONSchemas.
- *
- * This provides a definition for additional items in an array instance
- * when tuple definitions of the items is provided. This can be false
- * to indicate additional items in the array are not allowed, or it can
- * be a schema that defines the schema of the additional items.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.6
- */
- additionalItems?: boolean | JSONSchema4 | undefined;
-
- /**
- * This attribute defines the allowed items in an instance array, and
- * MUST be a schema or an array of schemas. The default value is an
- * empty schema which allows any value for items in the instance array.
- *
- * When this attribute value is a schema and the instance value is an
- * array, then all the items in the array MUST be valid according to the
- * schema.
- *
- * When this attribute value is an array of schemas and the instance
- * value is an array, each position in the instance array MUST conform
- * to the schema in the corresponding position for this array. This
- * called tuple typing. When tuple typing is used, additional items are
- * allowed, disallowed, or constrained by the "additionalItems"
- * (Section 5.6) attribute using the same rules as
- * "additionalProperties" (Section 5.4) for objects.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.5
- */
- items?: JSONSchema4 | JSONSchema4[] | undefined;
-
- maxItems?: number | undefined;
- minItems?: number | undefined;
- uniqueItems?: boolean | undefined;
- maxProperties?: number | undefined;
- minProperties?: number | undefined;
-
- /**
- * This attribute indicates if the instance must have a value, and not
- * be undefined. This is false by default, making the instance
- * optional.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.7
- */
- required?: boolean | string[] | undefined;
-
- /**
- * This attribute defines a schema for all properties that are not
- * explicitly defined in an object type definition. If specified, the
- * value MUST be a schema or a boolean. If false is provided, no
- * additional properties are allowed beyond the properties defined in
- * the schema. The default value is an empty schema which allows any
- * value for additional properties.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.4
- */
- additionalProperties?: boolean | JSONSchema4 | undefined;
-
- definitions?: {
- [k: string]: JSONSchema4;
- } | undefined;
-
- /**
- * This attribute is an object with property definitions that define the
- * valid values of instance object property values. When the instance
- * value is an object, the property values of the instance object MUST
- * conform to the property definitions in this object. In this object,
- * each property definition's value MUST be a schema, and the property's
- * name MUST be the name of the instance property that it defines. The
- * instance property value MUST be valid according to the schema from
- * the property definition. Properties are considered unordered, the
- * order of the instance properties MAY be in any order.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.2
- */
- properties?: {
- [k: string]: JSONSchema4;
- } | undefined;
-
- /**
- * This attribute is an object that defines the schema for a set of
- * property names of an object instance. The name of each property of
- * this attribute's object is a regular expression pattern in the ECMA
- * 262/Perl 5 format, while the value is a schema. If the pattern
- * matches the name of a property on the instance object, the value of
- * the instance's property MUST be valid against the pattern name's
- * schema value.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.3
- */
- patternProperties?: {
- [k: string]: JSONSchema4;
- } | undefined;
- dependencies?: {
- [k: string]: JSONSchema4 | string[];
- } | undefined;
-
- /**
- * This provides an enumeration of all possible values that are valid
- * for the instance property. This MUST be an array, and each item in
- * the array represents a possible value for the instance value. If
- * this attribute is defined, the instance value MUST be one of the
- * values in the array in order for the schema to be valid.
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.19
- */
- enum?: JSONSchema4Type[] | undefined;
-
- /**
- * A single type, or a union of simple types
- */
- type?: JSONSchema4TypeName | JSONSchema4TypeName[] | undefined;
-
- allOf?: JSONSchema4[] | undefined;
- anyOf?: JSONSchema4[] | undefined;
- oneOf?: JSONSchema4[] | undefined;
- not?: JSONSchema4 | undefined;
-
- /**
- * The value of this property MUST be another schema which will provide
- * a base schema which the current schema will inherit from. The
- * inheritance rules are such that any instance that is valid according
- * to the current schema MUST be valid according to the referenced
- * schema. This MAY also be an array, in which case, the instance MUST
- * be valid for all the schemas in the array. A schema that extends
- * another schema MAY define additional attributes, constrain existing
- * attributes, or add other constraints.
- *
- * Conceptually, the behavior of extends can be seen as validating an
- * instance against all constraints in the extending schema as well as
- * the extended schema(s).
- *
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.26
- */
- extends?: string | string[] | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-zyp-json-schema-04#section-5.6
- */
- [k: string]: any;
-
- format?: string | undefined;
-}
-
-// ==================================================================================================
-// JSON Schema Draft 06
-// ==================================================================================================
-
-export type JSONSchema6TypeName =
- | "string" //
- | "number"
- | "integer"
- | "boolean"
- | "object"
- | "array"
- | "null"
- | "any";
-
-export type JSONSchema6Type =
- | string //
- | number
- | boolean
- | JSONSchema6Object
- | JSONSchema6Array
- | null;
-
-// Workaround for infinite type recursion
-export interface JSONSchema6Object {
- [key: string]: JSONSchema6Type;
-}
-
-// Workaround for infinite type recursion
-// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540
-export interface JSONSchema6Array extends Array {}
-
-/**
- * Meta schema
- *
- * Recommended values:
- * - 'http://json-schema.org/schema#'
- * - 'http://json-schema.org/hyper-schema#'
- * - 'http://json-schema.org/draft-06/schema#'
- * - 'http://json-schema.org/draft-06/hyper-schema#'
- *
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-5
- */
-export type JSONSchema6Version = string;
-
-/**
- * JSON Schema V6
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01
- */
-export type JSONSchema6Definition = JSONSchema6 | boolean;
-export interface JSONSchema6 {
- $id?: string | undefined;
- $ref?: string | undefined;
- $schema?: JSONSchema6Version | undefined;
-
- /**
- * Must be strictly greater than 0.
- * A numeric instance is valid only if division by this keyword's value results in an integer.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.1
- */
- multipleOf?: number | undefined;
-
- /**
- * Representing an inclusive upper limit for a numeric instance.
- * This keyword validates only if the instance is less than or exactly equal to "maximum".
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.2
- */
- maximum?: number | undefined;
-
- /**
- * Representing an exclusive upper limit for a numeric instance.
- * This keyword validates only if the instance is strictly less than (not equal to) to "exclusiveMaximum".
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.3
- */
- exclusiveMaximum?: number | undefined;
-
- /**
- * Representing an inclusive lower limit for a numeric instance.
- * This keyword validates only if the instance is greater than or exactly equal to "minimum".
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.4
- */
- minimum?: number | undefined;
-
- /**
- * Representing an exclusive lower limit for a numeric instance.
- * This keyword validates only if the instance is strictly greater than (not equal to) to "exclusiveMinimum".
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.5
- */
- exclusiveMinimum?: number | undefined;
-
- /**
- * Must be a non-negative integer.
- * A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.6
- */
- maxLength?: number | undefined;
-
- /**
- * Must be a non-negative integer.
- * A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword.
- * Omitting this keyword has the same behavior as a value of 0.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.7
- */
- minLength?: number | undefined;
-
- /**
- * Should be a valid regular expression, according to the ECMA 262 regular expression dialect.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.8
- */
- pattern?: string | undefined;
-
- /**
- * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself.
- * Omitting this keyword has the same behavior as an empty schema.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.9
- */
- items?: JSONSchema6Definition | JSONSchema6Definition[] | undefined;
-
- /**
- * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself.
- * If "items" is an array of schemas, validation succeeds if every instance element
- * at a position greater than the size of "items" validates against "additionalItems".
- * Otherwise, "additionalItems" MUST be ignored, as the "items" schema
- * (possibly the default value of an empty schema) is applied to all elements.
- * Omitting this keyword has the same behavior as an empty schema.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.10
- */
- additionalItems?: JSONSchema6Definition | undefined;
-
- /**
- * Must be a non-negative integer.
- * An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.11
- */
- maxItems?: number | undefined;
-
- /**
- * Must be a non-negative integer.
- * An array instance is valid against "maxItems" if its size is greater than, or equal to, the value of this keyword.
- * Omitting this keyword has the same behavior as a value of 0.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.12
- */
- minItems?: number | undefined;
-
- /**
- * If this keyword has boolean value false, the instance validates successfully.
- * If it has boolean value true, the instance validates successfully if all of its elements are unique.
- * Omitting this keyword has the same behavior as a value of false.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.13
- */
- uniqueItems?: boolean | undefined;
-
- /**
- * An array instance is valid against "contains" if at least one of its elements is valid against the given schema.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.14
- */
- contains?: JSONSchema6Definition | undefined;
-
- /**
- * Must be a non-negative integer.
- * An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.15
- */
- maxProperties?: number | undefined;
-
- /**
- * Must be a non-negative integer.
- * An object instance is valid against "maxProperties" if its number of properties is greater than,
- * or equal to, the value of this keyword.
- * Omitting this keyword has the same behavior as a value of 0.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.16
- */
- minProperties?: number | undefined;
-
- /**
- * Elements of this array must be unique.
- * An object instance is valid against this keyword if every item in the array is the name of a property in the instance.
- * Omitting this keyword has the same behavior as an empty array.
- *
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.17
- */
- required?: string[] | undefined;
-
- /**
- * This keyword determines how child instances validate for objects, and does not directly validate the immediate instance itself.
- * Validation succeeds if, for each name that appears in both the instance and as a name within this keyword's value,
- * the child instance for that name successfully validates against the corresponding schema.
- * Omitting this keyword has the same behavior as an empty object.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.18
- */
- properties?: {
- [k: string]: JSONSchema6Definition;
- } | undefined;
-
- /**
- * This attribute is an object that defines the schema for a set of property names of an object instance.
- * The name of each property of this attribute's object is a regular expression pattern in the ECMA 262, while the value is a schema.
- * If the pattern matches the name of a property on the instance object, the value of the instance's property
- * MUST be valid against the pattern name's schema value.
- * Omitting this keyword has the same behavior as an empty object.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.19
- */
- patternProperties?: {
- [k: string]: JSONSchema6Definition;
- } | undefined;
-
- /**
- * This attribute defines a schema for all properties that are not explicitly defined in an object type definition.
- * If specified, the value MUST be a schema or a boolean.
- * If false is provided, no additional properties are allowed beyond the properties defined in the schema.
- * The default value is an empty schema which allows any value for additional properties.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.20
- */
- additionalProperties?: JSONSchema6Definition | undefined;
-
- /**
- * This keyword specifies rules that are evaluated if the instance is an object and contains a certain property.
- * Each property specifies a dependency.
- * If the dependency value is an array, each element in the array must be unique.
- * Omitting this keyword has the same behavior as an empty object.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.21
- */
- dependencies?: {
- [k: string]: JSONSchema6Definition | string[];
- } | undefined;
-
- /**
- * Takes a schema which validates the names of all properties rather than their values.
- * Note the property name that the schema is testing will always be a string.
- * Omitting this keyword has the same behavior as an empty schema.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.22
- */
- propertyNames?: JSONSchema6Definition | undefined;
-
- /**
- * This provides an enumeration of all possible values that are valid
- * for the instance property. This MUST be an array, and each item in
- * the array represents a possible value for the instance value. If
- * this attribute is defined, the instance value MUST be one of the
- * values in the array in order for the schema to be valid.
- *
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.23
- */
- enum?: JSONSchema6Type[] | undefined;
-
- /**
- * More readable form of a one-element "enum"
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.24
- */
- const?: JSONSchema6Type | undefined;
-
- /**
- * A single type, or a union of simple types
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.25
- */
- type?: JSONSchema6TypeName | JSONSchema6TypeName[] | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.26
- */
- allOf?: JSONSchema6Definition[] | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.27
- */
- anyOf?: JSONSchema6Definition[] | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.28
- */
- oneOf?: JSONSchema6Definition[] | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.29
- */
- not?: JSONSchema6Definition | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.1
- */
- definitions?: {
- [k: string]: JSONSchema6Definition;
- } | undefined;
-
- /**
- * This attribute is a string that provides a short description of the instance property.
- *
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.2
- */
- title?: string | undefined;
-
- /**
- * This attribute is a string that provides a full description of the of purpose the instance property.
- *
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.2
- */
- description?: string | undefined;
-
- /**
- * This keyword can be used to supply a default JSON value associated with a particular schema.
- * It is RECOMMENDED that a default value be valid against the associated schema.
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.3
- */
- default?: JSONSchema6Type | undefined;
-
- /**
- * Array of examples with no validation effect the value of "default" is usable as an example without repeating it under this keyword
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.4
- */
- examples?: JSONSchema6Type[] | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-8
- */
- format?: string | undefined;
-}
-
-// ==================================================================================================
-// JSON Schema Draft 07
-// ==================================================================================================
-// https://tools.ietf.org/html/draft-handrews-json-schema-validation-01
-// --------------------------------------------------------------------------------------------------
-
-/**
- * Primitive type
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
- */
-export type JSONSchema7TypeName =
- | "string" //
- | "number"
- | "integer"
- | "boolean"
- | "object"
- | "array"
- | "null";
-
-/**
- * Primitive type
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
- */
-export type JSONSchema7Type =
- | string //
- | number
- | boolean
- | JSONSchema7Object
- | JSONSchema7Array
- | null;
-
-// Workaround for infinite type recursion
-export interface JSONSchema7Object {
- [key: string]: JSONSchema7Type;
-}
-
-// Workaround for infinite type recursion
-// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540
-export interface JSONSchema7Array extends Array {}
-
-/**
- * Meta schema
- *
- * Recommended values:
- * - 'http://json-schema.org/schema#'
- * - 'http://json-schema.org/hyper-schema#'
- * - 'http://json-schema.org/draft-07/schema#'
- * - 'http://json-schema.org/draft-07/hyper-schema#'
- *
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-5
- */
-export type JSONSchema7Version = string;
-
-/**
- * JSON Schema v7
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01
- */
-export type JSONSchema7Definition = JSONSchema7 | boolean;
-export interface JSONSchema7 {
- $id?: string | undefined;
- $ref?: string | undefined;
- $schema?: JSONSchema7Version | undefined;
- $comment?: string | undefined;
-
- /**
- * @see https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00#section-8.2.4
- * @see https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-00#appendix-A
- */
- $defs?: {
- [key: string]: JSONSchema7Definition;
- } | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1
- */
- type?: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined;
- enum?: JSONSchema7Type[] | undefined;
- const?: JSONSchema7Type | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.2
- */
- multipleOf?: number | undefined;
- maximum?: number | undefined;
- exclusiveMaximum?: number | undefined;
- minimum?: number | undefined;
- exclusiveMinimum?: number | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.3
- */
- maxLength?: number | undefined;
- minLength?: number | undefined;
- pattern?: string | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.4
- */
- items?: JSONSchema7Definition | JSONSchema7Definition[] | undefined;
- additionalItems?: JSONSchema7Definition | undefined;
- maxItems?: number | undefined;
- minItems?: number | undefined;
- uniqueItems?: boolean | undefined;
- contains?: JSONSchema7Definition | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.5
- */
- maxProperties?: number | undefined;
- minProperties?: number | undefined;
- required?: string[] | undefined;
- properties?: {
- [key: string]: JSONSchema7Definition;
- } | undefined;
- patternProperties?: {
- [key: string]: JSONSchema7Definition;
- } | undefined;
- additionalProperties?: JSONSchema7Definition | undefined;
- dependencies?: {
- [key: string]: JSONSchema7Definition | string[];
- } | undefined;
- propertyNames?: JSONSchema7Definition | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6
- */
- if?: JSONSchema7Definition | undefined;
- then?: JSONSchema7Definition | undefined;
- else?: JSONSchema7Definition | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.7
- */
- allOf?: JSONSchema7Definition[] | undefined;
- anyOf?: JSONSchema7Definition[] | undefined;
- oneOf?: JSONSchema7Definition[] | undefined;
- not?: JSONSchema7Definition | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7
- */
- format?: string | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-8
- */
- contentMediaType?: string | undefined;
- contentEncoding?: string | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-9
- */
- definitions?: {
- [key: string]: JSONSchema7Definition;
- } | undefined;
-
- /**
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-10
- */
- title?: string | undefined;
- description?: string | undefined;
- default?: JSONSchema7Type | undefined;
- readOnly?: boolean | undefined;
- writeOnly?: boolean | undefined;
- examples?: JSONSchema7Type | undefined;
-}
-
-export interface ValidationResult {
- valid: boolean;
- errors: ValidationError[];
-}
-
-export interface ValidationError {
- property: string;
- message: string;
-}
-
-/**
- * To use the validator call JSONSchema.validate with an instance object and an optional schema object.
- * If a schema is provided, it will be used to validate. If the instance object refers to a schema (self-validating),
- * that schema will be used to validate and the schema parameter is not necessary (if both exist,
- * both validations will occur).
- */
-export function validate(instance: {}, schema: JSONSchema4 | JSONSchema6 | JSONSchema7): ValidationResult;
-
-/**
- * The checkPropertyChange method will check to see if an value can legally be in property with the given schema
- * This is slightly different than the validate method in that it will fail if the schema is readonly and it will
- * not check for self-validation, it is assumed that the passed in value is already internally valid.
- */
-export function checkPropertyChange(
- value: any,
- schema: JSONSchema4 | JSONSchema6 | JSONSchema7,
- property: string,
-): ValidationResult;
-
-/**
- * This checks to ensure that the result is valid and will throw an appropriate error message if it is not.
- */
-export function mustBeValid(result: ValidationResult): void;
diff --git a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/package.json b/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/package.json
deleted file mode 100644
index 3c41bd7f..00000000
--- a/frontend/node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "@types/json-schema",
- "version": "7.0.15",
- "description": "TypeScript definitions for json-schema",
- "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema",
- "license": "MIT",
- "contributors": [
- {
- "name": "Boris Cherny",
- "githubUsername": "bcherny",
- "url": "https://github.com/bcherny"
- },
- {
- "name": "Lucian Buzzo",
- "githubUsername": "lucianbuzzo",
- "url": "https://github.com/lucianbuzzo"
- },
- {
- "name": "Roland Groza",
- "githubUsername": "rolandjitsu",
- "url": "https://github.com/rolandjitsu"
- },
- {
- "name": "Jason Kwok",
- "githubUsername": "JasonHK",
- "url": "https://github.com/JasonHK"
- }
- ],
- "main": "",
- "types": "index.d.ts",
- "repository": {
- "type": "git",
- "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
- "directory": "types/json-schema"
- },
- "scripts": {},
- "dependencies": {},
- "typesPublisherContentHash": "79984fd70cd25c3f7d72b84368778c763c89728ea0073832d745d4691b705257",
- "typeScriptVersion": "4.5"
-}
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/README.md b/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/README.md
deleted file mode 100644
index ea81c5cc..00000000
--- a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Installation
-> `npm install --save @types/json5`
-
-# Summary
-This package contains type definitions for JSON5 (http://json5.org/).
-
-# Details
-Files were exported from https://www.github.com/DefinitelyTyped/DefinitelyTyped/tree/types-2.0/json5
-
-Additional Details
- * Last updated: Mon, 19 Sep 2016 17:28:59 GMT
- * File structure: ProperModule
- * Library Dependencies: none
- * Module Dependencies: none
- * Global values: json5
-
-# Credits
-These definitions were written by Jason Swearingen .
diff --git a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/index.d.ts b/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/index.d.ts
deleted file mode 100644
index 76a03526..00000000
--- a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/index.d.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-// Type definitions for JSON5
-// Project: http://json5.org/
-// Definitions by: Jason Swearingen
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-
-//commonjs loader
-
-/**
- * The following is the exact list of additions to JSON's syntax introduced by JSON5. All of these are optional, and all of these come from ES5.
-
-Objects
-
-Object keys can be unquoted if they're valid identifiers. Yes, even reserved keywords (like default) are valid unquoted keys in ES5 [§11.1.5, §7.6]. (More info)
-
-(TODO: Unicode characters and escape sequences aren’t yet supported in this implementation.)
-
-Objects can have trailing commas.
-
-Arrays
-
-Arrays can have trailing commas.
-Strings
-
-Strings can be single-quoted.
-
-Strings can be split across multiple lines; just prefix each newline with a backslash. [ES5 §7.8.4]
-
-Numbers
-
-Numbers can be hexadecimal (base 16).
-
-Numbers can begin or end with a (leading or trailing) decimal point.
-
-Numbers can include Infinity, -Infinity, NaN, and -NaN.
-
-Numbers can begin with an explicit plus sign.
-
-Comments
-
-Both inline (single-line) and block (multi-line) comments are allowed.
- */
-declare var json5: JSON;
-export = json5;
diff --git a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/package.json b/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/package.json
deleted file mode 100644
index ff784d59..00000000
--- a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "@types/json5",
- "version": "0.0.29",
- "description": "TypeScript definitions for JSON5",
- "license": "MIT",
- "author": "Jason Swearingen ",
- "main": "",
- "repository": {
- "type": "git",
- "url": "https://www.github.com/DefinitelyTyped/DefinitelyTyped.git"
- },
- "scripts": {},
- "dependencies": {},
- "typings": "index.d.ts",
- "typesPublisherContentHash": "1ed77f2bfd59d290798abf89db281c36565f4a78d97d4e9caab25319d54c6331"
-}
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/types-metadata.json b/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/types-metadata.json
deleted file mode 100644
index 1c02afee..00000000
--- a/frontend/node_modules/.pnpm/@types+json5@0.0.29/node_modules/@types/json5/types-metadata.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "authors": "Jason Swearingen ",
- "definitionFilename": "index.d.ts",
- "libraryDependencies": [],
- "moduleDependencies": [],
- "libraryMajorVersion": "0",
- "libraryMinorVersion": "0",
- "libraryName": "JSON5",
- "typingsPackageName": "json5",
- "projectName": "http://json5.org/",
- "sourceRepoURL": "https://www.github.com/DefinitelyTyped/DefinitelyTyped",
- "sourceBranch": "types-2.0",
- "kind": "ProperModule",
- "globals": [
- "json5"
- ],
- "declaredModules": [
- "json5"
- ],
- "files": [
- "index.d.ts"
- ],
- "hasPackageJson": false,
- "contentHash": "1ed77f2bfd59d290798abf89db281c36565f4a78d97d4e9caab25319d54c6331"
-}
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn
deleted file mode 120000
index 7381b590..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn
+++ /dev/null
@@ -1 +0,0 @@
-../../acorn@8.15.0/node_modules/acorn
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/LICENSE b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/LICENSE
deleted file mode 100644
index 695d4b93..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2012-2017 by Ingvar Stepanyan
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/README.md b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/README.md
deleted file mode 100644
index 317c3ac4..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Acorn-JSX
-
-[](https://travis-ci.org/acornjs/acorn-jsx)
-[](https://www.npmjs.org/package/acorn-jsx)
-
-This is plugin for [Acorn](http://marijnhaverbeke.nl/acorn/) - a tiny, fast JavaScript parser, written completely in JavaScript.
-
-It was created as an experimental alternative, faster [React.js JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) parser. Later, it replaced the [official parser](https://github.com/facebookarchive/esprima) and these days is used by many prominent development tools.
-
-## Transpiler
-
-Please note that this tool only parses source code to JSX AST, which is useful for various language tools and services. If you want to transpile your code to regular ES5-compliant JavaScript with source map, check out [Babel](https://babeljs.io/) and [Buble](https://buble.surge.sh/) transpilers which use `acorn-jsx` under the hood.
-
-## Usage
-
-Requiring this module provides you with an Acorn plugin that you can use like this:
-
-```javascript
-var acorn = require("acorn");
-var jsx = require("acorn-jsx");
-acorn.Parser.extend(jsx()).parse("my( , 'code');");
-```
-
-Note that official spec doesn't support mix of XML namespaces and object-style access in tag names (#27) like in ` `, so it was deprecated in `acorn-jsx@3.0`. If you still want to opt-in to support of such constructions, you can pass the following option:
-
-```javascript
-acorn.Parser.extend(jsx({ allowNamespacedObjects: true }))
-```
-
-Also, since most apps use pure React transformer, a new option was introduced that allows to prohibit namespaces completely:
-
-```javascript
-acorn.Parser.extend(jsx({ allowNamespaces: false }))
-```
-
-Note that by default `allowNamespaces` is enabled for spec compliancy.
-
-## License
-
-This plugin is issued under the [MIT license](./LICENSE).
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/index.d.ts b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/index.d.ts
deleted file mode 100644
index f37b1df4..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/index.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Parser } from 'acorn'
-
-declare const jsx: (options?: jsx.Options) => (BaseParser: typeof Parser) => typeof Parser;
-
-declare namespace jsx {
- interface Options {
- allowNamespacedObjects?: boolean;
- allowNamespaces?: boolean;
- }
-}
-
-export = jsx;
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/index.js b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/index.js
deleted file mode 100644
index 004e0809..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/index.js
+++ /dev/null
@@ -1,488 +0,0 @@
-'use strict';
-
-const XHTMLEntities = require('./xhtml');
-
-const hexNumber = /^[\da-fA-F]+$/;
-const decimalNumber = /^\d+$/;
-
-// The map to `acorn-jsx` tokens from `acorn` namespace objects.
-const acornJsxMap = new WeakMap();
-
-// Get the original tokens for the given `acorn` namespace object.
-function getJsxTokens(acorn) {
- acorn = acorn.Parser.acorn || acorn;
- let acornJsx = acornJsxMap.get(acorn);
- if (!acornJsx) {
- const tt = acorn.tokTypes;
- const TokContext = acorn.TokContext;
- const TokenType = acorn.TokenType;
- const tc_oTag = new TokContext('... ', true, true);
- const tokContexts = {
- tc_oTag: tc_oTag,
- tc_cTag: tc_cTag,
- tc_expr: tc_expr
- };
- const tokTypes = {
- jsxName: new TokenType('jsxName'),
- jsxText: new TokenType('jsxText', {beforeExpr: true}),
- jsxTagStart: new TokenType('jsxTagStart', {startsExpr: true}),
- jsxTagEnd: new TokenType('jsxTagEnd')
- };
-
- tokTypes.jsxTagStart.updateContext = function() {
- this.context.push(tc_expr); // treat as beginning of JSX expression
- this.context.push(tc_oTag); // start opening tag context
- this.exprAllowed = false;
- };
- tokTypes.jsxTagEnd.updateContext = function(prevType) {
- let out = this.context.pop();
- if (out === tc_oTag && prevType === tt.slash || out === tc_cTag) {
- this.context.pop();
- this.exprAllowed = this.curContext() === tc_expr;
- } else {
- this.exprAllowed = true;
- }
- };
-
- acornJsx = { tokContexts: tokContexts, tokTypes: tokTypes };
- acornJsxMap.set(acorn, acornJsx);
- }
-
- return acornJsx;
-}
-
-// Transforms JSX element name to string.
-
-function getQualifiedJSXName(object) {
- if (!object)
- return object;
-
- if (object.type === 'JSXIdentifier')
- return object.name;
-
- if (object.type === 'JSXNamespacedName')
- return object.namespace.name + ':' + object.name.name;
-
- if (object.type === 'JSXMemberExpression')
- return getQualifiedJSXName(object.object) + '.' +
- getQualifiedJSXName(object.property);
-}
-
-module.exports = function(options) {
- options = options || {};
- return function(Parser) {
- return plugin({
- allowNamespaces: options.allowNamespaces !== false,
- allowNamespacedObjects: !!options.allowNamespacedObjects
- }, Parser);
- };
-};
-
-// This is `tokTypes` of the peer dep.
-// This can be different instances from the actual `tokTypes` this plugin uses.
-Object.defineProperty(module.exports, "tokTypes", {
- get: function get_tokTypes() {
- return getJsxTokens(require("acorn")).tokTypes;
- },
- configurable: true,
- enumerable: true
-});
-
-function plugin(options, Parser) {
- const acorn = Parser.acorn || require("acorn");
- const acornJsx = getJsxTokens(acorn);
- const tt = acorn.tokTypes;
- const tok = acornJsx.tokTypes;
- const tokContexts = acorn.tokContexts;
- const tc_oTag = acornJsx.tokContexts.tc_oTag;
- const tc_cTag = acornJsx.tokContexts.tc_cTag;
- const tc_expr = acornJsx.tokContexts.tc_expr;
- const isNewLine = acorn.isNewLine;
- const isIdentifierStart = acorn.isIdentifierStart;
- const isIdentifierChar = acorn.isIdentifierChar;
-
- return class extends Parser {
- // Expose actual `tokTypes` and `tokContexts` to other plugins.
- static get acornJsx() {
- return acornJsx;
- }
-
- // Reads inline JSX contents token.
- jsx_readToken() {
- let out = '', chunkStart = this.pos;
- for (;;) {
- if (this.pos >= this.input.length)
- this.raise(this.start, 'Unterminated JSX contents');
- let ch = this.input.charCodeAt(this.pos);
-
- switch (ch) {
- case 60: // '<'
- case 123: // '{'
- if (this.pos === this.start) {
- if (ch === 60 && this.exprAllowed) {
- ++this.pos;
- return this.finishToken(tok.jsxTagStart);
- }
- return this.getTokenFromCode(ch);
- }
- out += this.input.slice(chunkStart, this.pos);
- return this.finishToken(tok.jsxText, out);
-
- case 38: // '&'
- out += this.input.slice(chunkStart, this.pos);
- out += this.jsx_readEntity();
- chunkStart = this.pos;
- break;
-
- case 62: // '>'
- case 125: // '}'
- this.raise(
- this.pos,
- "Unexpected token `" + this.input[this.pos] + "`. Did you mean `" +
- (ch === 62 ? ">" : "}") + "` or " + "`{\"" + this.input[this.pos] + "\"}" + "`?"
- );
-
- default:
- if (isNewLine(ch)) {
- out += this.input.slice(chunkStart, this.pos);
- out += this.jsx_readNewLine(true);
- chunkStart = this.pos;
- } else {
- ++this.pos;
- }
- }
- }
- }
-
- jsx_readNewLine(normalizeCRLF) {
- let ch = this.input.charCodeAt(this.pos);
- let out;
- ++this.pos;
- if (ch === 13 && this.input.charCodeAt(this.pos) === 10) {
- ++this.pos;
- out = normalizeCRLF ? '\n' : '\r\n';
- } else {
- out = String.fromCharCode(ch);
- }
- if (this.options.locations) {
- ++this.curLine;
- this.lineStart = this.pos;
- }
-
- return out;
- }
-
- jsx_readString(quote) {
- let out = '', chunkStart = ++this.pos;
- for (;;) {
- if (this.pos >= this.input.length)
- this.raise(this.start, 'Unterminated string constant');
- let ch = this.input.charCodeAt(this.pos);
- if (ch === quote) break;
- if (ch === 38) { // '&'
- out += this.input.slice(chunkStart, this.pos);
- out += this.jsx_readEntity();
- chunkStart = this.pos;
- } else if (isNewLine(ch)) {
- out += this.input.slice(chunkStart, this.pos);
- out += this.jsx_readNewLine(false);
- chunkStart = this.pos;
- } else {
- ++this.pos;
- }
- }
- out += this.input.slice(chunkStart, this.pos++);
- return this.finishToken(tt.string, out);
- }
-
- jsx_readEntity() {
- let str = '', count = 0, entity;
- let ch = this.input[this.pos];
- if (ch !== '&')
- this.raise(this.pos, 'Entity must start with an ampersand');
- let startPos = ++this.pos;
- while (this.pos < this.input.length && count++ < 10) {
- ch = this.input[this.pos++];
- if (ch === ';') {
- if (str[0] === '#') {
- if (str[1] === 'x') {
- str = str.substr(2);
- if (hexNumber.test(str))
- entity = String.fromCharCode(parseInt(str, 16));
- } else {
- str = str.substr(1);
- if (decimalNumber.test(str))
- entity = String.fromCharCode(parseInt(str, 10));
- }
- } else {
- entity = XHTMLEntities[str];
- }
- break;
- }
- str += ch;
- }
- if (!entity) {
- this.pos = startPos;
- return '&';
- }
- return entity;
- }
-
- // Read a JSX identifier (valid tag or attribute name).
- //
- // Optimized version since JSX identifiers can't contain
- // escape characters and so can be read as single slice.
- // Also assumes that first character was already checked
- // by isIdentifierStart in readToken.
-
- jsx_readWord() {
- let ch, start = this.pos;
- do {
- ch = this.input.charCodeAt(++this.pos);
- } while (isIdentifierChar(ch) || ch === 45); // '-'
- return this.finishToken(tok.jsxName, this.input.slice(start, this.pos));
- }
-
- // Parse next token as JSX identifier
-
- jsx_parseIdentifier() {
- let node = this.startNode();
- if (this.type === tok.jsxName)
- node.name = this.value;
- else if (this.type.keyword)
- node.name = this.type.keyword;
- else
- this.unexpected();
- this.next();
- return this.finishNode(node, 'JSXIdentifier');
- }
-
- // Parse namespaced identifier.
-
- jsx_parseNamespacedName() {
- let startPos = this.start, startLoc = this.startLoc;
- let name = this.jsx_parseIdentifier();
- if (!options.allowNamespaces || !this.eat(tt.colon)) return name;
- var node = this.startNodeAt(startPos, startLoc);
- node.namespace = name;
- node.name = this.jsx_parseIdentifier();
- return this.finishNode(node, 'JSXNamespacedName');
- }
-
- // Parses element name in any form - namespaced, member
- // or single identifier.
-
- jsx_parseElementName() {
- if (this.type === tok.jsxTagEnd) return '';
- let startPos = this.start, startLoc = this.startLoc;
- let node = this.jsx_parseNamespacedName();
- if (this.type === tt.dot && node.type === 'JSXNamespacedName' && !options.allowNamespacedObjects) {
- this.unexpected();
- }
- while (this.eat(tt.dot)) {
- let newNode = this.startNodeAt(startPos, startLoc);
- newNode.object = node;
- newNode.property = this.jsx_parseIdentifier();
- node = this.finishNode(newNode, 'JSXMemberExpression');
- }
- return node;
- }
-
- // Parses any type of JSX attribute value.
-
- jsx_parseAttributeValue() {
- switch (this.type) {
- case tt.braceL:
- let node = this.jsx_parseExpressionContainer();
- if (node.expression.type === 'JSXEmptyExpression')
- this.raise(node.start, 'JSX attributes must only be assigned a non-empty expression');
- return node;
-
- case tok.jsxTagStart:
- case tt.string:
- return this.parseExprAtom();
-
- default:
- this.raise(this.start, 'JSX value should be either an expression or a quoted JSX text');
- }
- }
-
- // JSXEmptyExpression is unique type since it doesn't actually parse anything,
- // and so it should start at the end of last read token (left brace) and finish
- // at the beginning of the next one (right brace).
-
- jsx_parseEmptyExpression() {
- let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc);
- return this.finishNodeAt(node, 'JSXEmptyExpression', this.start, this.startLoc);
- }
-
- // Parses JSX expression enclosed into curly brackets.
-
- jsx_parseExpressionContainer() {
- let node = this.startNode();
- this.next();
- node.expression = this.type === tt.braceR
- ? this.jsx_parseEmptyExpression()
- : this.parseExpression();
- this.expect(tt.braceR);
- return this.finishNode(node, 'JSXExpressionContainer');
- }
-
- // Parses following JSX attribute name-value pair.
-
- jsx_parseAttribute() {
- let node = this.startNode();
- if (this.eat(tt.braceL)) {
- this.expect(tt.ellipsis);
- node.argument = this.parseMaybeAssign();
- this.expect(tt.braceR);
- return this.finishNode(node, 'JSXSpreadAttribute');
- }
- node.name = this.jsx_parseNamespacedName();
- node.value = this.eat(tt.eq) ? this.jsx_parseAttributeValue() : null;
- return this.finishNode(node, 'JSXAttribute');
- }
-
- // Parses JSX opening tag starting after '<'.
-
- jsx_parseOpeningElementAt(startPos, startLoc) {
- let node = this.startNodeAt(startPos, startLoc);
- node.attributes = [];
- let nodeName = this.jsx_parseElementName();
- if (nodeName) node.name = nodeName;
- while (this.type !== tt.slash && this.type !== tok.jsxTagEnd)
- node.attributes.push(this.jsx_parseAttribute());
- node.selfClosing = this.eat(tt.slash);
- this.expect(tok.jsxTagEnd);
- return this.finishNode(node, nodeName ? 'JSXOpeningElement' : 'JSXOpeningFragment');
- }
-
- // Parses JSX closing tag starting after ''.
-
- jsx_parseClosingElementAt(startPos, startLoc) {
- let node = this.startNodeAt(startPos, startLoc);
- let nodeName = this.jsx_parseElementName();
- if (nodeName) node.name = nodeName;
- this.expect(tok.jsxTagEnd);
- return this.finishNode(node, nodeName ? 'JSXClosingElement' : 'JSXClosingFragment');
- }
-
- // Parses entire JSX element, including it's opening tag
- // (starting after '<'), attributes, contents and closing tag.
-
- jsx_parseElementAt(startPos, startLoc) {
- let node = this.startNodeAt(startPos, startLoc);
- let children = [];
- let openingElement = this.jsx_parseOpeningElementAt(startPos, startLoc);
- let closingElement = null;
-
- if (!openingElement.selfClosing) {
- contents: for (;;) {
- switch (this.type) {
- case tok.jsxTagStart:
- startPos = this.start; startLoc = this.startLoc;
- this.next();
- if (this.eat(tt.slash)) {
- closingElement = this.jsx_parseClosingElementAt(startPos, startLoc);
- break contents;
- }
- children.push(this.jsx_parseElementAt(startPos, startLoc));
- break;
-
- case tok.jsxText:
- children.push(this.parseExprAtom());
- break;
-
- case tt.braceL:
- children.push(this.jsx_parseExpressionContainer());
- break;
-
- default:
- this.unexpected();
- }
- }
- if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {
- this.raise(
- closingElement.start,
- 'Expected corresponding JSX closing tag for <' + getQualifiedJSXName(openingElement.name) + '>');
- }
- }
- let fragmentOrElement = openingElement.name ? 'Element' : 'Fragment';
-
- node['opening' + fragmentOrElement] = openingElement;
- node['closing' + fragmentOrElement] = closingElement;
- node.children = children;
- if (this.type === tt.relational && this.value === "<") {
- this.raise(this.start, "Adjacent JSX elements must be wrapped in an enclosing tag");
- }
- return this.finishNode(node, 'JSX' + fragmentOrElement);
- }
-
- // Parse JSX text
-
- jsx_parseText() {
- let node = this.parseLiteral(this.value);
- node.type = "JSXText";
- return node;
- }
-
- // Parses entire JSX element from current position.
-
- jsx_parseElement() {
- let startPos = this.start, startLoc = this.startLoc;
- this.next();
- return this.jsx_parseElementAt(startPos, startLoc);
- }
-
- parseExprAtom(refShortHandDefaultPos) {
- if (this.type === tok.jsxText)
- return this.jsx_parseText();
- else if (this.type === tok.jsxTagStart)
- return this.jsx_parseElement();
- else
- return super.parseExprAtom(refShortHandDefaultPos);
- }
-
- readToken(code) {
- let context = this.curContext();
-
- if (context === tc_expr) return this.jsx_readToken();
-
- if (context === tc_oTag || context === tc_cTag) {
- if (isIdentifierStart(code)) return this.jsx_readWord();
-
- if (code == 62) {
- ++this.pos;
- return this.finishToken(tok.jsxTagEnd);
- }
-
- if ((code === 34 || code === 39) && context == tc_oTag)
- return this.jsx_readString(code);
- }
-
- if (code === 60 && this.exprAllowed && this.input.charCodeAt(this.pos + 1) !== 33) {
- ++this.pos;
- return this.finishToken(tok.jsxTagStart);
- }
- return super.readToken(code);
- }
-
- updateContext(prevType) {
- if (this.type == tt.braceL) {
- var curContext = this.curContext();
- if (curContext == tc_oTag) this.context.push(tokContexts.b_expr);
- else if (curContext == tc_expr) this.context.push(tokContexts.b_tmpl);
- else super.updateContext(prevType);
- this.exprAllowed = true;
- } else if (this.type === tt.slash && prevType === tok.jsxTagStart) {
- this.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore
- this.context.push(tc_cTag); // reconsider as closing tag context
- this.exprAllowed = false;
- } else {
- return super.updateContext(prevType);
- }
- }
- };
-}
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/node_modules/.bin/acorn b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/node_modules/.bin/acorn
deleted file mode 100755
index b13facdf..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/node_modules/.bin/acorn
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
-
-case `uname` in
- *CYGWIN*|*MINGW*|*MSYS*)
- if command -v cygpath > /dev/null 2>&1; then
- basedir=`cygpath -w "$basedir"`
- fi
- ;;
-esac
-
-if [ -z "$NODE_PATH" ]; then
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules"
-else
- export NODE_PATH="/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules:/Users/chaulmark/Eliza-MAD-docket-website/frontend/node_modules/.pnpm/node_modules:$NODE_PATH"
-fi
-if [ -x "$basedir/node" ]; then
- exec "$basedir/node" "$basedir/../../../../../acorn@8.15.0/node_modules/acorn/bin/acorn" "$@"
-else
- exec node "$basedir/../../../../../acorn@8.15.0/node_modules/acorn/bin/acorn" "$@"
-fi
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/package.json b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/package.json
deleted file mode 100644
index 6debde9c..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "acorn-jsx",
- "description": "Modern, fast React.js JSX parser",
- "homepage": "https://github.com/acornjs/acorn-jsx",
- "version": "5.3.2",
- "maintainers": [
- {
- "name": "Ingvar Stepanyan",
- "email": "me@rreverser.com",
- "web": "http://rreverser.com/"
- }
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/acornjs/acorn-jsx"
- },
- "license": "MIT",
- "scripts": {
- "test": "node test/run.js"
- },
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- },
- "devDependencies": {
- "acorn": "^8.0.1"
- }
-}
diff --git a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/xhtml.js b/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/xhtml.js
deleted file mode 100644
index c1520092..00000000
--- a/frontend/node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.15.0/node_modules/acorn-jsx/xhtml.js
+++ /dev/null
@@ -1,255 +0,0 @@
-module.exports = {
- quot: '\u0022',
- amp: '&',
- apos: '\u0027',
- lt: '<',
- gt: '>',
- nbsp: '\u00A0',
- iexcl: '\u00A1',
- cent: '\u00A2',
- pound: '\u00A3',
- curren: '\u00A4',
- yen: '\u00A5',
- brvbar: '\u00A6',
- sect: '\u00A7',
- uml: '\u00A8',
- copy: '\u00A9',
- ordf: '\u00AA',
- laquo: '\u00AB',
- not: '\u00AC',
- shy: '\u00AD',
- reg: '\u00AE',
- macr: '\u00AF',
- deg: '\u00B0',
- plusmn: '\u00B1',
- sup2: '\u00B2',
- sup3: '\u00B3',
- acute: '\u00B4',
- micro: '\u00B5',
- para: '\u00B6',
- middot: '\u00B7',
- cedil: '\u00B8',
- sup1: '\u00B9',
- ordm: '\u00BA',
- raquo: '\u00BB',
- frac14: '\u00BC',
- frac12: '\u00BD',
- frac34: '\u00BE',
- iquest: '\u00BF',
- Agrave: '\u00C0',
- Aacute: '\u00C1',
- Acirc: '\u00C2',
- Atilde: '\u00C3',
- Auml: '\u00C4',
- Aring: '\u00C5',
- AElig: '\u00C6',
- Ccedil: '\u00C7',
- Egrave: '\u00C8',
- Eacute: '\u00C9',
- Ecirc: '\u00CA',
- Euml: '\u00CB',
- Igrave: '\u00CC',
- Iacute: '\u00CD',
- Icirc: '\u00CE',
- Iuml: '\u00CF',
- ETH: '\u00D0',
- Ntilde: '\u00D1',
- Ograve: '\u00D2',
- Oacute: '\u00D3',
- Ocirc: '\u00D4',
- Otilde: '\u00D5',
- Ouml: '\u00D6',
- times: '\u00D7',
- Oslash: '\u00D8',
- Ugrave: '\u00D9',
- Uacute: '\u00DA',
- Ucirc: '\u00DB',
- Uuml: '\u00DC',
- Yacute: '\u00DD',
- THORN: '\u00DE',
- szlig: '\u00DF',
- agrave: '\u00E0',
- aacute: '\u00E1',
- acirc: '\u00E2',
- atilde: '\u00E3',
- auml: '\u00E4',
- aring: '\u00E5',
- aelig: '\u00E6',
- ccedil: '\u00E7',
- egrave: '\u00E8',
- eacute: '\u00E9',
- ecirc: '\u00EA',
- euml: '\u00EB',
- igrave: '\u00EC',
- iacute: '\u00ED',
- icirc: '\u00EE',
- iuml: '\u00EF',
- eth: '\u00F0',
- ntilde: '\u00F1',
- ograve: '\u00F2',
- oacute: '\u00F3',
- ocirc: '\u00F4',
- otilde: '\u00F5',
- ouml: '\u00F6',
- divide: '\u00F7',
- oslash: '\u00F8',
- ugrave: '\u00F9',
- uacute: '\u00FA',
- ucirc: '\u00FB',
- uuml: '\u00FC',
- yacute: '\u00FD',
- thorn: '\u00FE',
- yuml: '\u00FF',
- OElig: '\u0152',
- oelig: '\u0153',
- Scaron: '\u0160',
- scaron: '\u0161',
- Yuml: '\u0178',
- fnof: '\u0192',
- circ: '\u02C6',
- tilde: '\u02DC',
- Alpha: '\u0391',
- Beta: '\u0392',
- Gamma: '\u0393',
- Delta: '\u0394',
- Epsilon: '\u0395',
- Zeta: '\u0396',
- Eta: '\u0397',
- Theta: '\u0398',
- Iota: '\u0399',
- Kappa: '\u039A',
- Lambda: '\u039B',
- Mu: '\u039C',
- Nu: '\u039D',
- Xi: '\u039E',
- Omicron: '\u039F',
- Pi: '\u03A0',
- Rho: '\u03A1',
- Sigma: '\u03A3',
- Tau: '\u03A4',
- Upsilon: '\u03A5',
- Phi: '\u03A6',
- Chi: '\u03A7',
- Psi: '\u03A8',
- Omega: '\u03A9',
- alpha: '\u03B1',
- beta: '\u03B2',
- gamma: '\u03B3',
- delta: '\u03B4',
- epsilon: '\u03B5',
- zeta: '\u03B6',
- eta: '\u03B7',
- theta: '\u03B8',
- iota: '\u03B9',
- kappa: '\u03BA',
- lambda: '\u03BB',
- mu: '\u03BC',
- nu: '\u03BD',
- xi: '\u03BE',
- omicron: '\u03BF',
- pi: '\u03C0',
- rho: '\u03C1',
- sigmaf: '\u03C2',
- sigma: '\u03C3',
- tau: '\u03C4',
- upsilon: '\u03C5',
- phi: '\u03C6',
- chi: '\u03C7',
- psi: '\u03C8',
- omega: '\u03C9',
- thetasym: '\u03D1',
- upsih: '\u03D2',
- piv: '\u03D6',
- ensp: '\u2002',
- emsp: '\u2003',
- thinsp: '\u2009',
- zwnj: '\u200C',
- zwj: '\u200D',
- lrm: '\u200E',
- rlm: '\u200F',
- ndash: '\u2013',
- mdash: '\u2014',
- lsquo: '\u2018',
- rsquo: '\u2019',
- sbquo: '\u201A',
- ldquo: '\u201C',
- rdquo: '\u201D',
- bdquo: '\u201E',
- dagger: '\u2020',
- Dagger: '\u2021',
- bull: '\u2022',
- hellip: '\u2026',
- permil: '\u2030',
- prime: '\u2032',
- Prime: '\u2033',
- lsaquo: '\u2039',
- rsaquo: '\u203A',
- oline: '\u203E',
- frasl: '\u2044',
- euro: '\u20AC',
- image: '\u2111',
- weierp: '\u2118',
- real: '\u211C',
- trade: '\u2122',
- alefsym: '\u2135',
- larr: '\u2190',
- uarr: '\u2191',
- rarr: '\u2192',
- darr: '\u2193',
- harr: '\u2194',
- crarr: '\u21B5',
- lArr: '\u21D0',
- uArr: '\u21D1',
- rArr: '\u21D2',
- dArr: '\u21D3',
- hArr: '\u21D4',
- forall: '\u2200',
- part: '\u2202',
- exist: '\u2203',
- empty: '\u2205',
- nabla: '\u2207',
- isin: '\u2208',
- notin: '\u2209',
- ni: '\u220B',
- prod: '\u220F',
- sum: '\u2211',
- minus: '\u2212',
- lowast: '\u2217',
- radic: '\u221A',
- prop: '\u221D',
- infin: '\u221E',
- ang: '\u2220',
- and: '\u2227',
- or: '\u2228',
- cap: '\u2229',
- cup: '\u222A',
- 'int': '\u222B',
- there4: '\u2234',
- sim: '\u223C',
- cong: '\u2245',
- asymp: '\u2248',
- ne: '\u2260',
- equiv: '\u2261',
- le: '\u2264',
- ge: '\u2265',
- sub: '\u2282',
- sup: '\u2283',
- nsub: '\u2284',
- sube: '\u2286',
- supe: '\u2287',
- oplus: '\u2295',
- otimes: '\u2297',
- perp: '\u22A5',
- sdot: '\u22C5',
- lceil: '\u2308',
- rceil: '\u2309',
- lfloor: '\u230A',
- rfloor: '\u230B',
- lang: '\u2329',
- rang: '\u232A',
- loz: '\u25CA',
- spades: '\u2660',
- clubs: '\u2663',
- hearts: '\u2665',
- diams: '\u2666'
-};
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/CHANGELOG.md b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/CHANGELOG.md
deleted file mode 100644
index c86068cd..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/CHANGELOG.md
+++ /dev/null
@@ -1,954 +0,0 @@
-## 8.15.0 (2025-06-08)
-
-### New features
-
-Support `using` and `await using` syntax.
-
-The `AnyNode` type is now defined in such a way that plugins can extend it.
-
-### Bug fixes
-
-Fix an issue where the `bigint` property of literal nodes for non-decimal bigints had the wrong format.
-
-The `acorn` CLI tool no longer crashes when emitting a tree that contains a bigint.
-
-## 8.14.1 (2025-03-05)
-
-### Bug fixes
-
-Fix an issue where `await` expressions in class field initializers were inappropriately allowed.
-
-Properly allow await inside an async arrow function inside a class field initializer.
-
-Mention the source file name in syntax error messages when given.
-
-Properly add an empty `attributes` property to every form of `ExportNamedDeclaration`.
-
-## 8.14.0 (2024-10-27)
-
-### New features
-
-Support ES2025 import attributes.
-
-Support ES2025 RegExp modifiers.
-
-### Bug fixes
-
-Support some missing Unicode properties.
-
-## 8.13.0 (2024-10-16)
-
-### New features
-
-Upgrade to Unicode 16.0.
-
-## 8.12.1 (2024-07-03)
-
-### Bug fixes
-
-Fix a regression that caused Acorn to no longer run on Node versions <8.10.
-
-## 8.12.0 (2024-06-14)
-
-### New features
-
-Support ES2025 duplicate capture group names in regular expressions.
-
-### Bug fixes
-
-Include `VariableDeclarator` in the `AnyNode` type so that walker objects can refer to it without getting a type error.
-
-Properly raise a parse error for invalid `for`/`of` statements using `async` as binding name.
-
-Properly recognize \"use strict\" when preceded by a string with an escaped newline.
-
-Mark the `Parser` constructor as protected, not private, so plugins can extend it without type errors.
-
-Fix a bug where some invalid `delete` expressions were let through when the operand was parenthesized and `preserveParens` was enabled.
-
-Properly normalize line endings in raw strings of invalid template tokens.
-
-Properly track line numbers for escaped newlines in strings.
-
-Fix a bug that broke line number accounting after a template literal with invalid escape sequences.
-
-## 8.11.3 (2023-12-29)
-
-### Bug fixes
-
-Add `Function` and `Class` to the `AggregateType` type, so that they can be used in walkers without raising a type error.
-
-Make sure `onToken` get an `import` keyword token when parsing `import.meta`.
-
-Fix a bug where `.loc.start` could be undefined for `new.target` `meta` nodes.
-
-## 8.11.2 (2023-10-27)
-
-### Bug fixes
-
-Fix a bug that caused regular expressions after colon tokens to not be properly tokenized in some circumstances.
-
-## 8.11.1 (2023-10-26)
-
-### Bug fixes
-
-Fix a regression where `onToken` would receive 'name' tokens for 'new' keyword tokens.
-
-## 8.11.0 (2023-10-26)
-
-### Bug fixes
-
-Fix an issue where tokenizing (without parsing) an object literal with a property named `class` or `function` could, in some circumstance, put the tokenizer into an invalid state.
-
-Fix an issue where a slash after a call to a propery named the same as some keywords would be tokenized as a regular expression.
-
-### New features
-
-Upgrade to Unicode 15.1.
-
-Use a set of new, much more precise, TypeScript types.
-
-## 8.10.0 (2023-07-05)
-
-### New features
-
-Add a `checkPrivateFields` option that disables strict checking of private property use.
-
-## 8.9.0 (2023-06-16)
-
-### Bug fixes
-
-Forbid dynamic import after `new`, even when part of a member expression.
-
-### New features
-
-Add Unicode properties for ES2023.
-
-Add support for the `v` flag to regular expressions.
-
-## 8.8.2 (2023-01-23)
-
-### Bug fixes
-
-Fix a bug that caused `allowHashBang` to be set to false when not provided, even with `ecmaVersion >= 14`.
-
-Fix an exception when passing no option object to `parse` or `new Parser`.
-
-Fix incorrect parse error on `if (0) let\n[astral identifier char]`.
-
-## 8.8.1 (2022-10-24)
-
-### Bug fixes
-
-Make type for `Comment` compatible with estree types.
-
-## 8.8.0 (2022-07-21)
-
-### Bug fixes
-
-Allow parentheses around spread args in destructuring object assignment.
-
-Fix an issue where the tree contained `directive` properties in when parsing with a language version that doesn't support them.
-
-### New features
-
-Support hashbang comments by default in ECMAScript 2023 and later.
-
-## 8.7.1 (2021-04-26)
-
-### Bug fixes
-
-Stop handling `"use strict"` directives in ECMAScript versions before 5.
-
-Fix an issue where duplicate quoted export names in `export *` syntax were incorrectly checked.
-
-Add missing type for `tokTypes`.
-
-## 8.7.0 (2021-12-27)
-
-### New features
-
-Support quoted export names.
-
-Upgrade to Unicode 14.
-
-Add support for Unicode 13 properties in regular expressions.
-
-### Bug fixes
-
-Use a loop to find line breaks, because the existing regexp search would overrun the end of the searched range and waste a lot of time in minified code.
-
-## 8.6.0 (2021-11-18)
-
-### Bug fixes
-
-Fix a bug where an object literal with multiple `__proto__` properties would incorrectly be accepted if a later property value held an assigment.
-
-### New features
-
-Support class private fields with the `in` operator.
-
-## 8.5.0 (2021-09-06)
-
-### Bug fixes
-
-Improve context-dependent tokenization in a number of corner cases.
-
-Fix location tracking after a 0x2028 or 0x2029 character in a string literal (which before did not increase the line number).
-
-Fix an issue where arrow function bodies in for loop context would inappropriately consume `in` operators.
-
-Fix wrong end locations stored on SequenceExpression nodes.
-
-Implement restriction that `for`/`of` loop LHS can't start with `let`.
-
-### New features
-
-Add support for ES2022 class static blocks.
-
-Allow multiple input files to be passed to the CLI tool.
-
-## 8.4.1 (2021-06-24)
-
-### Bug fixes
-
-Fix a bug where `allowAwaitOutsideFunction` would allow `await` in class field initializers, and setting `ecmaVersion` to 13 or higher would allow top-level await in non-module sources.
-
-## 8.4.0 (2021-06-11)
-
-### New features
-
-A new option, `allowSuperOutsideMethod`, can be used to suppress the error when `super` is used in the wrong context.
-
-## 8.3.0 (2021-05-31)
-
-### New features
-
-Default `allowAwaitOutsideFunction` to true for ECMAScript 2022 an higher.
-
-Add support for the `d` ([indices](https://github.com/tc39/proposal-regexp-match-indices)) regexp flag.
-
-## 8.2.4 (2021-05-04)
-
-### Bug fixes
-
-Fix spec conformity in corner case 'for await (async of ...)'.
-
-## 8.2.3 (2021-05-04)
-
-### Bug fixes
-
-Fix an issue where the library couldn't parse 'for (async of ...)'.
-
-Fix a bug in UTF-16 decoding that would read characters incorrectly in some circumstances.
-
-## 8.2.2 (2021-04-29)
-
-### Bug fixes
-
-Fix a bug where a class field initialized to an async arrow function wouldn't allow await inside it. Same issue existed for generator arrow functions with yield.
-
-## 8.2.1 (2021-04-24)
-
-### Bug fixes
-
-Fix a regression introduced in 8.2.0 where static or async class methods with keyword names fail to parse.
-
-## 8.2.0 (2021-04-24)
-
-### New features
-
-Add support for ES2022 class fields and private methods.
-
-## 8.1.1 (2021-04-12)
-
-### Various
-
-Stop shipping source maps in the NPM package.
-
-## 8.1.0 (2021-03-09)
-
-### Bug fixes
-
-Fix a spurious error in nested destructuring arrays.
-
-### New features
-
-Expose `allowAwaitOutsideFunction` in CLI interface.
-
-Make `allowImportExportAnywhere` also apply to `import.meta`.
-
-## 8.0.5 (2021-01-25)
-
-### Bug fixes
-
-Adjust package.json to work with Node 12.16.0 and 13.0-13.6.
-
-## 8.0.4 (2020-10-05)
-
-### Bug fixes
-
-Make `await x ** y` an error, following the spec.
-
-Fix potentially exponential regular expression.
-
-## 8.0.3 (2020-10-02)
-
-### Bug fixes
-
-Fix a wasteful loop during `Parser` creation when setting `ecmaVersion` to `"latest"`.
-
-## 8.0.2 (2020-09-30)
-
-### Bug fixes
-
-Make the TypeScript types reflect the current allowed values for `ecmaVersion`.
-
-Fix another regexp/division tokenizer issue.
-
-## 8.0.1 (2020-08-12)
-
-### Bug fixes
-
-Provide the correct value in the `version` export.
-
-## 8.0.0 (2020-08-12)
-
-### Bug fixes
-
-Disallow expressions like `(a = b) = c`.
-
-Make non-octal escape sequences a syntax error in strict mode.
-
-### New features
-
-The package can now be loaded directly as an ECMAScript module in node 13+.
-
-Update to the set of Unicode properties from ES2021.
-
-### Breaking changes
-
-The `ecmaVersion` option is now required. For the moment, omitting it will still work with a warning, but that will change in a future release.
-
-Some changes to method signatures that may be used by plugins.
-
-## 7.4.0 (2020-08-03)
-
-### New features
-
-Add support for logical assignment operators.
-
-Add support for numeric separators.
-
-## 7.3.1 (2020-06-11)
-
-### Bug fixes
-
-Make the string in the `version` export match the actual library version.
-
-## 7.3.0 (2020-06-11)
-
-### Bug fixes
-
-Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail.
-
-### New features
-
-Add support for optional chaining (`?.`).
-
-## 7.2.0 (2020-05-09)
-
-### Bug fixes
-
-Fix precedence issue in parsing of async arrow functions.
-
-### New features
-
-Add support for nullish coalescing.
-
-Add support for `import.meta`.
-
-Support `export * as ...` syntax.
-
-Upgrade to Unicode 13.
-
-## 6.4.1 (2020-03-09)
-
-### Bug fixes
-
-More carefully check for valid UTF16 surrogate pairs in regexp validator.
-
-## 7.1.1 (2020-03-01)
-
-### Bug fixes
-
-Treat `\8` and `\9` as invalid escapes in template strings.
-
-Allow unicode escapes in property names that are keywords.
-
-Don't error on an exponential operator expression as argument to `await`.
-
-More carefully check for valid UTF16 surrogate pairs in regexp validator.
-
-## 7.1.0 (2019-09-24)
-
-### Bug fixes
-
-Disallow trailing object literal commas when ecmaVersion is less than 5.
-
-### New features
-
-Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on.
-
-## 7.0.0 (2019-08-13)
-
-### Breaking changes
-
-Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression).
-
-Makes 10 (ES2019) the default value for the `ecmaVersion` option.
-
-## 6.3.0 (2019-08-12)
-
-### New features
-
-`sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard.
-
-## 6.2.1 (2019-07-21)
-
-### Bug fixes
-
-Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such.
-
-Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances.
-
-## 6.2.0 (2019-07-04)
-
-### Bug fixes
-
-Improve valid assignment checking in `for`/`in` and `for`/`of` loops.
-
-Disallow binding `let` in patterns.
-
-### New features
-
-Support bigint syntax with `ecmaVersion` >= 11.
-
-Support dynamic `import` syntax with `ecmaVersion` >= 11.
-
-Upgrade to Unicode version 12.
-
-## 6.1.1 (2019-02-27)
-
-### Bug fixes
-
-Fix bug that caused parsing default exports of with names to fail.
-
-## 6.1.0 (2019-02-08)
-
-### Bug fixes
-
-Fix scope checking when redefining a `var` as a lexical binding.
-
-### New features
-
-Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins.
-
-## 6.0.7 (2019-02-04)
-
-### Bug fixes
-
-Check that exported bindings are defined.
-
-Don't treat `\u180e` as a whitespace character.
-
-Check for duplicate parameter names in methods.
-
-Don't allow shorthand properties when they are generators or async methods.
-
-Forbid binding `await` in async arrow function's parameter list.
-
-## 6.0.6 (2019-01-30)
-
-### Bug fixes
-
-The content of class declarations and expressions is now always parsed in strict mode.
-
-Don't allow `let` or `const` to bind the variable name `let`.
-
-Treat class declarations as lexical.
-
-Don't allow a generator function declaration as the sole body of an `if` or `else`.
-
-Ignore `"use strict"` when after an empty statement.
-
-Allow string line continuations with special line terminator characters.
-
-Treat `for` bodies as part of the `for` scope when checking for conflicting bindings.
-
-Fix bug with parsing `yield` in a `for` loop initializer.
-
-Implement special cases around scope checking for functions.
-
-## 6.0.5 (2019-01-02)
-
-### Bug fixes
-
-Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type.
-
-Don't treat `let` as a keyword when the next token is `{` on the next line.
-
-Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on.
-
-## 6.0.4 (2018-11-05)
-
-### Bug fixes
-
-Further improvements to tokenizing regular expressions in corner cases.
-
-## 6.0.3 (2018-11-04)
-
-### Bug fixes
-
-Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression.
-
-Remove stray symlink in the package tarball.
-
-## 6.0.2 (2018-09-26)
-
-### Bug fixes
-
-Fix bug where default expressions could fail to parse inside an object destructuring assignment expression.
-
-## 6.0.1 (2018-09-14)
-
-### Bug fixes
-
-Fix wrong value in `version` export.
-
-## 6.0.0 (2018-09-14)
-
-### Bug fixes
-
-Better handle variable-redefinition checks for catch bindings and functions directly under if statements.
-
-Forbid `new.target` in top-level arrow functions.
-
-Fix issue with parsing a regexp after `yield` in some contexts.
-
-### New features
-
-The package now comes with TypeScript definitions.
-
-### Breaking changes
-
-The default value of the `ecmaVersion` option is now 9 (2018).
-
-Plugins work differently, and will have to be rewritten to work with this version.
-
-The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`).
-
-## 5.7.3 (2018-09-10)
-
-### Bug fixes
-
-Fix failure to tokenize regexps after expressions like `x.of`.
-
-Better error message for unterminated template literals.
-
-## 5.7.2 (2018-08-24)
-
-### Bug fixes
-
-Properly handle `allowAwaitOutsideFunction` in for statements.
-
-Treat function declarations at the top level of modules like let bindings.
-
-Don't allow async function declarations as the only statement under a label.
-
-## 5.7.0 (2018-06-15)
-
-### New features
-
-Upgraded to Unicode 11.
-
-## 5.6.0 (2018-05-31)
-
-### New features
-
-Allow U+2028 and U+2029 in string when ECMAVersion >= 10.
-
-Allow binding-less catch statements when ECMAVersion >= 10.
-
-Add `allowAwaitOutsideFunction` option for parsing top-level `await`.
-
-## 5.5.3 (2018-03-08)
-
-### Bug fixes
-
-A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps.
-
-## 5.5.2 (2018-03-08)
-
-### Bug fixes
-
-A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0.
-
-## 5.5.1 (2018-03-06)
-
-### Bug fixes
-
-Fix misleading error message for octal escapes in template strings.
-
-## 5.5.0 (2018-02-27)
-
-### New features
-
-The identifier character categorization is now based on Unicode version 10.
-
-Acorn will now validate the content of regular expressions, including new ES9 features.
-
-## 5.4.0 (2018-02-01)
-
-### Bug fixes
-
-Disallow duplicate or escaped flags on regular expressions.
-
-Disallow octal escapes in strings in strict mode.
-
-### New features
-
-Add support for async iteration.
-
-Add support for object spread and rest.
-
-## 5.3.0 (2017-12-28)
-
-### Bug fixes
-
-Fix parsing of floating point literals with leading zeroes in loose mode.
-
-Allow duplicate property names in object patterns.
-
-Don't allow static class methods named `prototype`.
-
-Disallow async functions directly under `if` or `else`.
-
-Parse right-hand-side of `for`/`of` as an assignment expression.
-
-Stricter parsing of `for`/`in`.
-
-Don't allow unicode escapes in contextual keywords.
-
-### New features
-
-Parsing class members was factored into smaller methods to allow plugins to hook into it.
-
-## 5.2.1 (2017-10-30)
-
-### Bug fixes
-
-Fix a token context corruption bug.
-
-## 5.2.0 (2017-10-30)
-
-### Bug fixes
-
-Fix token context tracking for `class` and `function` in property-name position.
-
-Make sure `%*` isn't parsed as a valid operator.
-
-Allow shorthand properties `get` and `set` to be followed by default values.
-
-Disallow `super` when not in callee or object position.
-
-### New features
-
-Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements.
-
-## 5.1.2 (2017-09-04)
-
-### Bug fixes
-
-Disable parsing of legacy HTML-style comments in modules.
-
-Fix parsing of async methods whose names are keywords.
-
-## 5.1.1 (2017-07-06)
-
-### Bug fixes
-
-Fix problem with disambiguating regexp and division after a class.
-
-## 5.1.0 (2017-07-05)
-
-### Bug fixes
-
-Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`.
-
-Parse zero-prefixed numbers with non-octal digits as decimal.
-
-Allow object/array patterns in rest parameters.
-
-Don't error when `yield` is used as a property name.
-
-Allow `async` as a shorthand object property.
-
-### New features
-
-Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9.
-
-## 5.0.3 (2017-04-01)
-
-### Bug fixes
-
-Fix spurious duplicate variable definition errors for named functions.
-
-## 5.0.2 (2017-03-30)
-
-### Bug fixes
-
-A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error.
-
-## 5.0.0 (2017-03-28)
-
-### Bug fixes
-
-Raise an error for duplicated lexical bindings.
-
-Fix spurious error when an assignement expression occurred after a spread expression.
-
-Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions.
-
-Allow labels in front or `var` declarations, even in strict mode.
-
-### Breaking changes
-
-Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`.
-
-## 4.0.11 (2017-02-07)
-
-### Bug fixes
-
-Allow all forms of member expressions to be parenthesized as lvalue.
-
-## 4.0.10 (2017-02-07)
-
-### Bug fixes
-
-Don't expect semicolons after default-exported functions or classes, even when they are expressions.
-
-Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode.
-
-## 4.0.9 (2017-02-06)
-
-### Bug fixes
-
-Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again.
-
-## 4.0.8 (2017-02-03)
-
-### Bug fixes
-
-Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet.
-
-## 4.0.7 (2017-02-02)
-
-### Bug fixes
-
-Accept invalidly rejected code like `(x).y = 2` again.
-
-Don't raise an error when a function _inside_ strict code has a non-simple parameter list.
-
-## 4.0.6 (2017-02-02)
-
-### Bug fixes
-
-Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check.
-
-## 4.0.5 (2017-02-02)
-
-### Bug fixes
-
-Disallow parenthesized pattern expressions.
-
-Allow keywords as export names.
-
-Don't allow the `async` keyword to be parenthesized.
-
-Properly raise an error when a keyword contains a character escape.
-
-Allow `"use strict"` to appear after other string literal expressions.
-
-Disallow labeled declarations.
-
-## 4.0.4 (2016-12-19)
-
-### Bug fixes
-
-Fix crash when `export` was followed by a keyword that can't be
-exported.
-
-## 4.0.3 (2016-08-16)
-
-### Bug fixes
-
-Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode.
-
-Properly parse properties named `async` in ES2017 mode.
-
-Fix bug where reserved words were broken in ES2017 mode.
-
-## 4.0.2 (2016-08-11)
-
-### Bug fixes
-
-Don't ignore period or 'e' characters after octal numbers.
-
-Fix broken parsing for call expressions in default parameter values of arrow functions.
-
-## 4.0.1 (2016-08-08)
-
-### Bug fixes
-
-Fix false positives in duplicated export name errors.
-
-## 4.0.0 (2016-08-07)
-
-### Breaking changes
-
-The default `ecmaVersion` option value is now 7.
-
-A number of internal method signatures changed, so plugins might need to be updated.
-
-### Bug fixes
-
-The parser now raises errors on duplicated export names.
-
-`arguments` and `eval` can now be used in shorthand properties.
-
-Duplicate parameter names in non-simple argument lists now always produce an error.
-
-### New features
-
-The `ecmaVersion` option now also accepts year-style version numbers
-(2015, etc).
-
-Support for `async`/`await` syntax when `ecmaVersion` is >= 8.
-
-Support for trailing commas in call expressions when `ecmaVersion` is >= 8.
-
-## 3.3.0 (2016-07-25)
-
-### Bug fixes
-
-Fix bug in tokenizing of regexp operator after a function declaration.
-
-Fix parser crash when parsing an array pattern with a hole.
-
-### New features
-
-Implement check against complex argument lists in functions that enable strict mode in ES7.
-
-## 3.2.0 (2016-06-07)
-
-### Bug fixes
-
-Improve handling of lack of unicode regexp support in host
-environment.
-
-Properly reject shorthand properties whose name is a keyword.
-
-### New features
-
-Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object.
-
-## 3.1.0 (2016-04-18)
-
-### Bug fixes
-
-Properly tokenize the division operator directly after a function expression.
-
-Allow trailing comma in destructuring arrays.
-
-## 3.0.4 (2016-02-25)
-
-### Fixes
-
-Allow update expressions as left-hand-side of the ES7 exponential operator.
-
-## 3.0.2 (2016-02-10)
-
-### Fixes
-
-Fix bug that accidentally made `undefined` a reserved word when parsing ES7.
-
-## 3.0.0 (2016-02-10)
-
-### Breaking changes
-
-The default value of the `ecmaVersion` option is now 6 (used to be 5).
-
-Support for comprehension syntax (which was dropped from the draft spec) has been removed.
-
-### Fixes
-
-`let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code.
-
-A parenthesized class or function expression after `export default` is now parsed correctly.
-
-### New features
-
-When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`).
-
-The identifier character ranges are now based on Unicode 8.0.0.
-
-Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled.
-
-## 2.7.0 (2016-01-04)
-
-### Fixes
-
-Stop allowing rest parameters in setters.
-
-Disallow `y` rexexp flag in ES5.
-
-Disallow `\00` and `\000` escapes in strict mode.
-
-Raise an error when an import name is a reserved word.
-
-## 2.6.2 (2015-11-10)
-
-### Fixes
-
-Don't crash when no options object is passed.
-
-## 2.6.0 (2015-11-09)
-
-### Fixes
-
-Add `await` as a reserved word in module sources.
-
-Disallow `yield` in a parameter default value for a generator.
-
-Forbid using a comma after a rest pattern in an array destructuring.
-
-### New features
-
-Support parsing stdin in command-line tool.
-
-## 2.5.0 (2015-10-27)
-
-### Fixes
-
-Fix tokenizer support in the command-line tool.
-
-Stop allowing `new.target` outside of functions.
-
-Remove legacy `guard` and `guardedHandler` properties from try nodes.
-
-Stop allowing multiple `__proto__` properties on an object literal in strict mode.
-
-Don't allow rest parameters to be non-identifier patterns.
-
-Check for duplicate paramter names in arrow functions.
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/LICENSE b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/LICENSE
deleted file mode 100644
index 9d71cc63..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (C) 2012-2022 by various contributors (see AUTHORS)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/README.md b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/README.md
deleted file mode 100644
index f7ff9662..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/README.md
+++ /dev/null
@@ -1,282 +0,0 @@
-# Acorn
-
-A tiny, fast JavaScript parser written in JavaScript.
-
-## Community
-
-Acorn is open source software released under an
-[MIT license](https://github.com/acornjs/acorn/blob/master/acorn/LICENSE).
-
-You are welcome to
-[report bugs](https://github.com/acornjs/acorn/issues) or create pull
-requests on [github](https://github.com/acornjs/acorn).
-
-## Installation
-
-The easiest way to install acorn is from [`npm`](https://www.npmjs.com/):
-
-```sh
-npm install acorn
-```
-
-Alternately, you can download the source and build acorn yourself:
-
-```sh
-git clone https://github.com/acornjs/acorn.git
-cd acorn
-npm install
-```
-
-## Interface
-
-**parse**`(input, options)` is the main interface to the library. The
-`input` parameter is a string, `options` must be an object setting
-some of the options listed below. The return value will be an abstract
-syntax tree object as specified by the [ESTree
-spec](https://github.com/estree/estree).
-
-```javascript
-let acorn = require("acorn");
-console.log(acorn.parse("1 + 1", {ecmaVersion: 2020}));
-```
-
-When encountering a syntax error, the parser will raise a
-`SyntaxError` object with a meaningful message. The error object will
-have a `pos` property that indicates the string offset at which the
-error occurred, and a `loc` object that contains a `{line, column}`
-object referring to that same position.
-
-Options are provided by in a second argument, which should be an
-object containing any of these fields (only `ecmaVersion` is
-required):
-
-- **ecmaVersion**: Indicates the ECMAScript version to parse. Can be a
- number, either in year (`2022`) or plain version number (`6`) form,
- or `"latest"` (the latest the library supports). This influences
- support for strict mode, the set of reserved words, and support for
- new syntax features.
-
- **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being
- implemented by Acorn. Other proposed new features must be
- implemented through plugins.
-
-- **sourceType**: Indicate the mode the code should be parsed in. Can be
- either `"script"` or `"module"`. This influences global strict mode
- and parsing of `import` and `export` declarations.
-
- **NOTE**: If set to `"module"`, then static `import` / `export` syntax
- will be valid, even if `ecmaVersion` is less than 6.
-
-- **onInsertedSemicolon**: If given a callback, that callback will be
- called whenever a missing semicolon is inserted by the parser. The
- callback will be given the character offset of the point where the
- semicolon is inserted as argument, and if `locations` is on, also a
- `{line, column}` object representing this position.
-
-- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing
- commas.
-
-- **allowReserved**: If `false`, using a reserved word will generate
- an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher
- versions. When given the value `"never"`, reserved words and
- keywords can also not be used as property names (as in Internet
- Explorer's old parser).
-
-- **allowReturnOutsideFunction**: By default, a return statement at
- the top level raises an error. Set this to `true` to accept such
- code.
-
-- **allowImportExportEverywhere**: By default, `import` and `export`
- declarations can only appear at a program's top level. Setting this
- option to `true` allows them anywhere where a statement is allowed,
- and also allows `import.meta` expressions to appear in scripts
- (when `sourceType` is not `"module"`).
-
-- **allowAwaitOutsideFunction**: If `false`, `await` expressions can
- only appear inside `async` functions. Defaults to `true` in modules
- for `ecmaVersion` 2022 and later, `false` for lower versions.
- Setting this option to `true` allows to have top-level `await`
- expressions. They are still not allowed in non-`async` functions,
- though.
-
-- **allowSuperOutsideMethod**: By default, `super` outside a method
- raises an error. Set this to `true` to accept such code.
-
-- **allowHashBang**: When this is enabled, if the code starts with the
- characters `#!` (as in a shellscript), the first line will be
- treated as a comment. Defaults to true when `ecmaVersion` >= 2023.
-
-- **checkPrivateFields**: By default, the parser will verify that
- private properties are only used in places where they are valid and
- have been declared. Set this to false to turn such checks off.
-
-- **locations**: When `true`, each node has a `loc` object attached
- with `start` and `end` subobjects, each of which contains the
- one-based line and zero-based column numbers in `{line, column}`
- form. Default is `false`.
-
-- **onToken**: If a function is passed for this option, each found
- token will be passed in same format as tokens returned from
- `tokenizer().getToken()`.
-
- If array is passed, each found token is pushed to it.
-
- Note that you are not allowed to call the parser from the
- callback—that will corrupt its internal state.
-
-- **onComment**: If a function is passed for this option, whenever a
- comment is encountered the function will be called with the
- following parameters:
-
- - `block`: `true` if the comment is a block comment, false if it
- is a line comment.
- - `text`: The content of the comment.
- - `start`: Character offset of the start of the comment.
- - `end`: Character offset of the end of the comment.
-
- When the `locations` options is on, the `{line, column}` locations
- of the comment’s start and end are passed as two additional
- parameters.
-
- If array is passed for this option, each found comment is pushed
- to it as object in Esprima format:
-
- ```javascript
- {
- "type": "Line" | "Block",
- "value": "comment text",
- "start": Number,
- "end": Number,
- // If `locations` option is on:
- "loc": {
- "start": {line: Number, column: Number}
- "end": {line: Number, column: Number}
- },
- // If `ranges` option is on:
- "range": [Number, Number]
- }
- ```
-
- Note that you are not allowed to call the parser from the
- callback—that will corrupt its internal state.
-
-- **ranges**: Nodes have their start and end characters offsets
- recorded in `start` and `end` properties (directly on the node,
- rather than the `loc` object, which holds line/column data. To also
- add a
- [semi-standardized](https://bugzilla.mozilla.org/show_bug.cgi?id=745678)
- `range` property holding a `[start, end]` array with the same
- numbers, set the `ranges` option to `true`.
-
-- **program**: It is possible to parse multiple files into a single
- AST by passing the tree produced by parsing the first file as the
- `program` option in subsequent parses. This will add the toplevel
- forms of the parsed file to the "Program" (top) node of an existing
- parse tree.
-
-- **sourceFile**: When the `locations` option is `true`, you can pass
- this option to add a `source` attribute in every node’s `loc`
- object. Note that the contents of this option are not examined or
- processed in any way; you are free to use whatever format you
- choose.
-
-- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property
- will be added (regardless of the `location` option) directly to the
- nodes, rather than the `loc` object.
-
-- **preserveParens**: If this option is `true`, parenthesized expressions
- are represented by (non-standard) `ParenthesizedExpression` nodes
- that have a single `expression` property containing the expression
- inside parentheses.
-
-**parseExpressionAt**`(input, offset, options)` will parse a single
-expression in a string, and return its AST. It will not complain if
-there is more of the string left after the expression.
-
-**tokenizer**`(input, options)` returns an object with a `getToken`
-method that can be called repeatedly to get the next token, a `{start,
-end, type, value}` object (with added `loc` property when the
-`locations` option is enabled and `range` property when the `ranges`
-option is enabled). When the token's type is `tokTypes.eof`, you
-should stop calling the method, since it will keep returning that same
-token forever.
-
-Note that tokenizing JavaScript without parsing it is, in modern
-versions of the language, not really possible due to the way syntax is
-overloaded in ways that can only be disambiguated by the parse
-context. This package applies a bunch of heuristics to try and do a
-reasonable job, but you are advised to use `parse` with the `onToken`
-option instead of this.
-
-In ES6 environment, returned result can be used as any other
-protocol-compliant iterable:
-
-```javascript
-for (let token of acorn.tokenizer(str)) {
- // iterate over the tokens
-}
-
-// transform code to array of tokens:
-var tokens = [...acorn.tokenizer(str)];
-```
-
-**tokTypes** holds an object mapping names to the token type objects
-that end up in the `type` properties of tokens.
-
-**getLineInfo**`(input, offset)` can be used to get a `{line,
-column}` object for a given program string and offset.
-
-### The `Parser` class
-
-Instances of the **`Parser`** class contain all the state and logic
-that drives a parse. It has static methods `parse`,
-`parseExpressionAt`, and `tokenizer` that match the top-level
-functions by the same name.
-
-When extending the parser with plugins, you need to call these methods
-on the extended version of the class. To extend a parser with plugins,
-you can use its static `extend` method.
-
-```javascript
-var acorn = require("acorn");
-var jsx = require("acorn-jsx");
-var JSXParser = acorn.Parser.extend(jsx());
-JSXParser.parse("foo( )", {ecmaVersion: 2020});
-```
-
-The `extend` method takes any number of plugin values, and returns a
-new `Parser` class that includes the extra parser logic provided by
-the plugins.
-
-## Command line interface
-
-The `bin/acorn` utility can be used to parse a file from the command
-line. It accepts as arguments its input file and the following
-options:
-
-- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version
- to parse. Default is version 9.
-
-- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise.
-
-- `--locations`: Attaches a "loc" object to each node with "start" and
- "end" subobjects, each of which contains the one-based line and
- zero-based column numbers in `{line, column}` form.
-
-- `--allow-hash-bang`: If the code starts with the characters #! (as
- in a shellscript), the first line will be treated as a comment.
-
-- `--allow-await-outside-function`: Allows top-level `await` expressions.
- See the `allowAwaitOutsideFunction` option for more information.
-
-- `--compact`: No whitespace is used in the AST output.
-
-- `--silent`: Do not output the AST, just return the exit status.
-
-- `--help`: Print the usage information and quit.
-
-The utility spits out the syntax tree as JSON data.
-
-## Existing plugins
-
- - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx)
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn
deleted file mode 100755
index 3ef3c124..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/bin/acorn
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env node
-"use strict"
-
-require("../dist/bin.js")
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.d.mts b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.d.mts
deleted file mode 100644
index f2ec5243..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.d.mts
+++ /dev/null
@@ -1,883 +0,0 @@
-export interface Node {
- start: number
- end: number
- type: string
- range?: [number, number]
- loc?: SourceLocation | null
-}
-
-export interface SourceLocation {
- source?: string | null
- start: Position
- end: Position
-}
-
-export interface Position {
- /** 1-based */
- line: number
- /** 0-based */
- column: number
-}
-
-export interface Identifier extends Node {
- type: "Identifier"
- name: string
-}
-
-export interface Literal extends Node {
- type: "Literal"
- value?: string | boolean | null | number | RegExp | bigint
- raw?: string
- regex?: {
- pattern: string
- flags: string
- }
- bigint?: string
-}
-
-export interface Program extends Node {
- type: "Program"
- body: Array
- sourceType: "script" | "module"
-}
-
-export interface Function extends Node {
- id?: Identifier | null
- params: Array
- body: BlockStatement | Expression
- generator: boolean
- expression: boolean
- async: boolean
-}
-
-export interface ExpressionStatement extends Node {
- type: "ExpressionStatement"
- expression: Expression | Literal
- directive?: string
-}
-
-export interface BlockStatement extends Node {
- type: "BlockStatement"
- body: Array
-}
-
-export interface EmptyStatement extends Node {
- type: "EmptyStatement"
-}
-
-export interface DebuggerStatement extends Node {
- type: "DebuggerStatement"
-}
-
-export interface WithStatement extends Node {
- type: "WithStatement"
- object: Expression
- body: Statement
-}
-
-export interface ReturnStatement extends Node {
- type: "ReturnStatement"
- argument?: Expression | null
-}
-
-export interface LabeledStatement extends Node {
- type: "LabeledStatement"
- label: Identifier
- body: Statement
-}
-
-export interface BreakStatement extends Node {
- type: "BreakStatement"
- label?: Identifier | null
-}
-
-export interface ContinueStatement extends Node {
- type: "ContinueStatement"
- label?: Identifier | null
-}
-
-export interface IfStatement extends Node {
- type: "IfStatement"
- test: Expression
- consequent: Statement
- alternate?: Statement | null
-}
-
-export interface SwitchStatement extends Node {
- type: "SwitchStatement"
- discriminant: Expression
- cases: Array
-}
-
-export interface SwitchCase extends Node {
- type: "SwitchCase"
- test?: Expression | null
- consequent: Array
-}
-
-export interface ThrowStatement extends Node {
- type: "ThrowStatement"
- argument: Expression
-}
-
-export interface TryStatement extends Node {
- type: "TryStatement"
- block: BlockStatement
- handler?: CatchClause | null
- finalizer?: BlockStatement | null
-}
-
-export interface CatchClause extends Node {
- type: "CatchClause"
- param?: Pattern | null
- body: BlockStatement
-}
-
-export interface WhileStatement extends Node {
- type: "WhileStatement"
- test: Expression
- body: Statement
-}
-
-export interface DoWhileStatement extends Node {
- type: "DoWhileStatement"
- body: Statement
- test: Expression
-}
-
-export interface ForStatement extends Node {
- type: "ForStatement"
- init?: VariableDeclaration | Expression | null
- test?: Expression | null
- update?: Expression | null
- body: Statement
-}
-
-export interface ForInStatement extends Node {
- type: "ForInStatement"
- left: VariableDeclaration | Pattern
- right: Expression
- body: Statement
-}
-
-export interface FunctionDeclaration extends Function {
- type: "FunctionDeclaration"
- id: Identifier
- body: BlockStatement
-}
-
-export interface VariableDeclaration extends Node {
- type: "VariableDeclaration"
- declarations: Array
- kind: "var" | "let" | "const" | "using" | "await using"
-}
-
-export interface VariableDeclarator extends Node {
- type: "VariableDeclarator"
- id: Pattern
- init?: Expression | null
-}
-
-export interface ThisExpression extends Node {
- type: "ThisExpression"
-}
-
-export interface ArrayExpression extends Node {
- type: "ArrayExpression"
- elements: Array
-}
-
-export interface ObjectExpression extends Node {
- type: "ObjectExpression"
- properties: Array
-}
-
-export interface Property extends Node {
- type: "Property"
- key: Expression
- value: Expression
- kind: "init" | "get" | "set"
- method: boolean
- shorthand: boolean
- computed: boolean
-}
-
-export interface FunctionExpression extends Function {
- type: "FunctionExpression"
- body: BlockStatement
-}
-
-export interface UnaryExpression extends Node {
- type: "UnaryExpression"
- operator: UnaryOperator
- prefix: boolean
- argument: Expression
-}
-
-export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete"
-
-export interface UpdateExpression extends Node {
- type: "UpdateExpression"
- operator: UpdateOperator
- argument: Expression
- prefix: boolean
-}
-
-export type UpdateOperator = "++" | "--"
-
-export interface BinaryExpression extends Node {
- type: "BinaryExpression"
- operator: BinaryOperator
- left: Expression | PrivateIdentifier
- right: Expression
-}
-
-export type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in" | "instanceof" | "**"
-
-export interface AssignmentExpression extends Node {
- type: "AssignmentExpression"
- operator: AssignmentOperator
- left: Pattern
- right: Expression
-}
-
-export type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??="
-
-export interface LogicalExpression extends Node {
- type: "LogicalExpression"
- operator: LogicalOperator
- left: Expression
- right: Expression
-}
-
-export type LogicalOperator = "||" | "&&" | "??"
-
-export interface MemberExpression extends Node {
- type: "MemberExpression"
- object: Expression | Super
- property: Expression | PrivateIdentifier
- computed: boolean
- optional: boolean
-}
-
-export interface ConditionalExpression extends Node {
- type: "ConditionalExpression"
- test: Expression
- alternate: Expression
- consequent: Expression
-}
-
-export interface CallExpression extends Node {
- type: "CallExpression"
- callee: Expression | Super
- arguments: Array
- optional: boolean
-}
-
-export interface NewExpression extends Node {
- type: "NewExpression"
- callee: Expression
- arguments: Array
-}
-
-export interface SequenceExpression extends Node {
- type: "SequenceExpression"
- expressions: Array
-}
-
-export interface ForOfStatement extends Node {
- type: "ForOfStatement"
- left: VariableDeclaration | Pattern
- right: Expression
- body: Statement
- await: boolean
-}
-
-export interface Super extends Node {
- type: "Super"
-}
-
-export interface SpreadElement extends Node {
- type: "SpreadElement"
- argument: Expression
-}
-
-export interface ArrowFunctionExpression extends Function {
- type: "ArrowFunctionExpression"
-}
-
-export interface YieldExpression extends Node {
- type: "YieldExpression"
- argument?: Expression | null
- delegate: boolean
-}
-
-export interface TemplateLiteral extends Node {
- type: "TemplateLiteral"
- quasis: Array
- expressions: Array
-}
-
-export interface TaggedTemplateExpression extends Node {
- type: "TaggedTemplateExpression"
- tag: Expression
- quasi: TemplateLiteral
-}
-
-export interface TemplateElement extends Node {
- type: "TemplateElement"
- tail: boolean
- value: {
- cooked?: string | null
- raw: string
- }
-}
-
-export interface AssignmentProperty extends Node {
- type: "Property"
- key: Expression
- value: Pattern
- kind: "init"
- method: false
- shorthand: boolean
- computed: boolean
-}
-
-export interface ObjectPattern extends Node {
- type: "ObjectPattern"
- properties: Array
-}
-
-export interface ArrayPattern extends Node {
- type: "ArrayPattern"
- elements: Array
-}
-
-export interface RestElement extends Node {
- type: "RestElement"
- argument: Pattern
-}
-
-export interface AssignmentPattern extends Node {
- type: "AssignmentPattern"
- left: Pattern
- right: Expression
-}
-
-export interface Class extends Node {
- id?: Identifier | null
- superClass?: Expression | null
- body: ClassBody
-}
-
-export interface ClassBody extends Node {
- type: "ClassBody"
- body: Array
-}
-
-export interface MethodDefinition extends Node {
- type: "MethodDefinition"
- key: Expression | PrivateIdentifier
- value: FunctionExpression
- kind: "constructor" | "method" | "get" | "set"
- computed: boolean
- static: boolean
-}
-
-export interface ClassDeclaration extends Class {
- type: "ClassDeclaration"
- id: Identifier
-}
-
-export interface ClassExpression extends Class {
- type: "ClassExpression"
-}
-
-export interface MetaProperty extends Node {
- type: "MetaProperty"
- meta: Identifier
- property: Identifier
-}
-
-export interface ImportDeclaration extends Node {
- type: "ImportDeclaration"
- specifiers: Array
- source: Literal
- attributes: Array
-}
-
-export interface ImportSpecifier extends Node {
- type: "ImportSpecifier"
- imported: Identifier | Literal
- local: Identifier
-}
-
-export interface ImportDefaultSpecifier extends Node {
- type: "ImportDefaultSpecifier"
- local: Identifier
-}
-
-export interface ImportNamespaceSpecifier extends Node {
- type: "ImportNamespaceSpecifier"
- local: Identifier
-}
-
-export interface ImportAttribute extends Node {
- type: "ImportAttribute"
- key: Identifier | Literal
- value: Literal
-}
-
-export interface ExportNamedDeclaration extends Node {
- type: "ExportNamedDeclaration"
- declaration?: Declaration | null
- specifiers: Array
- source?: Literal | null
- attributes: Array
-}
-
-export interface ExportSpecifier extends Node {
- type: "ExportSpecifier"
- exported: Identifier | Literal
- local: Identifier | Literal
-}
-
-export interface AnonymousFunctionDeclaration extends Function {
- type: "FunctionDeclaration"
- id: null
- body: BlockStatement
-}
-
-export interface AnonymousClassDeclaration extends Class {
- type: "ClassDeclaration"
- id: null
-}
-
-export interface ExportDefaultDeclaration extends Node {
- type: "ExportDefaultDeclaration"
- declaration: AnonymousFunctionDeclaration | FunctionDeclaration | AnonymousClassDeclaration | ClassDeclaration | Expression
-}
-
-export interface ExportAllDeclaration extends Node {
- type: "ExportAllDeclaration"
- source: Literal
- exported?: Identifier | Literal | null
- attributes: Array
-}
-
-export interface AwaitExpression extends Node {
- type: "AwaitExpression"
- argument: Expression
-}
-
-export interface ChainExpression extends Node {
- type: "ChainExpression"
- expression: MemberExpression | CallExpression
-}
-
-export interface ImportExpression extends Node {
- type: "ImportExpression"
- source: Expression
- options: Expression | null
-}
-
-export interface ParenthesizedExpression extends Node {
- type: "ParenthesizedExpression"
- expression: Expression
-}
-
-export interface PropertyDefinition extends Node {
- type: "PropertyDefinition"
- key: Expression | PrivateIdentifier
- value?: Expression | null
- computed: boolean
- static: boolean
-}
-
-export interface PrivateIdentifier extends Node {
- type: "PrivateIdentifier"
- name: string
-}
-
-export interface StaticBlock extends Node {
- type: "StaticBlock"
- body: Array
-}
-
-export type Statement =
-| ExpressionStatement
-| BlockStatement
-| EmptyStatement
-| DebuggerStatement
-| WithStatement
-| ReturnStatement
-| LabeledStatement
-| BreakStatement
-| ContinueStatement
-| IfStatement
-| SwitchStatement
-| ThrowStatement
-| TryStatement
-| WhileStatement
-| DoWhileStatement
-| ForStatement
-| ForInStatement
-| ForOfStatement
-| Declaration
-
-export type Declaration =
-| FunctionDeclaration
-| VariableDeclaration
-| ClassDeclaration
-
-export type Expression =
-| Identifier
-| Literal
-| ThisExpression
-| ArrayExpression
-| ObjectExpression
-| FunctionExpression
-| UnaryExpression
-| UpdateExpression
-| BinaryExpression
-| AssignmentExpression
-| LogicalExpression
-| MemberExpression
-| ConditionalExpression
-| CallExpression
-| NewExpression
-| SequenceExpression
-| ArrowFunctionExpression
-| YieldExpression
-| TemplateLiteral
-| TaggedTemplateExpression
-| ClassExpression
-| MetaProperty
-| AwaitExpression
-| ChainExpression
-| ImportExpression
-| ParenthesizedExpression
-
-export type Pattern =
-| Identifier
-| MemberExpression
-| ObjectPattern
-| ArrayPattern
-| RestElement
-| AssignmentPattern
-
-export type ModuleDeclaration =
-| ImportDeclaration
-| ExportNamedDeclaration
-| ExportDefaultDeclaration
-| ExportAllDeclaration
-
-/**
- * This interface is only used for defining {@link AnyNode}.
- * It exists so that it can be extended by plugins:
- *
- * @example
- * ```typescript
- * declare module 'acorn' {
- * interface NodeTypes {
- * pluginName: FirstNode | SecondNode | ThirdNode | ... | LastNode
- * }
- * }
- * ```
- */
-interface NodeTypes {
- core: Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportAttribute | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock | VariableDeclarator
-}
-
-export type AnyNode = NodeTypes[keyof NodeTypes]
-
-export function parse(input: string, options: Options): Program
-
-export function parseExpressionAt(input: string, pos: number, options: Options): Expression
-
-export function tokenizer(input: string, options: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator
-}
-
-export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | "latest"
-
-export interface Options {
- /**
- * `ecmaVersion` indicates the ECMAScript version to parse. Can be a
- * number, either in year (`2022`) or plain version number (`6`) form,
- * or `"latest"` (the latest the library supports). This influences
- * support for strict mode, the set of reserved words, and support for
- * new syntax features.
- */
- ecmaVersion: ecmaVersion
-
- /**
- * `sourceType` indicates the mode the code should be parsed in.
- * Can be either `"script"` or `"module"`. This influences global
- * strict mode and parsing of `import` and `export` declarations.
- */
- sourceType?: "script" | "module"
-
- /**
- * a callback that will be called when a semicolon is automatically inserted.
- * @param lastTokEnd the position of the comma as an offset
- * @param lastTokEndLoc location if {@link locations} is enabled
- */
- onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
-
- /**
- * similar to `onInsertedSemicolon`, but for trailing commas
- * @param lastTokEnd the position of the comma as an offset
- * @param lastTokEndLoc location if `locations` is enabled
- */
- onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
-
- /**
- * By default, reserved words are only enforced if ecmaVersion >= 5.
- * Set `allowReserved` to a boolean value to explicitly turn this on
- * an off. When this option has the value "never", reserved words
- * and keywords can also not be used as property names.
- */
- allowReserved?: boolean | "never"
-
- /**
- * When enabled, a return at the top level is not considered an error.
- */
- allowReturnOutsideFunction?: boolean
-
- /**
- * When enabled, import/export statements are not constrained to
- * appearing at the top of the program, and an import.meta expression
- * in a script isn't considered an error.
- */
- allowImportExportEverywhere?: boolean
-
- /**
- * By default, `await` identifiers are allowed to appear at the top-level scope only if {@link ecmaVersion} >= 2022.
- * When enabled, await identifiers are allowed to appear at the top-level scope,
- * but they are still not allowed in non-async functions.
- */
- allowAwaitOutsideFunction?: boolean
-
- /**
- * When enabled, super identifiers are not constrained to
- * appearing in methods and do not raise an error when they appear elsewhere.
- */
- allowSuperOutsideMethod?: boolean
-
- /**
- * When enabled, hashbang directive in the beginning of file is
- * allowed and treated as a line comment. Enabled by default when
- * {@link ecmaVersion} >= 2023.
- */
- allowHashBang?: boolean
-
- /**
- * By default, the parser will verify that private properties are
- * only used in places where they are valid and have been declared.
- * Set this to false to turn such checks off.
- */
- checkPrivateFields?: boolean
-
- /**
- * When `locations` is on, `loc` properties holding objects with
- * `start` and `end` properties as {@link Position} objects will be attached to the
- * nodes.
- */
- locations?: boolean
-
- /**
- * a callback that will cause Acorn to call that export function with object in the same
- * format as tokens returned from `tokenizer().getToken()`. Note
- * that you are not allowed to call the parser from the
- * callback—that will corrupt its internal state.
- */
- onToken?: ((token: Token) => void) | Token[]
-
-
- /**
- * This takes a export function or an array.
- *
- * When a export function is passed, Acorn will call that export function with `(block, text, start,
- * end)` parameters whenever a comment is skipped. `block` is a
- * boolean indicating whether this is a block (`/* *\/`) comment,
- * `text` is the content of the comment, and `start` and `end` are
- * character offsets that denote the start and end of the comment.
- * When the {@link locations} option is on, two more parameters are
- * passed, the full locations of {@link Position} export type of the start and
- * end of the comments.
- *
- * When a array is passed, each found comment of {@link Comment} export type is pushed to the array.
- *
- * Note that you are not allowed to call the
- * parser from the callback—that will corrupt its internal state.
- */
- onComment?: ((
- isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
- endLoc?: Position
- ) => void) | Comment[]
-
- /**
- * Nodes have their start and end characters offsets recorded in
- * `start` and `end` properties (directly on the node, rather than
- * the `loc` object, which holds line/column data. To also add a
- * [semi-standardized][range] `range` property holding a `[start,
- * end]` array with the same numbers, set the `ranges` option to
- * `true`.
- */
- ranges?: boolean
-
- /**
- * It is possible to parse multiple files into a single AST by
- * passing the tree produced by parsing the first file as
- * `program` option in subsequent parses. This will add the
- * toplevel forms of the parsed file to the `Program` (top) node
- * of an existing parse tree.
- */
- program?: Node
-
- /**
- * When {@link locations} is on, you can pass this to record the source
- * file in every node's `loc` object.
- */
- sourceFile?: string
-
- /**
- * This value, if given, is stored in every node, whether {@link locations} is on or off.
- */
- directSourceFile?: string
-
- /**
- * When enabled, parenthesized expressions are represented by
- * (non-standard) ParenthesizedExpression nodes
- */
- preserveParens?: boolean
-}
-
-export class Parser {
- options: Options
- input: string
-
- protected constructor(options: Options, input: string, startPos?: number)
- parse(): Program
-
- static parse(input: string, options: Options): Program
- static parseExpressionAt(input: string, pos: number, options: Options): Expression
- static tokenizer(input: string, options: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator
- }
- static extend(...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
-}
-
-export const defaultOptions: Options
-
-export function getLineInfo(input: string, offset: number): Position
-
-export class TokenType {
- label: string
- keyword: string | undefined
-}
-
-export const tokTypes: {
- num: TokenType
- regexp: TokenType
- string: TokenType
- name: TokenType
- privateId: TokenType
- eof: TokenType
-
- bracketL: TokenType
- bracketR: TokenType
- braceL: TokenType
- braceR: TokenType
- parenL: TokenType
- parenR: TokenType
- comma: TokenType
- semi: TokenType
- colon: TokenType
- dot: TokenType
- question: TokenType
- questionDot: TokenType
- arrow: TokenType
- template: TokenType
- invalidTemplate: TokenType
- ellipsis: TokenType
- backQuote: TokenType
- dollarBraceL: TokenType
-
- eq: TokenType
- assign: TokenType
- incDec: TokenType
- prefix: TokenType
- logicalOR: TokenType
- logicalAND: TokenType
- bitwiseOR: TokenType
- bitwiseXOR: TokenType
- bitwiseAND: TokenType
- equality: TokenType
- relational: TokenType
- bitShift: TokenType
- plusMin: TokenType
- modulo: TokenType
- star: TokenType
- slash: TokenType
- starstar: TokenType
- coalesce: TokenType
-
- _break: TokenType
- _case: TokenType
- _catch: TokenType
- _continue: TokenType
- _debugger: TokenType
- _default: TokenType
- _do: TokenType
- _else: TokenType
- _finally: TokenType
- _for: TokenType
- _function: TokenType
- _if: TokenType
- _return: TokenType
- _switch: TokenType
- _throw: TokenType
- _try: TokenType
- _var: TokenType
- _const: TokenType
- _while: TokenType
- _with: TokenType
- _new: TokenType
- _this: TokenType
- _super: TokenType
- _class: TokenType
- _extends: TokenType
- _export: TokenType
- _import: TokenType
- _null: TokenType
- _true: TokenType
- _false: TokenType
- _in: TokenType
- _instanceof: TokenType
- _typeof: TokenType
- _void: TokenType
- _delete: TokenType
-}
-
-export interface Comment {
- type: "Line" | "Block"
- value: string
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
-}
-
-export class Token {
- type: TokenType
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
-}
-
-export const version: string
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.d.ts b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.d.ts
deleted file mode 100644
index f2ec5243..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.d.ts
+++ /dev/null
@@ -1,883 +0,0 @@
-export interface Node {
- start: number
- end: number
- type: string
- range?: [number, number]
- loc?: SourceLocation | null
-}
-
-export interface SourceLocation {
- source?: string | null
- start: Position
- end: Position
-}
-
-export interface Position {
- /** 1-based */
- line: number
- /** 0-based */
- column: number
-}
-
-export interface Identifier extends Node {
- type: "Identifier"
- name: string
-}
-
-export interface Literal extends Node {
- type: "Literal"
- value?: string | boolean | null | number | RegExp | bigint
- raw?: string
- regex?: {
- pattern: string
- flags: string
- }
- bigint?: string
-}
-
-export interface Program extends Node {
- type: "Program"
- body: Array
- sourceType: "script" | "module"
-}
-
-export interface Function extends Node {
- id?: Identifier | null
- params: Array
- body: BlockStatement | Expression
- generator: boolean
- expression: boolean
- async: boolean
-}
-
-export interface ExpressionStatement extends Node {
- type: "ExpressionStatement"
- expression: Expression | Literal
- directive?: string
-}
-
-export interface BlockStatement extends Node {
- type: "BlockStatement"
- body: Array
-}
-
-export interface EmptyStatement extends Node {
- type: "EmptyStatement"
-}
-
-export interface DebuggerStatement extends Node {
- type: "DebuggerStatement"
-}
-
-export interface WithStatement extends Node {
- type: "WithStatement"
- object: Expression
- body: Statement
-}
-
-export interface ReturnStatement extends Node {
- type: "ReturnStatement"
- argument?: Expression | null
-}
-
-export interface LabeledStatement extends Node {
- type: "LabeledStatement"
- label: Identifier
- body: Statement
-}
-
-export interface BreakStatement extends Node {
- type: "BreakStatement"
- label?: Identifier | null
-}
-
-export interface ContinueStatement extends Node {
- type: "ContinueStatement"
- label?: Identifier | null
-}
-
-export interface IfStatement extends Node {
- type: "IfStatement"
- test: Expression
- consequent: Statement
- alternate?: Statement | null
-}
-
-export interface SwitchStatement extends Node {
- type: "SwitchStatement"
- discriminant: Expression
- cases: Array
-}
-
-export interface SwitchCase extends Node {
- type: "SwitchCase"
- test?: Expression | null
- consequent: Array
-}
-
-export interface ThrowStatement extends Node {
- type: "ThrowStatement"
- argument: Expression
-}
-
-export interface TryStatement extends Node {
- type: "TryStatement"
- block: BlockStatement
- handler?: CatchClause | null
- finalizer?: BlockStatement | null
-}
-
-export interface CatchClause extends Node {
- type: "CatchClause"
- param?: Pattern | null
- body: BlockStatement
-}
-
-export interface WhileStatement extends Node {
- type: "WhileStatement"
- test: Expression
- body: Statement
-}
-
-export interface DoWhileStatement extends Node {
- type: "DoWhileStatement"
- body: Statement
- test: Expression
-}
-
-export interface ForStatement extends Node {
- type: "ForStatement"
- init?: VariableDeclaration | Expression | null
- test?: Expression | null
- update?: Expression | null
- body: Statement
-}
-
-export interface ForInStatement extends Node {
- type: "ForInStatement"
- left: VariableDeclaration | Pattern
- right: Expression
- body: Statement
-}
-
-export interface FunctionDeclaration extends Function {
- type: "FunctionDeclaration"
- id: Identifier
- body: BlockStatement
-}
-
-export interface VariableDeclaration extends Node {
- type: "VariableDeclaration"
- declarations: Array
- kind: "var" | "let" | "const" | "using" | "await using"
-}
-
-export interface VariableDeclarator extends Node {
- type: "VariableDeclarator"
- id: Pattern
- init?: Expression | null
-}
-
-export interface ThisExpression extends Node {
- type: "ThisExpression"
-}
-
-export interface ArrayExpression extends Node {
- type: "ArrayExpression"
- elements: Array
-}
-
-export interface ObjectExpression extends Node {
- type: "ObjectExpression"
- properties: Array
-}
-
-export interface Property extends Node {
- type: "Property"
- key: Expression
- value: Expression
- kind: "init" | "get" | "set"
- method: boolean
- shorthand: boolean
- computed: boolean
-}
-
-export interface FunctionExpression extends Function {
- type: "FunctionExpression"
- body: BlockStatement
-}
-
-export interface UnaryExpression extends Node {
- type: "UnaryExpression"
- operator: UnaryOperator
- prefix: boolean
- argument: Expression
-}
-
-export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete"
-
-export interface UpdateExpression extends Node {
- type: "UpdateExpression"
- operator: UpdateOperator
- argument: Expression
- prefix: boolean
-}
-
-export type UpdateOperator = "++" | "--"
-
-export interface BinaryExpression extends Node {
- type: "BinaryExpression"
- operator: BinaryOperator
- left: Expression | PrivateIdentifier
- right: Expression
-}
-
-export type BinaryOperator = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in" | "instanceof" | "**"
-
-export interface AssignmentExpression extends Node {
- type: "AssignmentExpression"
- operator: AssignmentOperator
- left: Pattern
- right: Expression
-}
-
-export type AssignmentOperator = "=" | "+=" | "-=" | "*=" | "/=" | "%=" | "<<=" | ">>=" | ">>>=" | "|=" | "^=" | "&=" | "**=" | "||=" | "&&=" | "??="
-
-export interface LogicalExpression extends Node {
- type: "LogicalExpression"
- operator: LogicalOperator
- left: Expression
- right: Expression
-}
-
-export type LogicalOperator = "||" | "&&" | "??"
-
-export interface MemberExpression extends Node {
- type: "MemberExpression"
- object: Expression | Super
- property: Expression | PrivateIdentifier
- computed: boolean
- optional: boolean
-}
-
-export interface ConditionalExpression extends Node {
- type: "ConditionalExpression"
- test: Expression
- alternate: Expression
- consequent: Expression
-}
-
-export interface CallExpression extends Node {
- type: "CallExpression"
- callee: Expression | Super
- arguments: Array
- optional: boolean
-}
-
-export interface NewExpression extends Node {
- type: "NewExpression"
- callee: Expression
- arguments: Array
-}
-
-export interface SequenceExpression extends Node {
- type: "SequenceExpression"
- expressions: Array
-}
-
-export interface ForOfStatement extends Node {
- type: "ForOfStatement"
- left: VariableDeclaration | Pattern
- right: Expression
- body: Statement
- await: boolean
-}
-
-export interface Super extends Node {
- type: "Super"
-}
-
-export interface SpreadElement extends Node {
- type: "SpreadElement"
- argument: Expression
-}
-
-export interface ArrowFunctionExpression extends Function {
- type: "ArrowFunctionExpression"
-}
-
-export interface YieldExpression extends Node {
- type: "YieldExpression"
- argument?: Expression | null
- delegate: boolean
-}
-
-export interface TemplateLiteral extends Node {
- type: "TemplateLiteral"
- quasis: Array
- expressions: Array
-}
-
-export interface TaggedTemplateExpression extends Node {
- type: "TaggedTemplateExpression"
- tag: Expression
- quasi: TemplateLiteral
-}
-
-export interface TemplateElement extends Node {
- type: "TemplateElement"
- tail: boolean
- value: {
- cooked?: string | null
- raw: string
- }
-}
-
-export interface AssignmentProperty extends Node {
- type: "Property"
- key: Expression
- value: Pattern
- kind: "init"
- method: false
- shorthand: boolean
- computed: boolean
-}
-
-export interface ObjectPattern extends Node {
- type: "ObjectPattern"
- properties: Array
-}
-
-export interface ArrayPattern extends Node {
- type: "ArrayPattern"
- elements: Array
-}
-
-export interface RestElement extends Node {
- type: "RestElement"
- argument: Pattern
-}
-
-export interface AssignmentPattern extends Node {
- type: "AssignmentPattern"
- left: Pattern
- right: Expression
-}
-
-export interface Class extends Node {
- id?: Identifier | null
- superClass?: Expression | null
- body: ClassBody
-}
-
-export interface ClassBody extends Node {
- type: "ClassBody"
- body: Array
-}
-
-export interface MethodDefinition extends Node {
- type: "MethodDefinition"
- key: Expression | PrivateIdentifier
- value: FunctionExpression
- kind: "constructor" | "method" | "get" | "set"
- computed: boolean
- static: boolean
-}
-
-export interface ClassDeclaration extends Class {
- type: "ClassDeclaration"
- id: Identifier
-}
-
-export interface ClassExpression extends Class {
- type: "ClassExpression"
-}
-
-export interface MetaProperty extends Node {
- type: "MetaProperty"
- meta: Identifier
- property: Identifier
-}
-
-export interface ImportDeclaration extends Node {
- type: "ImportDeclaration"
- specifiers: Array
- source: Literal
- attributes: Array
-}
-
-export interface ImportSpecifier extends Node {
- type: "ImportSpecifier"
- imported: Identifier | Literal
- local: Identifier
-}
-
-export interface ImportDefaultSpecifier extends Node {
- type: "ImportDefaultSpecifier"
- local: Identifier
-}
-
-export interface ImportNamespaceSpecifier extends Node {
- type: "ImportNamespaceSpecifier"
- local: Identifier
-}
-
-export interface ImportAttribute extends Node {
- type: "ImportAttribute"
- key: Identifier | Literal
- value: Literal
-}
-
-export interface ExportNamedDeclaration extends Node {
- type: "ExportNamedDeclaration"
- declaration?: Declaration | null
- specifiers: Array
- source?: Literal | null
- attributes: Array
-}
-
-export interface ExportSpecifier extends Node {
- type: "ExportSpecifier"
- exported: Identifier | Literal
- local: Identifier | Literal
-}
-
-export interface AnonymousFunctionDeclaration extends Function {
- type: "FunctionDeclaration"
- id: null
- body: BlockStatement
-}
-
-export interface AnonymousClassDeclaration extends Class {
- type: "ClassDeclaration"
- id: null
-}
-
-export interface ExportDefaultDeclaration extends Node {
- type: "ExportDefaultDeclaration"
- declaration: AnonymousFunctionDeclaration | FunctionDeclaration | AnonymousClassDeclaration | ClassDeclaration | Expression
-}
-
-export interface ExportAllDeclaration extends Node {
- type: "ExportAllDeclaration"
- source: Literal
- exported?: Identifier | Literal | null
- attributes: Array
-}
-
-export interface AwaitExpression extends Node {
- type: "AwaitExpression"
- argument: Expression
-}
-
-export interface ChainExpression extends Node {
- type: "ChainExpression"
- expression: MemberExpression | CallExpression
-}
-
-export interface ImportExpression extends Node {
- type: "ImportExpression"
- source: Expression
- options: Expression | null
-}
-
-export interface ParenthesizedExpression extends Node {
- type: "ParenthesizedExpression"
- expression: Expression
-}
-
-export interface PropertyDefinition extends Node {
- type: "PropertyDefinition"
- key: Expression | PrivateIdentifier
- value?: Expression | null
- computed: boolean
- static: boolean
-}
-
-export interface PrivateIdentifier extends Node {
- type: "PrivateIdentifier"
- name: string
-}
-
-export interface StaticBlock extends Node {
- type: "StaticBlock"
- body: Array
-}
-
-export type Statement =
-| ExpressionStatement
-| BlockStatement
-| EmptyStatement
-| DebuggerStatement
-| WithStatement
-| ReturnStatement
-| LabeledStatement
-| BreakStatement
-| ContinueStatement
-| IfStatement
-| SwitchStatement
-| ThrowStatement
-| TryStatement
-| WhileStatement
-| DoWhileStatement
-| ForStatement
-| ForInStatement
-| ForOfStatement
-| Declaration
-
-export type Declaration =
-| FunctionDeclaration
-| VariableDeclaration
-| ClassDeclaration
-
-export type Expression =
-| Identifier
-| Literal
-| ThisExpression
-| ArrayExpression
-| ObjectExpression
-| FunctionExpression
-| UnaryExpression
-| UpdateExpression
-| BinaryExpression
-| AssignmentExpression
-| LogicalExpression
-| MemberExpression
-| ConditionalExpression
-| CallExpression
-| NewExpression
-| SequenceExpression
-| ArrowFunctionExpression
-| YieldExpression
-| TemplateLiteral
-| TaggedTemplateExpression
-| ClassExpression
-| MetaProperty
-| AwaitExpression
-| ChainExpression
-| ImportExpression
-| ParenthesizedExpression
-
-export type Pattern =
-| Identifier
-| MemberExpression
-| ObjectPattern
-| ArrayPattern
-| RestElement
-| AssignmentPattern
-
-export type ModuleDeclaration =
-| ImportDeclaration
-| ExportNamedDeclaration
-| ExportDefaultDeclaration
-| ExportAllDeclaration
-
-/**
- * This interface is only used for defining {@link AnyNode}.
- * It exists so that it can be extended by plugins:
- *
- * @example
- * ```typescript
- * declare module 'acorn' {
- * interface NodeTypes {
- * pluginName: FirstNode | SecondNode | ThirdNode | ... | LastNode
- * }
- * }
- * ```
- */
-interface NodeTypes {
- core: Statement | Expression | Declaration | ModuleDeclaration | Literal | Program | SwitchCase | CatchClause | Property | Super | SpreadElement | TemplateElement | AssignmentProperty | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | ClassBody | MethodDefinition | MetaProperty | ImportAttribute | ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier | AnonymousFunctionDeclaration | AnonymousClassDeclaration | PropertyDefinition | PrivateIdentifier | StaticBlock | VariableDeclarator
-}
-
-export type AnyNode = NodeTypes[keyof NodeTypes]
-
-export function parse(input: string, options: Options): Program
-
-export function parseExpressionAt(input: string, pos: number, options: Options): Expression
-
-export function tokenizer(input: string, options: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator
-}
-
-export type ecmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | "latest"
-
-export interface Options {
- /**
- * `ecmaVersion` indicates the ECMAScript version to parse. Can be a
- * number, either in year (`2022`) or plain version number (`6`) form,
- * or `"latest"` (the latest the library supports). This influences
- * support for strict mode, the set of reserved words, and support for
- * new syntax features.
- */
- ecmaVersion: ecmaVersion
-
- /**
- * `sourceType` indicates the mode the code should be parsed in.
- * Can be either `"script"` or `"module"`. This influences global
- * strict mode and parsing of `import` and `export` declarations.
- */
- sourceType?: "script" | "module"
-
- /**
- * a callback that will be called when a semicolon is automatically inserted.
- * @param lastTokEnd the position of the comma as an offset
- * @param lastTokEndLoc location if {@link locations} is enabled
- */
- onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
-
- /**
- * similar to `onInsertedSemicolon`, but for trailing commas
- * @param lastTokEnd the position of the comma as an offset
- * @param lastTokEndLoc location if `locations` is enabled
- */
- onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void
-
- /**
- * By default, reserved words are only enforced if ecmaVersion >= 5.
- * Set `allowReserved` to a boolean value to explicitly turn this on
- * an off. When this option has the value "never", reserved words
- * and keywords can also not be used as property names.
- */
- allowReserved?: boolean | "never"
-
- /**
- * When enabled, a return at the top level is not considered an error.
- */
- allowReturnOutsideFunction?: boolean
-
- /**
- * When enabled, import/export statements are not constrained to
- * appearing at the top of the program, and an import.meta expression
- * in a script isn't considered an error.
- */
- allowImportExportEverywhere?: boolean
-
- /**
- * By default, `await` identifiers are allowed to appear at the top-level scope only if {@link ecmaVersion} >= 2022.
- * When enabled, await identifiers are allowed to appear at the top-level scope,
- * but they are still not allowed in non-async functions.
- */
- allowAwaitOutsideFunction?: boolean
-
- /**
- * When enabled, super identifiers are not constrained to
- * appearing in methods and do not raise an error when they appear elsewhere.
- */
- allowSuperOutsideMethod?: boolean
-
- /**
- * When enabled, hashbang directive in the beginning of file is
- * allowed and treated as a line comment. Enabled by default when
- * {@link ecmaVersion} >= 2023.
- */
- allowHashBang?: boolean
-
- /**
- * By default, the parser will verify that private properties are
- * only used in places where they are valid and have been declared.
- * Set this to false to turn such checks off.
- */
- checkPrivateFields?: boolean
-
- /**
- * When `locations` is on, `loc` properties holding objects with
- * `start` and `end` properties as {@link Position} objects will be attached to the
- * nodes.
- */
- locations?: boolean
-
- /**
- * a callback that will cause Acorn to call that export function with object in the same
- * format as tokens returned from `tokenizer().getToken()`. Note
- * that you are not allowed to call the parser from the
- * callback—that will corrupt its internal state.
- */
- onToken?: ((token: Token) => void) | Token[]
-
-
- /**
- * This takes a export function or an array.
- *
- * When a export function is passed, Acorn will call that export function with `(block, text, start,
- * end)` parameters whenever a comment is skipped. `block` is a
- * boolean indicating whether this is a block (`/* *\/`) comment,
- * `text` is the content of the comment, and `start` and `end` are
- * character offsets that denote the start and end of the comment.
- * When the {@link locations} option is on, two more parameters are
- * passed, the full locations of {@link Position} export type of the start and
- * end of the comments.
- *
- * When a array is passed, each found comment of {@link Comment} export type is pushed to the array.
- *
- * Note that you are not allowed to call the
- * parser from the callback—that will corrupt its internal state.
- */
- onComment?: ((
- isBlock: boolean, text: string, start: number, end: number, startLoc?: Position,
- endLoc?: Position
- ) => void) | Comment[]
-
- /**
- * Nodes have their start and end characters offsets recorded in
- * `start` and `end` properties (directly on the node, rather than
- * the `loc` object, which holds line/column data. To also add a
- * [semi-standardized][range] `range` property holding a `[start,
- * end]` array with the same numbers, set the `ranges` option to
- * `true`.
- */
- ranges?: boolean
-
- /**
- * It is possible to parse multiple files into a single AST by
- * passing the tree produced by parsing the first file as
- * `program` option in subsequent parses. This will add the
- * toplevel forms of the parsed file to the `Program` (top) node
- * of an existing parse tree.
- */
- program?: Node
-
- /**
- * When {@link locations} is on, you can pass this to record the source
- * file in every node's `loc` object.
- */
- sourceFile?: string
-
- /**
- * This value, if given, is stored in every node, whether {@link locations} is on or off.
- */
- directSourceFile?: string
-
- /**
- * When enabled, parenthesized expressions are represented by
- * (non-standard) ParenthesizedExpression nodes
- */
- preserveParens?: boolean
-}
-
-export class Parser {
- options: Options
- input: string
-
- protected constructor(options: Options, input: string, startPos?: number)
- parse(): Program
-
- static parse(input: string, options: Options): Program
- static parseExpressionAt(input: string, pos: number, options: Options): Expression
- static tokenizer(input: string, options: Options): {
- getToken(): Token
- [Symbol.iterator](): Iterator
- }
- static extend(...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser
-}
-
-export const defaultOptions: Options
-
-export function getLineInfo(input: string, offset: number): Position
-
-export class TokenType {
- label: string
- keyword: string | undefined
-}
-
-export const tokTypes: {
- num: TokenType
- regexp: TokenType
- string: TokenType
- name: TokenType
- privateId: TokenType
- eof: TokenType
-
- bracketL: TokenType
- bracketR: TokenType
- braceL: TokenType
- braceR: TokenType
- parenL: TokenType
- parenR: TokenType
- comma: TokenType
- semi: TokenType
- colon: TokenType
- dot: TokenType
- question: TokenType
- questionDot: TokenType
- arrow: TokenType
- template: TokenType
- invalidTemplate: TokenType
- ellipsis: TokenType
- backQuote: TokenType
- dollarBraceL: TokenType
-
- eq: TokenType
- assign: TokenType
- incDec: TokenType
- prefix: TokenType
- logicalOR: TokenType
- logicalAND: TokenType
- bitwiseOR: TokenType
- bitwiseXOR: TokenType
- bitwiseAND: TokenType
- equality: TokenType
- relational: TokenType
- bitShift: TokenType
- plusMin: TokenType
- modulo: TokenType
- star: TokenType
- slash: TokenType
- starstar: TokenType
- coalesce: TokenType
-
- _break: TokenType
- _case: TokenType
- _catch: TokenType
- _continue: TokenType
- _debugger: TokenType
- _default: TokenType
- _do: TokenType
- _else: TokenType
- _finally: TokenType
- _for: TokenType
- _function: TokenType
- _if: TokenType
- _return: TokenType
- _switch: TokenType
- _throw: TokenType
- _try: TokenType
- _var: TokenType
- _const: TokenType
- _while: TokenType
- _with: TokenType
- _new: TokenType
- _this: TokenType
- _super: TokenType
- _class: TokenType
- _extends: TokenType
- _export: TokenType
- _import: TokenType
- _null: TokenType
- _true: TokenType
- _false: TokenType
- _in: TokenType
- _instanceof: TokenType
- _typeof: TokenType
- _void: TokenType
- _delete: TokenType
-}
-
-export interface Comment {
- type: "Line" | "Block"
- value: string
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
-}
-
-export class Token {
- type: TokenType
- start: number
- end: number
- loc?: SourceLocation
- range?: [number, number]
-}
-
-export const version: string
diff --git a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.js b/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.js
deleted file mode 100644
index cb5628bf..00000000
--- a/frontend/node_modules/.pnpm/acorn@8.15.0/node_modules/acorn/dist/acorn.js
+++ /dev/null
@@ -1,6262 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.acorn = {}));
-})(this, (function (exports) { 'use strict';
-
- // This file was generated. Do not modify manually!
- var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
-
- // This file was generated. Do not modify manually!
- var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
-
- // This file was generated. Do not modify manually!
- var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
-
- // This file was generated. Do not modify manually!
- var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7cd\ua7d0\ua7d1\ua7d3\ua7d5-\ua7dc\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
-
- // These are a run-length and offset encoded representation of the
- // >0xffff code points that are a valid part of identifiers. The
- // offset starts at 0x10000, and each pair of numbers represents an
- // offset to the next range, and then a size of the range.
-
- // Reserved word lists for various dialects of the language
-
- var reservedWords = {
- 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",
- 5: "class enum extends super const export import",
- 6: "enum",
- strict: "implements interface let package private protected public static yield",
- strictBind: "eval arguments"
- };
-
- // And the keywords
-
- var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";
-
- var keywords$1 = {
- 5: ecma5AndLessKeywords,
- "5module": ecma5AndLessKeywords + " export import",
- 6: ecma5AndLessKeywords + " const class extends export import super"
- };
-
- var keywordRelationalOperator = /^in(stanceof)?$/;
-
- // ## Character categories
-
- var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
- var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
-
- // This has a complexity linear to the value of the code. The
- // assumption is that looking up astral identifier characters is
- // rare.
- function isInAstralSet(code, set) {
- var pos = 0x10000;
- for (var i = 0; i < set.length; i += 2) {
- pos += set[i];
- if (pos > code) { return false }
- pos += set[i + 1];
- if (pos >= code) { return true }
- }
- return false
- }
-
- // Test whether a given character code starts an identifier.
-
- function isIdentifierStart(code, astral) {
- if (code < 65) { return code === 36 }
- if (code < 91) { return true }
- if (code < 97) { return code === 95 }
- if (code < 123) { return true }
- if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }
- if (astral === false) { return false }
- return isInAstralSet(code, astralIdentifierStartCodes)
- }
-
- // Test whether a given character is part of an identifier.
-
- function isIdentifierChar(code, astral) {
- if (code < 48) { return code === 36 }
- if (code < 58) { return true }
- if (code < 65) { return false }
- if (code < 91) { return true }
- if (code < 97) { return code === 95 }
- if (code < 123) { return true }
- if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }
- if (astral === false) { return false }
- return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)
- }
-
- // ## Token types
-
- // The assignment of fine-grained, information-carrying type objects
- // allows the tokenizer to store the information it has about a
- // token in a way that is very cheap for the parser to look up.
-
- // All token type variables start with an underscore, to make them
- // easy to recognize.
-
- // The `beforeExpr` property is used to disambiguate between regular
- // expressions and divisions. It is set on all token types that can
- // be followed by an expression (thus, a slash after them would be a
- // regular expression).
- //
- // The `startsExpr` property is used to check if the token ends a
- // `yield` expression. It is set on all token types that either can
- // directly start an expression (like a quotation mark) or can
- // continue an expression (like the body of a string).
- //
- // `isLoop` marks a keyword as starting a loop, which is important
- // to know when parsing a label, in order to allow or disallow
- // continue jumps to that label.
-
- var TokenType = function TokenType(label, conf) {
- if ( conf === void 0 ) conf = {};
-
- this.label = label;
- this.keyword = conf.keyword;
- this.beforeExpr = !!conf.beforeExpr;
- this.startsExpr = !!conf.startsExpr;
- this.isLoop = !!conf.isLoop;
- this.isAssign = !!conf.isAssign;
- this.prefix = !!conf.prefix;
- this.postfix = !!conf.postfix;
- this.binop = conf.binop || null;
- this.updateContext = null;
- };
-
- function binop(name, prec) {
- return new TokenType(name, {beforeExpr: true, binop: prec})
- }
- var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};
-
- // Map keyword names to token types.
-
- var keywords = {};
-
- // Succinct definitions of keyword token types
- function kw(name, options) {
- if ( options === void 0 ) options = {};
-
- options.keyword = name;
- return keywords[name] = new TokenType(name, options)
- }
-
- var types$1 = {
- num: new TokenType("num", startsExpr),
- regexp: new TokenType("regexp", startsExpr),
- string: new TokenType("string", startsExpr),
- name: new TokenType("name", startsExpr),
- privateId: new TokenType("privateId", startsExpr),
- eof: new TokenType("eof"),
-
- // Punctuation token types.
- bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}),
- bracketR: new TokenType("]"),
- braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}),
- braceR: new TokenType("}"),
- parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}),
- parenR: new TokenType(")"),
- comma: new TokenType(",", beforeExpr),
- semi: new TokenType(";", beforeExpr),
- colon: new TokenType(":", beforeExpr),
- dot: new TokenType("."),
- question: new TokenType("?", beforeExpr),
- questionDot: new TokenType("?."),
- arrow: new TokenType("=>", beforeExpr),
- template: new TokenType("template"),
- invalidTemplate: new TokenType("invalidTemplate"),
- ellipsis: new TokenType("...", beforeExpr),
- backQuote: new TokenType("`", startsExpr),
- dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}),
-
- // Operators. These carry several kinds of properties to help the
- // parser use them properly (the presence of these properties is
- // what categorizes them as operators).
- //
- // `binop`, when present, specifies that this operator is a binary
- // operator, and will refer to its precedence.
- //
- // `prefix` and `postfix` mark the operator as a prefix or postfix
- // unary operator.
- //
- // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as
- // binary operators with a very low precedence, that should result
- // in AssignmentExpression nodes.
-
- eq: new TokenType("=", {beforeExpr: true, isAssign: true}),
- assign: new TokenType("_=", {beforeExpr: true, isAssign: true}),
- incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}),
- prefix: new TokenType("!/~", {beforeExpr: true, prefix: true, startsExpr: true}),
- logicalOR: binop("||", 1),
- logicalAND: binop("&&", 2),
- bitwiseOR: binop("|", 3),
- bitwiseXOR: binop("^", 4),
- bitwiseAND: binop("&", 5),
- equality: binop("==/!=/===/!==", 6),
- relational: binop(">/<=/>=", 7),
- bitShift: binop("<>>/>>>", 8),
- plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),
- modulo: binop("%", 10),
- star: binop("*", 10),
- slash: binop("/", 10),
- starstar: new TokenType("**", {beforeExpr: true}),
- coalesce: binop("??", 1),
-
- // Keyword token types.
- _break: kw("break"),
- _case: kw("case", beforeExpr),
- _catch: kw("catch"),
- _continue: kw("continue"),
- _debugger: kw("debugger"),
- _default: kw("default", beforeExpr),
- _do: kw("do", {isLoop: true, beforeExpr: true}),
- _else: kw("else", beforeExpr),
- _finally: kw("finally"),
- _for: kw("for", {isLoop: true}),
- _function: kw("function", startsExpr),
- _if: kw("if"),
- _return: kw("return", beforeExpr),
- _switch: kw("switch"),
- _throw: kw("throw", beforeExpr),
- _try: kw("try"),
- _var: kw("var"),
- _const: kw("const"),
- _while: kw("while", {isLoop: true}),
- _with: kw("with"),
- _new: kw("new", {beforeExpr: true, startsExpr: true}),
- _this: kw("this", startsExpr),
- _super: kw("super", startsExpr),
- _class: kw("class", startsExpr),
- _extends: kw("extends", beforeExpr),
- _export: kw("export"),
- _import: kw("import", startsExpr),
- _null: kw("null", startsExpr),
- _true: kw("true", startsExpr),
- _false: kw("false", startsExpr),
- _in: kw("in", {beforeExpr: true, binop: 7}),
- _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}),
- _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}),
- _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}),
- _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true})
- };
-
- // Matches a whole line break (where CRLF is considered a single
- // line break). Used to count lines.
-
- var lineBreak = /\r\n?|\n|\u2028|\u2029/;
- var lineBreakG = new RegExp(lineBreak.source, "g");
-
- function isNewLine(code) {
- return code === 10 || code === 13 || code === 0x2028 || code === 0x2029
- }
-
- function nextLineBreak(code, from, end) {
- if ( end === void 0 ) end = code.length;
-
- for (var i = from; i < end; i++) {
- var next = code.charCodeAt(i);
- if (isNewLine(next))
- { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }
- }
- return -1
- }
-
- var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
-
- var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
-
- var ref = Object.prototype;
- var hasOwnProperty = ref.hasOwnProperty;
- var toString = ref.toString;
-
- var hasOwn = Object.hasOwn || (function (obj, propName) { return (
- hasOwnProperty.call(obj, propName)
- ); });
-
- var isArray = Array.isArray || (function (obj) { return (
- toString.call(obj) === "[object Array]"
- ); });
-
- var regexpCache = Object.create(null);
-
- function wordsRegexp(words) {
- return regexpCache[words] || (regexpCache[words] = new RegExp("^(?:" + words.replace(/ /g, "|") + ")$"))
- }
-
- function codePointToString(code) {
- // UTF-16 Decoding
- if (code <= 0xFFFF) { return String.fromCharCode(code) }
- code -= 0x10000;
- return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)
- }
-
- var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/;
-
- // These are used when `options.locations` is on, for the
- // `startLoc` and `endLoc` properties.
-
- var Position = function Position(line, col) {
- this.line = line;
- this.column = col;
- };
-
- Position.prototype.offset = function offset (n) {
- return new Position(this.line, this.column + n)
- };
-
- var SourceLocation = function SourceLocation(p, start, end) {
- this.start = start;
- this.end = end;
- if (p.sourceFile !== null) { this.source = p.sourceFile; }
- };
-
- // The `getLineInfo` function is mostly useful when the
- // `locations` option is off (for performance reasons) and you
- // want to find the line/column position for a given character
- // offset. `input` should be the code string that the offset refers
- // into.
-
- function getLineInfo(input, offset) {
- for (var line = 1, cur = 0;;) {
- var nextBreak = nextLineBreak(input, cur, offset);
- if (nextBreak < 0) { return new Position(line, offset - cur) }
- ++line;
- cur = nextBreak;
- }
- }
-
- // A second argument must be given to configure the parser process.
- // These options are recognized (only `ecmaVersion` is required):
-
- var defaultOptions = {
- // `ecmaVersion` indicates the ECMAScript version to parse. Must be
- // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10
- // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"`
- // (the latest version the library supports). This influences
- // support for strict mode, the set of reserved words, and support
- // for new syntax features.
- ecmaVersion: null,
- // `sourceType` indicates the mode the code should be parsed in.
- // Can be either `"script"` or `"module"`. This influences global
- // strict mode and parsing of `import` and `export` declarations.
- sourceType: "script",
- // `onInsertedSemicolon` can be a callback that will be called when
- // a semicolon is automatically inserted. It will be passed the
- // position of the inserted semicolon as an offset, and if
- // `locations` is enabled, it is given the location as a `{line,
- // column}` object as second argument.
- onInsertedSemicolon: null,
- // `onTrailingComma` is similar to `onInsertedSemicolon`, but for
- // trailing commas.
- onTrailingComma: null,
- // By default, reserved words are only enforced if ecmaVersion >= 5.
- // Set `allowReserved` to a boolean value to explicitly turn this on
- // an off. When this option has the value "never", reserved words
- // and keywords can also not be used as property names.
- allowReserved: null,
- // When enabled, a return at the top level is not considered an
- // error.
- allowReturnOutsideFunction: false,
- // When enabled, import/export statements are not constrained to
- // appearing at the top of the program, and an import.meta expression
- // in a script isn't considered an error.
- allowImportExportEverywhere: false,
- // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.
- // When enabled, await identifiers are allowed to appear at the top-level scope,
- // but they are still not allowed in non-async functions.
- allowAwaitOutsideFunction: null,
- // When enabled, super identifiers are not constrained to
- // appearing in methods and do not raise an error when they appear elsewhere.
- allowSuperOutsideMethod: null,
- // When enabled, hashbang directive in the beginning of file is
- // allowed and treated as a line comment. Enabled by default when
- // `ecmaVersion` >= 2023.
- allowHashBang: false,
- // By default, the parser will verify that private properties are
- // only used in places where they are valid and have been declared.
- // Set this to false to turn such checks off.
- checkPrivateFields: true,
- // When `locations` is on, `loc` properties holding objects with
- // `start` and `end` properties in `{line, column}` form (with
- // line being 1-based and column 0-based) will be attached to the
- // nodes.
- locations: false,
- // A function can be passed as `onToken` option, which will
- // cause Acorn to call that function with object in the same
- // format as tokens returned from `tokenizer().getToken()`. Note
- // that you are not allowed to call the parser from the
- // callback—that will corrupt its internal state.
- onToken: null,
- // A function can be passed as `onComment` option, which will
- // cause Acorn to call that function with `(block, text, start,
- // end)` parameters whenever a comment is skipped. `block` is a
- // boolean indicating whether this is a block (`/* */`) comment,
- // `text` is the content of the comment, and `start` and `end` are
- // character offsets that denote the start and end of the comment.
- // When the `locations` option is on, two more parameters are
- // passed, the full `{line, column}` locations of the start and
- // end of the comments. Note that you are not allowed to call the
- // parser from the callback—that will corrupt its internal state.
- // When this option has an array as value, objects representing the
- // comments are pushed to it.
- onComment: null,
- // Nodes have their start and end characters offsets recorded in
- // `start` and `end` properties (directly on the node, rather than
- // the `loc` object, which holds line/column data. To also add a
- // [semi-standardized][range] `range` property holding a `[start,
- // end]` array with the same numbers, set the `ranges` option to
- // `true`.
- //
- // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
- ranges: false,
- // It is possible to parse multiple files into a single AST by
- // passing the tree produced by parsing the first file as
- // `program` option in subsequent parses. This will add the
- // toplevel forms of the parsed file to the `Program` (top) node
- // of an existing parse tree.
- program: null,
- // When `locations` is on, you can pass this to record the source
- // file in every node's `loc` object.
- sourceFile: null,
- // This value, if given, is stored in every node, whether
- // `locations` is on or off.
- directSourceFile: null,
- // When enabled, parenthesized expressions are represented by
- // (non-standard) ParenthesizedExpression nodes
- preserveParens: false
- };
-
- // Interpret and default an options object
-
- var warnedAboutEcmaVersion = false;
-
- function getOptions(opts) {
- var options = {};
-
- for (var opt in defaultOptions)
- { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }
-
- if (options.ecmaVersion === "latest") {
- options.ecmaVersion = 1e8;
- } else if (options.ecmaVersion == null) {
- if (!warnedAboutEcmaVersion && typeof console === "object" && console.warn) {
- warnedAboutEcmaVersion = true;
- console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.");
- }
- options.ecmaVersion = 11;
- } else if (options.ecmaVersion >= 2015) {
- options.ecmaVersion -= 2009;
- }
-
- if (options.allowReserved == null)
- { options.allowReserved = options.ecmaVersion < 5; }
-
- if (!opts || opts.allowHashBang == null)
- { options.allowHashBang = options.ecmaVersion >= 14; }
-
- if (isArray(options.onToken)) {
- var tokens = options.onToken;
- options.onToken = function (token) { return tokens.push(token); };
- }
- if (isArray(options.onComment))
- { options.onComment = pushComment(options, options.onComment); }
-
- return options
- }
-
- function pushComment(options, array) {
- return function(block, text, start, end, startLoc, endLoc) {
- var comment = {
- type: block ? "Block" : "Line",
- value: text,
- start: start,
- end: end
- };
- if (options.locations)
- { comment.loc = new SourceLocation(this, startLoc, endLoc); }
- if (options.ranges)
- { comment.range = [start, end]; }
- array.push(comment);
- }
- }
-
- // Each scope gets a bitset that may contain these flags
- var
- SCOPE_TOP = 1,
- SCOPE_FUNCTION = 2,
- SCOPE_ASYNC = 4,
- SCOPE_GENERATOR = 8,
- SCOPE_ARROW = 16,
- SCOPE_SIMPLE_CATCH = 32,
- SCOPE_SUPER = 64,
- SCOPE_DIRECT_SUPER = 128,
- SCOPE_CLASS_STATIC_BLOCK = 256,
- SCOPE_CLASS_FIELD_INIT = 512,
- SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;
-
- function functionFlags(async, generator) {
- return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)
- }
-
- // Used in checkLVal* and declareName to determine the type of a binding
- var
- BIND_NONE = 0, // Not a binding
- BIND_VAR = 1, // Var-style binding
- BIND_LEXICAL = 2, // Let- or const-style binding
- BIND_FUNCTION = 3, // Function declaration
- BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding
- BIND_OUTSIDE = 5; // Special case for function names as bound inside the function
-
- var Parser = function Parser(options, input, startPos) {
- this.options = options = getOptions(options);
- this.sourceFile = options.sourceFile;
- this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
- var reserved = "";
- if (options.allowReserved !== true) {
- reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];
- if (options.sourceType === "module") { reserved += " await"; }
- }
- this.reservedWords = wordsRegexp(reserved);
- var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict;
- this.reservedWordsStrict = wordsRegexp(reservedStrict);
- this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind);
- this.input = String(input);
-
- // Used to signal to callers of `readWord1` whether the word
- // contained any escape sequences. This is needed because words with
- // escape sequences must not be interpreted as keywords.
- this.containsEsc = false;
-
- // Set up token state
-
- // The current position of the tokenizer in the input.
- if (startPos) {
- this.pos = startPos;
- this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1;
- this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;
- } else {
- this.pos = this.lineStart = 0;
- this.curLine = 1;
- }
-
- // Properties of the current token:
- // Its type
- this.type = types$1.eof;
- // For tokens that include more information than their type, the value
- this.value = null;
- // Its start and end offset
- this.start = this.end = this.pos;
- // And, if locations are used, the {line, column} object
- // corresponding to those offsets
- this.startLoc = this.endLoc = this.curPosition();
-
- // Position information for the previous token
- this.lastTokEndLoc = this.lastTokStartLoc = null;
- this.lastTokStart = this.lastTokEnd = this.pos;
-
- // The context stack is used to superficially track syntactic
- // context to predict whether a regular expression is allowed in a
- // given position.
- this.context = this.initialContext();
- this.exprAllowed = true;
-
- // Figure out if it's a module code.
- this.inModule = options.sourceType === "module";
- this.strict = this.inModule || this.strictDirective(this.pos);
-
- // Used to signify the start of a potential arrow function
- this.potentialArrowAt = -1;
- this.potentialArrowInForAwait = false;
-
- // Positions to delayed-check that yield/await does not exist in default parameters.
- this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;
- // Labels in scope.
- this.labels = [];
- // Thus-far undefined exports.
- this.undefinedExports = Object.create(null);
-
- // If enabled, skip leading hashbang line.
- if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!")
- { this.skipLineComment(2); }
-
- // Scope tracking for duplicate variable names (see scope.js)
- this.scopeStack = [];
- this.enterScope(SCOPE_TOP);
-
- // For RegExp validation
- this.regexpState = null;
-
- // The stack of private names.
- // Each element has two properties: 'declared' and 'used'.
- // When it exited from the outermost class definition, all used private names must be declared.
- this.privateNameStack = [];
- };
-
- var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },inClassStaticBlock: { configurable: true } };
-
- Parser.prototype.parse = function parse () {
- var node = this.options.program || this.startNode();
- this.nextToken();
- return this.parseTopLevel(node)
- };
-
- prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
-
- prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 };
-
- prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 };
-
- prototypeAccessors.canAwait.get = function () {
- for (var i = this.scopeStack.length - 1; i >= 0; i--) {
- var ref = this.scopeStack[i];
- var flags = ref.flags;
- if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT)) { return false }
- if (flags & SCOPE_FUNCTION) { return (flags & SCOPE_ASYNC) > 0 }
- }
- return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
- };
-
- prototypeAccessors.allowSuper.get = function () {
- var ref = this.currentThisScope();
- var flags = ref.flags;
- return (flags & SCOPE_SUPER) > 0 || this.options.allowSuperOutsideMethod
- };
-
- prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };
-
- prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
-
- prototypeAccessors.allowNewDotTarget.get = function () {
- for (var i = this.scopeStack.length - 1; i >= 0; i--) {
- var ref = this.scopeStack[i];
- var flags = ref.flags;
- if (flags & (SCOPE_CLASS_STATIC_BLOCK | SCOPE_CLASS_FIELD_INIT) ||
- ((flags & SCOPE_FUNCTION) && !(flags & SCOPE_ARROW))) { return true }
- }
- return false
- };
-
- prototypeAccessors.inClassStaticBlock.get = function () {
- return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0
- };
-
- Parser.extend = function extend () {
- var plugins = [], len = arguments.length;
- while ( len-- ) plugins[ len ] = arguments[ len ];
-
- var cls = this;
- for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }
- return cls
- };
-
- Parser.parse = function parse (input, options) {
- return new this(options, input).parse()
- };
-
- Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) {
- var parser = new this(options, input, pos);
- parser.nextToken();
- return parser.parseExpression()
- };
-
- Parser.tokenizer = function tokenizer (input, options) {
- return new this(options, input)
- };
-
- Object.defineProperties( Parser.prototype, prototypeAccessors );
-
- var pp$9 = Parser.prototype;
-
- // ## Parser utilities
-
- var literal = /^(?:'((?:\\[^]|[^'\\])*?)'|"((?:\\[^]|[^"\\])*?)")/;
- pp$9.strictDirective = function(start) {
- if (this.options.ecmaVersion < 5) { return false }
- for (;;) {
- // Try to find string literal.
- skipWhiteSpace.lastIndex = start;
- start += skipWhiteSpace.exec(this.input)[0].length;
- var match = literal.exec(this.input.slice(start));
- if (!match) { return false }
- if ((match[1] || match[2]) === "use strict") {
- skipWhiteSpace.lastIndex = start + match[0].length;
- var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;
- var next = this.input.charAt(end);
- return next === ";" || next === "}" ||
- (lineBreak.test(spaceAfter[0]) &&
- !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "="))
- }
- start += match[0].length;
-
- // Skip semicolon, if any.
- skipWhiteSpace.lastIndex = start;
- start += skipWhiteSpace.exec(this.input)[0].length;
- if (this.input[start] === ";")
- { start++; }
- }
- };
-
- // Predicate that tests whether the next token is of the given
- // type, and if yes, consumes it as a side effect.
-
- pp$9.eat = function(type) {
- if (this.type === type) {
- this.next();
- return true
- } else {
- return false
- }
- };
-
- // Tests whether parsed token is a contextual keyword.
-
- pp$9.isContextual = function(name) {
- return this.type === types$1.name && this.value === name && !this.containsEsc
- };
-
- // Consumes contextual keyword if possible.
-
- pp$9.eatContextual = function(name) {
- if (!this.isContextual(name)) { return false }
- this.next();
- return true
- };
-
- // Asserts that following token is given contextual keyword.
-
- pp$9.expectContextual = function(name) {
- if (!this.eatContextual(name)) { this.unexpected(); }
- };
-
- // Test whether a semicolon can be inserted at the current position.
-
- pp$9.canInsertSemicolon = function() {
- return this.type === types$1.eof ||
- this.type === types$1.braceR ||
- lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
- };
-
- pp$9.insertSemicolon = function() {
- if (this.canInsertSemicolon()) {
- if (this.options.onInsertedSemicolon)
- { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }
- return true
- }
- };
-
- // Consume a semicolon, or, failing that, see if we are allowed to
- // pretend that there is a semicolon at this position.
-
- pp$9.semicolon = function() {
- if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }
- };
-
- pp$9.afterTrailingComma = function(tokType, notNext) {
- if (this.type === tokType) {
- if (this.options.onTrailingComma)
- { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }
- if (!notNext)
- { this.next(); }
- return true
- }
- };
-
- // Expect a token of a given type. If found, consume it, otherwise,
- // raise an unexpected token error.
-
- pp$9.expect = function(type) {
- this.eat(type) || this.unexpected();
- };
-
- // Raise an unexpected token error.
-
- pp$9.unexpected = function(pos) {
- this.raise(pos != null ? pos : this.start, "Unexpected token");
- };
-
- var DestructuringErrors = function DestructuringErrors() {
- this.shorthandAssign =
- this.trailingComma =
- this.parenthesizedAssign =
- this.parenthesizedBind =
- this.doubleProto =
- -1;
- };
-
- pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {
- if (!refDestructuringErrors) { return }
- if (refDestructuringErrors.trailingComma > -1)
- { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); }
- var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;
- if (parens > -1) { this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern"); }
- };
-
- pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
- if (!refDestructuringErrors) { return false }
- var shorthandAssign = refDestructuringErrors.shorthandAssign;
- var doubleProto = refDestructuringErrors.doubleProto;
- if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }
- if (shorthandAssign >= 0)
- { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); }
- if (doubleProto >= 0)
- { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); }
- };
-
- pp$9.checkYieldAwaitInDefaultParams = function() {
- if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))
- { this.raise(this.yieldPos, "Yield expression cannot be a default value"); }
- if (this.awaitPos)
- { this.raise(this.awaitPos, "Await expression cannot be a default value"); }
- };
-
- pp$9.isSimpleAssignTarget = function(expr) {
- if (expr.type === "ParenthesizedExpression")
- { return this.isSimpleAssignTarget(expr.expression) }
- return expr.type === "Identifier" || expr.type === "MemberExpression"
- };
-
- var pp$8 = Parser.prototype;
-
- // ### Statement parsing
-
- // Parse a program. Initializes the parser, reads any number of
- // statements, and wraps them in a Program node. Optionally takes a
- // `program` argument. If present, the statements will be appended
- // to its body instead of creating a new node.
-
- pp$8.parseTopLevel = function(node) {
- var exports = Object.create(null);
- if (!node.body) { node.body = []; }
- while (this.type !== types$1.eof) {
- var stmt = this.parseStatement(null, true, exports);
- node.body.push(stmt);
- }
- if (this.inModule)
- { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)
- {
- var name = list[i];
-
- this.raiseRecoverable(this.undefinedExports[name].start, ("Export '" + name + "' is not defined"));
- } }
- this.adaptDirectivePrologue(node.body);
- this.next();
- node.sourceType = this.options.sourceType;
- return this.finishNode(node, "Program")
- };
-
- var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"};
-
- pp$8.isLet = function(context) {
- if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false }
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);
- // For ambiguous cases, determine if a LexicalDeclaration (or only a
- // Statement) is allowed here. If context is not empty then only a Statement
- // is allowed. However, `let [` is an explicit negative lookahead for
- // ExpressionStatement, so special-case it first.
- if (nextCh === 91 || nextCh === 92) { return true } // '[', '\'
- if (context) { return false }
-
- if (nextCh === 123 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '{', astral
- if (isIdentifierStart(nextCh, true)) {
- var pos = next + 1;
- while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }
- if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }
- var ident = this.input.slice(next, pos);
- if (!keywordRelationalOperator.test(ident)) { return true }
- }
- return false
- };
-
- // check 'async [no LineTerminator here] function'
- // - 'async /*foo*/ function' is OK.
- // - 'async /*\n*/ function' is invalid.
- pp$8.isAsyncFunction = function() {
- if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
- { return false }
-
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length, after;
- return !lineBreak.test(this.input.slice(this.pos, next)) &&
- this.input.slice(next, next + 8) === "function" &&
- (next + 8 === this.input.length ||
- !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))
- };
-
- pp$8.isUsingKeyword = function(isAwaitUsing, isFor) {
- if (this.options.ecmaVersion < 17 || !this.isContextual(isAwaitUsing ? "await" : "using"))
- { return false }
-
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length;
-
- if (lineBreak.test(this.input.slice(this.pos, next))) { return false }
-
- if (isAwaitUsing) {
- var awaitEndPos = next + 5 /* await */, after;
- if (this.input.slice(next, awaitEndPos) !== "using" ||
- awaitEndPos === this.input.length ||
- isIdentifierChar(after = this.input.charCodeAt(awaitEndPos)) ||
- (after > 0xd7ff && after < 0xdc00)
- ) { return false }
-
- skipWhiteSpace.lastIndex = awaitEndPos;
- var skipAfterUsing = skipWhiteSpace.exec(this.input);
- if (skipAfterUsing && lineBreak.test(this.input.slice(awaitEndPos, awaitEndPos + skipAfterUsing[0].length))) { return false }
- }
-
- if (isFor) {
- var ofEndPos = next + 2 /* of */, after$1;
- if (this.input.slice(next, ofEndPos) === "of") {
- if (ofEndPos === this.input.length ||
- (!isIdentifierChar(after$1 = this.input.charCodeAt(ofEndPos)) && !(after$1 > 0xd7ff && after$1 < 0xdc00))) { return false }
- }
- }
-
- var ch = this.input.charCodeAt(next);
- return isIdentifierStart(ch, true) || ch === 92 // '\'
- };
-
- pp$8.isAwaitUsing = function(isFor) {
- return this.isUsingKeyword(true, isFor)
- };
-
- pp$8.isUsing = function(isFor) {
- return this.isUsingKeyword(false, isFor)
- };
-
- // Parse a single statement.
- //
- // If expecting a statement and finding a slash operator, parse a
- // regular expression literal. This is to handle cases like
- // `if (foo) /blah/.exec(foo)`, where looking at the previous token
- // does not help.
-
- pp$8.parseStatement = function(context, topLevel, exports) {
- var starttype = this.type, node = this.startNode(), kind;
-
- if (this.isLet(context)) {
- starttype = types$1._var;
- kind = "let";
- }
-
- // Most types of statements are recognized by the keyword they
- // start with. Many are trivial to parse, some require a bit of
- // complexity.
-
- switch (starttype) {
- case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
- case types$1._debugger: return this.parseDebuggerStatement(node)
- case types$1._do: return this.parseDoStatement(node)
- case types$1._for: return this.parseForStatement(node)
- case types$1._function:
- // Function as sole body of either an if statement or a labeled statement
- // works, but not when it is part of a labeled statement that is the sole
- // body of an if statement.
- if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); }
- return this.parseFunctionStatement(node, false, !context)
- case types$1._class:
- if (context) { this.unexpected(); }
- return this.parseClass(node, true)
- case types$1._if: return this.parseIfStatement(node)
- case types$1._return: return this.parseReturnStatement(node)
- case types$1._switch: return this.parseSwitchStatement(node)
- case types$1._throw: return this.parseThrowStatement(node)
- case types$1._try: return this.parseTryStatement(node)
- case types$1._const: case types$1._var:
- kind = kind || this.value;
- if (context && kind !== "var") { this.unexpected(); }
- return this.parseVarStatement(node, kind)
- case types$1._while: return this.parseWhileStatement(node)
- case types$1._with: return this.parseWithStatement(node)
- case types$1.braceL: return this.parseBlock(true, node)
- case types$1.semi: return this.parseEmptyStatement(node)
- case types$1._export:
- case types$1._import:
- if (this.options.ecmaVersion > 10 && starttype === types$1._import) {
- skipWhiteSpace.lastIndex = this.pos;
- var skip = skipWhiteSpace.exec(this.input);
- var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);
- if (nextCh === 40 || nextCh === 46) // '(' or '.'
- { return this.parseExpressionStatement(node, this.parseExpression()) }
- }
-
- if (!this.options.allowImportExportEverywhere) {
- if (!topLevel)
- { this.raise(this.start, "'import' and 'export' may only appear at the top level"); }
- if (!this.inModule)
- { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); }
- }
- return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)
-
- // If the statement does not start with a statement keyword or a
- // brace, it's an ExpressionStatement or LabeledStatement. We
- // simply start parsing an expression, and afterwards, if the
- // next token is a colon and the expression was a simple
- // Identifier node, we switch to interpreting it as a label.
- default:
- if (this.isAsyncFunction()) {
- if (context) { this.unexpected(); }
- this.next();
- return this.parseFunctionStatement(node, true, !context)
- }
-
- var usingKind = this.isAwaitUsing(false) ? "await using" : this.isUsing(false) ? "using" : null;
- if (usingKind) {
- if (topLevel && this.options.sourceType === "script") {
- this.raise(this.start, "Using declaration cannot appear in the top level when source type is `script`");
- }
- if (usingKind === "await using") {
- if (!this.canAwait) {
- this.raise(this.start, "Await using cannot appear outside of async function");
- }
- this.next();
- }
- this.next();
- this.parseVar(node, false, usingKind);
- this.semicolon();
- return this.finishNode(node, "VariableDeclaration")
- }
-
- var maybeName = this.value, expr = this.parseExpression();
- if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon))
- { return this.parseLabeledStatement(node, maybeName, expr, context) }
- else { return this.parseExpressionStatement(node, expr) }
- }
- };
-
- pp$8.parseBreakContinueStatement = function(node, keyword) {
- var isBreak = keyword === "break";
- this.next();
- if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }
- else if (this.type !== types$1.name) { this.unexpected(); }
- else {
- node.label = this.parseIdent();
- this.semicolon();
- }
-
- // Verify that there is an actual destination to break or
- // continue to.
- var i = 0;
- for (; i < this.labels.length; ++i) {
- var lab = this.labels[i];
- if (node.label == null || lab.name === node.label.name) {
- if (lab.kind != null && (isBreak || lab.kind === "loop")) { break }
- if (node.label && isBreak) { break }
- }
- }
- if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); }
- return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
- };
-
- pp$8.parseDebuggerStatement = function(node) {
- this.next();
- this.semicolon();
- return this.finishNode(node, "DebuggerStatement")
- };
-
- pp$8.parseDoStatement = function(node) {
- this.next();
- this.labels.push(loopLabel);
- node.body = this.parseStatement("do");
- this.labels.pop();
- this.expect(types$1._while);
- node.test = this.parseParenExpression();
- if (this.options.ecmaVersion >= 6)
- { this.eat(types$1.semi); }
- else
- { this.semicolon(); }
- return this.finishNode(node, "DoWhileStatement")
- };
-
- // Disambiguating between a `for` and a `for`/`in` or `for`/`of`
- // loop is non-trivial. Basically, we have to parse the init `var`
- // statement or expression, disallowing the `in` operator (see
- // the second parameter to `parseExpression`), and then check
- // whether the next token is `in` or `of`. When there is no init
- // part (semicolon immediately after the opening parenthesis), it
- // is a regular `for` loop.
-
- pp$8.parseForStatement = function(node) {
- this.next();
- var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1;
- this.labels.push(loopLabel);
- this.enterScope(0);
- this.expect(types$1.parenL);
- if (this.type === types$1.semi) {
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- return this.parseFor(node, null)
- }
- var isLet = this.isLet();
- if (this.type === types$1._var || this.type === types$1._const || isLet) {
- var init$1 = this.startNode(), kind = isLet ? "let" : this.value;
- this.next();
- this.parseVar(init$1, true, kind);
- this.finishNode(init$1, "VariableDeclaration");
- return this.parseForAfterInit(node, init$1, awaitAt)
- }
- var startsWithLet = this.isContextual("let"), isForOf = false;
-
- var usingKind = this.isUsing(true) ? "using" : this.isAwaitUsing(true) ? "await using" : null;
- if (usingKind) {
- var init$2 = this.startNode();
- this.next();
- if (usingKind === "await using") { this.next(); }
- this.parseVar(init$2, true, usingKind);
- this.finishNode(init$2, "VariableDeclaration");
- return this.parseForAfterInit(node, init$2, awaitAt)
- }
- var containsEsc = this.containsEsc;
- var refDestructuringErrors = new DestructuringErrors;
- var initPos = this.start;
- var init = awaitAt > -1
- ? this.parseExprSubscripts(refDestructuringErrors, "await")
- : this.parseExpression(true, refDestructuringErrors);
- if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
- if (awaitAt > -1) { // implies `ecmaVersion >= 9` (see declaration of awaitAt)
- if (this.type === types$1._in) { this.unexpected(awaitAt); }
- node.await = true;
- } else if (isForOf && this.options.ecmaVersion >= 8) {
- if (init.start === initPos && !containsEsc && init.type === "Identifier" && init.name === "async") { this.unexpected(); }
- else if (this.options.ecmaVersion >= 9) { node.await = false; }
- }
- if (startsWithLet && isForOf) { this.raise(init.start, "The left-hand side of a for-of loop may not start with 'let'."); }
- this.toAssignable(init, false, refDestructuringErrors);
- this.checkLValPattern(init);
- return this.parseForIn(node, init)
- } else {
- this.checkExpressionErrors(refDestructuringErrors, true);
- }
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- return this.parseFor(node, init)
- };
-
- // Helper method to parse for loop after variable initialization
- pp$8.parseForAfterInit = function(node, init, awaitAt) {
- if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init.declarations.length === 1) {
- if (this.options.ecmaVersion >= 9) {
- if (this.type === types$1._in) {
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- } else { node.await = awaitAt > -1; }
- }
- return this.parseForIn(node, init)
- }
- if (awaitAt > -1) { this.unexpected(awaitAt); }
- return this.parseFor(node, init)
- };
-
- pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {
- this.next();
- return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)
- };
-
- pp$8.parseIfStatement = function(node) {
- this.next();
- node.test = this.parseParenExpression();
- // allow function declarations in branches, but only in non-strict mode
- node.consequent = this.parseStatement("if");
- node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null;
- return this.finishNode(node, "IfStatement")
- };
-
- pp$8.parseReturnStatement = function(node) {
- if (!this.inFunction && !this.options.allowReturnOutsideFunction)
- { this.raise(this.start, "'return' outside of function"); }
- this.next();
-
- // In `return` (and `break`/`continue`), the keywords with
- // optional arguments, we eagerly look for a semicolon or the
- // possibility to insert one.
-
- if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }
- else { node.argument = this.parseExpression(); this.semicolon(); }
- return this.finishNode(node, "ReturnStatement")
- };
-
- pp$8.parseSwitchStatement = function(node) {
- this.next();
- node.discriminant = this.parseParenExpression();
- node.cases = [];
- this.expect(types$1.braceL);
- this.labels.push(switchLabel);
- this.enterScope(0);
-
- // Statements under must be grouped (by label) in SwitchCase
- // nodes. `cur` is used to keep the node that we are currently
- // adding statements to.
-
- var cur;
- for (var sawDefault = false; this.type !== types$1.braceR;) {
- if (this.type === types$1._case || this.type === types$1._default) {
- var isCase = this.type === types$1._case;
- if (cur) { this.finishNode(cur, "SwitchCase"); }
- node.cases.push(cur = this.startNode());
- cur.consequent = [];
- this.next();
- if (isCase) {
- cur.test = this.parseExpression();
- } else {
- if (sawDefault) { this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); }
- sawDefault = true;
- cur.test = null;
- }
- this.expect(types$1.colon);
- } else {
- if (!cur) { this.unexpected(); }
- cur.consequent.push(this.parseStatement(null));
- }
- }
- this.exitScope();
- if (cur) { this.finishNode(cur, "SwitchCase"); }
- this.next(); // Closing brace
- this.labels.pop();
- return this.finishNode(node, "SwitchStatement")
- };
-
- pp$8.parseThrowStatement = function(node) {
- this.next();
- if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
- { this.raise(this.lastTokEnd, "Illegal newline after throw"); }
- node.argument = this.parseExpression();
- this.semicolon();
- return this.finishNode(node, "ThrowStatement")
- };
-
- // Reused empty array added for node fields that are always empty.
-
- var empty$1 = [];
-
- pp$8.parseCatchClauseParam = function() {
- var param = this.parseBindingAtom();
- var simple = param.type === "Identifier";
- this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);
- this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);
- this.expect(types$1.parenR);
-
- return param
- };
-
- pp$8.parseTryStatement = function(node) {
- this.next();
- node.block = this.parseBlock();
- node.handler = null;
- if (this.type === types$1._catch) {
- var clause = this.startNode();
- this.next();
- if (this.eat(types$1.parenL)) {
- clause.param = this.parseCatchClauseParam();
- } else {
- if (this.options.ecmaVersion < 10) { this.unexpected(); }
- clause.param = null;
- this.enterScope(0);
- }
- clause.body = this.parseBlock(false);
- this.exitScope();
- node.handler = this.finishNode(clause, "CatchClause");
- }
- node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;
- if (!node.handler && !node.finalizer)
- { this.raise(node.start, "Missing catch or finally clause"); }
- return this.finishNode(node, "TryStatement")
- };
-
- pp$8.parseVarStatement = function(node, kind, allowMissingInitializer) {
- this.next();
- this.parseVar(node, false, kind, allowMissingInitializer);
- this.semicolon();
- return this.finishNode(node, "VariableDeclaration")
- };
-
- pp$8.parseWhileStatement = function(node) {
- this.next();
- node.test = this.parseParenExpression();
- this.labels.push(loopLabel);
- node.body = this.parseStatement("while");
- this.labels.pop();
- return this.finishNode(node, "WhileStatement")
- };
-
- pp$8.parseWithStatement = function(node) {
- if (this.strict) { this.raise(this.start, "'with' in strict mode"); }
- this.next();
- node.object = this.parseParenExpression();
- node.body = this.parseStatement("with");
- return this.finishNode(node, "WithStatement")
- };
-
- pp$8.parseEmptyStatement = function(node) {
- this.next();
- return this.finishNode(node, "EmptyStatement")
- };
-
- pp$8.parseLabeledStatement = function(node, maybeName, expr, context) {
- for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)
- {
- var label = list[i$1];
-
- if (label.name === maybeName)
- { this.raise(expr.start, "Label '" + maybeName + "' is already declared");
- } }
- var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null;
- for (var i = this.labels.length - 1; i >= 0; i--) {
- var label$1 = this.labels[i];
- if (label$1.statementStart === node.start) {
- // Update information about previous labels on this node
- label$1.statementStart = this.start;
- label$1.kind = kind;
- } else { break }
- }
- this.labels.push({name: maybeName, kind: kind, statementStart: this.start});
- node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label");
- this.labels.pop();
- node.label = expr;
- return this.finishNode(node, "LabeledStatement")
- };
-
- pp$8.parseExpressionStatement = function(node, expr) {
- node.expression = expr;
- this.semicolon();
- return this.finishNode(node, "ExpressionStatement")
- };
-
- // Parse a semicolon-enclosed block of statements, handling `"use
- // strict"` declarations when `allowStrict` is true (used for
- // function bodies).
-
- pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {
- if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;
- if ( node === void 0 ) node = this.startNode();
-
- node.body = [];
- this.expect(types$1.braceL);
- if (createNewLexicalScope) { this.enterScope(0); }
- while (this.type !== types$1.braceR) {
- var stmt = this.parseStatement(null);
- node.body.push(stmt);
- }
- if (exitStrict) { this.strict = false; }
- this.next();
- if (createNewLexicalScope) { this.exitScope(); }
- return this.finishNode(node, "BlockStatement")
- };
-
- // Parse a regular `for` loop. The disambiguation code in
- // `parseStatement` will already have parsed the init statement or
- // expression.
-
- pp$8.parseFor = function(node, init) {
- node.init = init;
- this.expect(types$1.semi);
- node.test = this.type === types$1.semi ? null : this.parseExpression();
- this.expect(types$1.semi);
- node.update = this.type === types$1.parenR ? null : this.parseExpression();
- this.expect(types$1.parenR);
- node.body = this.parseStatement("for");
- this.exitScope();
- this.labels.pop();
- return this.finishNode(node, "ForStatement")
- };
-
- // Parse a `for`/`in` and `for`/`of` loop, which are almost
- // same from parser's perspective.
-
- pp$8.parseForIn = function(node, init) {
- var isForIn = this.type === types$1._in;
- this.next();
-
- if (
- init.type === "VariableDeclaration" &&
- init.declarations[0].init != null &&
- (
- !isForIn ||
- this.options.ecmaVersion < 8 ||
- this.strict ||
- init.kind !== "var" ||
- init.declarations[0].id.type !== "Identifier"
- )
- ) {
- this.raise(
- init.start,
- ((isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer")
- );
- }
- node.left = init;
- node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();
- this.expect(types$1.parenR);
- node.body = this.parseStatement("for");
- this.exitScope();
- this.labels.pop();
- return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement")
- };
-
- // Parse a list of variable declarations.
-
- pp$8.parseVar = function(node, isFor, kind, allowMissingInitializer) {
- node.declarations = [];
- node.kind = kind;
- for (;;) {
- var decl = this.startNode();
- this.parseVarId(decl, kind);
- if (this.eat(types$1.eq)) {
- decl.init = this.parseMaybeAssign(isFor);
- } else if (!allowMissingInitializer && kind === "const" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
- this.unexpected();
- } else if (!allowMissingInitializer && (kind === "using" || kind === "await using") && this.options.ecmaVersion >= 17 && this.type !== types$1._in && !this.isContextual("of")) {
- this.raise(this.lastTokEnd, ("Missing initializer in " + kind + " declaration"));
- } else if (!allowMissingInitializer && decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) {
- this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value");
- } else {
- decl.init = null;
- }
- node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
- if (!this.eat(types$1.comma)) { break }
- }
- return node
- };
-
- pp$8.parseVarId = function(decl, kind) {
- decl.id = kind === "using" || kind === "await using"
- ? this.parseIdent()
- : this.parseBindingAtom();
-
- this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false);
- };
-
- var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;
-
- // Parse a function declaration or literal (depending on the
- // `statement & FUNC_STATEMENT`).
-
- // Remove `allowExpressionBody` for 7.0.0, as it is only called with false
- pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {
- this.initFunction(node);
- if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {
- if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))
- { this.unexpected(); }
- node.generator = this.eat(types$1.star);
- }
- if (this.options.ecmaVersion >= 8)
- { node.async = !!isAsync; }
-
- if (statement & FUNC_STATEMENT) {
- node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();
- if (node.id && !(statement & FUNC_HANGING_STATEMENT))
- // If it is a regular function declaration in sloppy mode, then it is
- // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding
- // mode depends on properties of the current scope (see
- // treatFunctionsAsVar).
- { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }
- }
-
- var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
- this.enterScope(functionFlags(node.async, node.generator));
-
- if (!(statement & FUNC_STATEMENT))
- { node.id = this.type === types$1.name ? this.parseIdent() : null; }
-
- this.parseFunctionParams(node);
- this.parseFunctionBody(node, allowExpressionBody, false, forInit);
-
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression")
- };
-
- pp$8.parseFunctionParams = function(node) {
- this.expect(types$1.parenL);
- node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
- this.checkYieldAwaitInDefaultParams();
- };
-
- // Parse a class declaration or literal (depending on the
- // `isStatement` parameter).
-
- pp$8.parseClass = function(node, isStatement) {
- this.next();
-
- // ecma-262 14.6 Class Definitions
- // A class definition is always strict mode code.
- var oldStrict = this.strict;
- this.strict = true;
-
- this.parseClassId(node, isStatement);
- this.parseClassSuper(node);
- var privateNameMap = this.enterClassBody();
- var classBody = this.startNode();
- var hadConstructor = false;
- classBody.body = [];
- this.expect(types$1.braceL);
- while (this.type !== types$1.braceR) {
- var element = this.parseClassElement(node.superClass !== null);
- if (element) {
- classBody.body.push(element);
- if (element.type === "MethodDefinition" && element.kind === "constructor") {
- if (hadConstructor) { this.raiseRecoverable(element.start, "Duplicate constructor in the same class"); }
- hadConstructor = true;
- } else if (element.key && element.key.type === "PrivateIdentifier" && isPrivateNameConflicted(privateNameMap, element)) {
- this.raiseRecoverable(element.key.start, ("Identifier '#" + (element.key.name) + "' has already been declared"));
- }
- }
- }
- this.strict = oldStrict;
- this.next();
- node.body = this.finishNode(classBody, "ClassBody");
- this.exitClassBody();
- return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
- };
-
- pp$8.parseClassElement = function(constructorAllowsSuper) {
- if (this.eat(types$1.semi)) { return null }
-
- var ecmaVersion = this.options.ecmaVersion;
- var node = this.startNode();
- var keyName = "";
- var isGenerator = false;
- var isAsync = false;
- var kind = "method";
- var isStatic = false;
-
- if (this.eatContextual("static")) {
- // Parse static init block
- if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {
- this.parseClassStaticBlock(node);
- return node
- }
- if (this.isClassElementNameStart() || this.type === types$1.star) {
- isStatic = true;
- } else {
- keyName = "static";
- }
- }
- node.static = isStatic;
- if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) {
- if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {
- isAsync = true;
- } else {
- keyName = "async";
- }
- }
- if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {
- isGenerator = true;
- }
- if (!keyName && !isAsync && !isGenerator) {
- var lastValue = this.value;
- if (this.eatContextual("get") || this.eatContextual("set")) {
- if (this.isClassElementNameStart()) {
- kind = lastValue;
- } else {
- keyName = lastValue;
- }
- }
- }
-
- // Parse element name
- if (keyName) {
- // 'async', 'get', 'set', or 'static' were not a keyword contextually.
- // The last token is any of those. Make it the element name.
- node.computed = false;
- node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);
- node.key.name = keyName;
- this.finishNode(node.key, "Identifier");
- } else {
- this.parseClassElementName(node);
- }
-
- // Parse element value
- if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) {
- var isConstructor = !node.static && checkKeyName(node, "constructor");
- var allowsDirectSuper = isConstructor && constructorAllowsSuper;
- // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.
- if (isConstructor && kind !== "method") { this.raise(node.key.start, "Constructor can't have get/set modifier"); }
- node.kind = isConstructor ? "constructor" : kind;
- this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);
- } else {
- this.parseClassField(node);
- }
-
- return node
- };
-
- pp$8.isClassElementNameStart = function() {
- return (
- this.type === types$1.name ||
- this.type === types$1.privateId ||
- this.type === types$1.num ||
- this.type === types$1.string ||
- this.type === types$1.bracketL ||
- this.type.keyword
- )
- };
-
- pp$8.parseClassElementName = function(element) {
- if (this.type === types$1.privateId) {
- if (this.value === "constructor") {
- this.raise(this.start, "Classes can't have an element named '#constructor'");
- }
- element.computed = false;
- element.key = this.parsePrivateIdent();
- } else {
- this.parsePropertyName(element);
- }
- };
-
- pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {
- // Check key and flags
- var key = method.key;
- if (method.kind === "constructor") {
- if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); }
- if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); }
- } else if (method.static && checkKeyName(method, "prototype")) {
- this.raise(key.start, "Classes may not have a static property named prototype");
- }
-
- // Parse value
- var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);
-
- // Check value
- if (method.kind === "get" && value.params.length !== 0)
- { this.raiseRecoverable(value.start, "getter should have no params"); }
- if (method.kind === "set" && value.params.length !== 1)
- { this.raiseRecoverable(value.start, "setter should have exactly one param"); }
- if (method.kind === "set" && value.params[0].type === "RestElement")
- { this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params"); }
-
- return this.finishNode(method, "MethodDefinition")
- };
-
- pp$8.parseClassField = function(field) {
- if (checkKeyName(field, "constructor")) {
- this.raise(field.key.start, "Classes can't have a field named 'constructor'");
- } else if (field.static && checkKeyName(field, "prototype")) {
- this.raise(field.key.start, "Classes can't have a static field named 'prototype'");
- }
-
- if (this.eat(types$1.eq)) {
- // To raise SyntaxError if 'arguments' exists in the initializer.
- this.enterScope(SCOPE_CLASS_FIELD_INIT | SCOPE_SUPER);
- field.value = this.parseMaybeAssign();
- this.exitScope();
- } else {
- field.value = null;
- }
- this.semicolon();
-
- return this.finishNode(field, "PropertyDefinition")
- };
-
- pp$8.parseClassStaticBlock = function(node) {
- node.body = [];
-
- var oldLabels = this.labels;
- this.labels = [];
- this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);
- while (this.type !== types$1.braceR) {
- var stmt = this.parseStatement(null);
- node.body.push(stmt);
- }
- this.next();
- this.exitScope();
- this.labels = oldLabels;
-
- return this.finishNode(node, "StaticBlock")
- };
-
- pp$8.parseClassId = function(node, isStatement) {
- if (this.type === types$1.name) {
- node.id = this.parseIdent();
- if (isStatement)
- { this.checkLValSimple(node.id, BIND_LEXICAL, false); }
- } else {
- if (isStatement === true)
- { this.unexpected(); }
- node.id = null;
- }
- };
-
- pp$8.parseClassSuper = function(node) {
- node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;
- };
-
- pp$8.enterClassBody = function() {
- var element = {declared: Object.create(null), used: []};
- this.privateNameStack.push(element);
- return element.declared
- };
-
- pp$8.exitClassBody = function() {
- var ref = this.privateNameStack.pop();
- var declared = ref.declared;
- var used = ref.used;
- if (!this.options.checkPrivateFields) { return }
- var len = this.privateNameStack.length;
- var parent = len === 0 ? null : this.privateNameStack[len - 1];
- for (var i = 0; i < used.length; ++i) {
- var id = used[i];
- if (!hasOwn(declared, id.name)) {
- if (parent) {
- parent.used.push(id);
- } else {
- this.raiseRecoverable(id.start, ("Private field '#" + (id.name) + "' must be declared in an enclosing class"));
- }
- }
- }
- };
-
- function isPrivateNameConflicted(privateNameMap, element) {
- var name = element.key.name;
- var curr = privateNameMap[name];
-
- var next = "true";
- if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) {
- next = (element.static ? "s" : "i") + element.kind;
- }
-
- // `class { get #a(){}; static set #a(_){} }` is also conflict.
- if (
- curr === "iget" && next === "iset" ||
- curr === "iset" && next === "iget" ||
- curr === "sget" && next === "sset" ||
- curr === "sset" && next === "sget"
- ) {
- privateNameMap[name] = "true";
- return false
- } else if (!curr) {
- privateNameMap[name] = next;
- return false
- } else {
- return true
- }
- }
-
- function checkKeyName(node, name) {
- var computed = node.computed;
- var key = node.key;
- return !computed && (
- key.type === "Identifier" && key.name === name ||
- key.type === "Literal" && key.value === name
- )
- }
-
- // Parses module export declaration.
-
- pp$8.parseExportAllDeclaration = function(node, exports) {
- if (this.options.ecmaVersion >= 11) {
- if (this.eatContextual("as")) {
- node.exported = this.parseModuleExportName();
- this.checkExport(exports, node.exported, this.lastTokStart);
- } else {
- node.exported = null;
- }
- }
- this.expectContextual("from");
- if (this.type !== types$1.string) { this.unexpected(); }
- node.source = this.parseExprAtom();
- if (this.options.ecmaVersion >= 16)
- { node.attributes = this.parseWithClause(); }
- this.semicolon();
- return this.finishNode(node, "ExportAllDeclaration")
- };
-
- pp$8.parseExport = function(node, exports) {
- this.next();
- // export * from '...'
- if (this.eat(types$1.star)) {
- return this.parseExportAllDeclaration(node, exports)
- }
- if (this.eat(types$1._default)) { // export default ...
- this.checkExport(exports, "default", this.lastTokStart);
- node.declaration = this.parseExportDefaultDeclaration();
- return this.finishNode(node, "ExportDefaultDeclaration")
- }
- // export var|const|let|function|class ...
- if (this.shouldParseExportStatement()) {
- node.declaration = this.parseExportDeclaration(node);
- if (node.declaration.type === "VariableDeclaration")
- { this.checkVariableExport(exports, node.declaration.declarations); }
- else
- { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
- node.specifiers = [];
- node.source = null;
- if (this.options.ecmaVersion >= 16)
- { node.attributes = []; }
- } else { // export { x, y as z } [from '...']
- node.declaration = null;
- node.specifiers = this.parseExportSpecifiers(exports);
- if (this.eatContextual("from")) {
- if (this.type !== types$1.string) { this.unexpected(); }
- node.source = this.parseExprAtom();
- if (this.options.ecmaVersion >= 16)
- { node.attributes = this.parseWithClause(); }
- } else {
- for (var i = 0, list = node.specifiers; i < list.length; i += 1) {
- // check for keywords used as local names
- var spec = list[i];
-
- this.checkUnreserved(spec.local);
- // check if export is defined
- this.checkLocalExport(spec.local);
-
- if (spec.local.type === "Literal") {
- this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`.");
- }
- }
-
- node.source = null;
- if (this.options.ecmaVersion >= 16)
- { node.attributes = []; }
- }
- this.semicolon();
- }
- return this.finishNode(node, "ExportNamedDeclaration")
- };
-
- pp$8.parseExportDeclaration = function(node) {
- return this.parseStatement(null)
- };
-
- pp$8.parseExportDefaultDeclaration = function() {
- var isAsync;
- if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {
- var fNode = this.startNode();
- this.next();
- if (isAsync) { this.next(); }
- return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)
- } else if (this.type === types$1._class) {
- var cNode = this.startNode();
- return this.parseClass(cNode, "nullableID")
- } else {
- var declaration = this.parseMaybeAssign();
- this.semicolon();
- return declaration
- }
- };
-
- pp$8.checkExport = function(exports, name, pos) {
- if (!exports) { return }
- if (typeof name !== "string")
- { name = name.type === "Identifier" ? name.name : name.value; }
- if (hasOwn(exports, name))
- { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
- exports[name] = true;
- };
-
- pp$8.checkPatternExport = function(exports, pat) {
- var type = pat.type;
- if (type === "Identifier")
- { this.checkExport(exports, pat, pat.start); }
- else if (type === "ObjectPattern")
- { for (var i = 0, list = pat.properties; i < list.length; i += 1)
- {
- var prop = list[i];
-
- this.checkPatternExport(exports, prop);
- } }
- else if (type === "ArrayPattern")
- { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {
- var elt = list$1[i$1];
-
- if (elt) { this.checkPatternExport(exports, elt); }
- } }
- else if (type === "Property")
- { this.checkPatternExport(exports, pat.value); }
- else if (type === "AssignmentPattern")
- { this.checkPatternExport(exports, pat.left); }
- else if (type === "RestElement")
- { this.checkPatternExport(exports, pat.argument); }
- };
-
- pp$8.checkVariableExport = function(exports, decls) {
- if (!exports) { return }
- for (var i = 0, list = decls; i < list.length; i += 1)
- {
- var decl = list[i];
-
- this.checkPatternExport(exports, decl.id);
- }
- };
-
- pp$8.shouldParseExportStatement = function() {
- return this.type.keyword === "var" ||
- this.type.keyword === "const" ||
- this.type.keyword === "class" ||
- this.type.keyword === "function" ||
- this.isLet() ||
- this.isAsyncFunction()
- };
-
- // Parses a comma-separated list of module exports.
-
- pp$8.parseExportSpecifier = function(exports) {
- var node = this.startNode();
- node.local = this.parseModuleExportName();
-
- node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
- this.checkExport(
- exports,
- node.exported,
- node.exported.start
- );
-
- return this.finishNode(node, "ExportSpecifier")
- };
-
- pp$8.parseExportSpecifiers = function(exports) {
- var nodes = [], first = true;
- // export { x, y as z } [from '...']
- this.expect(types$1.braceL);
- while (!this.eat(types$1.braceR)) {
- if (!first) {
- this.expect(types$1.comma);
- if (this.afterTrailingComma(types$1.braceR)) { break }
- } else { first = false; }
-
- nodes.push(this.parseExportSpecifier(exports));
- }
- return nodes
- };
-
- // Parses import declaration.
-
- pp$8.parseImport = function(node) {
- this.next();
-
- // import '...'
- if (this.type === types$1.string) {
- node.specifiers = empty$1;
- node.source = this.parseExprAtom();
- } else {
- node.specifiers = this.parseImportSpecifiers();
- this.expectContextual("from");
- node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();
- }
- if (this.options.ecmaVersion >= 16)
- { node.attributes = this.parseWithClause(); }
- this.semicolon();
- return this.finishNode(node, "ImportDeclaration")
- };
-
- // Parses a comma-separated list of module imports.
-
- pp$8.parseImportSpecifier = function() {
- var node = this.startNode();
- node.imported = this.parseModuleExportName();
-
- if (this.eatContextual("as")) {
- node.local = this.parseIdent();
- } else {
- this.checkUnreserved(node.imported);
- node.local = node.imported;
- }
- this.checkLValSimple(node.local, BIND_LEXICAL);
-
- return this.finishNode(node, "ImportSpecifier")
- };
-
- pp$8.parseImportDefaultSpecifier = function() {
- // import defaultObj, { x, y as z } from '...'
- var node = this.startNode();
- node.local = this.parseIdent();
- this.checkLValSimple(node.local, BIND_LEXICAL);
- return this.finishNode(node, "ImportDefaultSpecifier")
- };
-
- pp$8.parseImportNamespaceSpecifier = function() {
- var node = this.startNode();
- this.next();
- this.expectContextual("as");
- node.local = this.parseIdent();
- this.checkLValSimple(node.local, BIND_LEXICAL);
- return this.finishNode(node, "ImportNamespaceSpecifier")
- };
-
- pp$8.parseImportSpecifiers = function() {
- var nodes = [], first = true;
- if (this.type === types$1.name) {
- nodes.push(this.parseImportDefaultSpecifier());
- if (!this.eat(types$1.comma)) { return nodes }
- }
- if (this.type === types$1.star) {
- nodes.push(this.parseImportNamespaceSpecifier());
- return nodes
- }
- this.expect(types$1.braceL);
- while (!this.eat(types$1.braceR)) {
- if (!first) {
- this.expect(types$1.comma);
- if (this.afterTrailingComma(types$1.braceR)) { break }
- } else { first = false; }
-
- nodes.push(this.parseImportSpecifier());
- }
- return nodes
- };
-
- pp$8.parseWithClause = function() {
- var nodes = [];
- if (!this.eat(types$1._with)) {
- return nodes
- }
- this.expect(types$1.braceL);
- var attributeKeys = {};
- var first = true;
- while (!this.eat(types$1.braceR)) {
- if (!first) {
- this.expect(types$1.comma);
- if (this.afterTrailingComma(types$1.braceR)) { break }
- } else { first = false; }
-
- var attr = this.parseImportAttribute();
- var keyName = attr.key.type === "Identifier" ? attr.key.name : attr.key.value;
- if (hasOwn(attributeKeys, keyName))
- { this.raiseRecoverable(attr.key.start, "Duplicate attribute key '" + keyName + "'"); }
- attributeKeys[keyName] = true;
- nodes.push(attr);
- }
- return nodes
- };
-
- pp$8.parseImportAttribute = function() {
- var node = this.startNode();
- node.key = this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never");
- this.expect(types$1.colon);
- if (this.type !== types$1.string) {
- this.unexpected();
- }
- node.value = this.parseExprAtom();
- return this.finishNode(node, "ImportAttribute")
- };
-
- pp$8.parseModuleExportName = function() {
- if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {
- var stringLiteral = this.parseLiteral(this.value);
- if (loneSurrogate.test(stringLiteral.value)) {
- this.raise(stringLiteral.start, "An export name cannot include a lone surrogate.");
- }
- return stringLiteral
- }
- return this.parseIdent(true)
- };
-
- // Set `ExpressionStatement#directive` property for directive prologues.
- pp$8.adaptDirectivePrologue = function(statements) {
- for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
- statements[i].directive = statements[i].expression.raw.slice(1, -1);
- }
- };
- pp$8.isDirectiveCandidate = function(statement) {
- return (
- this.options.ecmaVersion >= 5 &&
- statement.type === "ExpressionStatement" &&
- statement.expression.type === "Literal" &&
- typeof statement.expression.value === "string" &&
- // Reject parenthesized strings.
- (this.input[statement.start] === "\"" || this.input[statement.start] === "'")
- )
- };
-
- var pp$7 = Parser.prototype;
-
- // Convert existing expression atom to assignable pattern
- // if possible.
-
- pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {
- if (this.options.ecmaVersion >= 6 && node) {
- switch (node.type) {
- case "Identifier":
- if (this.inAsync && node.name === "await")
- { this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); }
- break
-
- case "ObjectPattern":
- case "ArrayPattern":
- case "AssignmentPattern":
- case "RestElement":
- break
-
- case "ObjectExpression":
- node.type = "ObjectPattern";
- if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }
- for (var i = 0, list = node.properties; i < list.length; i += 1) {
- var prop = list[i];
-
- this.toAssignable(prop, isBinding);
- // Early error:
- // AssignmentRestProperty[Yield, Await] :
- // `...` DestructuringAssignmentTarget[Yield, Await]
- //
- // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.
- if (
- prop.type === "RestElement" &&
- (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern")
- ) {
- this.raise(prop.argument.start, "Unexpected token");
- }
- }
- break
-
- case "Property":
- // AssignmentProperty has type === "Property"
- if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); }
- this.toAssignable(node.value, isBinding);
- break
-
- case "ArrayExpression":
- node.type = "ArrayPattern";
- if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }
- this.toAssignableList(node.elements, isBinding);
- break
-
- case "SpreadElement":
- node.type = "RestElement";
- this.toAssignable(node.argument, isBinding);
- if (node.argument.type === "AssignmentPattern")
- { this.raise(node.argument.start, "Rest elements cannot have a default value"); }
- break
-
- case "AssignmentExpression":
- if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); }
- node.type = "AssignmentPattern";
- delete node.operator;
- this.toAssignable(node.left, isBinding);
- break
-
- case "ParenthesizedExpression":
- this.toAssignable(node.expression, isBinding, refDestructuringErrors);
- break
-
- case "ChainExpression":
- this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side");
- break
-
- case "MemberExpression":
- if (!isBinding) { break }
-
- default:
- this.raise(node.start, "Assigning to rvalue");
- }
- } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }
- return node
- };
-
- // Convert list of expression atoms to binding list.
-
- pp$7.toAssignableList = function(exprList, isBinding) {
- var end = exprList.length;
- for (var i = 0; i < end; i++) {
- var elt = exprList[i];
- if (elt) { this.toAssignable(elt, isBinding); }
- }
- if (end) {
- var last = exprList[end - 1];
- if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier")
- { this.unexpected(last.argument.start); }
- }
- return exprList
- };
-
- // Parses spread element.
-
- pp$7.parseSpread = function(refDestructuringErrors) {
- var node = this.startNode();
- this.next();
- node.argument = this.parseMaybeAssign(false, refDestructuringErrors);
- return this.finishNode(node, "SpreadElement")
- };
-
- pp$7.parseRestBinding = function() {
- var node = this.startNode();
- this.next();
-
- // RestElement inside of a function parameter must be an identifier
- if (this.options.ecmaVersion === 6 && this.type !== types$1.name)
- { this.unexpected(); }
-
- node.argument = this.parseBindingAtom();
-
- return this.finishNode(node, "RestElement")
- };
-
- // Parses lvalue (assignable) atom.
-
- pp$7.parseBindingAtom = function() {
- if (this.options.ecmaVersion >= 6) {
- switch (this.type) {
- case types$1.bracketL:
- var node = this.startNode();
- this.next();
- node.elements = this.parseBindingList(types$1.bracketR, true, true);
- return this.finishNode(node, "ArrayPattern")
-
- case types$1.braceL:
- return this.parseObj(true)
- }
- }
- return this.parseIdent()
- };
-
- pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma, allowModifiers) {
- var elts = [], first = true;
- while (!this.eat(close)) {
- if (first) { first = false; }
- else { this.expect(types$1.comma); }
- if (allowEmpty && this.type === types$1.comma) {
- elts.push(null);
- } else if (allowTrailingComma && this.afterTrailingComma(close)) {
- break
- } else if (this.type === types$1.ellipsis) {
- var rest = this.parseRestBinding();
- this.parseBindingListItem(rest);
- elts.push(rest);
- if (this.type === types$1.comma) { this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); }
- this.expect(close);
- break
- } else {
- elts.push(this.parseAssignableListItem(allowModifiers));
- }
- }
- return elts
- };
-
- pp$7.parseAssignableListItem = function(allowModifiers) {
- var elem = this.parseMaybeDefault(this.start, this.startLoc);
- this.parseBindingListItem(elem);
- return elem
- };
-
- pp$7.parseBindingListItem = function(param) {
- return param
- };
-
- // Parses assignment pattern around given atom if possible.
-
- pp$7.parseMaybeDefault = function(startPos, startLoc, left) {
- left = left || this.parseBindingAtom();
- if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }
- var node = this.startNodeAt(startPos, startLoc);
- node.left = left;
- node.right = this.parseMaybeAssign();
- return this.finishNode(node, "AssignmentPattern")
- };
-
- // The following three functions all verify that a node is an lvalue —
- // something that can be bound, or assigned to. In order to do so, they perform
- // a variety of checks:
- //
- // - Check that none of the bound/assigned-to identifiers are reserved words.
- // - Record name declarations for bindings in the appropriate scope.
- // - Check duplicate argument names, if checkClashes is set.
- //
- // If a complex binding pattern is encountered (e.g., object and array
- // destructuring), the entire pattern is recursively checked.
- //
- // There are three versions of checkLVal*() appropriate for different
- // circumstances:
- //
- // - checkLValSimple() shall be used if the syntactic construct supports
- // nothing other than identifiers and member expressions. Parenthesized
- // expressions are also correctly handled. This is generally appropriate for
- // constructs for which the spec says
- //
- // > It is a Syntax Error if AssignmentTargetType of [the production] is not
- // > simple.
- //
- // It is also appropriate for checking if an identifier is valid and not
- // defined elsewhere, like import declarations or function/class identifiers.
- //
- // Examples where this is used include:
- // a += …;
- // import a from '…';
- // where a is the node to be checked.
- //
- // - checkLValPattern() shall be used if the syntactic construct supports
- // anything checkLValSimple() supports, as well as object and array
- // destructuring patterns. This is generally appropriate for constructs for
- // which the spec says
- //
- // > It is a Syntax Error if [the production] is neither an ObjectLiteral nor
- // > an ArrayLiteral and AssignmentTargetType of [the production] is not
- // > simple.
- //
- // Examples where this is used include:
- // (a = …);
- // const a = …;
- // try { … } catch (a) { … }
- // where a is the node to be checked.
- //
- // - checkLValInnerPattern() shall be used if the syntactic construct supports
- // anything checkLValPattern() supports, as well as default assignment
- // patterns, rest elements, and other constructs that may appear within an
- // object or array destructuring pattern.
- //
- // As a special case, function parameters also use checkLValInnerPattern(),
- // as they also support defaults and rest constructs.
- //
- // These functions deliberately support both assignment and binding constructs,
- // as the logic for both is exceedingly similar. If the node is the target of
- // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it
- // should be set to the appropriate BIND_* constant, like BIND_VAR or
- // BIND_LEXICAL.
- //
- // If the function is called with a non-BIND_NONE bindingType, then
- // additionally a checkClashes object may be specified to allow checking for
- // duplicate argument names. checkClashes is ignored if the provided construct
- // is an assignment (i.e., bindingType is BIND_NONE).
-
- pp$7.checkLValSimple = function(expr, bindingType, checkClashes) {
- if ( bindingType === void 0 ) bindingType = BIND_NONE;
-
- var isBind = bindingType !== BIND_NONE;
-
- switch (expr.type) {
- case "Identifier":
- if (this.strict && this.reservedWordsStrictBind.test(expr.name))
- { this.raiseRecoverable(expr.start, (isBind ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); }
- if (isBind) {
- if (bindingType === BIND_LEXICAL && expr.name === "let")
- { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); }
- if (checkClashes) {
- if (hasOwn(checkClashes, expr.name))
- { this.raiseRecoverable(expr.start, "Argument name clash"); }
- checkClashes[expr.name] = true;
- }
- if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }
- }
- break
-
- case "ChainExpression":
- this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side");
- break
-
- case "MemberExpression":
- if (isBind) { this.raiseRecoverable(expr.start, "Binding member expression"); }
- break
-
- case "ParenthesizedExpression":
- if (isBind) { this.raiseRecoverable(expr.start, "Binding parenthesized expression"); }
- return this.checkLValSimple(expr.expression, bindingType, checkClashes)
-
- default:
- this.raise(expr.start, (isBind ? "Binding" : "Assigning to") + " rvalue");
- }
- };
-
- pp$7.checkLValPattern = function(expr, bindingType, checkClashes) {
- if ( bindingType === void 0 ) bindingType = BIND_NONE;
-
- switch (expr.type) {
- case "ObjectPattern":
- for (var i = 0, list = expr.properties; i < list.length; i += 1) {
- var prop = list[i];
-
- this.checkLValInnerPattern(prop, bindingType, checkClashes);
- }
- break
-
- case "ArrayPattern":
- for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {
- var elem = list$1[i$1];
-
- if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }
- }
- break
-
- default:
- this.checkLValSimple(expr, bindingType, checkClashes);
- }
- };
-
- pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {
- if ( bindingType === void 0 ) bindingType = BIND_NONE;
-
- switch (expr.type) {
- case "Property":
- // AssignmentProperty has type === "Property"
- this.checkLValInnerPattern(expr.value, bindingType, checkClashes);
- break
-
- case "AssignmentPattern":
- this.checkLValPattern(expr.left, bindingType, checkClashes);
- break
-
- case "RestElement":
- this.checkLValPattern(expr.argument, bindingType, checkClashes);
- break
-
- default:
- this.checkLValPattern(expr, bindingType, checkClashes);
- }
- };
-
- // The algorithm used to determine whether a regexp can appear at a
- // given point in the program is loosely based on sweet.js' approach.
- // See https://github.com/mozilla/sweet.js/wiki/design
-
-
- var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {
- this.token = token;
- this.isExpr = !!isExpr;
- this.preserveSpace = !!preserveSpace;
- this.override = override;
- this.generator = !!generator;
- };
-
- var types = {
- b_stat: new TokContext("{", false),
- b_expr: new TokContext("{", true),
- b_tmpl: new TokContext("${", false),
- p_stat: new TokContext("(", false),
- p_expr: new TokContext("(", true),
- q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }),
- f_stat: new TokContext("function", false),
- f_expr: new TokContext("function", true),
- f_expr_gen: new TokContext("function", true, false, null, true),
- f_gen: new TokContext("function", false, false, null, true)
- };
-
- var pp$6 = Parser.prototype;
-
- pp$6.initialContext = function() {
- return [types.b_stat]
- };
-
- pp$6.curContext = function() {
- return this.context[this.context.length - 1]
- };
-
- pp$6.braceIsBlock = function(prevType) {
- var parent = this.curContext();
- if (parent === types.f_expr || parent === types.f_stat)
- { return true }
- if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))
- { return !parent.isExpr }
-
- // The check for `tt.name && exprAllowed` detects whether we are
- // after a `yield` or `of` construct. See the `updateContext` for
- // `tt.name`.
- if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)
- { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }
- if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)
- { return true }
- if (prevType === types$1.braceL)
- { return parent === types.b_stat }
- if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)
- { return false }
- return !this.exprAllowed
- };
-
- pp$6.inGeneratorContext = function() {
- for (var i = this.context.length - 1; i >= 1; i--) {
- var context = this.context[i];
- if (context.token === "function")
- { return context.generator }
- }
- return false
- };
-
- pp$6.updateContext = function(prevType) {
- var update, type = this.type;
- if (type.keyword && prevType === types$1.dot)
- { this.exprAllowed = false; }
- else if (update = type.updateContext)
- { update.call(this, prevType); }
- else
- { this.exprAllowed = type.beforeExpr; }
- };
-
- // Used to handle edge cases when token context could not be inferred correctly during tokenization phase
-
- pp$6.overrideContext = function(tokenCtx) {
- if (this.curContext() !== tokenCtx) {
- this.context[this.context.length - 1] = tokenCtx;
- }
- };
-
- // Token-specific context update code
-
- types$1.parenR.updateContext = types$1.braceR.updateContext = function() {
- if (this.context.length === 1) {
- this.exprAllowed = true;
- return
- }
- var out = this.context.pop();
- if (out === types.b_stat && this.curContext().token === "function") {
- out = this.context.pop();
- }
- this.exprAllowed = !out.isExpr;
- };
-
- types$1.braceL.updateContext = function(prevType) {
- this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);
- this.exprAllowed = true;
- };
-
- types$1.dollarBraceL.updateContext = function() {
- this.context.push(types.b_tmpl);
- this.exprAllowed = true;
- };
-
- types$1.parenL.updateContext = function(prevType) {
- var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;
- this.context.push(statementParens ? types.p_stat : types.p_expr);
- this.exprAllowed = true;
- };
-
- types$1.incDec.updateContext = function() {
- // tokExprAllowed stays unchanged
- };
-
- types$1._function.updateContext = types$1._class.updateContext = function(prevType) {
- if (prevType.beforeExpr && prevType !== types$1._else &&
- !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&
- !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&
- !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))
- { this.context.push(types.f_expr); }
- else
- { this.context.push(types.f_stat); }
- this.exprAllowed = false;
- };
-
- types$1.colon.updateContext = function() {
- if (this.curContext().token === "function") { this.context.pop(); }
- this.exprAllowed = true;
- };
-
- types$1.backQuote.updateContext = function() {
- if (this.curContext() === types.q_tmpl)
- { this.context.pop(); }
- else
- { this.context.push(types.q_tmpl); }
- this.exprAllowed = false;
- };
-
- types$1.star.updateContext = function(prevType) {
- if (prevType === types$1._function) {
- var index = this.context.length - 1;
- if (this.context[index] === types.f_expr)
- { this.context[index] = types.f_expr_gen; }
- else
- { this.context[index] = types.f_gen; }
- }
- this.exprAllowed = true;
- };
-
- types$1.name.updateContext = function(prevType) {
- var allowed = false;
- if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {
- if (this.value === "of" && !this.exprAllowed ||
- this.value === "yield" && this.inGeneratorContext())
- { allowed = true; }
- }
- this.exprAllowed = allowed;
- };
-
- // A recursive descent parser operates by defining functions for all
- // syntactic elements, and recursively calling those, each function
- // advancing the input stream and returning an AST node. Precedence
- // of constructs (for example, the fact that `!x[1]` means `!(x[1])`
- // instead of `(!x)[1]` is handled by the fact that the parser
- // function that parses unary prefix operators is called first, and
- // in turn calls the function that parses `[]` subscripts — that
- // way, it'll receive the node for `x[1]` already parsed, and wraps
- // *that* in the unary operator node.
- //
- // Acorn uses an [operator precedence parser][opp] to handle binary
- // operator precedence, because it is much more compact than using
- // the technique outlined above, which uses different, nesting
- // functions to specify precedence, for all of the ten binary
- // precedence levels that JavaScript defines.
- //
- // [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser
-
-
- var pp$5 = Parser.prototype;
-
- // Check if property name clashes with already added.
- // Object/class getters and setters are not allowed to clash —
- // either with each other or with an init property — and in
- // strict mode, init properties are also not allowed to be repeated.
-
- pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {
- if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement")
- { return }
- if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))
- { return }
- var key = prop.key;
- var name;
- switch (key.type) {
- case "Identifier": name = key.name; break
- case "Literal": name = String(key.value); break
- default: return
- }
- var kind = prop.kind;
- if (this.options.ecmaVersion >= 6) {
- if (name === "__proto__" && kind === "init") {
- if (propHash.proto) {
- if (refDestructuringErrors) {
- if (refDestructuringErrors.doubleProto < 0) {
- refDestructuringErrors.doubleProto = key.start;
- }
- } else {
- this.raiseRecoverable(key.start, "Redefinition of __proto__ property");
- }
- }
- propHash.proto = true;
- }
- return
- }
- name = "$" + name;
- var other = propHash[name];
- if (other) {
- var redefinition;
- if (kind === "init") {
- redefinition = this.strict && other.init || other.get || other.set;
- } else {
- redefinition = other.init || other[kind];
- }
- if (redefinition)
- { this.raiseRecoverable(key.start, "Redefinition of property"); }
- } else {
- other = propHash[name] = {
- init: false,
- get: false,
- set: false
- };
- }
- other[kind] = true;
- };
-
- // ### Expression parsing
-
- // These nest, from the most general expression type at the top to
- // 'atomic', nondivisible expression types at the bottom. Most of
- // the functions will simply let the function(s) below them parse,
- // and, *if* the syntactic construct they handle is present, wrap
- // the AST node that the inner parser gave them in another node.
-
- // Parse a full expression. The optional arguments are used to
- // forbid the `in` operator (in for loops initalization expressions)
- // and provide reference for storing '=' operator inside shorthand
- // property assignment in contexts where both object expression
- // and object pattern might appear (so it's possible to raise
- // delayed syntax error at correct position).
-
- pp$5.parseExpression = function(forInit, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);
- if (this.type === types$1.comma) {
- var node = this.startNodeAt(startPos, startLoc);
- node.expressions = [expr];
- while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
- return this.finishNode(node, "SequenceExpression")
- }
- return expr
- };
-
- // Parse an assignment expression. This includes applications of
- // operators like `+=`.
-
- pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {
- if (this.isContextual("yield")) {
- if (this.inGenerator) { return this.parseYield(forInit) }
- // The tokenizer will assume an expression is allowed after
- // `yield`, but this isn't that kind of yield
- else { this.exprAllowed = false; }
- }
-
- var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;
- if (refDestructuringErrors) {
- oldParenAssign = refDestructuringErrors.parenthesizedAssign;
- oldTrailingComma = refDestructuringErrors.trailingComma;
- oldDoubleProto = refDestructuringErrors.doubleProto;
- refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;
- } else {
- refDestructuringErrors = new DestructuringErrors;
- ownDestructuringErrors = true;
- }
-
- var startPos = this.start, startLoc = this.startLoc;
- if (this.type === types$1.parenL || this.type === types$1.name) {
- this.potentialArrowAt = this.start;
- this.potentialArrowInForAwait = forInit === "await";
- }
- var left = this.parseMaybeConditional(forInit, refDestructuringErrors);
- if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }
- if (this.type.isAssign) {
- var node = this.startNodeAt(startPos, startLoc);
- node.operator = this.value;
- if (this.type === types$1.eq)
- { left = this.toAssignable(left, false, refDestructuringErrors); }
- if (!ownDestructuringErrors) {
- refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;
- }
- if (refDestructuringErrors.shorthandAssign >= left.start)
- { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly
- if (this.type === types$1.eq)
- { this.checkLValPattern(left); }
- else
- { this.checkLValSimple(left); }
- node.left = left;
- this.next();
- node.right = this.parseMaybeAssign(forInit);
- if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }
- return this.finishNode(node, "AssignmentExpression")
- } else {
- if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }
- }
- if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }
- if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }
- return left
- };
-
- // Parse a ternary conditional (`?:`) operator.
-
- pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseExprOps(forInit, refDestructuringErrors);
- if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
- if (this.eat(types$1.question)) {
- var node = this.startNodeAt(startPos, startLoc);
- node.test = expr;
- node.consequent = this.parseMaybeAssign();
- this.expect(types$1.colon);
- node.alternate = this.parseMaybeAssign(forInit);
- return this.finishNode(node, "ConditionalExpression")
- }
- return expr
- };
-
- // Start the precedence parser.
-
- pp$5.parseExprOps = function(forInit, refDestructuringErrors) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);
- if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
- return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)
- };
-
- // Parse binary operators with the operator precedence parsing
- // algorithm. `left` is the left-hand side of the operator.
- // `minPrec` provides context that allows the function to stop and
- // defer further parser to one of its callers when it encounters an
- // operator that has a lower precedence than the set it is parsing.
-
- pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {
- var prec = this.type.binop;
- if (prec != null && (!forInit || this.type !== types$1._in)) {
- if (prec > minPrec) {
- var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;
- var coalesce = this.type === types$1.coalesce;
- if (coalesce) {
- // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.
- // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.
- prec = types$1.logicalAND.binop;
- }
- var op = this.value;
- this.next();
- var startPos = this.start, startLoc = this.startLoc;
- var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);
- var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);
- if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {
- this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses");
- }
- return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)
- }
- }
- return left
- };
-
- pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {
- if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); }
- var node = this.startNodeAt(startPos, startLoc);
- node.left = left;
- node.operator = op;
- node.right = right;
- return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression")
- };
-
- // Parse unary operators, both prefix and postfix.
-
- pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {
- var startPos = this.start, startLoc = this.startLoc, expr;
- if (this.isContextual("await") && this.canAwait) {
- expr = this.parseAwait(forInit);
- sawUnary = true;
- } else if (this.type.prefix) {
- var node = this.startNode(), update = this.type === types$1.incDec;
- node.operator = this.value;
- node.prefix = true;
- this.next();
- node.argument = this.parseMaybeUnary(null, true, update, forInit);
- this.checkExpressionErrors(refDestructuringErrors, true);
- if (update) { this.checkLValSimple(node.argument); }
- else if (this.strict && node.operator === "delete" && isLocalVariableAccess(node.argument))
- { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); }
- else if (node.operator === "delete" && isPrivateFieldAccess(node.argument))
- { this.raiseRecoverable(node.start, "Private fields can not be deleted"); }
- else { sawUnary = true; }
- expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
- } else if (!sawUnary && this.type === types$1.privateId) {
- if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { this.unexpected(); }
- expr = this.parsePrivateIdent();
- // only could be private fields in 'in', such as #x in obj
- if (this.type !== types$1._in) { this.unexpected(); }
- } else {
- expr = this.parseExprSubscripts(refDestructuringErrors, forInit);
- if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
- while (this.type.postfix && !this.canInsertSemicolon()) {
- var node$1 = this.startNodeAt(startPos, startLoc);
- node$1.operator = this.value;
- node$1.prefix = false;
- node$1.argument = expr;
- this.checkLValSimple(expr);
- this.next();
- expr = this.finishNode(node$1, "UpdateExpression");
- }
- }
-
- if (!incDec && this.eat(types$1.starstar)) {
- if (sawUnary)
- { this.unexpected(this.lastTokStart); }
- else
- { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), "**", false) }
- } else {
- return expr
- }
- };
-
- function isLocalVariableAccess(node) {
- return (
- node.type === "Identifier" ||
- node.type === "ParenthesizedExpression" && isLocalVariableAccess(node.expression)
- )
- }
-
- function isPrivateFieldAccess(node) {
- return (
- node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" ||
- node.type === "ChainExpression" && isPrivateFieldAccess(node.expression) ||
- node.type === "ParenthesizedExpression" && isPrivateFieldAccess(node.expression)
- )
- }
-
- // Parse call, dot, and `[]`-subscript expressions.
-
- pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {
- var startPos = this.start, startLoc = this.startLoc;
- var expr = this.parseExprAtom(refDestructuringErrors, forInit);
- if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")")
- { return expr }
- var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);
- if (refDestructuringErrors && result.type === "MemberExpression") {
- if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }
- if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }
- if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }
- }
- return result
- };
-
- pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {
- var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" &&
- this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&
- this.potentialArrowAt === base.start;
- var optionalChained = false;
-
- while (true) {
- var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);
-
- if (element.optional) { optionalChained = true; }
- if (element === base || element.type === "ArrowFunctionExpression") {
- if (optionalChained) {
- var chainNode = this.startNodeAt(startPos, startLoc);
- chainNode.expression = element;
- element = this.finishNode(chainNode, "ChainExpression");
- }
- return element
- }
-
- base = element;
- }
- };
-
- pp$5.shouldParseAsyncArrow = function() {
- return !this.canInsertSemicolon() && this.eat(types$1.arrow)
- };
-
- pp$5.parseSubscriptAsyncArrow = function(startPos, startLoc, exprList, forInit) {
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)
- };
-
- pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {
- var optionalSupported = this.options.ecmaVersion >= 11;
- var optional = optionalSupported && this.eat(types$1.questionDot);
- if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); }
-
- var computed = this.eat(types$1.bracketL);
- if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {
- var node = this.startNodeAt(startPos, startLoc);
- node.object = base;
- if (computed) {
- node.property = this.parseExpression();
- this.expect(types$1.bracketR);
- } else if (this.type === types$1.privateId && base.type !== "Super") {
- node.property = this.parsePrivateIdent();
- } else {
- node.property = this.parseIdent(this.options.allowReserved !== "never");
- }
- node.computed = !!computed;
- if (optionalSupported) {
- node.optional = optional;
- }
- base = this.finishNode(node, "MemberExpression");
- } else if (!noCalls && this.eat(types$1.parenL)) {
- var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
- var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
- if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) {
- this.checkPatternErrors(refDestructuringErrors, false);
- this.checkYieldAwaitInDefaultParams();
- if (this.awaitIdentPos > 0)
- { this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); }
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit)
- }
- this.checkExpressionErrors(refDestructuringErrors, true);
- this.yieldPos = oldYieldPos || this.yieldPos;
- this.awaitPos = oldAwaitPos || this.awaitPos;
- this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;
- var node$1 = this.startNodeAt(startPos, startLoc);
- node$1.callee = base;
- node$1.arguments = exprList;
- if (optionalSupported) {
- node$1.optional = optional;
- }
- base = this.finishNode(node$1, "CallExpression");
- } else if (this.type === types$1.backQuote) {
- if (optional || optionalChained) {
- this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
- }
- var node$2 = this.startNodeAt(startPos, startLoc);
- node$2.tag = base;
- node$2.quasi = this.parseTemplate({isTagged: true});
- base = this.finishNode(node$2, "TaggedTemplateExpression");
- }
- return base
- };
-
- // Parse an atomic expression — either a single token that is an
- // expression, an expression started by a keyword like `function` or
- // `new`, or an expression wrapped in punctuation like `()`, `[]`,
- // or `{}`.
-
- pp$5.parseExprAtom = function(refDestructuringErrors, forInit, forNew) {
- // If a division operator appears in an expression position, the
- // tokenizer got confused, and we force it to read a regexp instead.
- if (this.type === types$1.slash) { this.readRegexp(); }
-
- var node, canBeArrow = this.potentialArrowAt === this.start;
- switch (this.type) {
- case types$1._super:
- if (!this.allowSuper)
- { this.raise(this.start, "'super' keyword outside a method"); }
- node = this.startNode();
- this.next();
- if (this.type === types$1.parenL && !this.allowDirectSuper)
- { this.raise(node.start, "super() call outside constructor of a subclass"); }
- // The `super` keyword can appear at below:
- // SuperProperty:
- // super [ Expression ]
- // super . IdentifierName
- // SuperCall:
- // super ( Arguments )
- if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)
- { this.unexpected(); }
- return this.finishNode(node, "Super")
-
- case types$1._this:
- node = this.startNode();
- this.next();
- return this.finishNode(node, "ThisExpression")
-
- case types$1.name:
- var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;
- var id = this.parseIdent(false);
- if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) {
- this.overrideContext(types.f_expr);
- return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)
- }
- if (canBeArrow && !this.canInsertSemicolon()) {
- if (this.eat(types$1.arrow))
- { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }
- if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc &&
- (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) {
- id = this.parseIdent(false);
- if (this.canInsertSemicolon() || !this.eat(types$1.arrow))
- { this.unexpected(); }
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)
- }
- }
- return id
-
- case types$1.regexp:
- var value = this.value;
- node = this.parseLiteral(value.value);
- node.regex = {pattern: value.pattern, flags: value.flags};
- return node
-
- case types$1.num: case types$1.string:
- return this.parseLiteral(this.value)
-
- case types$1._null: case types$1._true: case types$1._false:
- node = this.startNode();
- node.value = this.type === types$1._null ? null : this.type === types$1._true;
- node.raw = this.type.keyword;
- this.next();
- return this.finishNode(node, "Literal")
-
- case types$1.parenL:
- var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);
- if (refDestructuringErrors) {
- if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))
- { refDestructuringErrors.parenthesizedAssign = start; }
- if (refDestructuringErrors.parenthesizedBind < 0)
- { refDestructuringErrors.parenthesizedBind = start; }
- }
- return expr
-
- case types$1.bracketL:
- node = this.startNode();
- this.next();
- node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);
- return this.finishNode(node, "ArrayExpression")
-
- case types$1.braceL:
- this.overrideContext(types.b_expr);
- return this.parseObj(false, refDestructuringErrors)
-
- case types$1._function:
- node = this.startNode();
- this.next();
- return this.parseFunction(node, 0)
-
- case types$1._class:
- return this.parseClass(this.startNode(), false)
-
- case types$1._new:
- return this.parseNew()
-
- case types$1.backQuote:
- return this.parseTemplate()
-
- case types$1._import:
- if (this.options.ecmaVersion >= 11) {
- return this.parseExprImport(forNew)
- } else {
- return this.unexpected()
- }
-
- default:
- return this.parseExprAtomDefault()
- }
- };
-
- pp$5.parseExprAtomDefault = function() {
- this.unexpected();
- };
-
- pp$5.parseExprImport = function(forNew) {
- var node = this.startNode();
-
- // Consume `import` as an identifier for `import.meta`.
- // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.
- if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword import"); }
- this.next();
-
- if (this.type === types$1.parenL && !forNew) {
- return this.parseDynamicImport(node)
- } else if (this.type === types$1.dot) {
- var meta = this.startNodeAt(node.start, node.loc && node.loc.start);
- meta.name = "import";
- node.meta = this.finishNode(meta, "Identifier");
- return this.parseImportMeta(node)
- } else {
- this.unexpected();
- }
- };
-
- pp$5.parseDynamicImport = function(node) {
- this.next(); // skip `(`
-
- // Parse node.source.
- node.source = this.parseMaybeAssign();
-
- if (this.options.ecmaVersion >= 16) {
- if (!this.eat(types$1.parenR)) {
- this.expect(types$1.comma);
- if (!this.afterTrailingComma(types$1.parenR)) {
- node.options = this.parseMaybeAssign();
- if (!this.eat(types$1.parenR)) {
- this.expect(types$1.comma);
- if (!this.afterTrailingComma(types$1.parenR)) {
- this.unexpected();
- }
- }
- } else {
- node.options = null;
- }
- } else {
- node.options = null;
- }
- } else {
- // Verify ending.
- if (!this.eat(types$1.parenR)) {
- var errorPos = this.start;
- if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {
- this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()");
- } else {
- this.unexpected(errorPos);
- }
- }
- }
-
- return this.finishNode(node, "ImportExpression")
- };
-
- pp$5.parseImportMeta = function(node) {
- this.next(); // skip `.`
-
- var containsEsc = this.containsEsc;
- node.property = this.parseIdent(true);
-
- if (node.property.name !== "meta")
- { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); }
- if (containsEsc)
- { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); }
- if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere)
- { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); }
-
- return this.finishNode(node, "MetaProperty")
- };
-
- pp$5.parseLiteral = function(value) {
- var node = this.startNode();
- node.value = value;
- node.raw = this.input.slice(this.start, this.end);
- if (node.raw.charCodeAt(node.raw.length - 1) === 110)
- { node.bigint = node.value != null ? node.value.toString() : node.raw.slice(0, -1).replace(/_/g, ""); }
- this.next();
- return this.finishNode(node, "Literal")
- };
-
- pp$5.parseParenExpression = function() {
- this.expect(types$1.parenL);
- var val = this.parseExpression();
- this.expect(types$1.parenR);
- return val
- };
-
- pp$5.shouldParseArrow = function(exprList) {
- return !this.canInsertSemicolon()
- };
-
- pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {
- var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;
- if (this.options.ecmaVersion >= 6) {
- this.next();
-
- var innerStartPos = this.start, innerStartLoc = this.startLoc;
- var exprList = [], first = true, lastIsComma = false;
- var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;
- this.yieldPos = 0;
- this.awaitPos = 0;
- // Do not save awaitIdentPos to allow checking awaits nested in parameters
- while (this.type !== types$1.parenR) {
- first ? first = false : this.expect(types$1.comma);
- if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {
- lastIsComma = true;
- break
- } else if (this.type === types$1.ellipsis) {
- spreadStart = this.start;
- exprList.push(this.parseParenItem(this.parseRestBinding()));
- if (this.type === types$1.comma) {
- this.raiseRecoverable(
- this.start,
- "Comma is not permitted after the rest element"
- );
- }
- break
- } else {
- exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));
- }
- }
- var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;
- this.expect(types$1.parenR);
-
- if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) {
- this.checkPatternErrors(refDestructuringErrors, false);
- this.checkYieldAwaitInDefaultParams();
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- return this.parseParenArrowList(startPos, startLoc, exprList, forInit)
- }
-
- if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }
- if (spreadStart) { this.unexpected(spreadStart); }
- this.checkExpressionErrors(refDestructuringErrors, true);
- this.yieldPos = oldYieldPos || this.yieldPos;
- this.awaitPos = oldAwaitPos || this.awaitPos;
-
- if (exprList.length > 1) {
- val = this.startNodeAt(innerStartPos, innerStartLoc);
- val.expressions = exprList;
- this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc);
- } else {
- val = exprList[0];
- }
- } else {
- val = this.parseParenExpression();
- }
-
- if (this.options.preserveParens) {
- var par = this.startNodeAt(startPos, startLoc);
- par.expression = val;
- return this.finishNode(par, "ParenthesizedExpression")
- } else {
- return val
- }
- };
-
- pp$5.parseParenItem = function(item) {
- return item
- };
-
- pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {
- return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)
- };
-
- // New's precedence is slightly tricky. It must allow its argument to
- // be a `[]` or dot subscript expression, but not a call — at least,
- // not without wrapping it in parentheses. Thus, it uses the noCalls
- // argument to parseSubscripts to prevent it from consuming the
- // argument list.
-
- var empty = [];
-
- pp$5.parseNew = function() {
- if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); }
- var node = this.startNode();
- this.next();
- if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) {
- var meta = this.startNodeAt(node.start, node.loc && node.loc.start);
- meta.name = "new";
- node.meta = this.finishNode(meta, "Identifier");
- this.next();
- var containsEsc = this.containsEsc;
- node.property = this.parseIdent(true);
- if (node.property.name !== "target")
- { this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); }
- if (containsEsc)
- { this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); }
- if (!this.allowNewDotTarget)
- { this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); }
- return this.finishNode(node, "MetaProperty")
- }
- var startPos = this.start, startLoc = this.startLoc;
- node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false);
- if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }
- else { node.arguments = empty; }
- return this.finishNode(node, "NewExpression")
- };
-
- // Parse template expression.
-
- pp$5.parseTemplateElement = function(ref) {
- var isTagged = ref.isTagged;
-
- var elem = this.startNode();
- if (this.type === types$1.invalidTemplate) {
- if (!isTagged) {
- this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal");
- }
- elem.value = {
- raw: this.value.replace(/\r\n?/g, "\n"),
- cooked: null
- };
- } else {
- elem.value = {
- raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"),
- cooked: this.value
- };
- }
- this.next();
- elem.tail = this.type === types$1.backQuote;
- return this.finishNode(elem, "TemplateElement")
- };
-
- pp$5.parseTemplate = function(ref) {
- if ( ref === void 0 ) ref = {};
- var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;
-
- var node = this.startNode();
- this.next();
- node.expressions = [];
- var curElt = this.parseTemplateElement({isTagged: isTagged});
- node.quasis = [curElt];
- while (!curElt.tail) {
- if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); }
- this.expect(types$1.dollarBraceL);
- node.expressions.push(this.parseExpression());
- this.expect(types$1.braceR);
- node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));
- }
- this.next();
- return this.finishNode(node, "TemplateLiteral")
- };
-
- pp$5.isAsyncProp = function(prop) {
- return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" &&
- (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&
- !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
- };
-
- // Parse an object literal or binding pattern.
-
- pp$5.parseObj = function(isPattern, refDestructuringErrors) {
- var node = this.startNode(), first = true, propHash = {};
- node.properties = [];
- this.next();
- while (!this.eat(types$1.braceR)) {
- if (!first) {
- this.expect(types$1.comma);
- if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }
- } else { first = false; }
-
- var prop = this.parseProperty(isPattern, refDestructuringErrors);
- if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }
- node.properties.push(prop);
- }
- return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression")
- };
-
- pp$5.parseProperty = function(isPattern, refDestructuringErrors) {
- var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;
- if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {
- if (isPattern) {
- prop.argument = this.parseIdent(false);
- if (this.type === types$1.comma) {
- this.raiseRecoverable(this.start, "Comma is not permitted after the rest element");
- }
- return this.finishNode(prop, "RestElement")
- }
- // Parse argument.
- prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);
- // To disallow trailing comma via `this.toAssignable()`.
- if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
- refDestructuringErrors.trailingComma = this.start;
- }
- // Finish
- return this.finishNode(prop, "SpreadElement")
- }
- if (this.options.ecmaVersion >= 6) {
- prop.method = false;
- prop.shorthand = false;
- if (isPattern || refDestructuringErrors) {
- startPos = this.start;
- startLoc = this.startLoc;
- }
- if (!isPattern)
- { isGenerator = this.eat(types$1.star); }
- }
- var containsEsc = this.containsEsc;
- this.parsePropertyName(prop);
- if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {
- isAsync = true;
- isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);
- this.parsePropertyName(prop);
- } else {
- isAsync = false;
- }
- this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);
- return this.finishNode(prop, "Property")
- };
-
- pp$5.parseGetterSetter = function(prop) {
- var kind = prop.key.name;
- this.parsePropertyName(prop);
- prop.value = this.parseMethod(false);
- prop.kind = kind;
- var paramCount = prop.kind === "get" ? 0 : 1;
- if (prop.value.params.length !== paramCount) {
- var start = prop.value.start;
- if (prop.kind === "get")
- { this.raiseRecoverable(start, "getter should have no params"); }
- else
- { this.raiseRecoverable(start, "setter should have exactly one param"); }
- } else {
- if (prop.kind === "set" && prop.value.params[0].type === "RestElement")
- { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); }
- }
- };
-
- pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
- if ((isGenerator || isAsync) && this.type === types$1.colon)
- { this.unexpected(); }
-
- if (this.eat(types$1.colon)) {
- prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);
- prop.kind = "init";
- } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
- if (isPattern) { this.unexpected(); }
- prop.method = true;
- prop.value = this.parseMethod(isGenerator, isAsync);
- prop.kind = "init";
- } else if (!isPattern && !containsEsc &&
- this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
- (prop.key.name === "get" || prop.key.name === "set") &&
- (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {
- if (isGenerator || isAsync) { this.unexpected(); }
- this.parseGetterSetter(prop);
- } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") {
- if (isGenerator || isAsync) { this.unexpected(); }
- this.checkUnreserved(prop.key);
- if (prop.key.name === "await" && !this.awaitIdentPos)
- { this.awaitIdentPos = startPos; }
- if (isPattern) {
- prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
- } else if (this.type === types$1.eq && refDestructuringErrors) {
- if (refDestructuringErrors.shorthandAssign < 0)
- { refDestructuringErrors.shorthandAssign = this.start; }
- prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
- } else {
- prop.value = this.copyNode(prop.key);
- }
- prop.kind = "init";
- prop.shorthand = true;
- } else { this.unexpected(); }
- };
-
- pp$5.parsePropertyName = function(prop) {
- if (this.options.ecmaVersion >= 6) {
- if (this.eat(types$1.bracketL)) {
- prop.computed = true;
- prop.key = this.parseMaybeAssign();
- this.expect(types$1.bracketR);
- return prop.key
- } else {
- prop.computed = false;
- }
- }
- return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never")
- };
-
- // Initialize empty function node.
-
- pp$5.initFunction = function(node) {
- node.id = null;
- if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }
- if (this.options.ecmaVersion >= 8) { node.async = false; }
- };
-
- // Parse object or class method.
-
- pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {
- var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
-
- this.initFunction(node);
- if (this.options.ecmaVersion >= 6)
- { node.generator = isGenerator; }
- if (this.options.ecmaVersion >= 8)
- { node.async = !!isAsync; }
-
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
- this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));
-
- this.expect(types$1.parenL);
- node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
- this.checkYieldAwaitInDefaultParams();
- this.parseFunctionBody(node, false, true, false);
-
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.finishNode(node, "FunctionExpression")
- };
-
- // Parse arrow function expression with given parameters.
-
- pp$5.parseArrowExpression = function(node, params, isAsync, forInit) {
- var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
-
- this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);
- this.initFunction(node);
- if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }
-
- this.yieldPos = 0;
- this.awaitPos = 0;
- this.awaitIdentPos = 0;
-
- node.params = this.toAssignableList(params, true);
- this.parseFunctionBody(node, true, false, forInit);
-
- this.yieldPos = oldYieldPos;
- this.awaitPos = oldAwaitPos;
- this.awaitIdentPos = oldAwaitIdentPos;
- return this.finishNode(node, "ArrowFunctionExpression")
- };
-
- // Parse function body and check parameters.
-
- pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {
- var isExpression = isArrowFunction && this.type !== types$1.braceL;
- var oldStrict = this.strict, useStrict = false;
-
- if (isExpression) {
- node.body = this.parseMaybeAssign(forInit);
- node.expression = true;
- this.checkParams(node, false);
- } else {
- var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);
- if (!oldStrict || nonSimple) {
- useStrict = this.strictDirective(this.end);
- // If this is a strict mode function, verify that argument names
- // are not repeated, and it does not try to bind the words `eval`
- // or `arguments`.
- if (useStrict && nonSimple)
- { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); }
- }
- // Start a new scope with regard to labels and the `inFunction`
- // flag (restore them to their old value afterwards).
- var oldLabels = this.labels;
- this.labels = [];
- if (useStrict) { this.strict = true; }
-
- // Add the params to varDeclaredNames to ensure that an error is thrown
- // if a let/const declaration in the function clashes with one of the params.
- this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));
- // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'
- if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }
- node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);
- node.expression = false;
- this.adaptDirectivePrologue(node.body.body);
- this.labels = oldLabels;
- }
- this.exitScope();
- };
-
- pp$5.isSimpleParamList = function(params) {
- for (var i = 0, list = params; i < list.length; i += 1)
- {
- var param = list[i];
-
- if (param.type !== "Identifier") { return false
- } }
- return true
- };
-
- // Checks function params for various disallowed patterns such as using "eval"
- // or "arguments" and duplicate parameters.
-
- pp$5.checkParams = function(node, allowDuplicates) {
- var nameHash = Object.create(null);
- for (var i = 0, list = node.params; i < list.length; i += 1)
- {
- var param = list[i];
-
- this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);
- }
- };
-
- // Parses a comma-separated list of expressions, and returns them as
- // an array. `close` is the token type that ends the list, and
- // `allowEmpty` can be turned on to allow subsequent commas with
- // nothing in between them to be parsed as `null` (which is needed
- // for array literals).
-
- pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
- var elts = [], first = true;
- while (!this.eat(close)) {
- if (!first) {
- this.expect(types$1.comma);
- if (allowTrailingComma && this.afterTrailingComma(close)) { break }
- } else { first = false; }
-
- var elt = (void 0);
- if (allowEmpty && this.type === types$1.comma)
- { elt = null; }
- else if (this.type === types$1.ellipsis) {
- elt = this.parseSpread(refDestructuringErrors);
- if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)
- { refDestructuringErrors.trailingComma = this.start; }
- } else {
- elt = this.parseMaybeAssign(false, refDestructuringErrors);
- }
- elts.push(elt);
- }
- return elts
- };
-
- pp$5.checkUnreserved = function(ref) {
- var start = ref.start;
- var end = ref.end;
- var name = ref.name;
-
- if (this.inGenerator && name === "yield")
- { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); }
- if (this.inAsync && name === "await")
- { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); }
- if (!(this.currentThisScope().flags & SCOPE_VAR) && name === "arguments")
- { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); }
- if (this.inClassStaticBlock && (name === "arguments" || name === "await"))
- { this.raise(start, ("Cannot use " + name + " in class static initialization block")); }
- if (this.keywords.test(name))
- { this.raise(start, ("Unexpected keyword '" + name + "'")); }
- if (this.options.ecmaVersion < 6 &&
- this.input.slice(start, end).indexOf("\\") !== -1) { return }
- var re = this.strict ? this.reservedWordsStrict : this.reservedWords;
- if (re.test(name)) {
- if (!this.inAsync && name === "await")
- { this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); }
- this.raiseRecoverable(start, ("The keyword '" + name + "' is reserved"));
- }
- };
-
- // Parse the next token as an identifier. If `liberal` is true (used
- // when parsing properties), it will also convert keywords into
- // identifiers.
-
- pp$5.parseIdent = function(liberal) {
- var node = this.parseIdentNode();
- this.next(!!liberal);
- this.finishNode(node, "Identifier");
- if (!liberal) {
- this.checkUnreserved(node);
- if (node.name === "await" && !this.awaitIdentPos)
- { this.awaitIdentPos = node.start; }
- }
- return node
- };
-
- pp$5.parseIdentNode = function() {
- var node = this.startNode();
- if (this.type === types$1.name) {
- node.name = this.value;
- } else if (this.type.keyword) {
- node.name = this.type.keyword;
-
- // To fix https://github.com/acornjs/acorn/issues/575
- // `class` and `function` keywords push new context into this.context.
- // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.
- // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword
- if ((node.name === "class" || node.name === "function") &&
- (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {
- this.context.pop();
- }
- this.type = types$1.name;
- } else {
- this.unexpected();
- }
- return node
- };
-
- pp$5.parsePrivateIdent = function() {
- var node = this.startNode();
- if (this.type === types$1.privateId) {
- node.name = this.value;
- } else {
- this.unexpected();
- }
- this.next();
- this.finishNode(node, "PrivateIdentifier");
-
- // For validating existence
- if (this.options.checkPrivateFields) {
- if (this.privateNameStack.length === 0) {
- this.raise(node.start, ("Private field '#" + (node.name) + "' must be declared in an enclosing class"));
- } else {
- this.privateNameStack[this.privateNameStack.length - 1].used.push(node);
- }
- }
-
- return node
- };
-
- // Parses yield expression inside generator.
-
- pp$5.parseYield = function(forInit) {
- if (!this.yieldPos) { this.yieldPos = this.start; }
-
- var node = this.startNode();
- this.next();
- if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {
- node.delegate = false;
- node.argument = null;
- } else {
- node.delegate = this.eat(types$1.star);
- node.argument = this.parseMaybeAssign(forInit);
- }
- return this.finishNode(node, "YieldExpression")
- };
-
- pp$5.parseAwait = function(forInit) {
- if (!this.awaitPos) { this.awaitPos = this.start; }
-
- var node = this.startNode();
- this.next();
- node.argument = this.parseMaybeUnary(null, true, false, forInit);
- return this.finishNode(node, "AwaitExpression")
- };
-
- var pp$4 = Parser.prototype;
-
- // This function is used to raise exceptions on parse errors. It
- // takes an offset integer (into the current `input`) to indicate
- // the location of the error, attaches the position to the end
- // of the error message, and then raises a `SyntaxError` with that
- // message.
-
- pp$4.raise = function(pos, message) {
- var loc = getLineInfo(this.input, pos);
- message += " (" + loc.line + ":" + loc.column + ")";
- if (this.sourceFile) {
- message += " in " + this.sourceFile;
- }
- var err = new SyntaxError(message);
- err.pos = pos; err.loc = loc; err.raisedAt = this.pos;
- throw err
- };
-
- pp$4.raiseRecoverable = pp$4.raise;
-
- pp$4.curPosition = function() {
- if (this.options.locations) {
- return new Position(this.curLine, this.pos - this.lineStart)
- }
- };
-
- var pp$3 = Parser.prototype;
-
- var Scope = function Scope(flags) {
- this.flags = flags;
- // A list of var-declared names in the current lexical scope
- this.var = [];
- // A list of lexically-declared names in the current lexical scope
- this.lexical = [];
- // A list of lexically-declared FunctionDeclaration names in the current lexical scope
- this.functions = [];
- };
-
- // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.
-
- pp$3.enterScope = function(flags) {
- this.scopeStack.push(new Scope(flags));
- };
-
- pp$3.exitScope = function() {
- this.scopeStack.pop();
- };
-
- // The spec says:
- // > At the top level of a function, or script, function declarations are
- // > treated like var declarations rather than like lexical declarations.
- pp$3.treatFunctionsAsVarInScope = function(scope) {
- return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)
- };
-
- pp$3.declareName = function(name, bindingType, pos) {
- var redeclared = false;
- if (bindingType === BIND_LEXICAL) {
- var scope = this.currentScope();
- redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;
- scope.lexical.push(name);
- if (this.inModule && (scope.flags & SCOPE_TOP))
- { delete this.undefinedExports[name]; }
- } else if (bindingType === BIND_SIMPLE_CATCH) {
- var scope$1 = this.currentScope();
- scope$1.lexical.push(name);
- } else if (bindingType === BIND_FUNCTION) {
- var scope$2 = this.currentScope();
- if (this.treatFunctionsAsVar)
- { redeclared = scope$2.lexical.indexOf(name) > -1; }
- else
- { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }
- scope$2.functions.push(name);
- } else {
- for (var i = this.scopeStack.length - 1; i >= 0; --i) {
- var scope$3 = this.scopeStack[i];
- if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||
- !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {
- redeclared = true;
- break
- }
- scope$3.var.push(name);
- if (this.inModule && (scope$3.flags & SCOPE_TOP))
- { delete this.undefinedExports[name]; }
- if (scope$3.flags & SCOPE_VAR) { break }
- }
- }
- if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); }
- };
-
- pp$3.checkLocalExport = function(id) {
- // scope.functions must be empty as Module code is always strict.
- if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&
- this.scopeStack[0].var.indexOf(id.name) === -1) {
- this.undefinedExports[id.name] = id;
- }
- };
-
- pp$3.currentScope = function() {
- return this.scopeStack[this.scopeStack.length - 1]
- };
-
- pp$3.currentVarScope = function() {
- for (var i = this.scopeStack.length - 1;; i--) {
- var scope = this.scopeStack[i];
- if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK)) { return scope }
- }
- };
-
- // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.
- pp$3.currentThisScope = function() {
- for (var i = this.scopeStack.length - 1;; i--) {
- var scope = this.scopeStack[i];
- if (scope.flags & (SCOPE_VAR | SCOPE_CLASS_FIELD_INIT | SCOPE_CLASS_STATIC_BLOCK) &&
- !(scope.flags & SCOPE_ARROW)) { return scope }
- }
- };
-
- var Node = function Node(parser, pos, loc) {
- this.type = "";
- this.start = pos;
- this.end = 0;
- if (parser.options.locations)
- { this.loc = new SourceLocation(parser, loc); }
- if (parser.options.directSourceFile)
- { this.sourceFile = parser.options.directSourceFile; }
- if (parser.options.ranges)
- { this.range = [pos, 0]; }
- };
-
- // Start an AST node, attaching a start offset.
-
- var pp$2 = Parser.prototype;
-
- pp$2.startNode = function() {
- return new Node(this, this.start, this.startLoc)
- };
-
- pp$2.startNodeAt = function(pos, loc) {
- return new Node(this, pos, loc)
- };
-
- // Finish an AST node, adding `type` and `end` properties.
-
- function finishNodeAt(node, type, pos, loc) {
- node.type = type;
- node.end = pos;
- if (this.options.locations)
- { node.loc.end = loc; }
- if (this.options.ranges)
- { node.range[1] = pos; }
- return node
- }
-
- pp$2.finishNode = function(node, type) {
- return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
- };
-
- // Finish node at given position
-
- pp$2.finishNodeAt = function(node, type, pos, loc) {
- return finishNodeAt.call(this, node, type, pos, loc)
- };
-
- pp$2.copyNode = function(node) {
- var newNode = new Node(this, node.start, this.startLoc);
- for (var prop in node) { newNode[prop] = node[prop]; }
- return newNode
- };
-
- // This file was generated by "bin/generate-unicode-script-values.js". Do not modify manually!
- var scriptValuesAddedInUnicode = "Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz";
-
- // This file contains Unicode properties extracted from the ECMAScript specification.
- // The lists are extracted like so:
- // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)
-
- // #table-binary-unicode-properties
- var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS";
- var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic";
- var ecma11BinaryProperties = ecma10BinaryProperties;
- var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict";
- var ecma13BinaryProperties = ecma12BinaryProperties;
- var ecma14BinaryProperties = ecma13BinaryProperties;
-
- var unicodeBinaryProperties = {
- 9: ecma9BinaryProperties,
- 10: ecma10BinaryProperties,
- 11: ecma11BinaryProperties,
- 12: ecma12BinaryProperties,
- 13: ecma13BinaryProperties,
- 14: ecma14BinaryProperties
- };
-
- // #table-binary-unicode-properties-of-strings
- var ecma14BinaryPropertiesOfStrings = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji";
-
- var unicodeBinaryPropertiesOfStrings = {
- 9: "",
- 10: "",
- 11: "",
- 12: "",
- 13: "",
- 14: ecma14BinaryPropertiesOfStrings
- };
-
- // #table-unicode-general-category-values
- var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu";
-
- // #table-unicode-script-values
- var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
- var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd";
- var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho";
- var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi";
- var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith";
- var ecma14ScriptValues = ecma13ScriptValues + " " + scriptValuesAddedInUnicode;
-
- var unicodeScriptValues = {
- 9: ecma9ScriptValues,
- 10: ecma10ScriptValues,
- 11: ecma11ScriptValues,
- 12: ecma12ScriptValues,
- 13: ecma13ScriptValues,
- 14: ecma14ScriptValues
- };
-
- var data = {};
- function buildUnicodeData(ecmaVersion) {
- var d = data[ecmaVersion] = {
- binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues),
- binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]),
- nonBinary: {
- General_Category: wordsRegexp(unicodeGeneralCategoryValues),
- Script: wordsRegexp(unicodeScriptValues[ecmaVersion])
- }
- };
- d.nonBinary.Script_Extensions = d.nonBinary.Script;
-
- d.nonBinary.gc = d.nonBinary.General_Category;
- d.nonBinary.sc = d.nonBinary.Script;
- d.nonBinary.scx = d.nonBinary.Script_Extensions;
- }
-
- for (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {
- var ecmaVersion = list[i];
-
- buildUnicodeData(ecmaVersion);
- }
-
- var pp$1 = Parser.prototype;
-
- // Track disjunction structure to determine whether a duplicate
- // capture group name is allowed because it is in a separate branch.
- var BranchID = function BranchID(parent, base) {
- // Parent disjunction branch
- this.parent = parent;
- // Identifies this set of sibling branches
- this.base = base || this;
- };
-
- BranchID.prototype.separatedFrom = function separatedFrom (alt) {
- // A branch is separate from another branch if they or any of
- // their parents are siblings in a given disjunction
- for (var self = this; self; self = self.parent) {
- for (var other = alt; other; other = other.parent) {
- if (self.base === other.base && self !== other) { return true }
- }
- }
- return false
- };
-
- BranchID.prototype.sibling = function sibling () {
- return new BranchID(this.parent, this.base)
- };
-
- var RegExpValidationState = function RegExpValidationState(parser) {
- this.parser = parser;
- this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "") + (parser.options.ecmaVersion >= 15 ? "v" : "");
- this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];
- this.source = "";
- this.flags = "";
- this.start = 0;
- this.switchU = false;
- this.switchV = false;
- this.switchN = false;
- this.pos = 0;
- this.lastIntValue = 0;
- this.lastStringValue = "";
- this.lastAssertionIsQuantifiable = false;
- this.numCapturingParens = 0;
- this.maxBackReference = 0;
- this.groupNames = Object.create(null);
- this.backReferenceNames = [];
- this.branchID = null;
- };
-
- RegExpValidationState.prototype.reset = function reset (start, pattern, flags) {
- var unicodeSets = flags.indexOf("v") !== -1;
- var unicode = flags.indexOf("u") !== -1;
- this.start = start | 0;
- this.source = pattern + "";
- this.flags = flags;
- if (unicodeSets && this.parser.options.ecmaVersion >= 15) {
- this.switchU = true;
- this.switchV = true;
- this.switchN = true;
- } else {
- this.switchU = unicode && this.parser.options.ecmaVersion >= 6;
- this.switchV = false;
- this.switchN = unicode && this.parser.options.ecmaVersion >= 9;
- }
- };
-
- RegExpValidationState.prototype.raise = function raise (message) {
- this.parser.raiseRecoverable(this.start, ("Invalid regular expression: /" + (this.source) + "/: " + message));
- };
-
- // If u flag is given, this returns the code point at the index (it combines a surrogate pair).
- // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).
- RegExpValidationState.prototype.at = function at (i, forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- var s = this.source;
- var l = s.length;
- if (i >= l) {
- return -1
- }
- var c = s.charCodeAt(i);
- if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {
- return c
- }
- var next = s.charCodeAt(i + 1);
- return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c
- };
-
- RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- var s = this.source;
- var l = s.length;
- if (i >= l) {
- return l
- }
- var c = s.charCodeAt(i), next;
- if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||
- (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {
- return i + 1
- }
- return i + 2
- };
-
- RegExpValidationState.prototype.current = function current (forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- return this.at(this.pos, forceU)
- };
-
- RegExpValidationState.prototype.lookahead = function lookahead (forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- return this.at(this.nextIndex(this.pos, forceU), forceU)
- };
-
- RegExpValidationState.prototype.advance = function advance (forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- this.pos = this.nextIndex(this.pos, forceU);
- };
-
- RegExpValidationState.prototype.eat = function eat (ch, forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- if (this.current(forceU) === ch) {
- this.advance(forceU);
- return true
- }
- return false
- };
-
- RegExpValidationState.prototype.eatChars = function eatChars (chs, forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- var pos = this.pos;
- for (var i = 0, list = chs; i < list.length; i += 1) {
- var ch = list[i];
-
- var current = this.at(pos, forceU);
- if (current === -1 || current !== ch) {
- return false
- }
- pos = this.nextIndex(pos, forceU);
- }
- this.pos = pos;
- return true
- };
-
- /**
- * Validate the flags part of a given RegExpLiteral.
- *
- * @param {RegExpValidationState} state The state to validate RegExp.
- * @returns {void}
- */
- pp$1.validateRegExpFlags = function(state) {
- var validFlags = state.validFlags;
- var flags = state.flags;
-
- var u = false;
- var v = false;
-
- for (var i = 0; i < flags.length; i++) {
- var flag = flags.charAt(i);
- if (validFlags.indexOf(flag) === -1) {
- this.raise(state.start, "Invalid regular expression flag");
- }
- if (flags.indexOf(flag, i + 1) > -1) {
- this.raise(state.start, "Duplicate regular expression flag");
- }
- if (flag === "u") { u = true; }
- if (flag === "v") { v = true; }
- }
- if (this.options.ecmaVersion >= 15 && u && v) {
- this.raise(state.start, "Invalid regular expression flag");
- }
- };
-
- function hasProp(obj) {
- for (var _ in obj) { return true }
- return false
- }
-
- /**
- * Validate the pattern part of a given RegExpLiteral.
- *
- * @param {RegExpValidationState} state The state to validate RegExp.
- * @returns {void}
- */
- pp$1.validateRegExpPattern = function(state) {
- this.regexp_pattern(state);
-
- // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of
- // parsing contains a |GroupName|, reparse with the goal symbol
- // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*
- // exception if _P_ did not conform to the grammar, if any elements of _P_
- // were not matched by the parse, or if any Early Error conditions exist.
- if (!state.switchN && this.options.ecmaVersion >= 9 && hasProp(state.groupNames)) {
- state.switchN = true;
- this.regexp_pattern(state);
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern
- pp$1.regexp_pattern = function(state) {
- state.pos = 0;
- state.lastIntValue = 0;
- state.lastStringValue = "";
- state.lastAssertionIsQuantifiable = false;
- state.numCapturingParens = 0;
- state.maxBackReference = 0;
- state.groupNames = Object.create(null);
- state.backReferenceNames.length = 0;
- state.branchID = null;
-
- this.regexp_disjunction(state);
-
- if (state.pos !== state.source.length) {
- // Make the same messages as V8.
- if (state.eat(0x29 /* ) */)) {
- state.raise("Unmatched ')'");
- }
- if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {
- state.raise("Lone quantifier brackets");
- }
- }
- if (state.maxBackReference > state.numCapturingParens) {
- state.raise("Invalid escape");
- }
- for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {
- var name = list[i];
-
- if (!state.groupNames[name]) {
- state.raise("Invalid named capture referenced");
- }
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction
- pp$1.regexp_disjunction = function(state) {
- var trackDisjunction = this.options.ecmaVersion >= 16;
- if (trackDisjunction) { state.branchID = new BranchID(state.branchID, null); }
- this.regexp_alternative(state);
- while (state.eat(0x7C /* | */)) {
- if (trackDisjunction) { state.branchID = state.branchID.sibling(); }
- this.regexp_alternative(state);
- }
- if (trackDisjunction) { state.branchID = state.branchID.parent; }
-
- // Make the same message as V8.
- if (this.regexp_eatQuantifier(state, true)) {
- state.raise("Nothing to repeat");
- }
- if (state.eat(0x7B /* { */)) {
- state.raise("Lone quantifier brackets");
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative
- pp$1.regexp_alternative = function(state) {
- while (state.pos < state.source.length && this.regexp_eatTerm(state)) {}
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term
- pp$1.regexp_eatTerm = function(state) {
- if (this.regexp_eatAssertion(state)) {
- // Handle `QuantifiableAssertion Quantifier` alternative.
- // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion
- // is a QuantifiableAssertion.
- if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {
- // Make the same message as V8.
- if (state.switchU) {
- state.raise("Invalid quantifier");
- }
- }
- return true
- }
-
- if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {
- this.regexp_eatQuantifier(state);
- return true
- }
-
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion
- pp$1.regexp_eatAssertion = function(state) {
- var start = state.pos;
- state.lastAssertionIsQuantifiable = false;
-
- // ^, $
- if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {
- return true
- }
-
- // \b \B
- if (state.eat(0x5C /* \ */)) {
- if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {
- return true
- }
- state.pos = start;
- }
-
- // Lookahead / Lookbehind
- if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {
- var lookbehind = false;
- if (this.options.ecmaVersion >= 9) {
- lookbehind = state.eat(0x3C /* < */);
- }
- if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {
- this.regexp_disjunction(state);
- if (!state.eat(0x29 /* ) */)) {
- state.raise("Unterminated group");
- }
- state.lastAssertionIsQuantifiable = !lookbehind;
- return true
- }
- }
-
- state.pos = start;
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier
- pp$1.regexp_eatQuantifier = function(state, noError) {
- if ( noError === void 0 ) noError = false;
-
- if (this.regexp_eatQuantifierPrefix(state, noError)) {
- state.eat(0x3F /* ? */);
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix
- pp$1.regexp_eatQuantifierPrefix = function(state, noError) {
- return (
- state.eat(0x2A /* * */) ||
- state.eat(0x2B /* + */) ||
- state.eat(0x3F /* ? */) ||
- this.regexp_eatBracedQuantifier(state, noError)
- )
- };
- pp$1.regexp_eatBracedQuantifier = function(state, noError) {
- var start = state.pos;
- if (state.eat(0x7B /* { */)) {
- var min = 0, max = -1;
- if (this.regexp_eatDecimalDigits(state)) {
- min = state.lastIntValue;
- if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {
- max = state.lastIntValue;
- }
- if (state.eat(0x7D /* } */)) {
- // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term
- if (max !== -1 && max < min && !noError) {
- state.raise("numbers out of order in {} quantifier");
- }
- return true
- }
- }
- if (state.switchU && !noError) {
- state.raise("Incomplete quantifier");
- }
- state.pos = start;
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom
- pp$1.regexp_eatAtom = function(state) {
- return (
- this.regexp_eatPatternCharacters(state) ||
- state.eat(0x2E /* . */) ||
- this.regexp_eatReverseSolidusAtomEscape(state) ||
- this.regexp_eatCharacterClass(state) ||
- this.regexp_eatUncapturingGroup(state) ||
- this.regexp_eatCapturingGroup(state)
- )
- };
- pp$1.regexp_eatReverseSolidusAtomEscape = function(state) {
- var start = state.pos;
- if (state.eat(0x5C /* \ */)) {
- if (this.regexp_eatAtomEscape(state)) {
- return true
- }
- state.pos = start;
- }
- return false
- };
- pp$1.regexp_eatUncapturingGroup = function(state) {
- var start = state.pos;
- if (state.eat(0x28 /* ( */)) {
- if (state.eat(0x3F /* ? */)) {
- if (this.options.ecmaVersion >= 16) {
- var addModifiers = this.regexp_eatModifiers(state);
- var hasHyphen = state.eat(0x2D /* - */);
- if (addModifiers || hasHyphen) {
- for (var i = 0; i < addModifiers.length; i++) {
- var modifier = addModifiers.charAt(i);
- if (addModifiers.indexOf(modifier, i + 1) > -1) {
- state.raise("Duplicate regular expression modifiers");
- }
- }
- if (hasHyphen) {
- var removeModifiers = this.regexp_eatModifiers(state);
- if (!addModifiers && !removeModifiers && state.current() === 0x3A /* : */) {
- state.raise("Invalid regular expression modifiers");
- }
- for (var i$1 = 0; i$1 < removeModifiers.length; i$1++) {
- var modifier$1 = removeModifiers.charAt(i$1);
- if (
- removeModifiers.indexOf(modifier$1, i$1 + 1) > -1 ||
- addModifiers.indexOf(modifier$1) > -1
- ) {
- state.raise("Duplicate regular expression modifiers");
- }
- }
- }
- }
- }
- if (state.eat(0x3A /* : */)) {
- this.regexp_disjunction(state);
- if (state.eat(0x29 /* ) */)) {
- return true
- }
- state.raise("Unterminated group");
- }
- }
- state.pos = start;
- }
- return false
- };
- pp$1.regexp_eatCapturingGroup = function(state) {
- if (state.eat(0x28 /* ( */)) {
- if (this.options.ecmaVersion >= 9) {
- this.regexp_groupSpecifier(state);
- } else if (state.current() === 0x3F /* ? */) {
- state.raise("Invalid group");
- }
- this.regexp_disjunction(state);
- if (state.eat(0x29 /* ) */)) {
- state.numCapturingParens += 1;
- return true
- }
- state.raise("Unterminated group");
- }
- return false
- };
- // RegularExpressionModifiers ::
- // [empty]
- // RegularExpressionModifiers RegularExpressionModifier
- pp$1.regexp_eatModifiers = function(state) {
- var modifiers = "";
- var ch = 0;
- while ((ch = state.current()) !== -1 && isRegularExpressionModifier(ch)) {
- modifiers += codePointToString(ch);
- state.advance();
- }
- return modifiers
- };
- // RegularExpressionModifier :: one of
- // `i` `m` `s`
- function isRegularExpressionModifier(ch) {
- return ch === 0x69 /* i */ || ch === 0x6d /* m */ || ch === 0x73 /* s */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom
- pp$1.regexp_eatExtendedAtom = function(state) {
- return (
- state.eat(0x2E /* . */) ||
- this.regexp_eatReverseSolidusAtomEscape(state) ||
- this.regexp_eatCharacterClass(state) ||
- this.regexp_eatUncapturingGroup(state) ||
- this.regexp_eatCapturingGroup(state) ||
- this.regexp_eatInvalidBracedQuantifier(state) ||
- this.regexp_eatExtendedPatternCharacter(state)
- )
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier
- pp$1.regexp_eatInvalidBracedQuantifier = function(state) {
- if (this.regexp_eatBracedQuantifier(state, true)) {
- state.raise("Nothing to repeat");
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter
- pp$1.regexp_eatSyntaxCharacter = function(state) {
- var ch = state.current();
- if (isSyntaxCharacter(ch)) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
- return false
- };
- function isSyntaxCharacter(ch) {
- return (
- ch === 0x24 /* $ */ ||
- ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||
- ch === 0x2E /* . */ ||
- ch === 0x3F /* ? */ ||
- ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||
- ch >= 0x7B /* { */ && ch <= 0x7D /* } */
- )
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter
- // But eat eager.
- pp$1.regexp_eatPatternCharacters = function(state) {
- var start = state.pos;
- var ch = 0;
- while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {
- state.advance();
- }
- return state.pos !== start
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter
- pp$1.regexp_eatExtendedPatternCharacter = function(state) {
- var ch = state.current();
- if (
- ch !== -1 &&
- ch !== 0x24 /* $ */ &&
- !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&
- ch !== 0x2E /* . */ &&
- ch !== 0x3F /* ? */ &&
- ch !== 0x5B /* [ */ &&
- ch !== 0x5E /* ^ */ &&
- ch !== 0x7C /* | */
- ) {
- state.advance();
- return true
- }
- return false
- };
-
- // GroupSpecifier ::
- // [empty]
- // `?` GroupName
- pp$1.regexp_groupSpecifier = function(state) {
- if (state.eat(0x3F /* ? */)) {
- if (!this.regexp_eatGroupName(state)) { state.raise("Invalid group"); }
- var trackDisjunction = this.options.ecmaVersion >= 16;
- var known = state.groupNames[state.lastStringValue];
- if (known) {
- if (trackDisjunction) {
- for (var i = 0, list = known; i < list.length; i += 1) {
- var altID = list[i];
-
- if (!altID.separatedFrom(state.branchID))
- { state.raise("Duplicate capture group name"); }
- }
- } else {
- state.raise("Duplicate capture group name");
- }
- }
- if (trackDisjunction) {
- (known || (state.groupNames[state.lastStringValue] = [])).push(state.branchID);
- } else {
- state.groupNames[state.lastStringValue] = true;
- }
- }
- };
-
- // GroupName ::
- // `<` RegExpIdentifierName `>`
- // Note: this updates `state.lastStringValue` property with the eaten name.
- pp$1.regexp_eatGroupName = function(state) {
- state.lastStringValue = "";
- if (state.eat(0x3C /* < */)) {
- if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {
- return true
- }
- state.raise("Invalid capture group name");
- }
- return false
- };
-
- // RegExpIdentifierName ::
- // RegExpIdentifierStart
- // RegExpIdentifierName RegExpIdentifierPart
- // Note: this updates `state.lastStringValue` property with the eaten name.
- pp$1.regexp_eatRegExpIdentifierName = function(state) {
- state.lastStringValue = "";
- if (this.regexp_eatRegExpIdentifierStart(state)) {
- state.lastStringValue += codePointToString(state.lastIntValue);
- while (this.regexp_eatRegExpIdentifierPart(state)) {
- state.lastStringValue += codePointToString(state.lastIntValue);
- }
- return true
- }
- return false
- };
-
- // RegExpIdentifierStart ::
- // UnicodeIDStart
- // `$`
- // `_`
- // `\` RegExpUnicodeEscapeSequence[+U]
- pp$1.regexp_eatRegExpIdentifierStart = function(state) {
- var start = state.pos;
- var forceU = this.options.ecmaVersion >= 11;
- var ch = state.current(forceU);
- state.advance(forceU);
-
- if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {
- ch = state.lastIntValue;
- }
- if (isRegExpIdentifierStart(ch)) {
- state.lastIntValue = ch;
- return true
- }
-
- state.pos = start;
- return false
- };
- function isRegExpIdentifierStart(ch) {
- return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */
- }
-
- // RegExpIdentifierPart ::
- // UnicodeIDContinue
- // `$`
- // `_`
- // `\` RegExpUnicodeEscapeSequence[+U]
- //
- //
- pp$1.regexp_eatRegExpIdentifierPart = function(state) {
- var start = state.pos;
- var forceU = this.options.ecmaVersion >= 11;
- var ch = state.current(forceU);
- state.advance(forceU);
-
- if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {
- ch = state.lastIntValue;
- }
- if (isRegExpIdentifierPart(ch)) {
- state.lastIntValue = ch;
- return true
- }
-
- state.pos = start;
- return false
- };
- function isRegExpIdentifierPart(ch) {
- return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape
- pp$1.regexp_eatAtomEscape = function(state) {
- if (
- this.regexp_eatBackReference(state) ||
- this.regexp_eatCharacterClassEscape(state) ||
- this.regexp_eatCharacterEscape(state) ||
- (state.switchN && this.regexp_eatKGroupName(state))
- ) {
- return true
- }
- if (state.switchU) {
- // Make the same message as V8.
- if (state.current() === 0x63 /* c */) {
- state.raise("Invalid unicode escape");
- }
- state.raise("Invalid escape");
- }
- return false
- };
- pp$1.regexp_eatBackReference = function(state) {
- var start = state.pos;
- if (this.regexp_eatDecimalEscape(state)) {
- var n = state.lastIntValue;
- if (state.switchU) {
- // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape
- if (n > state.maxBackReference) {
- state.maxBackReference = n;
- }
- return true
- }
- if (n <= state.numCapturingParens) {
- return true
- }
- state.pos = start;
- }
- return false
- };
- pp$1.regexp_eatKGroupName = function(state) {
- if (state.eat(0x6B /* k */)) {
- if (this.regexp_eatGroupName(state)) {
- state.backReferenceNames.push(state.lastStringValue);
- return true
- }
- state.raise("Invalid named reference");
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape
- pp$1.regexp_eatCharacterEscape = function(state) {
- return (
- this.regexp_eatControlEscape(state) ||
- this.regexp_eatCControlLetter(state) ||
- this.regexp_eatZero(state) ||
- this.regexp_eatHexEscapeSequence(state) ||
- this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||
- (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||
- this.regexp_eatIdentityEscape(state)
- )
- };
- pp$1.regexp_eatCControlLetter = function(state) {
- var start = state.pos;
- if (state.eat(0x63 /* c */)) {
- if (this.regexp_eatControlLetter(state)) {
- return true
- }
- state.pos = start;
- }
- return false
- };
- pp$1.regexp_eatZero = function(state) {
- if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {
- state.lastIntValue = 0;
- state.advance();
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape
- pp$1.regexp_eatControlEscape = function(state) {
- var ch = state.current();
- if (ch === 0x74 /* t */) {
- state.lastIntValue = 0x09; /* \t */
- state.advance();
- return true
- }
- if (ch === 0x6E /* n */) {
- state.lastIntValue = 0x0A; /* \n */
- state.advance();
- return true
- }
- if (ch === 0x76 /* v */) {
- state.lastIntValue = 0x0B; /* \v */
- state.advance();
- return true
- }
- if (ch === 0x66 /* f */) {
- state.lastIntValue = 0x0C; /* \f */
- state.advance();
- return true
- }
- if (ch === 0x72 /* r */) {
- state.lastIntValue = 0x0D; /* \r */
- state.advance();
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter
- pp$1.regexp_eatControlLetter = function(state) {
- var ch = state.current();
- if (isControlLetter(ch)) {
- state.lastIntValue = ch % 0x20;
- state.advance();
- return true
- }
- return false
- };
- function isControlLetter(ch) {
- return (
- (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||
- (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)
- )
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence
- pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {
- if ( forceU === void 0 ) forceU = false;
-
- var start = state.pos;
- var switchU = forceU || state.switchU;
-
- if (state.eat(0x75 /* u */)) {
- if (this.regexp_eatFixedHexDigits(state, 4)) {
- var lead = state.lastIntValue;
- if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {
- var leadSurrogateEnd = state.pos;
- if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {
- var trail = state.lastIntValue;
- if (trail >= 0xDC00 && trail <= 0xDFFF) {
- state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;
- return true
- }
- }
- state.pos = leadSurrogateEnd;
- state.lastIntValue = lead;
- }
- return true
- }
- if (
- switchU &&
- state.eat(0x7B /* { */) &&
- this.regexp_eatHexDigits(state) &&
- state.eat(0x7D /* } */) &&
- isValidUnicode(state.lastIntValue)
- ) {
- return true
- }
- if (switchU) {
- state.raise("Invalid unicode escape");
- }
- state.pos = start;
- }
-
- return false
- };
- function isValidUnicode(ch) {
- return ch >= 0 && ch <= 0x10FFFF
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape
- pp$1.regexp_eatIdentityEscape = function(state) {
- if (state.switchU) {
- if (this.regexp_eatSyntaxCharacter(state)) {
- return true
- }
- if (state.eat(0x2F /* / */)) {
- state.lastIntValue = 0x2F; /* / */
- return true
- }
- return false
- }
-
- var ch = state.current();
- if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
-
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape
- pp$1.regexp_eatDecimalEscape = function(state) {
- state.lastIntValue = 0;
- var ch = state.current();
- if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {
- do {
- state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);
- state.advance();
- } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)
- return true
- }
- return false
- };
-
- // Return values used by character set parsing methods, needed to
- // forbid negation of sets that can match strings.
- var CharSetNone = 0; // Nothing parsed
- var CharSetOk = 1; // Construct parsed, cannot contain strings
- var CharSetString = 2; // Construct parsed, can contain strings
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape
- pp$1.regexp_eatCharacterClassEscape = function(state) {
- var ch = state.current();
-
- if (isCharacterClassEscape(ch)) {
- state.lastIntValue = -1;
- state.advance();
- return CharSetOk
- }
-
- var negate = false;
- if (
- state.switchU &&
- this.options.ecmaVersion >= 9 &&
- ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)
- ) {
- state.lastIntValue = -1;
- state.advance();
- var result;
- if (
- state.eat(0x7B /* { */) &&
- (result = this.regexp_eatUnicodePropertyValueExpression(state)) &&
- state.eat(0x7D /* } */)
- ) {
- if (negate && result === CharSetString) { state.raise("Invalid property name"); }
- return result
- }
- state.raise("Invalid property name");
- }
-
- return CharSetNone
- };
-
- function isCharacterClassEscape(ch) {
- return (
- ch === 0x64 /* d */ ||
- ch === 0x44 /* D */ ||
- ch === 0x73 /* s */ ||
- ch === 0x53 /* S */ ||
- ch === 0x77 /* w */ ||
- ch === 0x57 /* W */
- )
- }
-
- // UnicodePropertyValueExpression ::
- // UnicodePropertyName `=` UnicodePropertyValue
- // LoneUnicodePropertyNameOrValue
- pp$1.regexp_eatUnicodePropertyValueExpression = function(state) {
- var start = state.pos;
-
- // UnicodePropertyName `=` UnicodePropertyValue
- if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {
- var name = state.lastStringValue;
- if (this.regexp_eatUnicodePropertyValue(state)) {
- var value = state.lastStringValue;
- this.regexp_validateUnicodePropertyNameAndValue(state, name, value);
- return CharSetOk
- }
- }
- state.pos = start;
-
- // LoneUnicodePropertyNameOrValue
- if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {
- var nameOrValue = state.lastStringValue;
- return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)
- }
- return CharSetNone
- };
-
- pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
- if (!hasOwn(state.unicodeProperties.nonBinary, name))
- { state.raise("Invalid property name"); }
- if (!state.unicodeProperties.nonBinary[name].test(value))
- { state.raise("Invalid property value"); }
- };
-
- pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {
- if (state.unicodeProperties.binary.test(nameOrValue)) { return CharSetOk }
- if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { return CharSetString }
- state.raise("Invalid property name");
- };
-
- // UnicodePropertyName ::
- // UnicodePropertyNameCharacters
- pp$1.regexp_eatUnicodePropertyName = function(state) {
- var ch = 0;
- state.lastStringValue = "";
- while (isUnicodePropertyNameCharacter(ch = state.current())) {
- state.lastStringValue += codePointToString(ch);
- state.advance();
- }
- return state.lastStringValue !== ""
- };
-
- function isUnicodePropertyNameCharacter(ch) {
- return isControlLetter(ch) || ch === 0x5F /* _ */
- }
-
- // UnicodePropertyValue ::
- // UnicodePropertyValueCharacters
- pp$1.regexp_eatUnicodePropertyValue = function(state) {
- var ch = 0;
- state.lastStringValue = "";
- while (isUnicodePropertyValueCharacter(ch = state.current())) {
- state.lastStringValue += codePointToString(ch);
- state.advance();
- }
- return state.lastStringValue !== ""
- };
- function isUnicodePropertyValueCharacter(ch) {
- return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)
- }
-
- // LoneUnicodePropertyNameOrValue ::
- // UnicodePropertyValueCharacters
- pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {
- return this.regexp_eatUnicodePropertyValue(state)
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass
- pp$1.regexp_eatCharacterClass = function(state) {
- if (state.eat(0x5B /* [ */)) {
- var negate = state.eat(0x5E /* ^ */);
- var result = this.regexp_classContents(state);
- if (!state.eat(0x5D /* ] */))
- { state.raise("Unterminated character class"); }
- if (negate && result === CharSetString)
- { state.raise("Negated character class may contain strings"); }
- return true
- }
- return false
- };
-
- // https://tc39.es/ecma262/#prod-ClassContents
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges
- pp$1.regexp_classContents = function(state) {
- if (state.current() === 0x5D /* ] */) { return CharSetOk }
- if (state.switchV) { return this.regexp_classSetExpression(state) }
- this.regexp_nonEmptyClassRanges(state);
- return CharSetOk
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges
- // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash
- pp$1.regexp_nonEmptyClassRanges = function(state) {
- while (this.regexp_eatClassAtom(state)) {
- var left = state.lastIntValue;
- if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {
- var right = state.lastIntValue;
- if (state.switchU && (left === -1 || right === -1)) {
- state.raise("Invalid character class");
- }
- if (left !== -1 && right !== -1 && left > right) {
- state.raise("Range out of order in character class");
- }
- }
- }
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom
- // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash
- pp$1.regexp_eatClassAtom = function(state) {
- var start = state.pos;
-
- if (state.eat(0x5C /* \ */)) {
- if (this.regexp_eatClassEscape(state)) {
- return true
- }
- if (state.switchU) {
- // Make the same message as V8.
- var ch$1 = state.current();
- if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {
- state.raise("Invalid class escape");
- }
- state.raise("Invalid escape");
- }
- state.pos = start;
- }
-
- var ch = state.current();
- if (ch !== 0x5D /* ] */) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
-
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape
- pp$1.regexp_eatClassEscape = function(state) {
- var start = state.pos;
-
- if (state.eat(0x62 /* b */)) {
- state.lastIntValue = 0x08; /* */
- return true
- }
-
- if (state.switchU && state.eat(0x2D /* - */)) {
- state.lastIntValue = 0x2D; /* - */
- return true
- }
-
- if (!state.switchU && state.eat(0x63 /* c */)) {
- if (this.regexp_eatClassControlLetter(state)) {
- return true
- }
- state.pos = start;
- }
-
- return (
- this.regexp_eatCharacterClassEscape(state) ||
- this.regexp_eatCharacterEscape(state)
- )
- };
-
- // https://tc39.es/ecma262/#prod-ClassSetExpression
- // https://tc39.es/ecma262/#prod-ClassUnion
- // https://tc39.es/ecma262/#prod-ClassIntersection
- // https://tc39.es/ecma262/#prod-ClassSubtraction
- pp$1.regexp_classSetExpression = function(state) {
- var result = CharSetOk, subResult;
- if (this.regexp_eatClassSetRange(state)) ; else if (subResult = this.regexp_eatClassSetOperand(state)) {
- if (subResult === CharSetString) { result = CharSetString; }
- // https://tc39.es/ecma262/#prod-ClassIntersection
- var start = state.pos;
- while (state.eatChars([0x26, 0x26] /* && */)) {
- if (
- state.current() !== 0x26 /* & */ &&
- (subResult = this.regexp_eatClassSetOperand(state))
- ) {
- if (subResult !== CharSetString) { result = CharSetOk; }
- continue
- }
- state.raise("Invalid character in character class");
- }
- if (start !== state.pos) { return result }
- // https://tc39.es/ecma262/#prod-ClassSubtraction
- while (state.eatChars([0x2D, 0x2D] /* -- */)) {
- if (this.regexp_eatClassSetOperand(state)) { continue }
- state.raise("Invalid character in character class");
- }
- if (start !== state.pos) { return result }
- } else {
- state.raise("Invalid character in character class");
- }
- // https://tc39.es/ecma262/#prod-ClassUnion
- for (;;) {
- if (this.regexp_eatClassSetRange(state)) { continue }
- subResult = this.regexp_eatClassSetOperand(state);
- if (!subResult) { return result }
- if (subResult === CharSetString) { result = CharSetString; }
- }
- };
-
- // https://tc39.es/ecma262/#prod-ClassSetRange
- pp$1.regexp_eatClassSetRange = function(state) {
- var start = state.pos;
- if (this.regexp_eatClassSetCharacter(state)) {
- var left = state.lastIntValue;
- if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) {
- var right = state.lastIntValue;
- if (left !== -1 && right !== -1 && left > right) {
- state.raise("Range out of order in character class");
- }
- return true
- }
- state.pos = start;
- }
- return false
- };
-
- // https://tc39.es/ecma262/#prod-ClassSetOperand
- pp$1.regexp_eatClassSetOperand = function(state) {
- if (this.regexp_eatClassSetCharacter(state)) { return CharSetOk }
- return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state)
- };
-
- // https://tc39.es/ecma262/#prod-NestedClass
- pp$1.regexp_eatNestedClass = function(state) {
- var start = state.pos;
- if (state.eat(0x5B /* [ */)) {
- var negate = state.eat(0x5E /* ^ */);
- var result = this.regexp_classContents(state);
- if (state.eat(0x5D /* ] */)) {
- if (negate && result === CharSetString) {
- state.raise("Negated character class may contain strings");
- }
- return result
- }
- state.pos = start;
- }
- if (state.eat(0x5C /* \ */)) {
- var result$1 = this.regexp_eatCharacterClassEscape(state);
- if (result$1) {
- return result$1
- }
- state.pos = start;
- }
- return null
- };
-
- // https://tc39.es/ecma262/#prod-ClassStringDisjunction
- pp$1.regexp_eatClassStringDisjunction = function(state) {
- var start = state.pos;
- if (state.eatChars([0x5C, 0x71] /* \q */)) {
- if (state.eat(0x7B /* { */)) {
- var result = this.regexp_classStringDisjunctionContents(state);
- if (state.eat(0x7D /* } */)) {
- return result
- }
- } else {
- // Make the same message as V8.
- state.raise("Invalid escape");
- }
- state.pos = start;
- }
- return null
- };
-
- // https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents
- pp$1.regexp_classStringDisjunctionContents = function(state) {
- var result = this.regexp_classString(state);
- while (state.eat(0x7C /* | */)) {
- if (this.regexp_classString(state) === CharSetString) { result = CharSetString; }
- }
- return result
- };
-
- // https://tc39.es/ecma262/#prod-ClassString
- // https://tc39.es/ecma262/#prod-NonEmptyClassString
- pp$1.regexp_classString = function(state) {
- var count = 0;
- while (this.regexp_eatClassSetCharacter(state)) { count++; }
- return count === 1 ? CharSetOk : CharSetString
- };
-
- // https://tc39.es/ecma262/#prod-ClassSetCharacter
- pp$1.regexp_eatClassSetCharacter = function(state) {
- var start = state.pos;
- if (state.eat(0x5C /* \ */)) {
- if (
- this.regexp_eatCharacterEscape(state) ||
- this.regexp_eatClassSetReservedPunctuator(state)
- ) {
- return true
- }
- if (state.eat(0x62 /* b */)) {
- state.lastIntValue = 0x08; /* */
- return true
- }
- state.pos = start;
- return false
- }
- var ch = state.current();
- if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { return false }
- if (isClassSetSyntaxCharacter(ch)) { return false }
- state.advance();
- state.lastIntValue = ch;
- return true
- };
-
- // https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator
- function isClassSetReservedDoublePunctuatorCharacter(ch) {
- return (
- ch === 0x21 /* ! */ ||
- ch >= 0x23 /* # */ && ch <= 0x26 /* & */ ||
- ch >= 0x2A /* * */ && ch <= 0x2C /* , */ ||
- ch === 0x2E /* . */ ||
- ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ ||
- ch === 0x5E /* ^ */ ||
- ch === 0x60 /* ` */ ||
- ch === 0x7E /* ~ */
- )
- }
-
- // https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter
- function isClassSetSyntaxCharacter(ch) {
- return (
- ch === 0x28 /* ( */ ||
- ch === 0x29 /* ) */ ||
- ch === 0x2D /* - */ ||
- ch === 0x2F /* / */ ||
- ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ ||
- ch >= 0x7B /* { */ && ch <= 0x7D /* } */
- )
- }
-
- // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator
- pp$1.regexp_eatClassSetReservedPunctuator = function(state) {
- var ch = state.current();
- if (isClassSetReservedPunctuator(ch)) {
- state.lastIntValue = ch;
- state.advance();
- return true
- }
- return false
- };
-
- // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator
- function isClassSetReservedPunctuator(ch) {
- return (
- ch === 0x21 /* ! */ ||
- ch === 0x23 /* # */ ||
- ch === 0x25 /* % */ ||
- ch === 0x26 /* & */ ||
- ch === 0x2C /* , */ ||
- ch === 0x2D /* - */ ||
- ch >= 0x3A /* : */ && ch <= 0x3E /* > */ ||
- ch === 0x40 /* @ */ ||
- ch === 0x60 /* ` */ ||
- ch === 0x7E /* ~ */
- )
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter
- pp$1.regexp_eatClassControlLetter = function(state) {
- var ch = state.current();
- if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {
- state.lastIntValue = ch % 0x20;
- state.advance();
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
- pp$1.regexp_eatHexEscapeSequence = function(state) {
- var start = state.pos;
- if (state.eat(0x78 /* x */)) {
- if (this.regexp_eatFixedHexDigits(state, 2)) {
- return true
- }
- if (state.switchU) {
- state.raise("Invalid escape");
- }
- state.pos = start;
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits
- pp$1.regexp_eatDecimalDigits = function(state) {
- var start = state.pos;
- var ch = 0;
- state.lastIntValue = 0;
- while (isDecimalDigit(ch = state.current())) {
- state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);
- state.advance();
- }
- return state.pos !== start
- };
- function isDecimalDigit(ch) {
- return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits
- pp$1.regexp_eatHexDigits = function(state) {
- var start = state.pos;
- var ch = 0;
- state.lastIntValue = 0;
- while (isHexDigit(ch = state.current())) {
- state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);
- state.advance();
- }
- return state.pos !== start
- };
- function isHexDigit(ch) {
- return (
- (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||
- (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||
- (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)
- )
- }
- function hexToInt(ch) {
- if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {
- return 10 + (ch - 0x41 /* A */)
- }
- if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {
- return 10 + (ch - 0x61 /* a */)
- }
- return ch - 0x30 /* 0 */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence
- // Allows only 0-377(octal) i.e. 0-255(decimal).
- pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {
- if (this.regexp_eatOctalDigit(state)) {
- var n1 = state.lastIntValue;
- if (this.regexp_eatOctalDigit(state)) {
- var n2 = state.lastIntValue;
- if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {
- state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;
- } else {
- state.lastIntValue = n1 * 8 + n2;
- }
- } else {
- state.lastIntValue = n1;
- }
- return true
- }
- return false
- };
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit
- pp$1.regexp_eatOctalDigit = function(state) {
- var ch = state.current();
- if (isOctalDigit(ch)) {
- state.lastIntValue = ch - 0x30; /* 0 */
- state.advance();
- return true
- }
- state.lastIntValue = 0;
- return false
- };
- function isOctalDigit(ch) {
- return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */
- }
-
- // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits
- // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit
- // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
- pp$1.regexp_eatFixedHexDigits = function(state, length) {
- var start = state.pos;
- state.lastIntValue = 0;
- for (var i = 0; i < length; ++i) {
- var ch = state.current();
- if (!isHexDigit(ch)) {
- state.pos = start;
- return false
- }
- state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);
- state.advance();
- }
- return true
- };
-
- // Object type used to represent tokens. Note that normally, tokens
- // simply exist as properties on the parser object. This is only
- // used for the onToken callback and the external tokenizer.
-
- var Token = function Token(p) {
- this.type = p.type;
- this.value = p.value;
- this.start = p.start;
- this.end = p.end;
- if (p.options.locations)
- { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }
- if (p.options.ranges)
- { this.range = [p.start, p.end]; }
- };
-
- // ## Tokenizer
-
- var pp = Parser.prototype;
-
- // Move to the next token
-
- pp.next = function(ignoreEscapeSequenceInKeyword) {
- if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)
- { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); }
- if (this.options.onToken)
- { this.options.onToken(new Token(this)); }
-
- this.lastTokEnd = this.end;
- this.lastTokStart = this.start;
- this.lastTokEndLoc = this.endLoc;
- this.lastTokStartLoc = this.startLoc;
- this.nextToken();
- };
-
- pp.getToken = function() {
- this.next();
- return new Token(this)
- };
-
- // If we're in an ES6 environment, make parsers iterable
- if (typeof Symbol !== "undefined")
- { pp[Symbol.iterator] = function() {
- var this$1$1 = this;
-
- return {
- next: function () {
- var token = this$1$1.getToken();
- return {
- done: token.type === types$1.eof,
- value: token
- }
- }
- }
- }; }
-
- // Toggle strict mode. Re-reads the next number or string to please
- // pedantic tests (`"use strict"; 010;` should fail).
-
- // Read a single token, updating the parser object's token-related
- // properties.
-
- pp.nextToken = function() {
- var curContext = this.curContext();
- if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }
-
- this.start = this.pos;
- if (this.options.locations) { this.startLoc = this.curPosition(); }
- if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }
-
- if (curContext.override) { return curContext.override(this) }
- else { this.readToken(this.fullCharCodeAtPos()); }
- };
-
- pp.readToken = function(code) {
- // Identifier or keyword. '\uXXXX' sequences are allowed in
- // identifiers, so '\' also dispatches to that.
- if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */)
- { return this.readWord() }
-
- return this.getTokenFromCode(code)
- };
-
- pp.fullCharCodeAtPos = function() {
- var code = this.input.charCodeAt(this.pos);
- if (code <= 0xd7ff || code >= 0xdc00) { return code }
- var next = this.input.charCodeAt(this.pos + 1);
- return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00
- };
-
- pp.skipBlockComment = function() {
- var startLoc = this.options.onComment && this.curPosition();
- var start = this.pos, end = this.input.indexOf("*/", this.pos += 2);
- if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); }
- this.pos = end + 2;
- if (this.options.locations) {
- for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {
- ++this.curLine;
- pos = this.lineStart = nextBreak;
- }
- }
- if (this.options.onComment)
- { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,
- startLoc, this.curPosition()); }
- };
-
- pp.skipLineComment = function(startSkip) {
- var start = this.pos;
- var startLoc = this.options.onComment && this.curPosition();
- var ch = this.input.charCodeAt(this.pos += startSkip);
- while (this.pos < this.input.length && !isNewLine(ch)) {
- ch = this.input.charCodeAt(++this.pos);
- }
- if (this.options.onComment)
- { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,
- startLoc, this.curPosition()); }
- };
-
- // Called at the start of the parse and after every token. Skips
- // whitespace and comments, and.
-
- pp.skipSpace = function() {
- loop: while (this.pos < this.input.length) {
- var ch = this.input.charCodeAt(this.pos);
- switch (ch) {
- case 32: case 160: // ' '
- ++this.pos;
- break
- case 13:
- if (this.input.charCodeAt(this.pos + 1) === 10) {
- ++this.pos;
- }
- case 10: case 8232: case 8233:
- ++this.pos;
- if (this.options.locations) {
- ++this.curLine;
- this.lineStart = this.pos;
- }
- break
- case 47: // '/'
- switch (this.input.charCodeAt(this.pos + 1)) {
- case 42: // '*'
- this.skipBlockComment();
- break
- case 47:
- this.skipLineComment(2);
- break
- default:
- break loop
- }
- break
- default:
- if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {
- ++this.pos;
- } else {
- break loop
- }
- }
- }
- };
-
- // Called at the end of every token. Sets `end`, `val`, and
- // maintains `context` and `exprAllowed`, and skips the space after
- // the token, so that the next one's `start` will point at the
- // right position.
-
- pp.finishToken = function(type, val) {
- this.end = this.pos;
- if (this.options.locations) { this.endLoc = this.curPosition(); }
- var prevType = this.type;
- this.type = type;
- this.value = val;
-
- this.updateContext(prevType);
- };
-
- // ### Token reading
-
- // This is the function that is called to fetch the next token. It
- // is somewhat obscure, because it works in character codes rather
- // than characters, and because operator parsing has been inlined
- // into it.
- //
- // All in the name of speed.
- //
- pp.readToken_dot = function() {
- var next = this.input.charCodeAt(this.pos + 1);
- if (next >= 48 && next <= 57) { return this.readNumber(true) }
- var next2 = this.input.charCodeAt(this.pos + 2);
- if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
- this.pos += 3;
- return this.finishToken(types$1.ellipsis)
- } else {
- ++this.pos;
- return this.finishToken(types$1.dot)
- }
- };
-
- pp.readToken_slash = function() { // '/'
- var next = this.input.charCodeAt(this.pos + 1);
- if (this.exprAllowed) { ++this.pos; return this.readRegexp() }
- if (next === 61) { return this.finishOp(types$1.assign, 2) }
- return this.finishOp(types$1.slash, 1)
- };
-
- pp.readToken_mult_modulo_exp = function(code) { // '%*'
- var next = this.input.charCodeAt(this.pos + 1);
- var size = 1;
- var tokentype = code === 42 ? types$1.star : types$1.modulo;
-
- // exponentiation operator ** and **=
- if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {
- ++size;
- tokentype = types$1.starstar;
- next = this.input.charCodeAt(this.pos + 2);
- }
-
- if (next === 61) { return this.finishOp(types$1.assign, size + 1) }
- return this.finishOp(tokentype, size)
- };
-
- pp.readToken_pipe_amp = function(code) { // '|&'
- var next = this.input.charCodeAt(this.pos + 1);
- if (next === code) {
- if (this.options.ecmaVersion >= 12) {
- var next2 = this.input.charCodeAt(this.pos + 2);
- if (next2 === 61) { return this.finishOp(types$1.assign, 3) }
- }
- return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)
- }
- if (next === 61) { return this.finishOp(types$1.assign, 2) }
- return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)
- };
-
- pp.readToken_caret = function() { // '^'
- var next = this.input.charCodeAt(this.pos + 1);
- if (next === 61) { return this.finishOp(types$1.assign, 2) }
- return this.finishOp(types$1.bitwiseXOR, 1)
- };
-
- pp.readToken_plus_min = function(code) { // '+-'
- var next = this.input.charCodeAt(this.pos + 1);
- if (next === code) {
- if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&
- (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {
- // A `-->` line comment
- this.skipLineComment(3);
- this.skipSpace();
- return this.nextToken()
- }
- return this.finishOp(types$1.incDec, 2)
- }
- if (next === 61) { return this.finishOp(types$1.assign, 2) }
- return this.finishOp(types$1.plusMin, 1)
- };
-
- pp.readToken_lt_gt = function(code) { // '<>'
- var next = this.input.charCodeAt(this.pos + 1);
- var size = 1;
- if (next === code) {
- size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
- if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }
- return this.finishOp(types$1.bitShift, size)
- }
- if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
- this.input.charCodeAt(this.pos + 3) === 45) {
- // `` line comment
- this.skipLineComment(3);
- this.skipSpace();
- return this.nextToken()
- }
- return this.finishOp(types$1.incDec, 2)
- }
- if (next === 61) { return this.finishOp(types$1.assign, 2) }
- return this.finishOp(types$1.plusMin, 1)
-};
-
-pp.readToken_lt_gt = function(code) { // '<>'
- var next = this.input.charCodeAt(this.pos + 1);
- var size = 1;
- if (next === code) {
- size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
- if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }
- return this.finishOp(types$1.bitShift, size)
- }
- if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
- this.input.charCodeAt(this.pos + 3) === 45) {
- // `
-
-3.1.5 / 2022-05-03
-=================
- * [Fix] install polyfill on FF 99+
- * [Deps] update `define-properties`, `es-abstract`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `aud`, `functions-have-names`, `safe-publish-latest`, `tape`
- * [actions] reuse common workflows
- * [actions] update codecov uploader
-
-3.1.4 / 2021-10-04
-=================
- * [Robustness] avoid a runtime `Math.max` call
- * [readme] add github actions/codecov badges
- * [readme] fix repo URLs; remove travis badge
- * [Deps] update `es-abstract`, `is-string`
- * [meta] use `prepublishOnly` script for npm 7+
- * [actions] update workflows
- * [actions] use `node/install` instead of `node/run`; use `codecov` action
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `aud`, `tape`
-
-3.1.3 / 2021-02-20
-=================
- * [Deps] update `call-bind`, `es-abstract`, `get-intrinsic`
- * [meta] do not publish github action workflow files
- * [meta] gitignore coverage output
- * [actions] update workflows
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `functions-have-names`, `has-strict-mode`, `tape`
- * [Tests] increase coverage
-
-3.1.2 / 2020-11-24
-=================
- * [Robustness] remove dependency on `.apply`
- * [Deps] update `es-abstract`; use `call-bind` and `get-intrinsic` where applicable
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `tape`; add `aud`, `safe-publish-latest`
- * [actions] add "Allow Edits" workflow
- * [actions] switch Automatic Rebase workflow to `pull_request_target` event
- * [Tests] migrate tests to Github Actions
- * [Tests] run `nyc` on all tests
- * [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner
-
-3.1.1 / 2019-12-21
-=================
- * [Fix] IE < 9 does not have index access on strings
- * [Deps] update `es-abstract`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`
- * [meta] remove unused Makefile and associated utilities
- * [Tests] add string tests
-
-3.1.0 / 2019-12-11
-=================
- * [New] add `auto` entry point
- * [Refactor] use split-up `es-abstract` (68% bundle size decrease)
- * [readme] fix repo URLs, remove testling, fix readme parsing
- * [Deps] update `es-abstract`, `define-properties`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `evalmd`, `covert`, `functions-have-names`, `replace`, `semver`, `tape`, `@es-shims/api`, `function-bind`
- * [meta] add `funding` field, FUNDING.yml
- * [meta] Only apps should have lockfiles
- * [Tests] add more `fromIndex` tests
- * [Tests] use shared travis-ci configs
- * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
- * [Tests] remove `jscs`
- * [Tests] use `functions-have-names`
- * [Tests] use `npm audit` instead of `nsp`
- * [Tests] remove `jscs`
- * [actions] add automatic rebasing / merge commit blocking
-
-3.0.3 / 2017-04-18
-=================
- * [Fix] ensure that `shim.js` actually shims when the polyfill differs from native
- * [Tests] up to `node` `v7.9`, `v6.10`, `v4.8`; comment out OS X builds; improve test matrix
- * [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config`, `tape`, `jscs`, `semver`, `function-bind`, `@es-shims/api`
- * [Deps] update `es-abstract`
- * [Docs] update readme: add “getting started” and “usage” (#19)
-
-3.0.2 / 2015-06-06
-=================
- * Use the polyfill, not the implementation, as the default export
- * [Deps] update `es-abstract`
- * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`
- * [Tests] up to `node` `v5.5`
- * [Tests] keep tests passing in `node` `v0.8`
- * [Tests] Only run `evalmd` as part of the full test suite, since it's more like a linter
- * [Tests] fix npm upgrades for older nodes
-
-3.0.1 / 2015-05-23
-=================
- * [Fix] in "shim", assign the polyfill, not the implementation
-
-3.0.0 / 2015-05-23
-=================
- * [Breaking] Implement the [es-shim API](es-shims/api)
- * [Deps] update `define-properties`, `es-abstract`
- * [Dev Deps] update `eslint`, `semver`, `nsp`, `semver`, `jscs`
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
- * [Tests] use my personal shared `eslint` config
- * [Tests] up to `io.js` `v3.0`
-
-2.0.0 / 2015-05-23
-=================
- * Fix to not skip holes, per https://github.com/tc39/Array.prototype.includes/issues/15
-
-1.1.1 / 2015-05-23
-=================
- * Test up to `io.js` `v2.0`
- * Update `es-abstract`, `tape`, `eslint`, `semver`, `jscs`, `semver`
-
-1.1.0 / 2015-03-19
-=================
- * Update `es-abstract`, `editorconfig-tools`, `nsp`, `eslint`, `semver`
-
-1.0.6 / 2015-02-17
-=================
- * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`.
- * Run `travis-ci` tests on `iojs` and `node` v0.12; allow 0.8 failures.
- * Update `tape`, `jscs`, `es-abstract`, remove `is`.
-
-1.0.5 / 2015-01-30
-=================
- * Update `tape`, `jscs`, `nsp`, `eslint`, `es-abstract`
-
-1.0.4 / 2015-01-10
-=================
- * Use `es-abstract` for ECMAScript spec internal abstract operations
-
-1.0.3 / 2015-01-06
-=================
- * Speed optimization: use Array#indexOf when available
- * Fix ES3, IE 6-8, Opera 10.6, Opera 11.1 support
- * Run testling on both sets of tests
-
-1.0.2 / 2015-01-05
-=================
- * Ensure tests are includes in the module on `npm`
-
-1.0.1 / 2015-01-04
-=================
- * Remove mistaken auto-shim.
-
-1.0.0 / 2015-01-04
-=================
- * v1.0.0
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/LICENSE b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/LICENSE
deleted file mode 100644
index 8c271c14..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (C) 2015 Jordan Harband
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/README.md b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/README.md
deleted file mode 100644
index 525c2a2d..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/README.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# array-includes [![Version Badge][npm-version-svg]][package-url]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the proposed [spec](https://262.ecma-international.org/6.0/).
-
-Because `Array.prototype.includes` depends on a receiver (the `this` value), the main export takes the array to operate on as the first argument.
-
-Engines that need this package include:
- - IE (all versions)
- - Safari < 9
- - Firefox < 43, and 99-101
- - Chrome < 47
- - Edge < 14
- - node < 6
-
-## Getting started
-
-```sh
-npm install --save array-includes
-```
-
-## Usage
-
-Basic usage: **includes(array, value[, fromIndex=0])**
-
-```js
-var includes = require('array-includes');
-var assert = require('assert');
-var arr = [ 'one', 'two' ];
-
-includes(arr, 'one'); // true
-includes(arr, 'three'); // false
-includes(arr, 'one', 1); // false
-```
-
-
-
-## Example
-
-```js
-var arr = [
- 1,
- 'foo',
- NaN,
- -0
-];
-
-assert.equal(arr.indexOf(0) > -1, true);
-assert.equal(arr.indexOf(-0) > -1, true);
-assert.equal(includes(arr, 0), true);
-assert.equal(includes(arr, -0), true);
-
-assert.equal(arr.indexOf(NaN) > -1, false);
-assert.equal(includes(arr, NaN), true);
-
-assert.equal(includes(arr, 'foo', 0), true);
-assert.equal(includes(arr, 'foo', 1), true);
-assert.equal(includes(arr, 'foo', 2), false);
-```
-
-```js
-/* when Array#includes is not present */
-delete Array.prototype.includes;
-var shimmedIncludes = includes.shim();
-
-assert.equal(shimmedIncludes, includes.getPolyfill());
-assert.equal(arr.includes('foo', 1), includes(arr, 'foo', 1));
-```
-
-```js
-/* when Array#includes is present */
-var shimmedIncludes = includes.shim();
-
-assert.equal(shimmedIncludes, Array.prototype.includes);
-assert.equal(arr.includes(1, 'foo'), includes(arr, 1, 'foo'));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/array-includes
-[npm-version-svg]: https://versionbadg.es/es-shims/array-includes.svg
-[deps-svg]: https://david-dm.org/es-shims/array-includes.svg
-[deps-url]: https://david-dm.org/es-shims/array-includes
-[dev-deps-svg]: https://david-dm.org/es-shims/array-includes/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/array-includes#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/array-includes.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/array-includes.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/array-includes.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=array-includes
-[codecov-image]: https://codecov.io/gh/es-shims/array-includes/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/es-shims/array-includes/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/array-includes
-[actions-url]: https://github.com/es-shims/array-includes/actions
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/auto.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/implementation.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/implementation.js
deleted file mode 100644
index 78bade46..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/implementation.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-var ToIntegerOrInfinity = require('es-abstract/2025/ToIntegerOrInfinity');
-var ToLength = require('es-abstract/2025/ToLength');
-var ToObject = require('es-object-atoms/ToObject');
-var SameValueZero = require('es-abstract/2025/SameValueZero');
-var $isNaN = require('math-intrinsics/isNaN');
-var $isFinite = require('math-intrinsics/isFinite');
-var GetIntrinsic = require('get-intrinsic');
-var callBound = require('call-bound');
-var isString = require('is-string');
-
-var $charAt = callBound('String.prototype.charAt');
-var $indexOf = GetIntrinsic('%Array.prototype.indexOf%'); // TODO: use callBind.apply without breaking IE 8
-var $max = GetIntrinsic('%Math.max%');
-
-module.exports = function includes(searchElement) {
- var fromIndex = arguments.length > 1 ? ToIntegerOrInfinity(arguments[1]) : 0;
- if ($indexOf && !$isNaN(searchElement) && $isFinite(fromIndex) && typeof searchElement !== 'undefined') {
- return $indexOf.apply(this, arguments) > -1;
- }
-
- var O = ToObject(this);
- var length = ToLength(O.length);
- if (length === 0) {
- return false;
- }
- var k = fromIndex >= 0 ? fromIndex : $max(0, length + fromIndex);
- while (k < length) {
- if (SameValueZero(searchElement, isString(O) ? $charAt(O, k) : O[k])) {
- return true;
- }
- k += 1;
- }
- return false;
-};
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/index.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/index.js
deleted file mode 100644
index bd68cd06..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');
-var callBind = require('call-bind');
-var callBound = require('call-bound');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var polyfill = callBind.apply(getPolyfill());
-var shim = require('./shim');
-
-var $slice = callBound('Array.prototype.slice');
-
-/* eslint-disable no-unused-vars */
-var boundShim = function includes(array, searchElement) {
-/* eslint-enable no-unused-vars */
- RequireObjectCoercible(array);
- return polyfill(array, $slice(arguments, 1));
-};
-define(boundShim, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = boundShim;
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/package.json b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/package.json
deleted file mode 100644
index dd1a4d14..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/package.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
- "name": "array-includes",
- "version": "3.1.9",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "description": "An ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "pretest": "npm run --silent lint",
- "test": "npm run --silent tests-only",
- "posttest": "npx npm@\">= 10.2\" audit --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "prelint": "evalmd README.md",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "es-shim-api --bound",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/es-shims/array-includes.git"
- },
- "keywords": [
- "Array.prototype.includes",
- "includes",
- "array",
- "ES7",
- "shim",
- "polyfill",
- "contains",
- "Array.prototype.contains",
- "es-shim API"
- ],
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.24.0",
- "es-object-atoms": "^1.1.1",
- "get-intrinsic": "^1.3.0",
- "is-string": "^1.1.1",
- "math-intrinsics": "^1.1.0"
- },
- "devDependencies": {
- "@es-shims/api": "^2.5.1",
- "@ljharb/eslint-config": "^21.1.1",
- "auto-changelog": "^2.5.0",
- "encoding": "^0.1.13",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "functions-have-names": "^1.2.3",
- "has-strict-mode": "^1.1.0",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.9.0"
- },
- "testling": {
- "files": [
- "test/index.js",
- "test/implementation.js",
- "test/shimmed.js"
- ],
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true,
- "startingVersion": "3.1.6"
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- }
-}
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/polyfill.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/polyfill.js
deleted file mode 100644
index 6abe64b8..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/polyfill.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
- if (
- Array.prototype.includes
- && Array(1).includes(undefined) // https://bugzilla.mozilla.org/show_bug.cgi?id=1767541
- ) {
- return Array.prototype.includes;
- }
- return implementation;
-};
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/shim.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/shim.js
deleted file mode 100644
index dd01740a..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/shim.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var getPolyfill = require('./polyfill');
-
-module.exports = function shimArrayPrototypeIncludes() {
- var polyfill = getPolyfill();
- define(
- Array.prototype,
- { includes: polyfill },
- { includes: function () { return Array.prototype.includes !== polyfill; } }
- );
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/implementation.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/implementation.js
deleted file mode 100644
index 7fdf95b7..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/implementation.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var implementation = require('../implementation');
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(implementation), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/index.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/index.js
deleted file mode 100644
index 61942e94..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var includes = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', function (st) {
- st['throws'](function () { includes(undefined, 'a'); }, TypeError, 'undefined is not an object');
- st['throws'](function () { includes(null, 'a'); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(includes, t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/shimmed.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/shimmed.js
deleted file mode 100644
index 98f70c0a..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/shimmed.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-var orig = Array.prototype.includes;
-
-require('../auto');
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = require('functions-have-names')();
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.comment('shimmed: ' + (orig === Array.prototype.includes ? 'no' : 'yes'));
- t.equal(Array.prototype.includes.length, 1, 'Array#includes has a length of 1');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Array.prototype.includes.name, 'includes', 'Array#includes has name "includes"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Array.prototype, 'includes'), 'Array#includes is not enumerable');
- et.end();
- });
-
- var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
- t.test('bad array/this value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Array.prototype.includes.call(undefined, 'a'); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Array.prototype.includes.call(null, 'a'); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(Array.prototype.includes), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/tests.js b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/tests.js
deleted file mode 100644
index 78979d4e..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/array-includes/test/tests.js
+++ /dev/null
@@ -1,94 +0,0 @@
-'use strict';
-
-module.exports = function (includes, t) {
- var sparseish = { length: 5, 0: 'a', 1: 'b' };
- var overfullarrayish = { length: 2, 0: 'a', 1: 'b', 2: 'c' };
- var thrower = { valueOf: function () { throw new RangeError('whoa'); } };
- var numberish = { valueOf: function () { return 2; } };
-
- t.test('simple examples', function (st) {
- st.equal(true, includes([1, 2, 3], 1), '[1, 2, 3] includes 1');
- st.equal(false, includes([1, 2, 3], 4), '[1, 2, 3] does not include 4');
- st.equal(true, includes([NaN], NaN), '[NaN] includes NaN');
- st.end();
- });
-
- t.test('does not skip holes', function (st) {
- st.equal(true, includes(Array(1)), 'Array(1) includes undefined');
- st.end();
- });
-
- t.test('exceptions', function (et) {
- et.test('fromIndex conversion', function (st) {
- st['throws'](function () { includes([0], 0, thrower); }, RangeError, 'fromIndex conversion throws');
- st.end();
- });
-
- et.test('ToLength', function (st) {
- st['throws'](function () { includes({ length: thrower, 0: true }, true); }, RangeError, 'ToLength conversion throws');
- st.end();
- });
-
- et.end();
- });
-
- t.test('arraylike', function (st) {
- st.equal(true, includes(sparseish, 'a'), 'sparse array-like object includes "a"');
- st.equal(false, includes(sparseish, 'c'), 'sparse array-like object does not include "c"');
-
- st.equal(true, includes(overfullarrayish, 'b'), 'sparse array-like object includes "b"');
- st.equal(false, includes(overfullarrayish, 'c'), 'sparse array-like object does not include "c"');
- st.end();
- });
-
- t.test('fromIndex', function (ft) {
- ft.equal(true, includes([1], 1, NaN), 'NaN fromIndex -> 0 fromIndex');
-
- ft.equal(true, includes([0, 1, 2], 1, 0), 'starting from 0 finds index 1');
- ft.equal(true, includes([0, 1, 2], 1, 1), 'starting from 1 finds index 1');
- ft.equal(false, includes([0, 1, 2], 1, 2), 'starting from 2 does not find index 1');
-
- ft.test('number coercion', function (st) {
- st.equal(false, includes(['a', 'b', 'c'], 'a', numberish), 'does not find "a" with object fromIndex coercing to 2');
- st.equal(false, includes(['a', 'b', 'c'], 'a', '2'), 'does not find "a" with string fromIndex coercing to 2');
- st.equal(true, includes(['a', 'b', 'c'], 'c', numberish), 'finds "c" with object fromIndex coercing to 2');
- st.equal(true, includes(['a', 'b', 'c'], 'c', '2'), 'finds "c" with string fromIndex coercing to 2');
- st.end();
- });
-
- ft.test('fromIndex greater than length', function (st) {
- st.equal(false, includes([1], 1, 2), 'array of length 1 is not searched if fromIndex is > 1');
- st.equal(false, includes([1], 1, 1), 'array of length 1 is not searched if fromIndex is >= 1');
- st.equal(false, includes([1], 1, 1.1), 'array of length 1 is not searched if fromIndex is 1.1');
- st.equal(false, includes([1], 1, Infinity), 'array of length 1 is not searched if fromIndex is Infinity');
- st.end();
- });
-
- ft.test('negative fromIndex', function (st) {
- st.equal(true, includes([1, 3], 1, -4), 'computed length would be negative; fromIndex is thus 0');
- st.equal(true, includes([1, 3], 3, -4), 'computed length would be negative; fromIndex is thus 0');
- st.equal(true, includes([1, 3], 1, -Infinity), 'computed length would be negative; fromIndex is thus 0');
-
- st.equal(true, includes([12, 13], 13, -1), 'finds -1st item with -1 fromIndex');
- st.equal(false, includes([12, 13], 12, -1), 'does not find -2nd item with -1 fromIndex');
- st.equal(true, includes([12, 13], 13, -2), 'finds -2nd item with -2 fromIndex');
-
- st.equal(true, includes(sparseish, 'b', -4), 'finds -4th item with -4 fromIndex');
- st.equal(false, includes(sparseish, 'a', -4), 'does not find -5th item with -4 fromIndex');
- st.equal(true, includes(sparseish, 'a', -5), 'finds -5th item with -5 fromIndex');
- st.end();
- });
-
- ft.end();
- });
-
- t.test('strings', function (st) {
- st.equal(true, includes('abc', 'c'), 'string includes one of its chars');
- st.equal(false, includes('abc', 'd'), 'string does not include a char it should not');
-
- st.equal(true, includes(Object('abc'), 'c'), 'boxed string includes one of its chars');
- st.equal(false, includes(Object('abc'), 'd'), 'boxed string does not include a char it should not');
-
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/call-bind b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/call-bound b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/call-bound
deleted file mode 120000
index 5171ab6f..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/call-bound
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bound@1.0.4/node_modules/call-bound
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/define-properties b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/es-abstract b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/es-object-atoms b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/es-object-atoms
deleted file mode 120000
index b10b707a..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/es-object-atoms
+++ /dev/null
@@ -1 +0,0 @@
-../../es-object-atoms@1.1.1/node_modules/es-object-atoms
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/get-intrinsic b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/get-intrinsic
deleted file mode 120000
index 0042f6aa..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/get-intrinsic
+++ /dev/null
@@ -1 +0,0 @@
-../../get-intrinsic@1.3.0/node_modules/get-intrinsic
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/is-string b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/is-string
deleted file mode 120000
index 43793d74..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/is-string
+++ /dev/null
@@ -1 +0,0 @@
-../../is-string@1.1.1/node_modules/is-string
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/math-intrinsics b/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/math-intrinsics
deleted file mode 120000
index 185fe798..00000000
--- a/frontend/node_modules/.pnpm/array-includes@3.1.9/node_modules/math-intrinsics
+++ /dev/null
@@ -1 +0,0 @@
-../../math-intrinsics@1.1.0/node_modules/math-intrinsics
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.editorconfig b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.editorconfig
deleted file mode 100644
index bc228f82..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 150
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.eslintrc b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.eslintrc
deleted file mode 100644
index ea11ad13..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.eslintrc
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "array-bracket-newline": 0,
- "id-length": 0,
- "max-statements-per-line": [2, { "max": 2 }],
- "new-cap": [2, {
- "capIsNewExceptions": [
- "GetIntrinsic",
- "Call",
- "Get",
- "IsCallable",
- "LengthOfArrayLike",
- "RequireObjectCoercible",
- "ToBoolean",
- "ToObject",
- "ToString",
- ],
- }],
- "no-magic-numbers": 0,
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "func-name-matching": 0,
- "max-lines-per-function": 0,
- "no-invalid-this": 1,
- "strict": 1,
- },
- },
- ],
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.github/FUNDING.yml b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.github/FUNDING.yml
deleted file mode 100644
index 8cab05a3..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/array.prototype.findlast
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.nycrc b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.nycrc
deleted file mode 100644
index bdd626ce..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/CHANGELOG.md b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/CHANGELOG.md
deleted file mode 100644
index 204b2756..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/CHANGELOG.md
+++ /dev/null
@@ -1,96 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.2.5](https://github.com/es-shims/Array.prototype.findLast/compare/v1.2.4...v1.2.5) - 2024-03-19
-
-### Commits
-
-- [meta] remove useless ESM [`30b3843`](https://github.com/es-shims/Array.prototype.findLast/commit/30b38436f06003ab2ea0a9571e3bc5bbf6d6e9fb)
-- [Deps] update `call-bind`, `es-abstract` [`f339e4d`](https://github.com/es-shims/Array.prototype.findLast/commit/f339e4d0748f32a640e58ce3282d98d1baf73269)
-- [actions] remove redundant finisher [`3b66016`](https://github.com/es-shims/Array.prototype.findLast/commit/3b66016b8f9e19084cdcafa1a125eb6b2d26f527)
-- [Refactor] use `es-object-atoms` where possible [`c7146f1`](https://github.com/es-shims/Array.prototype.findLast/commit/c7146f172d379e423abb95928ca29659d710dceb)
-- [Dev Deps] update `hasown`, `tape` [`16149a0`](https://github.com/es-shims/Array.prototype.findLast/commit/16149a0cdf6e8a78e386e435d8a6b1f83a792142)
-
-## [v1.2.4](https://github.com/es-shims/Array.prototype.findLast/compare/v1.2.3...v1.2.4) - 2024-02-05
-
-### Commits
-
-- [Deps] update `call-bind`, `define-properties`, `es-abstract`, `es-shim-unscopables`, `get-intrinsic` [`6960289`](https://github.com/es-shims/Array.prototype.findLast/commit/6960289aad2898b3c1c3b874937fe171ccd195cb)
-- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`96e976a`](https://github.com/es-shims/Array.prototype.findLast/commit/96e976af6cbe6240472bf6ac509526e66bb48fbc)
-- [Dev Deps] update `aud`, `npmignore`, `tape` [`e41c671`](https://github.com/es-shims/Array.prototype.findLast/commit/e41c6718bb4e1f498bc0c7d850fe6f595e6314d1)
-- [Dev Deps] use `hasown` instead of `has` [`3e81897`](https://github.com/es-shims/Array.prototype.findLast/commit/3e818971d0432e11e639d4e0f13fba7ca7f1392d)
-- [Dev Deps] update `object-inspect`, `tape` [`09387d9`](https://github.com/es-shims/Array.prototype.findLast/commit/09387d910af91741959ee9106f20b8379b80fdcb)
-
-## [v1.2.3](https://github.com/es-shims/Array.prototype.findLast/compare/v1.2.2...v1.2.3) - 2023-08-29
-
-### Commits
-
-- [Deps] update `define-properties`, `es-abstract`, `get-intrinsic` [`ed6e699`](https://github.com/es-shims/Array.prototype.findLast/commit/ed6e69963e3b7252ce6fc82a92f0843bf92e2cb8)
-- [Tests] add passing test262 test [`ba57e7f`](https://github.com/es-shims/Array.prototype.findLast/commit/ba57e7fb3d85c5d022f84538ac610cbbad3a1f06)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`fdf9269`](https://github.com/es-shims/Array.prototype.findLast/commit/fdf9269de92629dbbb101e91971efbab45634020)
-- [Tests] use `globalthis` [`d56fd28`](https://github.com/es-shims/Array.prototype.findLast/commit/d56fd280792c2fa78d6b4efd9c419df5bf49e6d8)
-
-## [v1.2.2](https://github.com/es-shims/Array.prototype.findLast/compare/v1.2.1...v1.2.2) - 2022-11-02
-
-### Commits
-
-- [meta] use `npmignore` to autogenerate an npmignore file [`c8bd8e9`](https://github.com/es-shims/Array.prototype.findLast/commit/c8bd8e9410e3b0468754bcc722d10eade90d6b8d)
-- [Deps] update `es-abstract`, `get-intrinsic` [`7dd1e37`](https://github.com/es-shims/Array.prototype.findLast/commit/7dd1e3706aa4d1dc8007dc430ad721b787cceece)
-- [actions] update rebase action to use reusable workflow [`116bfa3`](https://github.com/es-shims/Array.prototype.findLast/commit/116bfa3374f7adbe4363ee186ae397d6175a1386)
-- [Deps] update `define-properties`, `es-abstract`, `get-intrinsic` [`8a6fcb5`](https://github.com/es-shims/Array.prototype.findLast/commit/8a6fcb543f3854f4124b26a60d651f26cb836658)
-- [Dev Deps] update `es-value-fixtures`, `object-inspect`, `tape` [`899e29a`](https://github.com/es-shims/Array.prototype.findLast/commit/899e29acdeb046b92e6a19739cc97f0605bd074d)
-- [Dev Deps] update `aud`, `tape` [`2019883`](https://github.com/es-shims/Array.prototype.findLast/commit/2019883d4a054b95856b6d421e106b9a0fe0f20b)
-- [Tests] add indication of whether it was shimmed [`c940767`](https://github.com/es-shims/Array.prototype.findLast/commit/c9407677645d551481e8b98f96297fec7518165a)
-
-## [v1.2.1](https://github.com/es-shims/Array.prototype.findLast/compare/v1.2.0...v1.2.1) - 2022-04-11
-
-### Commits
-
-- [Refactor] use `es-shim-unscopables` [`e85dfc7`](https://github.com/es-shims/Array.prototype.findLast/commit/e85dfc7f324f61e1dc2c99129f4bcc7837ce3ac4)
-
-## [v1.2.0](https://github.com/es-shims/Array.prototype.findLast/compare/v1.1.1...v1.2.0) - 2022-04-11
-
-### Commits
-
-- [actions] reuse common workflows [`47e3be7`](https://github.com/es-shims/Array.prototype.findLast/commit/47e3be7cda282144ddc18204534ec5983055a48e)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` [`da9ec92`](https://github.com/es-shims/Array.prototype.findLast/commit/da9ec926ee4393d8cf2e2b74202a059a92ef59ac)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`2658604`](https://github.com/es-shims/Array.prototype.findLast/commit/26586043f36390c4967972c2caf318c0bbf583fb)
-- [actions] update codecov uploader [`9e4ac5e`](https://github.com/es-shims/Array.prototype.findLast/commit/9e4ac5e104a2f258cb818a19d3e6eb4023d1edd3)
-- [New] `shim`/`auto`: add `findLast` to `Symbol.unscopables` [`a3703b0`](https://github.com/es-shims/Array.prototype.findLast/commit/a3703b0dbeefb1dcd4c4fcec9f89c67bc7513821)
-- [meta] use `prepublishOnly` script for npm 7+ [`499fd61`](https://github.com/es-shims/Array.prototype.findLast/commit/499fd61f61d094d997b53c34628e477089b6ff96)
-- [Deps] update `es-abstract` [`9833a38`](https://github.com/es-shims/Array.prototype.findLast/commit/9833a38b6f6d949636fca1e945b2eee1812e142b)
-- [Deps] update `es-abstract` [`3055ac5`](https://github.com/es-shims/Array.prototype.findLast/commit/3055ac5ad56eb224f72c4cc18a06d0af06c6d2a1)
-- [Dev Deps] update `@es-shims/api` [`4639a6b`](https://github.com/es-shims/Array.prototype.findLast/commit/4639a6b10b3ecb84e1bc3e645cad1c60de8d99da)
-
-## [v1.1.1](https://github.com/es-shims/Array.prototype.findLast/compare/v1.1.0...v1.1.1) - 2021-10-01
-
-### Commits
-
-- [Refactor] remove ESM entry points [`10118cc`](https://github.com/es-shims/Array.prototype.findLast/commit/10118cc9b896f4c7fa01bfbab17018400b2a7ddb)
-- [Tests] add new tests from test262 [`11a6b0a`](https://github.com/es-shims/Array.prototype.findLast/commit/11a6b0a9d34bc6bbd8271b37594ec9ba5fd4ca87)
-- [Deps] update `es-abstract` [`ad74212`](https://github.com/es-shims/Array.prototype.findLast/commit/ad7421298490b3355b1d3f0a8fa51b8704e5a0ba)
-- [readme] fix URLs [`ea7f11e`](https://github.com/es-shims/Array.prototype.findLast/commit/ea7f11e9ee4961c68104ba43958f5a45a0cffa65)
-- [Dev Deps] update `@ljharb/eslint-config`, `@es-shims/api` [`b834c11`](https://github.com/es-shims/Array.prototype.findLast/commit/b834c114ae5bea9c1002a31574545b01c479c2fd)
-
-## [v1.1.0](https://github.com/es-shims/Array.prototype.findLast/compare/v1.0.0...v1.1.0) - 2021-08-07
-
-### Commits
-
-- [New] add ESM entry points [`4830a17`](https://github.com/es-shims/Array.prototype.findLast/commit/4830a173290c5b6fbfda494936ebfc13fb188e9b)
-- [Fix] ES3 engines: ensure nullish receiver throws [`3483d48`](https://github.com/es-shims/Array.prototype.findLast/commit/3483d489b0a2c17509d34aa386de8b83d4c6c0a1)
-- [Fix] add missing entry points to `exports` [`db8fe56`](https://github.com/es-shims/Array.prototype.findLast/commit/db8fe56e3196ea8e74b6c4bda67efef03f6c6594)
-- [Dev Deps] update `eslint`, `tape` [`a59f069`](https://github.com/es-shims/Array.prototype.findLast/commit/a59f069678049d3d8589c2ea22cf65160998fde3)
-- [Deps] update `es-abstract` [`4faa274`](https://github.com/es-shims/Array.prototype.findLast/commit/4faa27421b982962f4b68e199308bfc25300ccc4)
-
-## v1.0.0 - 2021-07-13
-
-### Commits
-
-- Implementation & Tests [`70cf3b1`](https://github.com/es-shims/Array.prototype.findLast/commit/70cf3b1254a43d7fc32bc7726f6c372656f84182)
-- Initial commit [`d94083f`](https://github.com/es-shims/Array.prototype.findLast/commit/d94083fc3de59677540a3021c6f3082a22a804e6)
-- npm init [`e016a98`](https://github.com/es-shims/Array.prototype.findLast/commit/e016a98c2ee504e43a7d6018fae31cbe972c1db9)
-- Only apps should have lockfiles [`cb11c67`](https://github.com/es-shims/Array.prototype.findLast/commit/cb11c670b831ede1df53cf312dc6b0bcd96236cc)
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/LICENSE b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/LICENSE
deleted file mode 100644
index 40680dc4..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 ECMAScript Shims
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/README.md b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/README.md
deleted file mode 100644
index cce0632d..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# array.prototype.findlast [![Version Badge][npm-version-svg]][package-url]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ESnext spec-compliant `Array.prototype.findLast` shim/polyfill/replacement that works as far down as ES3.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the proposed [spec](https://tc39.es/proposal-array-find-from-last).
-
-Because `Array.prototype.findLast` depends on a receiver (the `this` value), the main export takes the array to operate on as the first argument.
-
-## Getting started
-
-```sh
-npm install --save array.prototype.findlast
-```
-
-## Usage/Examples
-
-```js
-var findLast = require('array.prototype.findlast');
-var assert = require('assert');
-
-var arr = [1, [2], [], 3, [[4]]];
-var isNumber = function (x) { return typeof x === 'number' };
-
-assert.deepEqual(findLast(arr, isNumber), 3);
-```
-
-```js
-var findLast = require('array.prototype.findlast');
-var assert = require('assert');
-/* when Array#findLast is not present */
-delete Array.prototype.findLast;
-var shimmed = findLast.shim();
-
-assert.equal(shimmed, findLast.getPolyfill());
-assert.deepEqual(arr.findLast(isNumber), findLast(arr, isNumber));
-```
-
-```js
-var findLast = require('array.prototype.findlast');
-var assert = require('assert');
-/* when Array#findLast is present */
-var shimmed = findLast.shim();
-
-assert.equal(shimmed, Array.prototype.findLast);
-assert.deepEqual(arr.findLast(isNumber), findLast(arr, isNumber));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/array.prototype.findlast
-[npm-version-svg]: https://versionbadg.es/es-shims/Array.prototype.findLast.svg
-[deps-svg]: https://david-dm.org/es-shims/Array.prototype.findLast.svg
-[deps-url]: https://david-dm.org/es-shims/Array.prototype.findLast
-[dev-deps-svg]: https://david-dm.org/es-shims/Array.prototype.findLast/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Array.prototype.findLast#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/array.prototype.findlast.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/array.prototype.findlast.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/array.prototype.findlast.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=array.prototype.findlast
-[codecov-image]: https://codecov.io/gh/es-shims/Array.prototype.findLast/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/es-shims/Array.prototype.findLast/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/Array.prototype.findLast
-[actions-url]: https://github.com/es-shims/Array.prototype.findLast
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/auto.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/implementation.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/implementation.js
deleted file mode 100644
index b43a76da..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/implementation.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-var $TypeError = require('es-errors/type');
-
-var Call = require('es-abstract/2024/Call');
-var Get = require('es-abstract/2024/Get');
-var IsCallable = require('es-abstract/2024/IsCallable');
-var LengthOfArrayLike = require('es-abstract/2024/LengthOfArrayLike');
-var ToBoolean = require('es-abstract/2024/ToBoolean');
-var ToObject = require('es-object-atoms/ToObject');
-var ToString = require('es-abstract/2024/ToString');
-
-module.exports = function findLast(predicate) {
- var O = ToObject(this);
- var len = LengthOfArrayLike(O);
-
- if (!IsCallable(predicate)) {
- throw new $TypeError('predicate must be a function');
- }
-
- var thisArg;
- if (arguments.length > 1) {
- thisArg = arguments[1];
- }
-
- var k = len - 1;
- while (k >= 0) {
- var Pk = ToString(k);
- var kValue = Get(O, Pk);
- var testResult = ToBoolean(Call(predicate, thisArg, [kValue, k, O]));
- if (testResult) {
- return kValue;
- }
- k -= 1;
- }
-
- return void undefined;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/index.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/index.js
deleted file mode 100644
index 74b67b73..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('call-bind');
-var callBound = require('call-bind/callBound');
-var RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var polyfill = getPolyfill();
-var shim = require('./shim');
-
-var $slice = callBound('Array.prototype.slice');
-
-var bound = callBind.apply(polyfill);
-// eslint-disable-next-line no-unused-vars
-var boundFindLast = function findLast(array, predicate) {
- RequireObjectCoercible(array);
- return bound(array, $slice(arguments, 1));
-};
-
-define(boundFindLast, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = boundFindLast;
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/package.json b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/package.json
deleted file mode 100644
index c85203fb..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/package.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "name": "array.prototype.findlast",
- "version": "1.2.5",
- "description": "An ESnext spec-compliant `Array.prototype.findLast` shim/polyfill/replacement that works as far down as ES3.",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/es-shims/Array.prototype.findLast/issues"
- },
- "homepage": "https://github.com/es-shims/Array.prototype.findLast#readme",
- "main": "index.js",
- "exports": {
- ".": "./index.js",
- "./auto": "./auto.js",
- "./polyfill": "./polyfill.js",
- "./implementation": "./implementation.js",
- "./shim": "./shim.js",
- "./package.json": "./package.json"
- },
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublishOnly": "safe-publish-latest",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "pretest": "npm run --silent lint && evalmd README.md",
- "posttest": "aud --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "test": "npm run tests-only",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "es-shim-api --bound",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/es-shims/Array.prototype.findLast.git"
- },
- "keywords": [
- "Array.prototype.findLast",
- "find",
- "findLast",
- "array",
- "ESnext",
- "shim",
- "polyfill",
- "last",
- "es-shim API"
- ],
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "devDependencies": {
- "@es-shims/api": "^2.4.2",
- "@ljharb/eslint-config": "^21.1.0",
- "aud": "^2.0.4",
- "auto-changelog": "^2.4.0",
- "es-value-fixtures": "^1.4.2",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "for-each": "^0.3.3",
- "globalthis": "^1.0.3",
- "has-strict-mode": "^1.0.1",
- "hasown": "^2.0.2",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "object-inspect": "^1.13.1",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.7.5"
- },
- "testling": {
- "files": [
- "test/index.js",
- "test/shimmed.js"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- }
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/polyfill.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/polyfill.js
deleted file mode 100644
index 968680bf..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
- return Array.prototype.findLast || implementation;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/shim.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/shim.js
deleted file mode 100644
index 1848dfc7..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/shim.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var getPolyfill = require('./polyfill');
-var shimUnscopables = require('es-shim-unscopables');
-
-module.exports = function shimFindLast() {
- var polyfill = getPolyfill();
- define(
- Array.prototype,
- { findLast: polyfill },
- { findLast: function () { return Array.prototype.findLast !== polyfill; } }
- );
-
- shimUnscopables('findLast');
-
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/implementation.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/implementation.js
deleted file mode 100644
index 7fdf95b7..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/implementation.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var implementation = require('../implementation');
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(implementation), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/index.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/index.js
deleted file mode 100644
index 903ca887..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var index = require('../');
-var callBind = require('call-bind');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', function (st) {
- st['throws'](callBind(index, null, undefined, function () {}), TypeError, 'undefined is not an object');
- st['throws'](callBind(index, null, null, function () {}), TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(index, t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/shimmed.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/shimmed.js
deleted file mode 100644
index 685b0287..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/shimmed.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-var orig = Array.prototype.findLast;
-
-require('../auto');
-
-var test = require('tape');
-var hasOwn = require('hasown');
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = function f() {}.name === 'f';
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.comment('shimmed: ' + (orig === Array.prototype.findLast ? 'no' : 'yes'));
-
- t.equal(Array.prototype.findLast.length, 1, 'Array#findLast has a length of 1');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Array.prototype.findLast.name, 'findLast', 'Array#findLast has name "findLast"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Array.prototype, 'findLast'), 'Array#findLast is not enumerable');
- et.end();
- });
-
- var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
- t.test('bad array/this value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Array.prototype.findLast.call(undefined, 'a'); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Array.prototype.findLast.call(null, 'a'); }, TypeError, 'null is not an object');
- st.end();
- });
-
- t.test('Symbol.unscopables', { skip: typeof Symbol !== 'function' || typeof Symbol.unscopables !== 'symbol' }, function (st) {
- st.ok(hasOwn(Array.prototype[Symbol.unscopables], 'findLast'), 'Array.prototype[Symbol.unscopables] has own `findLast` property');
- st.equal(Array.prototype[Symbol.unscopables].findLast, true, 'Array.prototype[Symbol.unscopables].findLast is true');
- st.end();
- });
-
- runTests(callBind(Array.prototype.findLast), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/tests.js b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/tests.js
deleted file mode 100644
index 8e6016cc..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/array.prototype.findlast/test/tests.js
+++ /dev/null
@@ -1,246 +0,0 @@
-var hasStrictMode = require('has-strict-mode')();
-var v = require('es-value-fixtures');
-var forEach = require('for-each');
-var inspect = require('object-inspect');
-var maxSafeInteger = require('es-abstract/helpers/maxSafeInteger');
-var global = require('globalthis')();
-
-var trueThunk = function () { return true; };
-var falseThunk = function () { return false; };
-
-var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false.
-var undefinedIfNoSparseBug = canDistinguishSparseFromUndefined ? undefined : { valueOf: function () { return 0; } };
-
-var createArrayLikeFromArray = function createArrayLikeFromArray(arr) {
- var o = {};
- for (var i = 0; i < arr.length; i += 1) {
- if (i in arr) {
- o[i] = arr[i];
- }
- }
- o.length = arr.length;
- return o;
-};
-
-var getTestArr = function () {
- var arr = [0, false, null, 'hej', true, undefinedIfNoSparseBug, 3, 2];
- delete arr[6];
- return arr;
-};
-
-module.exports = function (findLast, t) {
- forEach(v.nonArrays, function (nonArray) {
- if (nonArray != null) { // eslint-disable-line eqeqeq
- t.equal(
- findLast(nonArray, function () { return true; }),
- nonArray.length > 0 ? nonArray[nonArray.length - 1] : undefined,
- inspect(nonArray) + ' is not an array'
- );
- }
- });
-
- t.test('throws on a non-callable predicate', function (st) {
- forEach(v.nonFunctions, function (nonFunction) {
- st['throws'](
- function () { findLast([], nonFunction); },
- TypeError,
- inspect(nonFunction) + ' is not a Function'
- );
- });
-
- st.end();
- });
-
- t.test('passes the correct values to the callback', function (st) {
- st.plan(5);
-
- var expectedValue = {};
- var arr = [expectedValue];
- var context = {};
- findLast(arr, function (value, key, list) {
- st.equal(arguments.length, 3);
- st.equal(value, expectedValue, 'first argument is the value');
- st.equal(key, 0, 'second argument is the index');
- st.equal(list, arr, 'third argument is the array being iterated');
- st.equal(this, context, 'receiver is the expected value');
- return true;
- }, context);
-
- st.end();
- });
-
- t.test('does not visit elements added to the array after it has begun', function (st) {
- st.plan(2);
-
- var arr = [1, 2, 3];
- var i = 0;
- findLast(arr, function (a) {
- i += 1;
- arr.push(a + 3);
- return i > 3;
- });
- st.deepEqual(arr, [1, 2, 3, 6, 5, 4], 'array has received 3 new elements');
- st.equal(i, 3, 'findLast callback only called thrice');
-
- st.end();
- });
-
- t.test('does not visit elements deleted from the array after it has begun', function (st) {
- var arr = [1, 2, 3];
- var actual = [];
- findLast(arr, function (x, i) {
- actual.push([i, x]);
- delete arr[1];
- return false;
- });
- st.deepEqual(actual, [[2, 3], [1, undefined], [0, 1]]);
-
- st.end();
- });
-
- t.test('sets the right context when given none', function (st) {
- var context;
- findLast([1], function () { context = this; });
- st.equal(context, global, 'receiver is global object in sloppy mode');
-
- st.test('strict mode', { skip: !hasStrictMode }, function (sst) {
- findLast([1], function () {
- 'use strict';
-
- context = this;
- });
- sst.equal(context, undefined, 'receiver is undefined in strict mode');
- sst.end();
- });
-
- st.end();
- });
-
- t.test('empty array', function (st) {
- st.equal(findLast([], trueThunk), undefined, 'true thunk callback yields undefined');
- st.equal(findLast([], falseThunk), undefined, 'false thunk callback yields undefined');
-
- var counter = 0;
- var callback = function () { counter += 1; };
- findLast([], callback);
- st.equal(counter, 0, 'counter is not incremented');
-
- st.end();
- });
-
- t.equal(findLast([1, 2, 3], trueThunk), 3, 'returns last item if findLast callback returns true');
- t.equal(findLast([1, 2, 3], falseThunk), undefined, 'returns undefined if no callback returns true');
-
- t.test('stopping after N elements', function (st) {
- st.test('no context', function (sst) {
- var actual = {};
- var count = 0;
- findLast(getTestArr(), function (obj, index) {
- actual[index] = obj;
- count += 1;
- return count === 4;
- });
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.test('with context', function (sst) {
- var actual = {};
- var context = { actual: actual };
- var count = 0;
- findLast(getTestArr(), function (obj, index) {
- this.actual[index] = obj;
- count += 1;
- return count === 4;
- }, context);
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.test('arraylike, no context', function (sst) {
- var actual = {};
- var count = 0;
- findLast(createArrayLikeFromArray(getTestArr()), function (obj, index) {
- actual[index] = obj;
- count += 1;
- return count === 4;
- });
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.test('arraylike, context', function (sst) {
- var actual = {};
- var count = 0;
- var context = { actual: actual };
- findLast(createArrayLikeFromArray(getTestArr()), function (obj, index) {
- this.actual[index] = obj;
- count += 1;
- return count === 4;
- }, context);
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.end();
- });
-
- t.test('list arg boxing', function (st) {
- st.plan(3);
-
- findLast('bar', function (item, index, list) {
- st.equal(item, 'r', 'last letter matches');
- st.equal(typeof list, 'object', 'primitive list arg is boxed');
- st.equal(Object.prototype.toString.call(list), '[object String]', 'boxed list arg is a String');
- return true;
- });
-
- st.end();
- });
-
- t.test('array altered during loop', function (st) {
- var arr = ['Shoes', 'Car', 'Bike'];
- var results = [];
-
- findLast(arr, function (kValue) {
- if (results.length === 0) {
- arr.splice(1, 1);
- }
- results.push(kValue);
- });
-
- st.equal(results.length, 3, 'predicate called three times');
- st.deepEqual(results, ['Bike', 'Bike', 'Shoes']);
-
- results = [];
- arr = ['Skateboard', 'Barefoot'];
- findLast(arr, function (kValue) {
- if (results.length === 0) {
- arr.push('Motorcycle');
- arr[0] = 'Magic Carpet';
- }
-
- results.push(kValue);
- });
-
- st.equal(results.length, 2, 'predicate called twice');
- st.deepEqual(results, ['Barefoot', 'Magic Carpet']);
-
- st.end();
- });
-
- t.test('maximum index', function (st) {
- // https://github.com/tc39/test262/pull/3775
-
- var arrayLike = { length: Number.MAX_VALUE };
- var calledWithIndex = [];
-
- findLast(arrayLike, function (_, index) {
- calledWithIndex.push(index);
- return true;
- });
-
- st.deepEqual(calledWithIndex, [maxSafeInteger - 1], 'predicate invoked once');
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/call-bind b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/define-properties b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-abstract b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-errors b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-errors
deleted file mode 120000
index fccce4e7..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-errors
+++ /dev/null
@@ -1 +0,0 @@
-../../es-errors@1.3.0/node_modules/es-errors
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-object-atoms b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-object-atoms
deleted file mode 120000
index b10b707a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-object-atoms
+++ /dev/null
@@ -1 +0,0 @@
-../../es-object-atoms@1.1.1/node_modules/es-object-atoms
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-shim-unscopables b/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-shim-unscopables
deleted file mode 120000
index a0f0ba9f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlast@1.2.5/node_modules/es-shim-unscopables
+++ /dev/null
@@ -1 +0,0 @@
-../../es-shim-unscopables@1.1.0/node_modules/es-shim-unscopables
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.eslintrc b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.eslintrc
deleted file mode 100644
index af04f070..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.eslintrc
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "array-bracket-newline": 0,
- "id-length": 0,
- "new-cap": [2, {
- "capIsNewExceptions": [
- "GetIntrinsic",
- "Call",
- "Get",
- "IsCallable",
- "LengthOfArrayLike",
- "RequireObjectCoercible",
- "ToBoolean",
- "ToObject",
- "ToString",
- ],
- }],
- "no-magic-numbers": 0,
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "func-name-matching": 0,
- "max-lines-per-function": 0,
- "no-invalid-this": 1,
- "strict": 1,
- },
- },
- ],
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.github/FUNDING.yml b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.github/FUNDING.yml
deleted file mode 100644
index aaf59dc3..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/array.prototype.findlastindex
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.nycrc b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.nycrc
deleted file mode 100644
index bdd626ce..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/CHANGELOG.md b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/CHANGELOG.md
deleted file mode 100644
index 4d7e3f8c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/CHANGELOG.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.2.6](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.2.5...v1.2.6) - 2025-03-14
-
-### Commits
-
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `auto-changelog`, `es-value-fixtures`, `for-each`, `globalthis`, `has-strict-mode`, `object-inspect`, `tape` [`2012a88`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/2012a880c41f74183bcfa55df7c800e48ca192e0)
-- [Deps] update `call-bind`, `es-abstract`, `es-object-atoms`, `es-shim-unscopables` [`1c9fd19`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/1c9fd195dd01ff8546ef20ae11b5748b390e12de)
-- [Refactor] use `call-bound` directly [`78722d3`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/78722d3b00af5523e4071d87d9d2746d61b705f3)
-- [Tests] replace `aud` with `npm audit` [`cb689c1`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/cb689c1e11297a9202cd8f1c01299eb2aabde879)
-- [Dev Deps] add missing peer dep [`d3c92c4`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/d3c92c4070999ee5d5716334e683a1acee54633b)
-
-## [v1.2.5](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.2.4...v1.2.5) - 2024-03-19
-
-### Commits
-
-- [meta] remove useless ESM [`4ed36ab`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/4ed36ab7bde25f3b265a2769163409a939d9a4de)
-- [Deps] update `call-bind`, `es-abstract` [`a6e3816`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/a6e38162c958d3a54c73094a84fd27e9e48992d3)
-- [Refactor] use `es-object-atoms` where possible [`3fbee9b`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/3fbee9b07d97a472b59204360620a491ff1f3cdd)
-- [Dev Deps] update `hasown`, `tape` [`dc6356c`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/dc6356c69902912aa1eaee0f5677c6c64fb8ee11)
-
-## [v1.2.4](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.2.3...v1.2.4) - 2024-02-05
-
-### Commits
-
-- [Deps] update `call-bind`, `define-properties`, `es-abstract`, `es-shim-unscopables`, `get-intrinsic` [`b689455`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/b689455f6194d84d929bd678755a175aa63b1b37)
-- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`ca636e6`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/ca636e60abae73755c613117f9a8eccb49a32f48)
-- [Tests] use `functions-have-names` [`b91692c`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/b91692c2a695c0065805fcb4f6b6f081d27852c8)
-- [Dev Deps] update `aud`, `npmignore`, `tape` [`4f87dff`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/4f87dff212fd5f0b05bdd412e669b4536e8b06f9)
-- [Dev Deps] use `hasown` instead of `has` [`57ce292`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/57ce2920dc645c3dec27b3aa8bcbfff9b0bfd135)
-- [Dev Deps] update `object-inspect`, `tape` [`fa74bab`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/fa74babe7cf90ec07b8c12c3ab10e89b7093e0b4)
-
-## [v1.2.3](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.2.2...v1.2.3) - 2023-08-29
-
-### Commits
-
-- [Deps] update `define-properties`, `es-abstract`, `get-intrinsic` [`27e8133`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/27e8133ccdccab46896da19cd26e3147691a77eb)
-- [Tests] add passing test262 test [`678edb3`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/678edb3bc91b10298b4e72a5e471b1aa41f915dc)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`47abe8b`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/47abe8b2cc14ee1b9f4b785a9aa26947ba20305a)
-- [Tests] use `globalthis` [`0cf9142`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/0cf914237811822d9d5268a057c0c9a108b8e5c0)
-
-## [v1.2.2](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.2.1...v1.2.2) - 2022-11-02
-
-### Commits
-
-- [meta] use `npmignore` to autogenerate an npmignore file [`f910dc6`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/f910dc6e5999e6941892232810ae9b3910d925ec)
-- [Deps] update `es-abstract`, `get-intrinsic` [`6e44207`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/6e4420705d7435b8b9bb978e4858814ba0216fa5)
-- [actions] update rebase action to use reusable workflow [`aac0471`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/aac0471a0b2f0f44765ac6055211b58f26fa6636)
-- [Deps] update `define-properties`, `es-abstract`, `get-intrinsic` [`c1d1d70`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/c1d1d7083bfa8ab32a9e5560e4b2aa16ce9d0a6d)
-- [Dev Deps] update `es-value-fixtures`, `object-inspect`, `tape` [`64c4c0f`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/64c4c0f6dda4793c5d9db5110ec82c6004bcc4ef)
-- [Dev Deps] update `aud`, `tape` [`603fbac`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/603fbacf4d034298ff40ab6886f6af7031651acd)
-- [Tests] add indication of whether it was shimmed [`7d711f6`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/7d711f6e68c9c5e4e0556946d026c159f7d82f22)
-- [Tests] make nullish receiver tests more robust [`335cf53`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/335cf5381ec0bc7ce60de8824b736cb3b40918ae)
-
-## [v1.2.1](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.2.0...v1.2.1) - 2022-04-11
-
-### Commits
-
-- [Refactor] use `es-shim-unscopables` [`abe84ee`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/abe84ee8794ce9c84180bc01cf499a7bb2494b3d)
-
-## [v1.2.0](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.1.1...v1.2.0) - 2022-04-11
-
-### Commits
-
-- [actions] reuse common workflows [`670cc4c`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/670cc4c0b6f23b7f01d365a9afd2dd88ee2e4967)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `object-inspect`, `safe-publish-latest`, `tape` [`11bc460`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/11bc460ab842d2a08c43b67aab182e0697d65308)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`b076ad6`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/b076ad6ed9246f3139efa72d0ddbf2e0d861f982)
-- [actions] update codecov uploader [`0d62d86`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/0d62d8602c2d3ecefdd0965c25cafb2a864c0903)
-- [New] `shim`/`auto`: add `findLast` to `Symbol.unscopables` [`b09e4a6`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/b09e4a6a194366b45945c6d65cdcc64ca786e570)
-- [Deps] update `es-abstract` [`024128c`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/024128c1abc5b58863859ea8b9cf4c1cb1df548b)
-- [Deps] update `es-abstract` [`2dcab99`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/2dcab99e3ed43546cd6610b12d489d95d8e94d90)
-
-## [v1.1.1](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.1.0...v1.1.1) - 2021-10-01
-
-### Commits
-
-- [Refactor] remove unnecessary ESM files [`35161c7`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/35161c76758835dd3fbecdf0b5fbf41a3ce9f218)
-- [Tests] add new tests from test262 [`e26fa25`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/e26fa256601f60b1feb5918e4fbcc76d0d773d13)
-- [Deps] update `es-abstract` [`5ff80b1`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/5ff80b116f2e083ae72605275af0efec367f3a89)
-- [readme] fix URLs [`b962fe2`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/b962fe225fac8a450624d861b5d6e444526bcf32)
-- [Dev Deps] update `@ljharb/eslint-config`, `@es-shims/api` [`5aa11dd`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/5aa11dd23ee2bcdc9ca7d2d6007e7f44a9356743)
-
-## [v1.1.0](https://github.com/es-shims/Array.prototype.findLastIndex/compare/v1.0.0...v1.1.0) - 2021-08-07
-
-### Commits
-
-- [New] add ESM entry points [`ac5ada3`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/ac5ada3d359ff267e6933dd817f4106e6de2c157)
-- [Fix] ES3 engines: ensure nullish receiver throws [`4c6592a`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/4c6592a7962351e82bb1b06c79de496bf4bcd08d)
-- [Dev Deps] update `eslint`, `@tape` [`6895166`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/6895166742a738a80d19ac4eaa6f12c97a5c7814)
-- [Fix] add missing entry points to `exports` [`ac2f138`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/ac2f1384dcd9a9f736ce1c3c5dc7ac87e16c4f90)
-- [Deps] update `es-abstract` [`c379fb7`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/c379fb7681ea3bb078891bf394756b1086bc43e7)
-
-## v1.0.0 - 2021-07-13
-
-### Commits
-
-- Implementation & Tests [`cf5cae1`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/cf5cae1d78c0c74588a5baade5156950e17f4558)
-- Initial commit [`2778f1c`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/2778f1cc708cc79d3bdbc20d5b84d210b9670b8a)
-- npm init [`873482d`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/873482d650b6800e9484865c3b0d6d33664bcf9e)
-- Only apps should have lockfiles [`b7c73ee`](https://github.com/es-shims/Array.prototype.findLastIndex/commit/b7c73ee858f01b0b1ff70800e09c0bbc2632e1a5)
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/LICENSE b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/LICENSE
deleted file mode 100644
index 40680dc4..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 ECMAScript Shims
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/README.md b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/README.md
deleted file mode 100644
index 109ac788..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# array.prototype.findlastindex [![Version Badge][npm-version-svg]][package-url]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ESnext spec-compliant `Array.prototype.findLastIndex` shim/polyfill/replacement that works as far down as ES3.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the proposed [spec](https://tc39.es/proposal-array-find-from-last).
-
-Because `Array.prototype.findLastIndex` depends on a receiver (the `this` value), the main export takes the array to operate on as the first argument.
-
-## Getting started
-
-```sh
-npm install --save array.prototype.findlastindex
-```
-
-## Usage/Examples
-
-```js
-var findLastIndex = require('array.prototype.findlastindex');
-var assert = require('assert');
-
-var arr = [1, [2], [], 3, [[4]]];
-var isNumber = function (x) { return typeof x === 'number' };
-
-assert.deepEqual(findLastIndex(arr, isNumber), 3);
-```
-
-```js
-var findLastIndex = require('array.prototype.findlastindex');
-var assert = require('assert');
-/* when Array#findLastIndex is not present */
-delete Array.prototype.findLastIndex;
-var shimmed = findLastIndex.shim();
-
-assert.equal(shimmed, findLastIndex.getPolyfill());
-assert.deepEqual(arr.findLastIndex(isNumber), findLastIndex(arr, isNumber));
-```
-
-```js
-var findLastIndex = require('array.prototype.findlastindex');
-var assert = require('assert');
-/* when Array#findLastIndex is present */
-var shimmed = findLastIndex.shim();
-
-assert.equal(shimmed, Array.prototype.findLastIndex);
-assert.deepEqual(arr.findLastIndex(isNumber), findLastIndex(arr, isNumber));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/array.prototype.findlastindex
-[npm-version-svg]: https://versionbadg.es/es-shims/Array.prototype.findLastIndex.svg
-[deps-svg]: https://david-dm.org/es-shims/Array.prototype.findLastIndex.svg
-[deps-url]: https://david-dm.org/es-shims/Array.prototype.findLastIndex
-[dev-deps-svg]: https://david-dm.org/es-shims/Array.prototype.findLastIndex/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Array.prototype.findLastIndex#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/array.prototype.findlastindex.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/array.prototype.findlastindex.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/array.prototype.findlastindex.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=array.prototype.findlastindex
-[codecov-image]: https://codecov.io/gh/es-shims/Array.prototype.findLastIndex/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/es-shims/Array.prototype.findLastIndex/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/Array.prototype.findLastIndex
-[actions-url]: https://github.com/es-shims/Array.prototype.findLastIndex
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/auto.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/implementation.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/implementation.js
deleted file mode 100644
index 5dbea324..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/implementation.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-var $TypeError = require('es-errors/type');
-
-var Call = require('es-abstract/2024/Call');
-var Get = require('es-abstract/2024/Get');
-var IsCallable = require('es-abstract/2024/IsCallable');
-var LengthOfArrayLike = require('es-abstract/2024/LengthOfArrayLike');
-var ToBoolean = require('es-abstract/2024/ToBoolean');
-var ToObject = require('es-object-atoms/ToObject');
-var ToString = require('es-abstract/2024/ToString');
-
-module.exports = function findLastIndex(predicate) {
- var O = ToObject(this);
- var len = LengthOfArrayLike(O);
-
- if (!IsCallable(predicate)) {
- throw new $TypeError('predicate must be a function');
- }
-
- var thisArg;
- if (arguments.length > 1) {
- thisArg = arguments[1];
- }
-
- var k = len - 1;
- while (k >= 0) {
- var Pk = ToString(k);
- var kValue = Get(O, Pk);
- var testResult = ToBoolean(Call(predicate, thisArg, [kValue, k, O]));
- if (testResult) {
- return k;
- }
- k -= 1;
- }
-
- return -1;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/index.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/index.js
deleted file mode 100644
index d217f52c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('call-bind');
-var callBound = require('call-bound');
-var RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var polyfill = getPolyfill();
-var shim = require('./shim');
-
-var $slice = callBound('Array.prototype.slice');
-
-var bound = callBind.apply(polyfill);
-// eslint-disable-next-line no-unused-vars
-var boundFindLast = function findLastIndex(array, predicate) {
- RequireObjectCoercible(array);
- return bound(array, $slice(arguments, 1));
-};
-
-define(boundFindLast, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = boundFindLast;
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/package.json b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/package.json
deleted file mode 100644
index 1893e1df..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/package.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
- "name": "array.prototype.findlastindex",
- "version": "1.2.6",
- "description": "An ESnext spec-compliant `Array.prototype.findLastIndex` shim/polyfill/replacement that works as far down as ES3.",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/es-shims/Array.prototype.findLastIndex/issues"
- },
- "homepage": "https://github.com/es-shims/Array.prototype.findLastIndex#readme",
- "main": "index.js",
- "exports": {
- ".": "./index.js",
- "./auto": "./auto.js",
- "./polyfill": "./polyfill.js",
- "./implementation": "./implementation.js",
- "./shim": "./shim.js",
- "./package.json": "./package.json"
- },
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublishOnly": "safe-publish-latest",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "pretest": "npm run --silent lint",
- "posttest": "npx npm@\">= 10.2\" audit --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "test": "npm run tests-only",
- "prelint": "evalmd README.md",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "es-shim-api --bound",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/es-shims/Array.prototype.findLastIndex.git"
- },
- "keywords": [
- "Array.prototype.findLastIndex",
- "find",
- "findLast",
- "findLastIndex",
- "array",
- "ESnext",
- "shim",
- "polyfill",
- "last",
- "es-shim API"
- ],
- "dependencies": {
- "call-bind": "^1.0.8",
- "call-bound": "^1.0.4",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.9",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.1.1",
- "es-shim-unscopables": "^1.1.0"
- },
- "devDependencies": {
- "@es-shims/api": "^2.5.1",
- "@ljharb/eslint-config": "^21.1.1",
- "auto-changelog": "^2.5.0",
- "encoding": "^0.1.13",
- "es-value-fixtures": "^1.7.1",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "for-each": "^0.3.5",
- "functions-have-names": "^1.2.3",
- "globalthis": "^1.0.4",
- "has-strict-mode": "^1.1.0",
- "hasown": "^2.0.2",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "object-inspect": "^1.13.4",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.9.0"
- },
- "testling": {
- "files": [
- "test/index.js",
- "test/shimmed.js"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- }
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/polyfill.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/polyfill.js
deleted file mode 100644
index 8f85d0f8..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
- return Array.prototype.findLastIndex || implementation;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/shim.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/shim.js
deleted file mode 100644
index 46b30a09..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/shim.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var getPolyfill = require('./polyfill');
-var shimUnscopables = require('es-shim-unscopables');
-
-module.exports = function shimFindLastIndex() {
- var polyfill = getPolyfill();
- define(
- Array.prototype,
- { findLastIndex: polyfill },
- { findLastIndex: function () { return Array.prototype.findLastIndex !== polyfill; } }
- );
-
- shimUnscopables('findLastIndex');
-
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/implementation.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/implementation.js
deleted file mode 100644
index 7fdf95b7..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/implementation.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var implementation = require('../implementation');
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(implementation), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/index.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/index.js
deleted file mode 100644
index 903ca887..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var index = require('../');
-var callBind = require('call-bind');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', function (st) {
- st['throws'](callBind(index, null, undefined, function () {}), TypeError, 'undefined is not an object');
- st['throws'](callBind(index, null, null, function () {}), TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(index, t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/shimmed.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/shimmed.js
deleted file mode 100644
index 632b5fb5..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/shimmed.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var orig = Array.prototype.findLastIndex;
-
-require('../auto');
-
-var test = require('tape');
-var hasOwn = require('hasown');
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var supportsStrictMode = require('has-strict-mode')();
-var functionsHaveNames = require('functions-have-names')();
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.comment('shimmed: ' + (orig === Array.prototype.findLastIndex ? 'no' : 'yes'));
-
- t.equal(Array.prototype.findLastIndex.length, 1, 'Array#findLastIndex has a length of 1');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Array.prototype.findLastIndex.name, 'findLastIndex', 'Array#findLastIndex has name "findLastIndex"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Array.prototype, 'findLastIndex'), 'Array#findLastIndex is not enumerable');
- et.end();
- });
-
- t.test('bad array/this value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Array.prototype.findLastIndex.call(undefined, function () {}); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Array.prototype.findLastIndex.call(null, function () {}); }, TypeError, 'null is not an object');
- st.end();
- });
-
- t.test('Symbol.unscopables', { skip: typeof Symbol !== 'function' || typeof Symbol.unscopables !== 'symbol' }, function (st) {
- st.ok(hasOwn(Array.prototype[Symbol.unscopables], 'findLastIndex'), 'Array.prototype[Symbol.unscopables] has own `findLastIndex` property');
- st.equal(Array.prototype[Symbol.unscopables].findLastIndex, true, 'Array.prototype[Symbol.unscopables].findLastIndex is true');
- st.end();
- });
-
- runTests(callBind(Array.prototype.findLastIndex), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/tests.js b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/tests.js
deleted file mode 100644
index 2e1a3945..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/array.prototype.findlastindex/test/tests.js
+++ /dev/null
@@ -1,246 +0,0 @@
-var hasStrictMode = require('has-strict-mode')();
-var v = require('es-value-fixtures');
-var forEach = require('for-each');
-var inspect = require('object-inspect');
-var maxSafeInteger = require('es-abstract/helpers/maxSafeInteger');
-var global = require('globalthis')();
-
-var trueThunk = function () { return true; };
-var falseThunk = function () { return false; };
-
-var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false.
-var undefinedIfNoSparseBug = canDistinguishSparseFromUndefined ? undefined : { valueOf: function () { return 0; } };
-
-var createArrayLikeFromArray = function createArrayLikeFromArray(arr) {
- var o = {};
- for (var i = 0; i < arr.length; i += 1) {
- if (i in arr) {
- o[i] = arr[i];
- }
- }
- o.length = arr.length;
- return o;
-};
-
-var getTestArr = function () {
- var arr = [0, false, null, 'hej', true, undefinedIfNoSparseBug, 3, 2];
- delete arr[6];
- return arr;
-};
-
-module.exports = function (findLastIndex, t) {
- forEach(v.nonArrays, function (nonArray) {
- if (nonArray != null) { // eslint-disable-line eqeqeq
- t.equal(
- findLastIndex(nonArray, function () { return true; }),
- typeof nonArray.length === 'number' ? nonArray.length - 1 : -1,
- inspect(nonArray) + ' is not an array'
- );
- }
- });
-
- t.test('throws on a non-callable predicate', function (st) {
- forEach(v.nonFunctions, function (nonFunction) {
- st['throws'](
- function () { findLastIndex([], nonFunction); },
- TypeError,
- inspect(nonFunction) + ' is not a Function'
- );
- });
-
- st.end();
- });
-
- t.test('passes the correct values to the callback', function (st) {
- st.plan(5);
-
- var expectedValue = {};
- var arr = [expectedValue];
- var context = {};
- findLastIndex(arr, function (value, key, list) {
- st.equal(arguments.length, 3);
- st.equal(value, expectedValue, 'first argument is the value');
- st.equal(key, 0, 'second argument is the index');
- st.equal(list, arr, 'third argument is the array being iterated');
- st.equal(this, context, 'receiver is the expected value');
- return true;
- }, context);
-
- st.end();
- });
-
- t.test('does not visit elements added to the array after it has begun', function (st) {
- st.plan(2);
-
- var arr = [1, 2, 3];
- var i = 0;
- findLastIndex(arr, function (a) {
- i += 1;
- arr.push(a + 3);
- return i > 3;
- });
- st.deepEqual(arr, [1, 2, 3, 6, 5, 4], 'array has received 3 new elements');
- st.equal(i, 3, 'findLastIndex callback only called thrice');
-
- st.end();
- });
-
- t.test('does not visit elements deleted from the array after it has begun', function (st) {
- var arr = [1, 2, 3];
- var actual = [];
- findLastIndex(arr, function (x, i) {
- actual.push([i, x]);
- delete arr[1];
- return false;
- });
- st.deepEqual(actual, [[2, 3], [1, undefined], [0, 1]]);
-
- st.end();
- });
-
- t.test('sets the right context when given none', function (st) {
- var context;
- findLastIndex([1], function () { context = this; });
- st.equal(context, global, 'receiver is global object in sloppy mode');
-
- st.test('strict mode', { skip: !hasStrictMode }, function (sst) {
- findLastIndex([1], function () {
- 'use strict';
-
- context = this;
- });
- sst.equal(context, undefined, 'receiver is undefined in strict mode');
- sst.end();
- });
-
- st.end();
- });
-
- t.test('empty array', function (st) {
- st.equal(findLastIndex([], trueThunk), -1, 'true thunk callback yields -1');
- st.equal(findLastIndex([], falseThunk), -1, 'false thunk callback yields -1');
-
- var counter = 0;
- var callback = function () { counter += 1; };
- findLastIndex([], callback);
- st.equal(counter, 0, 'counter is not incremented');
-
- st.end();
- });
-
- t.equal(findLastIndex([1, 2, 3], trueThunk), 2, 'returns last index if findLastIndex callback returns true');
- t.equal(findLastIndex([1, 2, 3], falseThunk), -1, 'returns -1 if no callback returns true');
-
- t.test('stopping after N elements', function (st) {
- st.test('no context', function (sst) {
- var actual = {};
- var count = 0;
- findLastIndex(getTestArr(), function (obj, index) {
- actual[index] = obj;
- count += 1;
- return count === 4;
- });
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.test('with context', function (sst) {
- var actual = {};
- var context = { actual: actual };
- var count = 0;
- findLastIndex(getTestArr(), function (obj, index) {
- this.actual[index] = obj;
- count += 1;
- return count === 4;
- }, context);
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.test('arraylike, no context', function (sst) {
- var actual = {};
- var count = 0;
- findLastIndex(createArrayLikeFromArray(getTestArr()), function (obj, index) {
- actual[index] = obj;
- count += 1;
- return count === 4;
- });
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.test('arraylike, context', function (sst) {
- var actual = {};
- var count = 0;
- var context = { actual: actual };
- findLastIndex(createArrayLikeFromArray(getTestArr()), function (obj, index) {
- this.actual[index] = obj;
- count += 1;
- return count === 4;
- }, context);
- sst.deepEqual(actual, { 4: true, 5: undefinedIfNoSparseBug, 6: undefined, 7: 2 });
- sst.end();
- });
-
- st.end();
- });
-
- t.test('list arg boxing', function (st) {
- st.plan(3);
-
- findLastIndex('bar', function (item, index, list) {
- st.equal(item, 'r', 'last letter matches');
- st.equal(typeof list, 'object', 'primitive list arg is boxed');
- st.equal(Object.prototype.toString.call(list), '[object String]', 'boxed list arg is a String');
- return true;
- });
-
- st.end();
- });
-
- t.test('array altered during loop', function (st) {
- var arr = ['Shoes', 'Car', 'Bike'];
- var results = [];
-
- findLastIndex(arr, function (kValue) {
- if (results.length === 0) {
- arr.splice(1, 1);
- }
- results.push(kValue);
- });
-
- st.equal(results.length, 3, 'predicate called three times');
- st.deepEqual(results, ['Bike', 'Bike', 'Shoes']);
-
- results = [];
- arr = ['Skateboard', 'Barefoot'];
- findLastIndex(arr, function (kValue) {
- if (results.length === 0) {
- arr.push('Motorcycle');
- arr[0] = 'Magic Carpet';
- }
-
- results.push(kValue);
- });
-
- st.equal(results.length, 2, 'predicate called twice');
- st.deepEqual(results, ['Barefoot', 'Magic Carpet']);
-
- st.end();
- });
-
- t.test('maximum index', function (st) {
- // https://github.com/tc39/test262/pull/3775
-
- var arrayLike = { length: Number.MAX_VALUE };
- var calledWithIndex = [];
-
- findLastIndex(arrayLike, function (_, index) {
- calledWithIndex.push(index);
- return true;
- });
-
- st.deepEqual(calledWithIndex, [maxSafeInteger - 1], 'predicate invoked once');
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/call-bind b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/call-bound b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/call-bound
deleted file mode 120000
index 5171ab6f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/call-bound
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bound@1.0.4/node_modules/call-bound
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/define-properties b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-abstract b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-errors b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-errors
deleted file mode 120000
index fccce4e7..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-errors
+++ /dev/null
@@ -1 +0,0 @@
-../../es-errors@1.3.0/node_modules/es-errors
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-object-atoms b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-object-atoms
deleted file mode 120000
index b10b707a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-object-atoms
+++ /dev/null
@@ -1 +0,0 @@
-../../es-object-atoms@1.1.1/node_modules/es-object-atoms
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-shim-unscopables b/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-shim-unscopables
deleted file mode 120000
index a0f0ba9f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.findlastindex@1.2.6/node_modules/es-shim-unscopables
+++ /dev/null
@@ -1 +0,0 @@
-../../es-shim-unscopables@1.1.0/node_modules/es-shim-unscopables
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.editorconfig b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.editorconfig
deleted file mode 100644
index bc228f82..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 150
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.eslintrc b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.eslintrc
deleted file mode 100644
index 0f117d3f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.eslintrc
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "new-cap": [2, {
- "capIsNewExceptions": [
- "ArraySpeciesCreate",
- "Call",
- "CreateDataPropertyOrThrow",
- "FlattenIntoArray",
- "Get",
- "HasProperty",
- "IsArray",
- "Set",
- "ToIntegerOrInfinity",
- "ToLength",
- "ToObject",
- "ToString",
- ],
- }],
- "no-magic-numbers": 0,
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "func-name-matching": 0,
- "max-params": 0,
- "no-invalid-this": [1],
- },
- },
- ],
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.github/FUNDING.yml b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.github/FUNDING.yml
deleted file mode 100644
index d0f1148d..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/array.prototype.flat
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.nycrc b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.nycrc
deleted file mode 100644
index bdd626ce..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/CHANGELOG.md b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/CHANGELOG.md
deleted file mode 100644
index 6af29e47..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/CHANGELOG.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.3.3](https://github.com/es-shims/Array.prototype.flat/compare/v1.3.2...v1.3.3) - 2024-12-15
-
-### Commits
-
-- [actions] split out node 10-20, and 20+ [`1afcd57`](https://github.com/es-shims/Array.prototype.flat/commit/1afcd5757db2394fd6e007e36769dfd6dff5db08)
-- [Deps] update `call-bind`, `define-properties`, `es-abstract`, `es-shim-unscopables` [`152c437`](https://github.com/es-shims/Array.prototype.flat/commit/152c4375e86872c0c12788ef5247241cd6673cc6)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `auto-changelog`, `function-bind` `npmignore`, `object-inspect`, `tape` [`e39e33d`](https://github.com/es-shims/Array.prototype.flat/commit/e39e33dd08c291b9b5736cad67fd25b52e75cfa2)
-- [Tests] replace `aud` with `npm audit` [`6868723`](https://github.com/es-shims/Array.prototype.flat/commit/6868723579f62d7972c6bd0eab23554a1fc182f2)
-- [Dev Deps] add missing peer dep [`800f3e3`](https://github.com/es-shims/Array.prototype.flat/commit/800f3e3de50db2cadc5d7af9d273970f81a26f96)
-
-## [v1.3.2](https://github.com/es-shims/Array.prototype.flat/compare/v1.3.1...v1.3.2) - 2023-09-05
-
-### Commits
-
-- [Deps] update `define-properties`, `es-abstract` [`fb625eb`](https://github.com/es-shims/Array.prototype.flat/commit/fb625eb6935b2c59a16ca6a99348ab6bd99089ec)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`1fde275`](https://github.com/es-shims/Array.prototype.flat/commit/1fde275224a27cfc9347b22e953ad9db46823d05)
-
-## [v1.3.1](https://github.com/es-shims/Array.prototype.flat/compare/v1.3.0...v1.3.1) - 2022-11-02
-
-### Commits
-
-- [meta] use `npmignore` to autogenerate an npmignore file [`e339ed7`](https://github.com/es-shims/Array.prototype.flat/commit/e339ed71634921d770e8831458767e4564bfc018)
-- [meta] add `auto-changelog` [`bb5cbd6`](https://github.com/es-shims/Array.prototype.flat/commit/bb5cbd64544bcdb11d0dff24ea4a18dcb5ab7fd1)
-- [Deps] update `define-properties`, `es-abstract` [`8067910`](https://github.com/es-shims/Array.prototype.flat/commit/80679104268c99a3d01552024aeff5bfc39eb97e)
-- [actions] update rebase action to use reusable workflow [`d4d9b28`](https://github.com/es-shims/Array.prototype.flat/commit/d4d9b28870ba950d6a19f0ad85f09a35767fbc55)
-- [Dev Deps] update `aud`, `object-inspect`, `tape` [`d9d7300`](https://github.com/es-shims/Array.prototype.flat/commit/d9d730009cfe8d02ed1e0f7db0f5b4ebe7c11fae)
-
-
-
-1.3.0 / 2022-04-11
-=================
- * [New] `shim`/`auto`: add `flat` to `Symbol.unscopables`
- * [Deps] update `es-abstract`
- * [actions] reuse common workflows
- * [actions] update codecov uploader
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `aud`, `auto-changelog`, `object-inspect`, `safe-publish-latest`, `tape`
-
-1.2.5 / 2021-10-01
-=================
- * [readme] add github actions/codecov badges; remove travis badge
- * [Deps] update `call-bind`, `es-abstract`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `aud`, `has-strict-mode`, `object-inspect`, `tape`
- * [meta] use `prepublishOnly`, for npm 7+
- * [actions] use `node/install` instead of `node/run`; use `codecov` action
- * [actions] update workflows
- * [Tests] increase coverage
- * [meta] fix changelog for v1.2.4
-
-1.2.4 / 2020-11-18
-=================
- * [meta] do not publish Github Action workflows
- * [Deps] update `es-abstract`; add `call-bind` where applicable
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape`
- * [Tests] run `nyc` on all tests
- * [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner
- * [Tests] migrate tests to Github Actions
- * [actions] add "Allow Edits" workflow
- * [actions] switch Automatic Rebase workflow to `pull_request_target` event
-
-1.2.3 / 2019-12-12
-=================
- * [Refactor] use split-up `es-abstract` (65% bundle size decrease)
- * [Deps] update `es-abstract`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `object-inspect`
- * [meta] ESnext -> ES2019
- * [meta] add `funding` field
- * [Tests] use shared travis-ci configs
- * [actions] add automatic rebasing / merge commit blocking
-
-1.2.2 / 2019-10-10
-=================
- * [Deps] update `es-abstract`, `define-properties`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `evalmd`, `object-inspect`, `safe-publish-latest`, `tape`
- * [meta] create FUNDING.yml
- * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
- * [Tests] up to `node` `v12.11`, `v11.15`, `v10.16`, `v9.11`, `v8.16`, `v6.17`, `v4.9`; use `nvm install-latest-npm`
-
-1.2.1 / 2018-02-23
-=================
- * [Fix] Temporarily hack main entry, so it's compatible with other resolvers (#3)
- * [Dev Deps] update `eslint`, `nsp`, `tape`
- * [Tests] up to `node` `v9.6`, `v6.13`
-
-1.2.0 / 2018-01-18
-=================
- * [New] add "auto" entry point
- * [Fix] Move the receiver length check higher
- * [Fix] spec adjustments
- * [Refactor] adjust shouldFlatten logic
- * [Dev Deps] update `eslint`
- * [Tests] up to `node` `v9.4`
-
-1.1.1 / 2017-11-29
-=================
- * [Fix] avoid an extra hole in the array (https://github.com/es-shims/Array.prototype.flatMap/issues/1)
- * [Deps] update `es-abstract`
- * [Dev Deps] update `eslint`, `nsp`
- * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; pin included builds to LTS.
-
-1.1.0 / 2017-10-03
-=================
- * [New] add explicit setting of “length” on target array
- * [Fix] `FlattenIntoArray`: add assertion that `thisArg` and `mapperFunction` are both passed together
- * [Tests] make coverage required
-
-1.0.1 / 2017-10-02
-=================
- * Add readme
-
-1.0.0 / 2017-10-01
-=================
- * Initial release
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/LICENSE b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/LICENSE
deleted file mode 100644
index 999c081c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 ECMAScript Shims
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/README.md b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/README.md
deleted file mode 100644
index 712ffce3..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# array.prototype.flat [![Version Badge][npm-version-svg]][package-url]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ES2019 spec-compliant `Array.prototype.flat` shim/polyfill/replacement that works as far down as ES3.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the proposed [spec](https://tc39.github.io/proposal-flatMap/).
-
-Because `Array.prototype.flat` depends on a receiver (the `this` value), the main export takes the array to operate on as the first argument.
-
-## Getting started
-
-```sh
-npm install --save array.prototype.flat
-```
-
-## Usage/Examples
-
-```js
-var flat = require('array.prototype.flat');
-var assert = require('assert');
-
-var arr = [1, [2], [], 3, [[4]]];
-
-assert.deepEqual(flat(arr, 1), [1, 2, 3, [4]]);
-```
-
-```js
-var flat = require('array.prototype.flat');
-var assert = require('assert');
-/* when Array#flat is not present */
-delete Array.prototype.flat;
-var shimmedFlat = flat.shim();
-
-assert.equal(shimmedFlat, flat.getPolyfill());
-assert.deepEqual(arr.flat(), flat(arr));
-```
-
-```js
-var flat = require('array.prototype.flat');
-var assert = require('assert');
-/* when Array#flat is present */
-var shimmedIncludes = flat.shim();
-
-var mapper = function (x) { return [x, 1]; };
-
-assert.equal(shimmedIncludes, Array.prototype.flat);
-assert.deepEqual(arr.flat(mapper), flat(arr, mapper));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/array.prototype.flat
-[npm-version-svg]: https://versionbadg.es/es-shims/Array.prototype.flat.svg
-[deps-svg]: https://david-dm.org/es-shims/Array.prototype.flat.svg
-[deps-url]: https://david-dm.org/es-shims/Array.prototype.flat
-[dev-deps-svg]: https://david-dm.org/es-shims/Array.prototype.flat/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Array.prototype.flat#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/array.prototype.flat.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/array.prototype.flat.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/array.prototype.flat.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=array.prototype.flat
-[codecov-image]: https://codecov.io/gh/es-shims/Array.prototype.flat/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/es-shims/Array.prototype.flat/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/Array.prototype.flat
-[actions-url]: https://github.com/es-shims/Array.prototype.flat/actions
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/auto.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/implementation.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/implementation.js
deleted file mode 100644
index 4b9604ed..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/implementation.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-var ArraySpeciesCreate = require('es-abstract/2024/ArraySpeciesCreate');
-var FlattenIntoArray = require('es-abstract/2024/FlattenIntoArray');
-var Get = require('es-abstract/2024/Get');
-var ToIntegerOrInfinity = require('es-abstract/2024/ToIntegerOrInfinity');
-var ToLength = require('es-abstract/2024/ToLength');
-var ToObject = require('es-abstract/2024/ToObject');
-
-module.exports = function flat() {
- var O = ToObject(this);
- var sourceLen = ToLength(Get(O, 'length'));
-
- var depthNum = 1;
- if (arguments.length > 0 && typeof arguments[0] !== 'undefined') {
- depthNum = ToIntegerOrInfinity(arguments[0]);
- }
-
- var A = ArraySpeciesCreate(O, 0);
- FlattenIntoArray(A, O, sourceLen, 0, depthNum);
- return A;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/index.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/index.js
deleted file mode 100644
index cc9e0402..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('call-bind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var polyfill = getPolyfill();
-var shim = require('./shim');
-
-var boundFlat = callBind(polyfill);
-
-define(boundFlat, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = boundFlat;
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/package.json b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/package.json
deleted file mode 100644
index 2691c568..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "name": "array.prototype.flat",
- "version": "1.3.3",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "description": "An ES2019 spec-compliant `Array.prototype.flat` shim/polyfill/replacement that works as far down as ES3.",
- "license": "MIT",
- "main": "index.js",
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "pretest": "npm run --silent lint && evalmd README.md",
- "test": "npm run tests-only",
- "posttest": "npx npm@'>= 10.2' audit --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "es-shim-api --bound",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/es-shims/Array.prototype.flat.git"
- },
- "keywords": [
- "Array.prototype.flatten",
- "Array.prototype.flat",
- "flatten",
- "flat",
- "array",
- "ESnext",
- "shim",
- "polyfill",
- "flatMap",
- "Array.prototype.flatMap",
- "es-shim API"
- ],
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-shim-unscopables": "^1.0.2"
- },
- "devDependencies": {
- "@es-shims/api": "^2.5.1",
- "@ljharb/eslint-config": "^21.1.1",
- "auto-changelog": "^2.5.0",
- "covert": "^1.1.1",
- "encoding": "^0.1.13",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "function-bind": "^1.1.2",
- "has-strict-mode": "^1.0.1",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "object-inspect": "^1.13.3",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.9.0"
- },
- "testling": {
- "files": [
- "test/index.js",
- "test/shimmed.js"
- ],
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true,
- "startingVersion": "1.3.1"
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- }
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/polyfill.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/polyfill.js
deleted file mode 100644
index a8829b7a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
- return Array.prototype.flat || implementation;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/shim.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/shim.js
deleted file mode 100644
index ecc8dbee..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/shim.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var shimUnscopables = require('es-shim-unscopables');
-
-var getPolyfill = require('./polyfill');
-
-module.exports = function shimFlat() {
- var polyfill = getPolyfill();
-
- define(
- Array.prototype,
- { flat: polyfill },
- { flat: function () { return Array.prototype.flat !== polyfill; } }
- );
-
- shimUnscopables('flat');
-
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/implementation.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/implementation.js
deleted file mode 100644
index 5206668e..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/implementation.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var flat = require('../implementation');
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { flat.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { flat.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(flat), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/index.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/index.js
deleted file mode 100644
index 4e2192aa..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-var flatten = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', function (st) {
- st['throws'](flatten.bind(null, undefined, function () {}), TypeError, 'undefined is not an object');
- st['throws'](flatten.bind(null, null, function () {}), TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(flatten, t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/shimmed.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/shimmed.js
deleted file mode 100644
index a9f396ea..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/shimmed.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-require('../auto');
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var bind = require('function-bind');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = function f() {}.name === 'f';
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.equal(Array.prototype.flat.length, 0, 'Array#flat has a length of 0');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Array.prototype.flat.name, 'flat', 'Array#flat has name "flat"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Array.prototype, 'flat'), 'Array#flat is not enumerable');
- et.end();
- });
-
- var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
- t.test('bad array/this value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Array.prototype.flat.call(undefined, 'a'); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Array.prototype.flat.call(null, 'a'); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(bind.call(Function.call, Array.prototype.flat), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/tests.js b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/tests.js
deleted file mode 100644
index d05ea4d1..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/array.prototype.flat/test/tests.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-var testArray = function testArray(t, actual, expected, msg) {
- t.deepEqual(actual, expected, msg);
- t.equal(actual.length, expected.length, 'expected ' + expected.length + ', got ' + actual.length);
-};
-
-module.exports = function (flat, t) {
- t.test('flattens', function (st) {
- testArray(st, flat([1, [2], [[3]], [[['four']]]]), [1, 2, [3], [['four']]], 'missing depth only flattens 1 deep');
-
- testArray(st, flat([1, [2], [[3]], [[['four']]]], 1), [1, 2, [3], [['four']]], 'depth of 1 only flattens 1 deep');
- st.notDeepEqual(flat([1, [2], [[3]], [[['four']]]], 1), [1, 2, 3, ['four']], 'depth of 1 only flattens 1 deep: sanity check');
-
- testArray(st, flat([1, [2], [[3]], [[['four']]]], 2), [1, 2, 3, ['four']], 'depth of 2 only flattens 2 deep');
- st.notDeepEqual(flat([1, [2], [[3]], [[['four']]]], 2), [1, 2, 3, 'four'], 'depth of 2 only flattens 2 deep: sanity check');
-
- testArray(st, flat([1, [2], [[3]], [[['four']]]], 3), [1, 2, 3, 'four'], 'depth of 3 only flattens 3 deep');
- testArray(st, flat([1, [2], [[3]], [[['four']]]], Infinity), [1, 2, 3, 'four'], 'depth of Infinity flattens all the way');
-
- st.end();
- });
-
- t.test('sparse arrays', function (st) {
- // eslint-disable-next-line no-sparse-arrays
- st.deepEqual(flat([, [1]]), flat([[], [1]]), 'an array hole is treated the same as an empty array');
-
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/call-bind b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/define-properties b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/es-abstract b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/es-shim-unscopables b/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/es-shim-unscopables
deleted file mode 120000
index a0f0ba9f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flat@1.3.3/node_modules/es-shim-unscopables
+++ /dev/null
@@ -1 +0,0 @@
-../../es-shim-unscopables@1.1.0/node_modules/es-shim-unscopables
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.editorconfig b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.editorconfig
deleted file mode 100644
index bc228f82..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.editorconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-max_line_length = 150
-
-[CHANGELOG.md]
-indent_style = space
-indent_size = 2
-
-[*.json]
-max_line_length = off
-
-[Makefile]
-max_line_length = off
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.eslintrc b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.eslintrc
deleted file mode 100644
index 07c09185..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.eslintrc
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "new-cap": [2, {
- "capIsNewExceptions": [
- "ArraySpeciesCreate",
- "Call",
- "CreateDataPropertyOrThrow",
- "FlattenIntoArray",
- "Get",
- "HasProperty",
- "IsArray",
- "IsCallable",
- "Set",
- "ToLength",
- "ToObject",
- "ToString",
- ]
- }],
- "no-magic-numbers": 0,
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "no-invalid-this": [1],
- },
- },
- ],
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.github/FUNDING.yml b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.github/FUNDING.yml
deleted file mode 100644
index f80b0c40..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/array.prototype.flatmap
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.nycrc b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.nycrc
deleted file mode 100644
index bdd626ce..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/CHANGELOG.md b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/CHANGELOG.md
deleted file mode 100644
index 0b30d4d4..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/CHANGELOG.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.3.3](https://github.com/es-shims/Array.prototype.flatMap/compare/v1.3.2...v1.3.3) - 2024-12-15
-
-### Commits
-
-- [actions] split out node 10-20, and 20+ [`8727281`](https://github.com/es-shims/Array.prototype.flatMap/commit/87272812ed6ade6935c7429ee1daf1cfa54115ef)
-- [Tests] add test coverage [`6e78327`](https://github.com/es-shims/Array.prototype.flatMap/commit/6e7832790c36b320880f4b6d38dc31388d1fae3a)
-- [Deps] update `call-bind`, `es-abstract` [`e027dd1`](https://github.com/es-shims/Array.prototype.flatMap/commit/e027dd10ee63b3c3a98cc7e6ce8ad42b1100bdc9)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `auto-changelog`, `object-inspect`, `tape` [`7322d84`](https://github.com/es-shims/Array.prototype.flatMap/commit/7322d841e87ab17e4b929e92e73e8a20c3daf544)
-- [Dev Deps] update `aud`, `npmignore`, `object-inspect`, `tape` [`958bf5c`](https://github.com/es-shims/Array.prototype.flatMap/commit/958bf5c982cb0c4941dc2a6e873883e9f2c8d535)
-- [Deps] update `call-bind`, `define-properties`, `es-abstract`, `es-shim-unscopables` [`b3698fb`](https://github.com/es-shims/Array.prototype.flatMap/commit/b3698fb2320992f5ab85a486d1adef0105f739aa)
-- [Tests] replace `aud` with `npm audit` [`e0461ed`](https://github.com/es-shims/Array.prototype.flatMap/commit/e0461ed2288d37e2d878e3e64569313c04af6a64)
-- [Dev Deps] add missing peer dep [`e7160b5`](https://github.com/es-shims/Array.prototype.flatMap/commit/e7160b5ef9d624300cc189696e8019adaf6d67fc)
-
-## [v1.3.2](https://github.com/es-shims/Array.prototype.flatMap/compare/v1.3.1...v1.3.2) - 2023-09-06
-
-### Commits
-
-- [Deps] update `define-properties`, `es-abstract` [`1737863`](https://github.com/es-shims/Array.prototype.flatMap/commit/17378634d56fc4b75027764b54804d89c6f8d60f)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`2337759`](https://github.com/es-shims/Array.prototype.flatMap/commit/23377597983440102805d36f701408505b433ccd)
-
-## [v1.3.1](https://github.com/es-shims/Array.prototype.flatMap/compare/v1.3.0...v1.3.1) - 2022-11-02
-
-### Commits
-
-- [meta] use `npmignore` to autogenerate an npmignore file [`3587a34`](https://github.com/es-shims/Array.prototype.flatMap/commit/3587a34ca111ec36ffc46b4131f5b32d4d8a357c)
-- [meta] add `auto-changelog` [`d66bdea`](https://github.com/es-shims/Array.prototype.flatMap/commit/d66bdeac56f2c1803a72695230c80d8270ab2ecf)
-- [Deps] update `define-properties`, `es-abstract` [`d64c486`](https://github.com/es-shims/Array.prototype.flatMap/commit/d64c48639ec4958ed9a2627a4d7315ac1404687a)
-- [actions] update rebase action to use reusable workflow [`8d657d0`](https://github.com/es-shims/Array.prototype.flatMap/commit/8d657d094a2aafa7948eee73eaa0e56047c5d60d)
-- [Dev Deps] update `aud`, `object-inspect`, `tape` [`aa22741`](https://github.com/es-shims/Array.prototype.flatMap/commit/aa22741a4bbe8db6d448cc4ca5417ddec90ac01d)
-- [Tests] use `for-each` instead of `foreach` [`748a78d`](https://github.com/es-shims/Array.prototype.flatMap/commit/748a78dbddb08462c75916fde07746d34cfd5c5c)
-
-
-
-1.3.0 / 2022-04-11
-=================
- * [New] `shim`/`auto`: add `flatMap` to `Symbol.unscopables`
- * [Deps] update `call-bind`, `es-abstract`
- * [actions] reuse common workflows
- * [actions] update codecov uploader
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `aud`, `auto-changelog`, `object-inspect`, `safe-publish-latest`, `tape`
-
-1.2.5 / 2021-10-01
-=================
- * [readme] add github actions/codecov badges; update description; remove travis badge
- * [Deps] update `call-bind`, `es-abstract`; remove unused `function-bind`
- * [meta] use `prepublishOnly`, for npm 7+
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `aud`, `has-strict-mode`, `object-inspect`, `tape`
- * [actions] update workflows
- * [actions] use `node/install` instead of `node/run`; use `codecov` action
- * [Tests] increase coverage
-
-1.2.4 / 2020-11-18
-=================
- * [Deps] update `es-abstract`; use `call-bind` where applicable
- * [meta] do not publish github action workflows
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `tape`; add `aud`
- * [Tests] migrate tests to Github Actions
- * [Tests] run `nyc` on all tests
- * [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner
- * [actions] add "Allow Edits" workflow
- * [actions] switch Automatic Rebase workflow to `pull_request_target` event
-
-1.2.3 / 2019-12-12
-=================
- * [Refactor] use split-up `es-abstract` (65% bundle size decrease)
- * [Deps] update `es-abstract`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `object-inspect`
- * [meta] add `funding` field
- * [Tests] use shared travis-ci configs
- * [actions] add automatic rebasing / merge commit blocking
-
-1.2.2 / 2019-10-10
-=================
- * [Refactor] rename callback argument to `mapperFunction`, to match spec
- * [Deps] update `es-abstract`, `define-properties`
- * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `evalmd`, `object-inspect`, `safe-publish-latest`, `tape`
- * [meta] create FUNDING.yml
- * [Tests] up to `node` `v12.11`, `v11.15`, `v10.16`, `v9.11`, `v8.16`, `v6.17`, `v4.9`; use `nvm install-latest-npm`
- * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
-
-1.2.1 / 2018-02-23
-=================
- * [Fix] Temporarily hack main entry, so it's compatible with other resolvers
- * [Dev Deps] update `eslint`, `nsp`, `tape`
- * [Tests] up to `node` `v9.6`, `v6.13`
-
-1.2.0 / 2018-01-18
-=================
- * [New] add "auto" entry point
- * [Fix] Move the receiver length check higher
- * [Fix] spec adjustments
- * [Refactor] adjust shouldFlatten logic
- * [Dev Deps] update `eslint`, `object-inspect`
- * [Tests] up to `node` `v9.4`
-
-1.1.1 / 2017-11-29
-=================
- * [Fix] avoid an extra hole in the array (#1)
- * [Deps] update `es-abstract`
- * [Dev Deps] update `eslint`, `nsp`, `object-inspect`
- * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; pin included builds to LTS
-
-1.1.0 / 2017-10-03
-=================
- * [New] add explicit setting of “length” on target array
- * [Fix] `FlattenIntoArray`: add assertion that `thisArg` and `mapperFunction` are both passed together
- * [Tests] make coverage required
-
-1.0.1 / 2017-10-02
-=================
- * Add readme
-
-1.0.0 / 2017-10-01
-=================
- * Initial release
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/LICENSE b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/LICENSE
deleted file mode 100644
index 999c081c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 ECMAScript Shims
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/README.md b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/README.md
deleted file mode 100644
index a4ee7c23..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/README.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# array.prototype.flatmap [![Version Badge][npm-version-svg]][package-url]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ES2019 spec-compliant `Array.prototype.flatMap` shim/polyfill/replacement that works as far down as ES3.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://tc39.es/ecma262/#sec-array.prototype.flatmap).
-
-Because `Array.prototype.flatMap` depends on a receiver (the `this` value), the main export takes the array to operate on as the first argument.
-
-## Getting started
-
-```sh
-npm install --save array.prototype.flatmap
-```
-
-## Usage/Examples
-
-```js
-var flatMap = require('array.prototype.flatmap');
-var assert = require('assert');
-
-var arr = [1, [2], [], 3];
-
-var results = flatMap(arr, function (x, i) {
- assert.equal(x, arr[i]);
- return x;
-});
-
-assert.deepEqual(results, [1, 2, 3]);
-```
-
-```js
-var flatMap = require('array.prototype.flatmap');
-var assert = require('assert');
-/* when Array#flatMap is not present */
-delete Array.prototype.flatMap;
-var shimmedFlatMap = flatMap.shim();
-
-var mapper = function (x) { return [x, 1]; };
-
-assert.equal(shimmedFlatMap, flatMap.getPolyfill());
-assert.deepEqual(arr.flatMap(mapper), flatMap(arr, mapper));
-```
-
-```js
-var flatMap = require('array.prototype.flatmap');
-var assert = require('assert');
-/* when Array#flatMap is present */
-var shimmedIncludes = flatMap.shim();
-
-var mapper = function (x) { return [x, 1]; };
-
-assert.equal(shimmedIncludes, Array.prototype.flatMap);
-assert.deepEqual(arr.flatMap(mapper), flatMap(arr, mapper));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/array.prototype.flatmap
-[npm-version-svg]: https://versionbadg.es/es-shims/Array.prototype.flatMap.svg
-[deps-svg]: https://david-dm.org/es-shims/Array.prototype.flatMap.svg
-[deps-url]: https://david-dm.org/es-shims/Array.prototype.flatMap
-[dev-deps-svg]: https://david-dm.org/es-shims/Array.prototype.flatMap/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Array.prototype.flatMap#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/array.prototype.flatmap.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/array.prototype.flatmap.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/array.prototype.flatmap.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=array.prototype.flatmap
-[codecov-image]: https://codecov.io/gh/es-shims/Array.prototype.flatMap/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/es-shims/Array.prototype.flatMap/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/Array.prototype.flatMap
-[actions-url]: https://github.com/es-shims/Array.prototype.flatMap/actions
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/auto.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/implementation.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/implementation.js
deleted file mode 100644
index 894a85b2..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/implementation.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-var ArraySpeciesCreate = require('es-abstract/2024/ArraySpeciesCreate');
-var FlattenIntoArray = require('es-abstract/2024/FlattenIntoArray');
-var Get = require('es-abstract/2024/Get');
-var IsCallable = require('es-abstract/2024/IsCallable');
-var ToLength = require('es-abstract/2024/ToLength');
-var ToObject = require('es-abstract/2024/ToObject');
-
-module.exports = function flatMap(mapperFunction) {
- var O = ToObject(this);
- var sourceLen = ToLength(Get(O, 'length'));
-
- if (!IsCallable(mapperFunction)) {
- throw new TypeError('mapperFunction must be a function');
- }
-
- var T;
- if (arguments.length > 1) {
- T = arguments[1];
- }
-
- var A = ArraySpeciesCreate(O, 0);
- FlattenIntoArray(A, O, sourceLen, 0, 1, mapperFunction, T);
- return A;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/index.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/index.js
deleted file mode 100644
index 078ac0a5..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('call-bind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var polyfill = getPolyfill();
-var shim = require('./shim');
-
-var boundFlatMap = callBind(polyfill);
-
-define(boundFlatMap, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = boundFlatMap;
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/package.json b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/package.json
deleted file mode 100644
index ce6e770b..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/package.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "name": "array.prototype.flatmap",
- "version": "1.3.3",
- "author": {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "description": "An ES2019 spec-compliant `Array.prototype.flatMap` shim/polyfill/replacement that works as far down as ES3.",
- "license": "MIT",
- "main": "index",
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublishOnly": "safe-publish-latest",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "posttest": "npx npm@'>= 10.2' audit --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "prelint": "evalmd README.md",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "es-shim-api --bound",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git://github.com/es-shims/Array.prototype.flatMap.git"
- },
- "keywords": [
- "Array.prototype.flatMap",
- "flatMap",
- "array",
- "ESnext",
- "shim",
- "polyfill",
- "flatten",
- "Array.prototype.flatten",
- "es-shim API"
- ],
- "dependencies": {
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-shim-unscopables": "^1.0.2"
- },
- "devDependencies": {
- "@es-shims/api": "^2.5.1",
- "@ljharb/eslint-config": "^21.1.1",
- "auto-changelog": "^2.5.0",
- "encoding": "^0.1.13",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "for-each": "^0.3.3",
- "has-strict-mode": "^1.0.1",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "object-inspect": "^1.13.3",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.9.0"
- },
- "testling": {
- "files": [
- "test/index.js",
- "test/shimmed.js"
- ],
- "browsers": [
- "iexplore/6.0..latest",
- "firefox/3.0..6.0",
- "firefox/15.0..latest",
- "firefox/nightly",
- "chrome/4.0..10.0",
- "chrome/20.0..latest",
- "chrome/canary",
- "opera/10.0..latest",
- "opera/next",
- "safari/4.0..latest",
- "ipad/6.0..latest",
- "iphone/6.0..latest",
- "android-browser/4.2"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true,
- "startingVersion": "1.3.1"
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- }
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/polyfill.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/polyfill.js
deleted file mode 100644
index 716ae58b..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
- return Array.prototype.flatMap || implementation;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/shim.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/shim.js
deleted file mode 100644
index 41b4f05a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/shim.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var shimUnscopables = require('es-shim-unscopables');
-
-var getPolyfill = require('./polyfill');
-
-module.exports = function shimFlatMap() {
- var polyfill = getPolyfill();
-
- define(
- Array.prototype,
- { flatMap: polyfill },
- { flatMap: function () { return Array.prototype.flatMap !== polyfill; } }
- );
-
- shimUnscopables('flatMap');
-
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/implementation.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/implementation.js
deleted file mode 100644
index 3571c707..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/implementation.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var flatMap = require('../implementation');
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { flatMap.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { flatMap.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(flatMap), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/index.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/index.js
deleted file mode 100644
index 58a59fd3..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var flatMap = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { flatMap.call(undefined, function () {}); }, TypeError, 'undefined is not an object');
- st['throws'](function () { flatMap.call(null, function () {}); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(flatMap, t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/shimmed.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/shimmed.js
deleted file mode 100644
index 1af25798..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/shimmed.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-
-require('../auto');
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = function f() {}.name === 'f';
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.equal(Array.prototype.flatMap.length, 1, 'Array#flatMap has a length of 1');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(Array.prototype.flatMap.name, 'flatMap', 'Array#flatMap has name "flatMap"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Array.prototype, 'flatMap'), 'Array#flatMap is not enumerable');
- et.end();
- });
-
- var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
-
- t.test('bad array/this value', { skip: !supportsStrictMode }, function (st) {
- st['throws'](function () { return Array.prototype.flatMap.call(undefined, 'a'); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return Array.prototype.flatMap.call(null, 'a'); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(Array.prototype.flatMap), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/tests.js b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/tests.js
deleted file mode 100644
index e3a99b2e..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/array.prototype.flatmap/test/tests.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-var inspect = require('object-inspect');
-var forEach = require('for-each');
-
-module.exports = function (flatMap, t) {
- t.test('callback function', function (st) {
- forEach([[], {}, true, false, 42, 'foo', /a/g, null], function (nonFunction) {
- st['throws'](
- function () { flatMap([], nonFunction); },
- TypeError,
- inspect(nonFunction) + ' is not a function'
- );
- });
-
- st.end();
- });
-
- t.test('flatMaps', function (st) {
- var mapped = flatMap([1, [2], [3, 4]], function (x, i) {
- return [x, i];
- });
-
- var expected = [1, 0, [2], 1, [3, 4], 2];
- st.deepEqual(mapped, expected, 'array is flattened and mapped to tuples of item/index');
- st.equal(mapped.length, expected.length, 'array has expected length');
-
- var context = {};
- var actual;
- flatMap([1], function () { actual = this; }, context);
- st.equal(actual, context, 'thisArg works as expected');
-
- st.end();
- });
-
- t.test('sparse arrays', function (st) {
- var identity = function (x) { return x; };
- // eslint-disable-next-line no-sparse-arrays
- st.deepEqual(flatMap([, [1]], identity), flatMap([[], [1]], identity), 'an array hole is treated the same as an empty array');
-
- st.end();
- });
-
- t.test('test262: staging test from v8', function (st) {
- var arr1 = [0, 1, 2, 3];
- var f = function (e) {
- arr1[4] = 42;
- return e;
- };
- st.deepEqual(flatMap(arr1, f), [0, 1, 2, 3]);
-
- var arr2 = [0, 1, 2, 3];
- var g = function (e) {
- arr2.length = 3;
- return e;
- };
- st.deepEqual(flatMap(arr2, g), [0, 1, 2]);
-
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/call-bind b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/define-properties b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/es-abstract b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/es-shim-unscopables b/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/es-shim-unscopables
deleted file mode 120000
index a0f0ba9f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.flatmap@1.3.3/node_modules/es-shim-unscopables
+++ /dev/null
@@ -1 +0,0 @@
-../../es-shim-unscopables@1.1.0/node_modules/es-shim-unscopables
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.eslintrc b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.eslintrc
deleted file mode 100644
index 1e5a4a24..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.eslintrc
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "id-length": "off",
- "new-cap": ["error", {
- "capIsNewExceptions": [
- "ArrayCreate",
- "CompareArrayElements",
- "CreateDataPropertyOrThrow",
- "GetIntrinsic",
- "IsCallable",
- "LengthOfArrayLike",
- "SortIndexedProperties",
- "ToObject",
- "ToString",
- ],
- }],
- },
-
- "overrides": [
- {
- "files": "test/**",
- "rules": {
- "max-lines-per-function": "off",
- },
- },
- ]
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.github/FUNDING.yml b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.github/FUNDING.yml
deleted file mode 100644
index 3996c320..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.github/FUNDING.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# These are supported funding model platforms
-
-github: [ljharb]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: npm/array.prototype.tosorted
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.nycrc b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.nycrc
deleted file mode 100644
index bdd626ce..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/CHANGELOG.md b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/CHANGELOG.md
deleted file mode 100644
index e0b45481..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/CHANGELOG.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.1.4](https://github.com/es-shims/Array.prototype.toSorted/compare/v1.1.3...v1.1.4) - 2024-06-02
-
-### Fixed
-
-- [Refactor] update implementation to match latest spec [`#3`](https://github.com/es-shims/Array.prototype.toSorted/issues/3)
-
-### Commits
-
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `hasown`, `tape` [`159d118`](https://github.com/es-shims/Array.prototype.toSorted/commit/159d11848629e0468f9f10a1e36001f937c0c6ea)
-- [Deps] update `call-bind`, `es-abstract`, `es-errors` [`7d32e67`](https://github.com/es-shims/Array.prototype.toSorted/commit/7d32e67417f436d5e8a66bf8286b9ead9296c4f1)
-- [meta] add missing `engines.node` [`b49466b`](https://github.com/es-shims/Array.prototype.toSorted/commit/b49466b473d116b5a53209491163bfd2c3aa89bc)
-
-## [v1.1.3](https://github.com/es-shims/Array.prototype.toSorted/compare/v1.1.2...v1.1.3) - 2024-02-04
-
-### Commits
-
-- [Refactor] use `es-errors` where possible, so things that only need those do not need `get-intrinsic` [`6c089a5`](https://github.com/es-shims/Array.prototype.toSorted/commit/6c089a5712a25008daa5d3d9dbc9d4fa7c908a64)
-- [Deps] update `call-bind`, `define-properties`, `es-abstract`, `es-shim-unscopables`, `get-intrinsic` [`d096b56`](https://github.com/es-shims/Array.prototype.toSorted/commit/d096b56d30bb5f5b09649f285eee21e22e2db8f9)
-- [Dev Deps] update `aud`, `npmignore`, `tape` [`43cea6d`](https://github.com/es-shims/Array.prototype.toSorted/commit/43cea6dfaa05669f6a60bef860f2d6fbf86f167e)
-- [Dev Deps] use `hasown` instead of `has` [`cefe5dc`](https://github.com/es-shims/Array.prototype.toSorted/commit/cefe5dc1bbc2699ca03c3e4ae9ce7fc696a76ca8)
-- [Dev Deps] update `tape` [`ad8446e`](https://github.com/es-shims/Array.prototype.toSorted/commit/ad8446ecbca6f724458af81da3aa3ffcd3552825)
-
-## [v1.1.2](https://github.com/es-shims/Array.prototype.toSorted/compare/v1.1.1...v1.1.2) - 2023-09-07
-
-### Commits
-
-- [actions] use reusable workflows [`b3d4f1d`](https://github.com/es-shims/Array.prototype.toSorted/commit/b3d4f1dff2d0fcd30e5bb7591836f5c5133ef9be)
-- [Deps] update `define-properties`, `es-abstract`, `get-intrinsic` [`35ce967`](https://github.com/es-shims/Array.prototype.toSorted/commit/35ce96705f9201f9a416629446c7f8b739a3d0a7)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `tape` [`1a17c6a`](https://github.com/es-shims/Array.prototype.toSorted/commit/1a17c6a3492fbbb99f3543c70036c02e981d974a)
-
-## [v1.1.1](https://github.com/es-shims/Array.prototype.toSorted/compare/v1.1.0...v1.1.1) - 2022-11-03
-
-### Commits
-
-- [Deps] update `es-abstract`, `get-intrinsic` [`b10a2a3`](https://github.com/es-shims/Array.prototype.toSorted/commit/b10a2a30772369ed3640741345225799af108e97)
-- [actions] update rebase action to use reusable workflow [`8f49d78`](https://github.com/es-shims/Array.prototype.toSorted/commit/8f49d78ac5d679c052d544a7051c3b8e5c449052)
-- [Dev Deps] update `aud`, `tape` [`2d2741b`](https://github.com/es-shims/Array.prototype.toSorted/commit/2d2741b6a0e08d1b2dbe675759f33dc3db4924a2)
-
-## [v1.1.0](https://github.com/es-shims/Array.prototype.toSorted/compare/v1.0.0...v1.1.0) - 2022-08-14
-
-### Commits
-
-- [Tests] add coverage from https://github.com/tc39/test262/pull/3464 [`2172830`](https://github.com/es-shims/Array.prototype.toSorted/commit/21728306e552c80868753b0147dc5637e57ffd2b)
-- [meta] use `npmignore` to autogenerate an npmignore file [`972f761`](https://github.com/es-shims/Array.prototype.toSorted/commit/972f761599aaf97049a005974caa2d9b24581119)
-- [New] `shim`/`auto`: add `toSorted` to `Symbol.unscopables` [`2ad9bad`](https://github.com/es-shims/Array.prototype.toSorted/commit/2ad9bad51ab7d2e7cc579f6681809fe495682163)
-- [Deps] update `define-properties`, `es-abstract`, `get-intrinsic` [`e7b229d`](https://github.com/es-shims/Array.prototype.toSorted/commit/e7b229dbb0c199661f785dfa0d5403b81ed7811e)
-- [Dev Deps] update `@ljharb/eslint-config`, `functions-have-names`, `tape` [`2bccb92`](https://github.com/es-shims/Array.prototype.toSorted/commit/2bccb92d5314e3b86bb3ffc1144f0c86cdca285a)
-- [readme] fix link to spec [`0d024e6`](https://github.com/es-shims/Array.prototype.toSorted/commit/0d024e68e3d41b3ec8dbc8aa47e99d8987c91fea)
-
-## v1.0.0 - 2022-03-31
-
-### Commits
-
-- initial implementation, tests, readme [`a2882bf`](https://github.com/es-shims/Array.prototype.toSorted/commit/a2882bf9f2a5d0533450a37df13ca3c1b8178bef)
-- Initial commit [`f9d05c4`](https://github.com/es-shims/Array.prototype.toSorted/commit/f9d05c4275eeeb841f357c487606cf7c83235651)
-- [meta] do not publish workflow files [`ceed80a`](https://github.com/es-shims/Array.prototype.toSorted/commit/ceed80acc95688c872dd8c69292a30589a8a9020)
-- [Tests] temporarily use actions instead of composable workflows [`496789b`](https://github.com/es-shims/Array.prototype.toSorted/commit/496789bbfb7da7e2b2cac3398491e6b58b1f169f)
-- npm init [`9405760`](https://github.com/es-shims/Array.prototype.toSorted/commit/9405760c2f52001035087a0d60f4e06465e82546)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`474180c`](https://github.com/es-shims/Array.prototype.toSorted/commit/474180c1250ec0a0ffabc80aa2733fe4abe65036)
-- [meta] add version script [`49a3b80`](https://github.com/es-shims/Array.prototype.toSorted/commit/49a3b802020c54ead862d49365555a67ac786636)
-- Only apps should have lockfiles [`0db3a5a`](https://github.com/es-shims/Array.prototype.toSorted/commit/0db3a5a7607be2a7d11fa78ae9c43907e59bdf92)
-- [Deps] update `es-abstract` [`35de1c5`](https://github.com/es-shims/Array.prototype.toSorted/commit/35de1c532245469b50bd7296ca8c19470385c622)
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/LICENSE b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/LICENSE
deleted file mode 100644
index 40680dc4..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 ECMAScript Shims
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/README.md b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/README.md
deleted file mode 100644
index b162424d..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/README.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# array.prototype.tosorted [![Version Badge][npm-version-svg]][package-url]
-
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ESnext spec-compliant `Array.prototype.toSorted` shim/polyfill/replacement that works as far down as ES3.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the proposed [spec](https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toSorted).
-
-Because `Array.prototype.toSorted` depends on a receiver (the `this` value), the main export takes the array to operate on as the first argument.
-
-## Getting started
-
-```sh
-npm install --save array.prototype.tosorted
-```
-
-## Usage/Examples
-
-```js
-var toSorted = require('array.prototype.tosorted');
-var assert = require('assert');
-
-var input = [5, 4, 3, 2, 1, 0];
-
-var output = toSorted(input);
-
-assert.deepEqual(output, [0, 1, 2, 3, 4, 5]);
-assert.notEqual(output, input);
-assert.deepEqual(input, [5, 4, 3, 2, 1, 0]);
-```
-
-```js
-var toSorted = require('array.prototype.tosorted');
-var assert = require('assert');
-/* when Array#toSorted is not present */
-delete Array.prototype.toSorted;
-var shimmed = toSorted.shim();
-
-assert.equal(shimmed, toSorted.getPolyfill());
-assert.deepEqual(input.toSorted(), toSorted(input));
-```
-
-```js
-var toSorted = require('array.prototype.tosorted');
-var assert = require('assert');
-/* when Array#toSorted is present */
-var shimmed = toSorted.shim();
-
-assert.equal(shimmed, Array.prototype.toSorted);
-assert.deepEqual(input.toSorted(), toSorted(input));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/array.prototype.tosorted
-[npm-version-svg]: https://versionbadg.es/es-shims/Array.prototype.toSorted.svg
-[deps-svg]: https://david-dm.org/es-shims/Array.prototype.toSorted.svg
-[deps-url]: https://david-dm.org/es-shims/Array.prototype.toSorted
-[dev-deps-svg]: https://david-dm.org/es-shims/Array.prototype.toSorted/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/Array.prototype.toSorted#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/array.prototype.tosorted.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/array.prototype.tosorted.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/array.prototype.tosorted.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=array.prototype.tosorted
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/auto.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/implementation.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/implementation.js
deleted file mode 100644
index 46df9aef..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/implementation.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-var ArrayCreate = require('es-abstract/2024/ArrayCreate');
-var CompareArrayElements = require('es-abstract/2024/CompareArrayElements');
-var CreateDataPropertyOrThrow = require('es-abstract/2024/CreateDataPropertyOrThrow');
-var IsCallable = require('es-abstract/2024/IsCallable');
-var LengthOfArrayLike = require('es-abstract/2024/LengthOfArrayLike');
-var SortIndexedProperties = require('es-abstract/2024/SortIndexedProperties');
-var ToObject = require('es-abstract/2024/ToObject');
-var ToString = require('es-abstract/2024/ToString');
-
-var $TypeError = require('es-errors/type');
-
-module.exports = function toSorted(comparefn) {
- if (typeof comparefn !== 'undefined' && !IsCallable(comparefn)) {
- throw new $TypeError('`comparefn` must be a function'); // step 1
- }
-
- var O = ToObject(this); // step 2
- var len = LengthOfArrayLike(O); // step 3
- var A = ArrayCreate(len); // step 4
-
- // eslint-disable-next-line no-sequences
- var SortCompare = (0, function (x, y) { // step 5
- return CompareArrayElements(x, y, comparefn); // step 5.a
- });
-
- var sortedList = SortIndexedProperties(O, len, SortCompare, 'read-through-holes'); // step 6
-
- var j = 0; // step 7
- while (j < len) { // step 8
- CreateDataPropertyOrThrow(A, ToString(j), sortedList[j]); // step 8.a
- j += 1; // step 8.b
- }
-
- return A; // step 9
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/index.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/index.js
deleted file mode 100644
index 255f1283..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('call-bind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var polyfill = getPolyfill();
-var shim = require('./shim');
-
-var bound = callBind(polyfill);
-
-define(bound, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = bound;
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/package.json b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/package.json
deleted file mode 100644
index 750e5e2e..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "name": "array.prototype.tosorted",
- "version": "1.1.4",
- "description": "An ESnext spec-compliant `Array.prototype.toSorted` shim/polyfill/replacement that works as far down as ES3.",
- "main": "index.js",
- "exports": {
- ".": "./index.js",
- "./auto": "./auto.js",
- "./polyfill": "./polyfill.js",
- "./implementation": "./implementation.js",
- "./shim": "./shim.js",
- "./package.json": "./package.json"
- },
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "es-shim-api --bound && evalmd README.md",
- "pretest": "npm run --silent lint",
- "test": "npm run tests-only",
- "posttest": "aud --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/es-shims/Array.prototype.toSorted.git"
- },
- "keywords": [
- "javascript",
- "ecmascript",
- "shim",
- "polyfill",
- "es-shim API",
- "array",
- "sort",
- "sorted",
- "toSorted"
- ],
- "author": "Jordan Harband ",
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/es-shims/Array.prototype.toSorted/issues"
- },
- "homepage": "https://github.com/es-shims/Array.prototype.toSorted#readme",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
- "es-errors": "^1.3.0",
- "es-shim-unscopables": "^1.0.2"
- },
- "devDependencies": {
- "@es-shims/api": "^2.5.0",
- "@ljharb/eslint-config": "^21.1.1",
- "aud": "^2.0.4",
- "auto-changelog": "^2.4.0",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "functions-have-names": "^1.2.3",
- "has-strict-mode": "^1.0.1",
- "hasown": "^2.0.2",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.7.5"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- },
- "engines": {
- "node": ">= 0.4"
- }
-}
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/polyfill.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/polyfill.js
deleted file mode 100644
index 89c86209..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/polyfill.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-var implementation = require('./implementation');
-
-module.exports = function getPolyfill() {
- return Array.prototype.toSorted || implementation;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/shim.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/shim.js
deleted file mode 100644
index 7167f2e5..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/shim.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var shimUnscopables = require('es-shim-unscopables');
-
-var getPolyfill = require('./polyfill');
-
-module.exports = function shim() {
- var polyfill = getPolyfill();
-
- define(
- Array.prototype,
- { toSorted: polyfill },
- { toSorted: function () { return Array.prototype.toSorted !== polyfill; } }
- );
-
- shimUnscopables('toSorted');
-
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/implementation.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/implementation.js
deleted file mode 100644
index 76a80bc0..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/implementation.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-
-var implementation = require('../implementation');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(implementation), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/index.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/index.js
deleted file mode 100644
index 3fb83cb0..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-
-var bound = require('../');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { return bound.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return bound.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(bound, t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/shimmed.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/shimmed.js
deleted file mode 100644
index 65d20396..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/shimmed.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-require('../auto');
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-var hasStrictMode = require('has-strict-mode')();
-var functionsHaveNames = require('functions-have-names')();
-
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- var fn = Array.prototype.toSorted;
- t.equal(fn.length, 1, 'Array#toSorted has a length of 1');
- t.test('Function name', { skip: !functionsHaveNames }, function (st) {
- st.equal(fn.name, 'toSorted', 'Array#toSorted has name "toSorted"');
- st.end();
- });
-
- t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(Array.prototype, 'toSorted'), 'Array#toSorted is not enumerable');
- et.end();
- });
-
- t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
- /* eslint no-useless-call: 0 */
- st['throws'](function () { return fn.call(undefined); }, TypeError, 'undefined is not an object');
- st['throws'](function () { return fn.call(null); }, TypeError, 'null is not an object');
- st.end();
- });
-
- runTests(callBind(fn), t);
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/tests.js b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/tests.js
deleted file mode 100644
index 9f71e6cc..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/array.prototype.tosorted/test/tests.js
+++ /dev/null
@@ -1,150 +0,0 @@
-'use strict';
-
-var hasOwn = require('hasown');
-
-module.exports = function (toSorted, t) {
- var nums = [2, 1, 3];
- var result = toSorted(nums);
- t.deepEqual(
- result,
- [1, 2, 3],
- 'array is sorted'
- );
- t.notEqual(nums, result, 'original array is not returned');
- t.deepEqual(nums, [2, 1, 3], 'original array is unchanged');
-
- nums.sort();
- t.deepEqual(nums, result, 'mutated original matches result');
-
- t.deepEqual(
- toSorted('acab'),
- ['a', 'a', 'b', 'c'],
- 'string sorts to array'
- );
-
- var halfPoo = '\uD83D';
- var endPoo = '\uDCA9';
- var poo = halfPoo + endPoo;
- t.deepEqual(
- toSorted('a' + poo + 'c'),
- ['a', 'c', halfPoo, endPoo],
- 'code point is sorted as expected'
- );
-
- var arrayLikeLengthValueOf = {
- length: {
- valueOf: function () { return 2; }
- },
- 0: 4,
- 1: 0,
- 2: 1
- };
- t.deepEqual(toSorted(arrayLikeLengthValueOf), [0, 4]);
-
- t.test('not positive integer lengths', function (st) {
- st.deepEqual(toSorted({ length: -2 }), []);
- st.deepEqual(toSorted({ length: 'dog' }), []);
- st.deepEqual(toSorted({ length: NaN }), []);
-
- st.end();
- });
-
- t.test('getters', { skip: !Object.defineProperty }, function (st) {
- var getCalls = [];
-
- var arrayLike = {
- 0: 2,
- 1: 1,
- 2: 3,
- length: 3
- };
- Object.defineProperty(arrayLike, '0', {
- get: function () {
- getCalls.push(0);
- return 2;
- }
- });
- Object.defineProperty(arrayLike, '1', {
- get: function () {
- getCalls.push(1);
- return 1;
- }
- });
- Object.defineProperty(arrayLike, '2', {
- get: function () {
- getCalls.push(2);
- return 3;
- }
- });
-
- var up = { gross: true };
- st['throws'](
- function () {
- toSorted(arrayLike, function () {
- throw up;
- });
- },
- up
- );
- st.deepEqual(getCalls, [0, 1, 2]);
-
- var arr1 = [5, 0, 3];
- Object.defineProperty(arr1, '0', {
- get: function () {
- arr1.push(1);
- return 5;
- }
- });
- st.deepEqual(toSorted(arr1), [0, 3, 5]);
-
- var arr = [5, 1, 4, 6, 3];
- Array.prototype[3] = 2; // eslint-disable-line no-extend-native
- st.teardown(function () {
- delete Array.prototype[3];
- });
-
- Object.defineProperty(arr, '2', {
- get: function () {
- arr.length = 1;
- return 4;
- }
- });
-
- st.deepEqual(toSorted(arr), [1, 2, 4, 5, undefined]);
-
- st.end();
- });
-
- t.test('too-large lengths', function (st) {
- var arrayLike = {
- 0: 0,
- 4294967295: 4294967295,
- 4294967296: 4294967296,
- length: Math.pow(2, 32)
- };
-
- st['throws'](
- function () { toSorted(arrayLike); },
- RangeError
- );
-
- st.end();
- });
-
- t.deepEqual(toSorted(true), [], 'true yields empty array');
- t.deepEqual(toSorted(false), [], 'false yields empty array');
-
- t.test('holes', function (st) {
- var arr = [3, /* hole */, 4, /* hole */, 1]; // eslint-disable-line no-sparse-arrays
- Array.prototype[3] = 2; // eslint-disable-line no-extend-native
- st.teardown(function () {
- delete Array.prototype[3];
- });
-
- var sorted = toSorted(arr);
- st.deepEqual(sorted, [1, 2, 3, 4, undefined]);
- st.ok(hasOwn(sorted, 4));
-
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/call-bind b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/define-properties b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-abstract b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-errors b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-errors
deleted file mode 120000
index fccce4e7..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-errors
+++ /dev/null
@@ -1 +0,0 @@
-../../es-errors@1.3.0/node_modules/es-errors
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-shim-unscopables b/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-shim-unscopables
deleted file mode 120000
index a0f0ba9f..00000000
--- a/frontend/node_modules/.pnpm/array.prototype.tosorted@1.1.4/node_modules/es-shim-unscopables
+++ /dev/null
@@ -1 +0,0 @@
-../../es-shim-unscopables@1.1.0/node_modules/es-shim-unscopables
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/array-buffer-byte-length b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/array-buffer-byte-length
deleted file mode 120000
index c5ef2d6a..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/array-buffer-byte-length
+++ /dev/null
@@ -1 +0,0 @@
-../../array-buffer-byte-length@1.0.2/node_modules/array-buffer-byte-length
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.editorconfig b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.editorconfig
deleted file mode 100644
index eaa21416..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.editorconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-root = true
-
-[*]
-indent_style = tab;
-insert_final_newline = true;
-quote_type = auto;
-space_after_anonymous_functions = true;
-space_after_control_statements = true;
-spaces_around_operators = true;
-trim_trailing_whitespace = true;
-spaces_in_brackets = false;
-end_of_line = lf;
-
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.eslintrc b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.eslintrc
deleted file mode 100644
index 963e2a84..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.eslintrc
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "root": true,
-
- "extends": "@ljharb",
-
- "rules": {
- "id-length": 0,
- "max-params": 0,
- "max-statements": 0,
- "multiline-comment-style": 0,
- "new-cap": [2, {
- "capIsNewExceptions": [
- "IsSharedArrayBuffer",
- "ToIntegerOrInfinity",
- "GetIntrinsic",
- "IsDetachedBuffer",
- "SpeciesConstructor",
- ],
- }],
- },
-
- "overrides": [
- {
- "files": "test/**",
- "globals": {
- "ArrayBuffer": false,
- "Uint8Array": false,
- },
- "rules": {
- "max-lines-per-function": 0,
- },
- },
- ],
-}
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.nycrc b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.nycrc
deleted file mode 100644
index bdd626ce..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/.nycrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "all": true,
- "check-coverage": false,
- "reporter": ["text-summary", "text", "html", "json"],
- "exclude": [
- "coverage",
- "test"
- ]
-}
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/CHANGELOG.md b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/CHANGELOG.md
deleted file mode 100644
index 5ba5072d..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/CHANGELOG.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## [v1.0.4](https://github.com/es-shims/ArrayBuffer.prototype.slice/compare/v1.0.3...v1.0.4) - 2024-12-15
-
-### Commits
-
-- [actions] split out node 10-20, and 20+ [`5e59635`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/5e59635c948994b613c544b4e94fe93536d6b213)
-- [Deps] update `call-bind`, `es-abstract`, `get-intrinsic` [`0afbb59`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/0afbb5942574055a8a3afdf0f69f60313e3f1af2)
-- [Dev Deps] update `@es-shims/api`, `auto-changelog`, `es-value-fixtures`, `object-inspect`, `tape` [`d76caf4`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/d76caf4880ef358cf5384a6eb29d0f2f67e4d3a8)
-- [Deps] update `call-bind`, `es-abstract`, `es-errors`, `get-intrinsic` [`2b374a2`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/2b374a2d4078d9122ac30bdecd8a8fae740aa74c)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `object-inspect`, `tape` [`a24fd39`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/a24fd39370d891ea3439f9d7a1c42183c0aa1bf7)
-- [Tests] replace `aud` with `npm audit` [`c704fb0`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/c704fb0b1651ceb56b609a5b4646a993fc868219)
-- [Deps] remove unused dependency [`0274b32`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/0274b32ab1d345fbf70745a79dd7a44f844179bb)
-- [Dev Deps] add missing peer dep [`673f754`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/673f754797dd0c40801cca2f32ff08b372448c6b)
-
-## [v1.0.3](https://github.com/es-shims/ArrayBuffer.prototype.slice/compare/v1.0.2...v1.0.3) - 2024-02-04
-
-### Commits
-
-- [Deps] update `array-buffer-byte-length`, `call-bind`, `define-properties`, `es-abstract`, `get-intrinsic`, `is-array-buffer` [`d9b6859`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/d9b68591ff509613d0dfc4036539ba4e0dc34931)
-- [Dev Deps] update `aud`, `npmignore`, `object-inspect`, `tape` [`38cb58d`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/38cb58dfa3f3c8b11bfb2144f8e7cc74dd461f5e)
-- [Refactor] use `es-errors` where possible, so things that only need those do not need `get-intrinsic` [`5c07bef`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/5c07befd134cae93ad5f9ab307ff67691ff5155b)
-
-## [v1.0.2](https://github.com/es-shims/ArrayBuffer.prototype.slice/compare/v1.0.1...v1.0.2) - 2023-09-05
-
-### Commits
-
-- [Deps] update `es-abstract` [`a9ab0d2`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/a9ab0d2551bb301b740e333ea3795fad23fcbe40)
-- [Dev Deps] update `tape` [`6b24af5`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/6b24af585dc9176c8ac3fd482cb1d5257e550a09)
-- [Fix] move `es-abstract` to runtime deps [`63a8397`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/63a8397623d7749856f6392ae93bf87152c3916c)
-
-## [v1.0.1](https://github.com/es-shims/ArrayBuffer.prototype.slice/compare/v1.0.0...v1.0.1) - 2023-07-11
-
-### Commits
-
-- [Fix] node < 0.11 has an own nonconfigurable `slice` property; use it [`554823c`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/554823c92ce16d6b7184a7d0ccfe315b663584d7)
-- [Dev Deps] update `@es-shims/api`, `@ljharb/eslint-config`, `aud`, `es-abstract`, `tape` [`53b0421`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/53b04217048c645306597e2cfc55adb69c384146)
-- [Deps] update `define-properties`, `get-intrinsic` [`4966b02`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/4966b02bc25ac006709b29ca370b9f6e159f723a)
-
-## v1.0.0 - 2023-07-09
-
-### Commits
-
-- Initial implementation, tests, readme [`36b4b5e`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/36b4b5eedfa225c3086e9453b9db0088c299640a)
-- Initial commit [`51499df`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/51499dfac7d8c67c2928cb47363a4de7ff17904a)
-- npm init [`8ec604e`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/8ec604e7d3ef8d4c27376b09645f779c2244b08f)
-- Only apps should have lockfiles [`ac54435`](https://github.com/es-shims/ArrayBuffer.prototype.slice/commit/ac54435161d4415e2122e3a682499f3a6df2f6de)
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/LICENSE b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/LICENSE
deleted file mode 100644
index eb970aa5..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 ECMAScript Shims
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/README.md b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/README.md
deleted file mode 100644
index 50358571..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# ArrayBuffer.prototype.slice [![Version Badge][npm-version-svg]][package-url]
-
-[![github actions][actions-image]][actions-url]
-[![coverage][codecov-image]][codecov-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
-
-[![npm badge][npm-badge-png]][package-url]
-
-An ES spec-compliant `ArrayBuffer.prototype.slice` shim. Invoke its "shim" method to shim ArrayBuffer.prototype.slice if it is unavailable.
-
-This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES5-supported environment and complies with the [spec](https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice).
-
-Most common usage:
-```js
-var assert = require('assert');
-var slice = require('arraybuffer.prototype.slice');
-
-var ab = new ArrayBuffer(1);
-var arr = new Uint8Array(ab);
-arr[0] = 123;
-
-var ab2 = slice(ab);
-
-var arr2 = new Uint8Array(ab2);
-arr2[0] = 234;
-
-assert.deepEqual(arr, new Uint8Array([123]));
-assert.deepEqual(arr2, new Uint8Array([234]));
-
-if (!ArrayBuffer.prototype.transfer) {
- slice.shim();
-}
-
-var ab2 = ab.slice();
-
-var arr2 = new Uint8Array(ab2);
-arr2[0] = 234;
-
-assert.deepEqual(arr, new Uint8Array([123]));
-assert.deepEqual(arr2, new Uint8Array([234]));
-```
-
-## Tests
-Simply clone the repo, `npm install`, and run `npm test`
-
-[package-url]: https://npmjs.org/package/arraybuffer.prototype.slice
-[npm-version-svg]: https://versionbadg.es/es-shims/ArrayBuffer.prototype.slice.svg
-[deps-svg]: https://david-dm.org/es-shims/ArrayBuffer.prototype.slice.svg
-[deps-url]: https://david-dm.org/es-shims/ArrayBuffer.prototype.slice
-[dev-deps-svg]: https://david-dm.org/es-shims/ArrayBuffer.prototype.slice/dev-status.svg
-[dev-deps-url]: https://david-dm.org/es-shims/ArrayBuffer.prototype.slice#info=devDependencies
-[npm-badge-png]: https://nodei.co/npm/arraybuffer.prototype.slice.png?downloads=true&stars=true
-[license-image]: https://img.shields.io/npm/l/arraybuffer.prototype.slice.svg
-[license-url]: LICENSE
-[downloads-image]: https://img.shields.io/npm/dm/arraybuffer.prototype.slice.svg
-[downloads-url]: https://npm-stat.com/charts.html?package=arraybuffer.prototype.slice
-[codecov-image]: https://codecov.io/gh/es-shims/ArrayBuffer.prototype.slice/branch/main/graphs/badge.svg
-[codecov-url]: https://app.codecov.io/gh/es-shims/ArrayBuffer.prototype.slice/
-[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/ArrayBuffer.prototype.slice
-[actions-url]: https://github.com/es-shims/ArrayBuffer.prototype.slice/actions
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/auto.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/auto.js
deleted file mode 100644
index 8ebf606c..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/auto.js
+++ /dev/null
@@ -1,3 +0,0 @@
-'use strict';
-
-require('./shim')();
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/implementation.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/implementation.js
deleted file mode 100644
index 49ed9644..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/implementation.js
+++ /dev/null
@@ -1,84 +0,0 @@
-'use strict';
-
-var GetIntrinsic = require('get-intrinsic');
-
-var $ArrayBuffer = GetIntrinsic('%ArrayBuffer%', true);
-var $Uint8Array = GetIntrinsic('%Uint8Array%', true);
-
-var IsDetachedBuffer = require('es-abstract/2024/IsDetachedBuffer');
-var IsSharedArrayBuffer = require('es-abstract/2024/IsSharedArrayBuffer');
-var max = require('es-abstract/2024/max');
-var min = require('es-abstract/2024/min');
-var SpeciesConstructor = require('es-abstract/2024/SpeciesConstructor');
-var ToIntegerOrInfinity = require('es-abstract/2024/ToIntegerOrInfinity');
-
-var arrayBufferByteLength = require('array-buffer-byte-length');
-var isArrayBuffer = require('is-array-buffer');
-var $TypeError = require('es-errors/type');
-
-module.exports = function slice(start, end) {
- var O = this; // step 1
-
- if (!isArrayBuffer(O) || IsSharedArrayBuffer(O) || IsDetachedBuffer(O)) {
- throw new $TypeError('receiver must be a non-detached, non-shared ArrayBuffer'); // steps 2-4
- }
-
- var len = arrayBufferByteLength(O); // step 5
-
- var relativeStart = ToIntegerOrInfinity(start); // step 6
-
- var first;
- if (relativeStart === -Infinity) {
- first = 0; // step 7
- } else if (relativeStart < 0) {
- first = max(len + relativeStart, 0); // step 8
- } else {
- first = min(relativeStart, len); // step 9
- }
-
- var relativeEnd = typeof end === 'undefined' ? len : ToIntegerOrInfinity(end); // step 10
-
- var final;
- if (relativeEnd === -Infinity) {
- final = 0; // step 11
- } else if (relativeEnd < 0) {
- final = max(len + relativeEnd, 0); // step 12
- } else {
- final = min(relativeEnd, len); // step 13
- }
-
- var newLen = max(final - first, 0); // step 14
-
- var Ctor = SpeciesConstructor(O, $ArrayBuffer); // step 15
-
- var new$ = new Ctor(newLen); // step 16
-
- if (!isArrayBuffer(new$) || IsSharedArrayBuffer(new$) || IsDetachedBuffer(new$)) {
- throw new $TypeError('Species constructor must produce a non-detached, non-shared Array Buffer'); // steps 17-19
- }
-
- if (new$ === O) {
- throw new $TypeError('new ArrayBuffer should not have been the same as the receiver'); // step 20
- }
-
- if (arrayBufferByteLength(new$) < newLen) {
- throw new $TypeError('new ArrayBuffer\'s byteLength must be at least the requested length'); // step 21
- }
-
- if (IsDetachedBuffer(O)) {
- throw new $TypeError('receiver became an detached ArrayBuffer'); // step 23
- }
-
- /*
- 24. Let fromBuf be O.[[ArrayBufferData]].
- 25. Let toBuf be new.[[ArrayBufferData]].
- 26. Perform CopyDataBlockBytes(toBuf, 0, fromBuf, first, newLen).
- */
- var sourceArr = new $Uint8Array(O);
- var destArr = new $Uint8Array(new$);
- for (var i = start, ii = 0; i < end; i++, ii++) {
- destArr[ii] = sourceArr[i];
- }
-
- return new$; // step 27
-};
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/index.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/index.js
deleted file mode 100644
index 517c4147..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-var callBind = require('call-bind');
-
-var implementation = require('./implementation');
-var getPolyfill = require('./polyfill');
-var shim = require('./shim');
-
-var bound = callBind(getPolyfill());
-
-define(bound, {
- getPolyfill: getPolyfill,
- implementation: implementation,
- shim: shim
-});
-
-module.exports = bound;
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/package.json b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/package.json
deleted file mode 100644
index c4d6c9e9..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/package.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{
- "name": "arraybuffer.prototype.slice",
- "version": "1.0.4",
- "description": "ES spec-compliant shim for ArrayBuffer.prototype.slice",
- "author": "Jordan Harband ",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- },
- "license": "MIT",
- "main": "index.js",
- "exports": {
- ".": "./index.js",
- "./auto": "./auto.js",
- "./polyfill": "./polyfill.js",
- "./implementation": "./implementation.js",
- "./shim": "./shim.js",
- "./package.json": "./package.json"
- },
- "scripts": {
- "prepack": "npmignore --auto --commentLines=autogenerated",
- "prepublish": "not-in-publish || npm run prepublishOnly",
- "prepublishOnly": "safe-publish-latest",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "posttest": "npx npm@'>=10.2' audit --production",
- "tests-only": "nyc tape 'test/**/*.js'",
- "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')",
- "lint": "eslint --ext=js,mjs .",
- "postlint": "evalmd README.md && es-shim-api --bound",
- "version": "auto-changelog && git add CHANGELOG.md",
- "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/es-shims/ArrayBuffer.prototype.slice.git"
- },
- "homepage": "https://github.com/es-shims/ArrayBuffer.prototype.slice#readme",
- "bugs": {
- "url": "https://github.com/es-shims/ArrayBuffer.prototype.slice/issues"
- },
- "keywords": [
- "javascript",
- "ecmascript",
- "ArrayBuffer.prototype.slice",
- "polyfill",
- "shim",
- "ArrayBuffer",
- "array",
- "buffer",
- "ArrayBuffer#slice",
- "slice",
- "typed array",
- "es-shim API"
- ],
- "dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.8",
- "define-properties": "^1.2.1",
- "es-abstract": "^1.23.5",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.6",
- "is-array-buffer": "^3.0.4"
- },
- "devDependencies": {
- "@es-shims/api": "^2.5.1",
- "@ljharb/eslint-config": "^21.1.1",
- "auto-changelog": "^2.5.0",
- "eclint": "^2.8.1",
- "encoding": "^0.1.13",
- "es-value-fixtures": "^1.5.0",
- "eslint": "=8.8.0",
- "evalmd": "^0.0.19",
- "for-each": "^0.3.3",
- "functions-have-names": "^1.2.3",
- "has-strict-mode": "^1.0.1",
- "in-publish": "^2.0.1",
- "npmignore": "^0.3.1",
- "nyc": "^10.3.2",
- "object-inspect": "^1.13.3",
- "safe-publish-latest": "^2.0.0",
- "tape": "^5.9.0"
- },
- "testling": {
- "files": "test/index.js"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "auto-changelog": {
- "output": "CHANGELOG.md",
- "template": "keepachangelog",
- "unreleased": false,
- "commitLimit": false,
- "backfillLimit": false,
- "hideCredit": true
- },
- "publishConfig": {
- "ignore": [
- ".github/workflows"
- ]
- }
-}
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/polyfill.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/polyfill.js
deleted file mode 100644
index a4a90ca1..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/polyfill.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-var callBind = require('call-bind');
-
-var implementation = require('./implementation');
-
-var ownSlice = typeof ArrayBuffer === 'function' && new ArrayBuffer(0).slice;
-var ownSliceBound = ownSlice && callBind(ownSlice);
-var ownSliceWrapper = ownSliceBound && function slice(start, end) {
- /* eslint no-invalid-this: 0 */
- if (arguments.length < 2) {
- return ownSliceBound(this, arguments.length > 0 ? start : 0);
- }
- return ownSliceBound(this, start, end);
-};
-
-module.exports = function getPolyfill() {
- return (typeof ArrayBuffer === 'function' && ArrayBuffer.prototype.slice)
- || ownSliceWrapper
- || implementation;
-};
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/shim.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/shim.js
deleted file mode 100644
index cb52c071..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/shim.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var define = require('define-properties');
-
-var getPolyfill = require('./polyfill');
-
-module.exports = function shimArrayBufferSlice() {
- if (typeof ArrayBuffer === 'function') {
- var polyfill = getPolyfill();
- define(
- ArrayBuffer.prototype,
- { slice: polyfill },
- { slice: function () { return ArrayBuffer.prototype.slice !== polyfill; } }
- );
- }
-
- return polyfill;
-};
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/implementation.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/implementation.js
deleted file mode 100644
index 7d97bb77..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/implementation.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-var implementation = require('../implementation');
-var callBind = require('call-bind');
-var test = require('tape');
-var hasStrictMode = require('has-strict-mode')();
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('ArrayBuffer support', { skip: typeof ArrayBuffer === 'undefined' }, function (st) {
- st.test('bad array/this value', { skip: !hasStrictMode }, function (s2t) {
- /* eslint no-useless-call: 0 */
- s2t['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object');
- s2t['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object');
- s2t.end();
- });
-
- runTests(callBind(implementation), st);
-
- st.end();
- });
-
- t.test('no ArrayBuffer support', { skip: typeof ArrayBuffer !== 'undefined' }, function (st) {
- st['throws'](
- function () { implementation.call({}); },
- SyntaxError,
- 'ArrayBuffer is not supported'
- );
- });
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/index.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/index.js
deleted file mode 100644
index 0e9dd102..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/index.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-var index = require('../');
-var test = require('tape');
-var runTests = require('./tests');
-
-test('as a function', function (t) {
- t.test('ArrayBuffer support', { skip: typeof ArrayBuffer === 'undefined' }, function (st) {
- st.test('bad array/this value', function (s2t) {
- s2t['throws'](function () { index(undefined); }, TypeError, 'undefined is not an object');
- s2t['throws'](function () { index(null); }, TypeError, 'null is not an object');
- s2t.end();
- });
-
- runTests(index, st);
-
- st.end();
- });
-
- t.test('no ArrayBuffer support', { skip: typeof ArrayBuffer !== 'undefined' }, function (st) {
- st['throws'](
- function () { index({}); },
- SyntaxError,
- 'ArrayBuffer is not supported'
- );
- });
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/shimmed.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/shimmed.js
deleted file mode 100644
index 8dd4f721..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/shimmed.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-
-require('../auto');
-
-var test = require('tape');
-var defineProperties = require('define-properties');
-var callBind = require('call-bind');
-
-var isEnumerable = Object.prototype.propertyIsEnumerable;
-var functionsHaveNames = require('functions-have-names')();
-var hasStrictMode = require('has-strict-mode')();
-
-var runTests = require('./tests');
-
-test('shimmed', function (t) {
- t.test('ArrayBuffer support', { skip: typeof ArrayBuffer === 'undefined' }, function (st) {
- var method = ArrayBuffer.prototype.slice;
-
- st.equal(method.length, 2, 'ArrayBuffer#slice has a length of 2');
-
- st.test('Function name', { skip: !functionsHaveNames }, function (s2t) {
- s2t.equal(method.name, 'slice', 'ArrayBuffer#slice name "slice"');
- s2t.end();
- });
-
- st.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
- et.equal(false, isEnumerable.call(ArrayBuffer.prototype, 'slice'), 'ArrayBuffer#slice is not enumerable');
- et.end();
- });
-
- st.test('bad array/this value', { skip: !hasStrictMode }, function (s2t) {
- /* eslint no-useless-call: 0 */
- s2t['throws'](function () { return method.call(undefined); }, TypeError, 'undefined is not an object');
- s2t['throws'](function () { return method.call(null); }, TypeError, 'null is not an object');
- s2t.end();
- });
-
- t.test('has the correct descriptor', { skip: !Object.getOwnPropertyDescriptor }, function (s2t) {
- var descriptor = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'slice');
-
- s2t.equal(descriptor.configurable, true);
- s2t.equal(descriptor.enumerable, false);
- s2t.equal(typeof descriptor.value, 'function');
- s2t.equal(descriptor.writable, true);
- s2t.end();
- });
-
- runTests(callBind(method), st);
-
- st.end();
- });
-
- t.end();
-});
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/tests.js b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/tests.js
deleted file mode 100644
index 4128b1b9..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/arraybuffer.prototype.slice/test/tests.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-
-var inspect = require('object-inspect');
-var IsDetachedBuffer = require('es-abstract/2024/IsDetachedBuffer');
-
-var forEach = require('for-each');
-var v = require('es-value-fixtures');
-
-var byteLength = require('array-buffer-byte-length');
-
-module.exports = function runTests(slice, t) {
- forEach(v.primitives.concat(v.objects), function (nonAB) {
- t['throws'](
- function () { slice(nonAB); },
- TypeError,
- inspect(nonAB) + ' is not an ArrayBuffer'
- );
- });
-
- t.test('ArrayBuffers', { skip: typeof ArrayBuffer === 'undefined' }, function (st) {
- var ab = new ArrayBuffer(0);
-
- st.equal(IsDetachedBuffer(ab), false, 'ArrayBuffer is not detached');
-
- try {
- var nb = slice(ab);
- } catch (e) {
- if (e instanceof SyntaxError) {
- st.skip('Detaching ArrayBuffer is not supported');
- return st.end();
- }
- console.log(e.stack);
- }
-
- st.notEqual(nb, ab, 'new ArrayBuffer is not the same as the original');
- st.equal(IsDetachedBuffer(ab), false, 'old ArrayBuffer is not detached');
- st.equal(IsDetachedBuffer(nb), false, 'new ArrayBuffer is not detached');
-
- var ab2 = new ArrayBuffer(8);
- st.equal(byteLength(ab2), 8, 'original ArrayBuffer has length 8');
- try {
- var nbLen = slice(ab2, 4);
- } catch (e) {
- if (e instanceof SyntaxError) {
- st.skip('Detaching ArrayBuffer is not supported');
- return st.end();
- }
- }
- st.equal(IsDetachedBuffer(ab2), false, 'old ArrayBuffer is not detached');
- st.equal(IsDetachedBuffer(nbLen), false, 'new ArrayBuffer is not detached');
-
- st.equal(byteLength(ab2), 8, 'original ArrayBuffer has length 8');
- st.equal(byteLength(nbLen), 4, 'newly sliced ArrayBuffer has length 4');
-
- var one = new ArrayBuffer(1);
- var arr = new Uint8Array(one);
- arr[0] = 123;
-
- var two = slice(one);
-
- var arr2 = new Uint8Array(two);
- arr2[0] = 234;
-
- st.deepEqual(arr, new Uint8Array([123]), 'original buffer is unchanged');
- st.deepEqual(arr2, new Uint8Array([234]), 'sliced buffer is changed');
-
- return st.end();
- });
-
- t.test('SharedArrayBuffers', { skip: typeof SharedArrayBuffer === 'undefined' }, function (st) {
- var sab = new SharedArrayBuffer(0);
-
- st['throws'](
- function () { slice(sab); },
- TypeError,
- inspect(sab) + ' is not an ArrayBuffer'
- );
-
- st.end();
- });
-};
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/call-bind b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/call-bind
deleted file mode 120000
index 3b1552d1..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/call-bind
+++ /dev/null
@@ -1 +0,0 @@
-../../call-bind@1.0.8/node_modules/call-bind
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/define-properties b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/define-properties
deleted file mode 120000
index 929a16b6..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/define-properties
+++ /dev/null
@@ -1 +0,0 @@
-../../define-properties@1.2.1/node_modules/define-properties
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/es-abstract b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/es-abstract
deleted file mode 120000
index 1236b58a..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/es-abstract
+++ /dev/null
@@ -1 +0,0 @@
-../../es-abstract@1.24.1/node_modules/es-abstract
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/es-errors b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/es-errors
deleted file mode 120000
index fccce4e7..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/es-errors
+++ /dev/null
@@ -1 +0,0 @@
-../../es-errors@1.3.0/node_modules/es-errors
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/get-intrinsic b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/get-intrinsic
deleted file mode 120000
index 0042f6aa..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/get-intrinsic
+++ /dev/null
@@ -1 +0,0 @@
-../../get-intrinsic@1.3.0/node_modules/get-intrinsic
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/is-array-buffer b/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/is-array-buffer
deleted file mode 120000
index 68df1a4a..00000000
--- a/frontend/node_modules/.pnpm/arraybuffer.prototype.slice@1.0.4/node_modules/is-array-buffer
+++ /dev/null
@@ -1 +0,0 @@
-../../is-array-buffer@3.0.5/node_modules/is-array-buffer
\ No newline at end of file
diff --git a/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/LICENSE b/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/LICENSE
deleted file mode 100644
index ee264800..00000000
--- a/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018 Kyle Davis
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/README.md b/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/README.md
deleted file mode 100644
index 61daf694..00000000
--- a/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# ast-types-flow
-
-Flow types for the Javascript AST. Based off of [benjamn/ast-types](https://github.com/benjamn/ast-types).
-
-## Usage
-
-First install `ast-types-flow` via npm, then you can import any of the types
-that are exported.
-
-```javascript
-/* @flow */
-
-import type {Node} from 'ast-types-flow';
-
-function getName(node: Node): string {
- switch (node.type) {
- case 'Identifier':
- return node.name;
-
- case 'ClassDeclaration':
- return node.id.name; // Error, id could be null.
-
- case 'FunctionDeclaration':
- return node.id.name; // Fine if it's always there.
-
- case 'FunctionExpression':
- if (node.id) {
- return node.id.name; // Can refine id to make sure it exists.
- } else {
- return 'Unknown';
- }
-
- case 'Literal':
- return node.name; // Error, Literals don't have names, don't be silly.
- }
- return 'Unknown';
-}
-```
-
-## How it works
-
-A notion of "extends" is added to the Flow syntax via comments. A transform is
-included that will compile the source code into useful disjoint union types
-based on how the different types extend each other. For example:
-
-```javascript
-type Node = {
- common: string,
-};
-
-type Foo = {
- // extends Node
- foo: string,
-};
-
-type Bar = {
- // extends Node
- bar: number,
-};
-```
-
-Will be transformed into:
-
-```javascript
-type Node = {
- type: 'Foo',
- _Foo: void,
- common: string,
- foo: string,
-} | {
- type: 'Bar',
- _Bar: void,
- common: string,
- bar: number,
-};
-
-type Foo = {
- type: 'Foo',
- _Foo: void,
- common: string,
- foo: string,
-};
-
-type Bar = {
- type: 'Bar',
- _Foo: void,
- common: string,
- bar: number,
-};
-```
-
-A few things to note:
-
-1. The type `Node` would more ideally be compiled into `Foo | Bar` but then the
-disjoint union cannot be properly refined. For now we have to duplicate the
-complete definitions.
-2. Each entry in a disjoint union has to be structurally unique or Flow will
-have an error on the definition. That is why the private `_Foo: void` fields
-appear in the types.
diff --git a/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/lib/types.js b/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/lib/types.js
deleted file mode 100644
index 83af5c27..00000000
--- a/frontend/node_modules/.pnpm/ast-types-flow@0.0.8/node_modules/ast-types-flow/lib/types.js
+++ /dev/null
@@ -1,5045 +0,0 @@
-/**
- * @flow
- */
-
-'use strict';
-
-/*
- * Flow types for the Babylon AST.
- */
-
-// Abstract types. Something must extend these.
-
-export type Comment = {
- type: 'CommentLine',
- _CommentLine?: void,
- value: string,
- end: number,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
-} | {
- type: 'CommentBlock',
- _CommentBlock?: void,
- value: string,
- end: number,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
-};
-
-export type Declaration = {
- type: 'ClassBody',
- _ClassBody?: void,
- body: Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ClassDeclaration',
- _ClassDeclaration?: void,
- body: ClassBody,
- id: ?Identifier,
- superClass: ?Expression,
- decorators: any,
- superTypeParameters: any,
- typeParameters: any,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'FunctionDeclaration',
- _FunctionDeclaration?: void,
- body: BlockStatement,
- id: Identifier,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
- async: boolean,
- defaults: Array,
- expression: boolean,
- generator: boolean,
- params: Array,
- rest: ?Identifier,
- returnType: ?TypeAnnotation,
- typeParameters: ?TypeParameterDeclaration,
-} | {
- type: 'MethodDefinition',
- _MethodDefinition?: void,
- computed: boolean,
- key: Node,
- kind: 'constructor' | 'method' | 'get' | 'set',
- static: boolean,
- value: FunctionExpression,
- decorators: ?Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'VariableDeclaration',
- _VariableDeclaration?: void,
- declarations: Array,
- kind: 'var' | 'let' | 'const',
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ClassProperty',
- _ClassProperty?: void,
- computed: boolean,
- key: Node,
- static: boolean,
- typeAnnotation: ?TypeAnnotation,
- value: ?Expression,
- decorators: Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-};
-
-export type Expression = {
- type: 'ArrayExpression',
- _ArrayExpression?: void,
- elements: Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'AssignmentExpression',
- _AssignmentExpression?: void,
- left: Pattern,
- operator: AssignmentOperator,
- right: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'AwaitExpression',
- _AwaitExpression?: void,
- all: boolean,
- argument: ?Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'BinaryExpression',
- _BinaryExpression?: void,
- left: Expression,
- operator: BinaryOperator,
- right: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'BindExpression',
- _BindExpression?: void,
- callee: Node,
- object: Node,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'CallExpression',
- _CallExpression?: void,
- arguments: Array,
- callee: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ClassExpression',
- _ClassExpression?: void,
- body: ClassBody,
- id: ?Identifier,
- superClass: ?Expression,
- decorators: any,
- superTypeParameters: any,
- typeParameters: any,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ComprehensionExpression',
- _ComprehensionExpression?: void,
- body: Expression,
- blocks: Array,
- filter: ?Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ConditionalExpression',
- _ConditionalExpression?: void,
- alternate: Expression,
- consequent: Expression,
- test: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'DoExpression',
- _DoExpression?: void,
- body: Statement,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'FunctionExpression',
- _FunctionExpression?: void,
- body: BlockStatement,
- id: ?Identifier,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
- async: boolean,
- defaults: Array,
- expression: boolean,
- generator: boolean,
- params: Array,
- rest: ?Identifier,
- returnType: ?TypeAnnotation,
- typeParameters: ?TypeParameterDeclaration,
-} | {
- type: 'Identifier',
- _Identifier?: void,
- name: string,
- typeAnnotation: ?TypeAnnotation,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'Literal',
- _Literal?: void,
- raw: string,
- regex: ?{pattern: string, flags: string},
- value: ?(string | boolean | number | RegExp),
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'LogicalExpression',
- _LogicalExpression?: void,
- left: Expression,
- operator: LogicalOperator,
- right: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'MemberExpression',
- _MemberExpression?: void,
- computed: boolean,
- object: Expression,
- property: Node,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'NewExpression',
- _NewExpression?: void,
- arguments: Array,
- callee: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ObjectExpression',
- _ObjectExpression?: void,
- properties: Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'SequenceExpression',
- _SequenceExpression?: void,
- expression: Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'TaggedTemplateExpression',
- _TaggedTemplateExpression?: void,
- quasi: TemplateLiteral,
- tag: Expression,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'TemplateLiteral',
- _TemplateLiteral?: void,
- expressions: Array,
- quasis: Array,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'ThisExpression',
- _ThisExpression?: void,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'UnaryExpression',
- _UnaryExpression?: void,
- argument: Expression,
- operator: UnaryOperator,
- prefix: true,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'UpdateExpression',
- _UpdateExpression?: void,
- argument: Expression,
- operator: UpdateOperator,
- prefix: boolean,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'YieldExpression',
- _YieldExpression?: void,
- argument: ?Expression,
- delegate: boolean,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'TypeCastExpression',
- _TypeCastExpression?: void,
- expression: Expression,
- typeAnnotation: TypeAnnotation,
- end: number,
- innerComments: ?Array,
- leadingComments: ?Array,
- loc: {
- end: {column: number, line: number},
- start: {column: number, line: number},
- },
- start: number,
- trailingComments: ?Array,
-} | {
- type: 'JSXElement',
- _JSXElement?: void,
- children: Array