From 7365f37e4579f5164df9ee8c90156638a2ec7401 Mon Sep 17 00:00:00 2001 From: Brandon Li Date: Mon, 26 Oct 2026 14:09:09 -0400 Subject: [PATCH 1/5] Add HPC-style architecture design docs Describe the redesign agreed on October 26: per-team folders, restricted SSH login, and jobs that run as the researcher's own UID under Mist's own scheduler, with a pluggable executor (K3s first, native node executor later). Adds the system overview, one contract doc per component, a decision log, and the jobs/scheduling implementation plan. README points to the new design and notes that docs/content describes the old platform. Co-Authored-By: Claude Opus 5.5 --- ARCHITECTURE.md | 237 ++++++++++++++ README.md | 9 + docs/agents/architecture/api.md | 157 +++++++++ docs/agents/architecture/decisions.md | 218 +++++++++++++ .../architecture/deployment-and-network.md | 120 +++++++ docs/agents/architecture/executors.md | 307 ++++++++++++++++++ .../architecture/identity-and-accounts.md | 186 +++++++++++ docs/agents/architecture/login-gateway.md | 162 +++++++++ docs/agents/architecture/portal.md | 45 +++ .../architecture/runtime-environment.md | 152 +++++++++ docs/agents/architecture/scheduler.md | 250 ++++++++++++++ docs/agents/architecture/storage.md | 185 +++++++++++ docs/agents/plans/jobs-and-scheduling.md | 185 +++++++++++ 13 files changed, 2213 insertions(+) create mode 100644 ARCHITECTURE.md create mode 100644 docs/agents/architecture/api.md create mode 100644 docs/agents/architecture/decisions.md create mode 100644 docs/agents/architecture/deployment-and-network.md create mode 100644 docs/agents/architecture/executors.md create mode 100644 docs/agents/architecture/identity-and-accounts.md create mode 100644 docs/agents/architecture/login-gateway.md create mode 100644 docs/agents/architecture/portal.md create mode 100644 docs/agents/architecture/runtime-environment.md create mode 100644 docs/agents/architecture/scheduler.md create mode 100644 docs/agents/architecture/storage.md create mode 100644 docs/agents/plans/jobs-and-scheduling.md diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md new file mode 100644 index 0000000..04af45a --- /dev/null +++ b/ARCHITECTURE.md @@ -0,0 +1,237 @@ +# Mist architecture + +Mist is UTMIST's research compute platform. It works like the batch systems on +national HPC clusters. Each researcher gets a folder inside each of their team +folders and moves files with `scp`/`rsync`. Code runs as **jobs**: batch scripts +or short interactive shells. A scheduler places jobs on the GPU, CPU and +Tenstorrent hardware. Each job runs as the researcher's own Linux user, in their +own folder. Researchers never write Dockerfiles or declare mounts. + +This document is the system overview and the coordination point between +component owners. Each component has a document with the contracts it must +honour. The reasons behind major choices are in the +[decision log](docs/agents/architecture/decisions.md). + +> **Status:** target design, agreed October 2026. This design replaces the +> platform described in `docs/content/` (container-image jobs, dataset and +> result pools, team namespaces). It starts fresh: no users or data are migrated. + +## Goals + +1. **Development feels like a workstation.** A researcher sets up a Python + environment once, in their own folder, and every job uses it. Files a job + writes are simply there afterwards. +2. **Access follows teams.** Teammates can read each other's work. Other teams + cannot see it at all. Some projects are under IP agreements, so this boundary + is a hard requirement. +3. **Code runs only inside jobs.** Login sessions move files and manage jobs. + Compute and accelerators are reached only through a scheduled job. +4. **Adding a node is cheap.** Adding a third or fourth machine means configuring + that node, not redesigning the system. +5. **The A4000 GPUs come first.** The NVIDIA partition ships first; Tenstorrent + follows on the same design. + +## System at a glance + +```mermaid +flowchart LR + subgraph Users + SSH[ssh / scp / rsync] + Browser[Browser] + end + + subgraph TT["utmist-tt (QuietBox)"] + Gate[Login gateway
sshd + mist-gate] + Relay[mist-relay] + Prov[Provisioner agent] + NFS[("/mist
(durable storage)")] + CPUP[partition: cpu] + TTP[partition: tt
4× n300] + end + + subgraph NV["utmist-z1opa08 (NVIDIA)"] + Portal[Web portal] + API[mistd API] + Sched[mistd scheduler] + DB[(Postgres)] + K3s[k3s server] + GPUP[partition: gpu
2× RTX A4000] + end + + Misty[(misty
people and teams)] + + SSH -->|Tailscale| Gate --> Relay --> API + Browser -->|Tailscale| Portal --> API + API --> DB + API --> Misty + Sched --> DB + Sched -->|Executor| K3s + K3s --> GPUP & CPUP & TTP + Prov -->|desired state| API + Prov --> NFS + GPUP -. "NFS over 10 GbE direct link" .-> NFS +``` + +## Components + +| Component | Responsibility | Document | Proposed owner | +|---|---|---|---| +| Identity and accounts | People and teams from misty; Mist accounts, UIDs, GIDs, SSH keys; sign-up; provisioning Linux accounts and folders | [identity-and-accounts.md](docs/agents/architecture/identity-and-accounts.md) | Lucas | +| Storage | `/mist` layout and permissions, NFS, volumes, usage reporting, quotas, scratch, backups | [storage.md](docs/agents/architecture/storage.md) | Ansh | +| Login gateway | Restricted SSH (file transfer and `mist` commands only), identity relay, the `mist` CLI | [login-gateway.md](docs/agents/architecture/login-gateway.md) | TBD | +| API | The one HTTP API used by the portal, CLI and agents; authentication and authorization | [api.md](docs/agents/architecture/api.md) | Shared; each owner defines their endpoints | +| Scheduler | Partitions, QoS, limits, queue, priority, fairshare, placement, accounting | [scheduler.md](docs/agents/architecture/scheduler.md) | Brandon | +| Executors | Run an admitted job on a node; stream I/O; report status. K3s executor first, native node executor later | [executors.md](docs/agents/architecture/executors.md) | Brandon | +| Runtime environment | What a job sees: images, software, environment variables, caches, outputs, signals | [runtime-environment.md](docs/agents/architecture/runtime-environment.md) | Scott (to confirm) | +| Web portal | Lightweight UI over the API: account, SSH keys, teams, jobs, queue, usage, admin | [portal.md](docs/agents/architecture/portal.md) | Andrei | +| Deployment and network | Hosts, network paths, services, secrets, admin access, adding nodes | [deployment-and-network.md](docs/agents/architecture/deployment-and-network.md) | Ethan, with Ansh | + +Owners should confirm or reassign rows here. + +## Core concepts + +- **Person.** A human registered in misty. Misty is the source of truth for + people, teams and membership. +- **Account.** A person's Mist identity: one immutable `username`, one stable + Linux UID, and SSH keys. It is created when a registered person signs up. +- **Team.** A misty team. On Mist, each team has a Linux group (`team-`) and + a folder `/mist/teams//`. +- **Partition.** A named pool of nodes that share one kind of hardware: `gpu` + (NVIDIA), `cpu` (CPU-only, used for data prep and downloads) and `tt` + (Tenstorrent). A job targets exactly one partition. +- **QoS.** A class of service, `normal` or `interactive`, carrying limits and a + priority weight. +- **Job.** A request to run a script (batch) or a shell (interactive). It names + one partition, one QoS, one **charged team**, its resources and a time limit. + It runs as the submitter's UID. Accelerators are allocated whole and one at a + time: two 1-GPU jobs run side by side on the A4000 box. +- **Charged team.** The team a job is billed to and scoped to. The job sees only + that team's folder and the shared software. It cannot see the submitter's other + teams. +- **Volume.** One durable storage location, an NFS export on one server. Each + team folder lives entirely on one volume. There is one volume today. + +## Key flows + +### Sign-up and first login + +1. A person signs in to the portal. Identity confirms with misty that they are + registered and loads their teams. +2. Mist creates their account: it reserves a username and a UID and records team + memberships. +3. The person adds an SSH public key in the portal. +4. The provisioner agent on the storage/login host reconciles the change. It + creates the Linux user and groups, and `/mist/teams///` for each + team. +5. The person runs `ssh @`. They land in a folder with one + entry per team. + +### Moving files + +`scp`, `rsync` and `sftp` go through the login gateway, which sits on the storage +host and writes straight to disk. Unix permissions decide what each person can +read and write. + +Downloads from the internet (Hugging Face, S3, Kaggle and so on) run as jobs on +the `cpu` partition, using `mist run -p cpu -- ` or `mist shell -p cpu`. + +### Batch job + +```mermaid +sequenceDiagram + participant U as Researcher (login) + participant G as mist-gate + relay + participant A as mistd API + participant S as Scheduler + participant E as Executor (K3s) + participant N as Node + U->>G: mist submit train.sh + G->>A: POST /v1/jobs (relay-asserted user) + A->>A: validate spec, membership, limits + A-->>U: job 412 PENDING + S->>S: order by priority, check limits and free capacity + S->>E: Launch(job 412, node, resources) + E->>N: start as uid, team gid, team folder, devices + N-->>E: running … exited(0) + E-->>S: status events + S->>A: job 412 COMPLETED + U->>G: tail -f mist-412.out +``` + +The job starts in the folder it was submitted from. Its output streams to +`mist-.out` there. Checkpoints and results go wherever the code writes them, +in `/mist` by default. + +### Interactive job + +`mist shell --gpus 1` submits a job with QoS `interactive`. When the job starts, +the API attaches the researcher's terminal to a shell inside it. The job ends +when the shell exits. If the connection drops, the job waits for a grace period +so the researcher can run `mist attach`, then it is cancelled. A browser terminal +will later reuse the same attach endpoint. + +## Data ownership + +Postgres on the control node is the single source of truth for Mist state. +Kubernetes objects, Linux accounts and folders are *derived* state: agents +reconcile them from the database. + +| Data | Authority | Owner | +|---|---|---| +| People, teams, membership | misty (cached in Mist) | Identity | +| Accounts, UIDs, GIDs, SSH keys | Mist DB | Identity | +| Linux users, groups, folders | Derived by the provisioner | Identity, Storage | +| Volumes, team placement, usage | Mist DB | Storage | +| Partitions, QoS, limits | Mist DB (admin-configured) | Scheduler | +| Jobs, job events, usage records | Mist DB | Scheduler | +| Pods and other execution objects | Derived by the executor | Executors | +| Files | `/mist` | Storage | + +Each owner owns their tables and migrations. Other components go through that +owner's Go package or API, not their tables. + +## Code layout + +```text +cmd/mistd/ one binary: `mistd api`, `mistd scheduler`, `mistd provision` +cmd/mist/ CLI (on the login gateway; laptops later) +cmd/mist-gate/ SSH ForceCommand dispatcher +cmd/mist-relay/ login-node identity relay and SSH key lookup +cmd/mist-job-entry/ in-job wrapper: output file, signals, exit reasons +internal/api/ HTTP server, middleware, shared wire types +internal/identity/ accounts, misty client and stub, provisioning state +internal/storage/ layout rules, volumes, usage +internal/scheduler/ queue, policy, placement, accounting +internal/executor/ Executor interface; k3s/ and node/ implementations +internal/db/ connection and migrations (one directory per owner) +images/ job runtime images +deploy/ k3s manifests, systemd units, host setup +web-interface/ portal +``` + +The existing `src/` and `cli/` modules belong to the platform being replaced. +They are removed once the new path serves jobs. + +## Milestones + +| Milestone | Outcome | +|---|---| +| **M1: GPU batch** | Sign-up (misty stubbed), SSH login, file transfer, `mist submit/run/jobs/show/logs/cancel` on `gpu` and `cpu`, team isolation, 10 GbE direct link | +| **M2: Interactive** | `mist shell` and `mist attach` with reattach grace; `interactive` QoS | +| **M3: Fair scheduling** | Priority, fairshare by team, backfill, accounting, admin limits, queue views; backups in place | +| **M4: Tenstorrent** | `tt` partition, TT runtime image, board reset between jobs | +| **M5: Native executor and web terminal** | Node executor without containers, behind the same interface; browser terminal; port forwarding into jobs | + +Each component document lists its work per milestone. + +## Open questions + +| Question | Owner | +|---|---| +| Real misty API: shape, and how membership changes reach Mist (polling or webhooks) | Identity | +| How people prove who they are at sign-in (Google or UofT SSO, or email magic link) | Identity | +| Enforced storage quotas: needs `/mist` on a dedicated filesystem with project quotas | Storage | +| Offboarding: what happens to a folder when someone leaves a team or UTMIST | Identity, Storage | +| Backup tool, schedule and retention | Storage | +| Default limits per partition and per user once real usage is known | Scheduler | +| Monitoring and alerting beyond the portal | Deployment | diff --git a/README.md b/README.md index aec78c8..c658ef7 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,15 @@ collect persistent results through the same website or CLI. **Private website:** [http://100.73.139.66:8088](http://100.73.139.66:8088), accessible through authorized Tailscale connectivity. A Mist account and team membership are also required. +## Architecture redesign — October 26 + +Mist is moving to an HPC-style design: per-team folders, restricted SSH login, +and jobs that run as the researcher's own Linux user under Mist's own scheduler. +Jobs no longer need images or mounts. Start with [ARCHITECTURE.md](ARCHITECTURE.md); +component contracts and the decision log are in +[docs/agents/architecture/](docs/agents/architecture/decisions.md). The +sections below and `docs/content/` describe the platform being replaced. + ## Storage update — October 21 New submissions use ordinary team dataset/result folders on QuietBox, accessed diff --git a/docs/agents/architecture/api.md b/docs/agents/architecture/api.md new file mode 100644 index 0000000..8cf6f6c --- /dev/null +++ b/docs/agents/architecture/api.md @@ -0,0 +1,157 @@ +# API + +`mistd api` is the only way clients and agents reach Mist state. This document +fixes the conventions every endpoint follows, how callers authenticate, and the +job wire types shared by the CLI, portal and scheduler. Each component document +lists the endpoints it owns. Overview: [ARCHITECTURE.md](../../../ARCHITECTURE.md). + +## Conventions + +- **Format.** JSON over HTTP. Paths are versioned: `/v1/...` for users and + admins, `/internal/v1/...` for host agents. +- **Placement.** One `mistd api` process on the control node (NVIDIA box). The + portal's Nginx forwards `/api/*` to it and strips the prefix. Agents reach it + on the direct link (`192.168.240.1`). +- **Logic lives in the API.** Clients don't compute permissions, defaults or + states; the API returns ready-to-display fields (for example `pending_reason` + and `can_cancel`). Clients may poll: every 5–10 s is fine. +- **Errors** use one shape and a stable `code`: + + ```json + { "error": { "code": "limit_exceeded", "message": "Team vision already has 2 GPUs running", "details": {} } } + ``` + + Codes: `unauthenticated`, `forbidden`, `not_found`, `invalid`, + `limit_exceeded`, `conflict`, `unavailable`, `internal`. +- **Lists** take `?limit=` and `?cursor=` and return `{ "items": [...], "next_cursor": "..." }`. +- **Times** are RFC 3339 UTC strings. **Durations** are integer seconds. + **Sizes** are integer bytes. +- **Streams** (log follow, interactive attach) use WebSockets on the same paths + with `?follow=1` or an `Upgrade` header. + +## Authentication + +| Caller | Credential | Principal | +|---|---|---| +| Portal | Session cookie set at sign-in | The signed-in account | +| CLI on the login gateway | Relay token + `X-Mist-Asserted-User` (see [login-gateway.md](login-gateway.md)) | The asserted account | +| Provisioner, relay key lookup | Per-host agent token | The host; `/internal/*` only | +| Laptop CLI (later) | Personal API token | The token's account | + +One middleware resolves the principal, and authorization goes through +`identity.Authorize` (see [identity-and-accounts.md](identity-and-accounts.md)). +Handlers never read identity headers directly. + +## Endpoint index + +| Area | Endpoints | Owner doc | +|---|---|---| +| Account | `GET/PATCH /v1/me`, `/v1/me/ssh-keys` | identity | +| Teams | `GET /v1/teams`, `GET /v1/teams/{slug}` | identity | +| Storage | `GET /v1/teams/{slug}/usage`, `GET /v1/volumes` (admin) | storage | +| Jobs | `POST /v1/jobs`, `GET /v1/jobs`, `GET /v1/jobs/{id}`, `POST /v1/jobs/{id}/cancel`, `GET /v1/jobs/{id}/log`, `GET /v1/jobs/{id}/attach` (WebSocket) | scheduler / executors | +| Cluster | `GET /v1/partitions`, `GET /v1/queue` | scheduler | +| Admin | `/v1/admin/accounts`, `/v1/admin/partitions`, `/v1/admin/qos`, `/v1/admin/limits`, `/v1/admin/nodes` | identity, scheduler | +| Agents | `/internal/v1/provision/*`, `/internal/v1/ssh-keys/{username}` | identity | + +## Job wire types + +### Submitting: `POST /v1/jobs` + +```json +{ + "team": "vision", + "partition": "gpu", + "qos": "normal", + "name": "resnet-sweep-3", + "kind": "batch", + "script": "#!/bin/bash\n#MIST --gpus=1\npython train.py --lr 3e-4\n", + "args": [], + "workdir": "/mist/teams/vision/alice/resnet", + "output": "mist-%j.out", + "env": { "WANDB_PROJECT": "resnet" }, + "resources": { + "cpus": 8, + "memory_bytes": 34359738368, + "gpus": 1, + "tt_boards": 0, + "scratch_bytes": 107374182400 + }, + "time_limit_seconds": 14400, + "signal_grace_seconds": 60 +} +``` + +- `kind`: + - `batch` needs `script`. + - `command` (from `mist run`) takes `argv` instead of `script`. + - `interactive` (from `mist shell`) takes neither. +- **The API fills in missing fields** from partition and QoS defaults and + returns the complete, normalised spec. Defaults live only in the database, + never in clients. +- **Validation:** + - The caller must be a member of `team`. + - `workdir` must be inside `/mist/teams//`. + - Resources and time must be within partition and QoS maximums. + - Every `gpu` job needs `gpus >= 1`. +- **Reply:** `201` with the job object, in state `PENDING`. + +### Job object: `GET /v1/jobs/{id}` + +```json +{ + "id": 412, + "name": "resnet-sweep-3", + "user": "alice", + "team": "vision", + "partition": "gpu", + "qos": "normal", + "kind": "batch", + "state": "PENDING", + "pending_reason": "RESOURCES", + "pending_detail": "Waiting for 1 GPU; estimated start after job 409 ends", + "exit_reason": null, + "exit_code": null, + "resources": { "cpus": 8, "memory_bytes": 34359738368, "gpus": 1, "tt_boards": 0, "scratch_bytes": 107374182400 }, + "time_limit_seconds": 14400, + "node": null, + "workdir": "/mist/teams/vision/alice/resnet", + "output_path": "/mist/teams/vision/alice/resnet/mist-412.out", + "submitted_at": "2026-11-02T15:04:05Z", + "started_at": null, + "ended_at": null, + "can_cancel": true, + "can_attach": false +} +``` + +**States and reasons** are defined in [scheduler.md](scheduler.md#job-states). +Other teams' jobs appear in `GET /v1/queue` with `user`, `team`, `name`, +`workdir` and `output_path` set to `null` (D15). + +### Logs: `GET /v1/jobs/{id}/log` + +- **Running job:** returns the live output stream from the executor. Add + `?follow=1` to stream it over a WebSocket. +- **Finished job:** returns the stored tail (last 64 KiB) from the database. +- **The full log is always the `.out` file in `/mist`.** The response includes + `output_path` so clients can say where it is. + +### Attach: `GET /v1/jobs/{id}/attach` (WebSocket) + +Binary frames carry terminal bytes. Text frames carry control messages: + +```json +{ "type": "resize", "cols": 120, "rows": 40 } +{ "type": "signal", "name": "SIGINT" } +{ "type": "exit", "code": 0 } +``` + +Only the job's owner can attach. The CLI's `mist shell` and the later browser +terminal both use this endpoint. + +## Versioning + +Additive changes (new fields, endpoints or enum values) don't change the +version. Clients must ignore unknown fields and show unknown enum values as +plain text. Breaking changes go to `/v2`. diff --git a/docs/agents/architecture/decisions.md b/docs/agents/architecture/decisions.md new file mode 100644 index 0000000..d896490 --- /dev/null +++ b/docs/agents/architecture/decisions.md @@ -0,0 +1,218 @@ +# Architecture decisions + +Each entry records the context, the decision, and what follows from it. To +change a decision, add a new entry that supersedes the old one rather than +editing it. The system overview is [ARCHITECTURE.md](../../../ARCHITECTURE.md). + +## D1. Mist has its own scheduler; Kubernetes only runs jobs + +**Context.** The previous platform made every job a container image with +declared mounts, and that friction is the reason for the redesign. An existing +HPC scheduler (Slurm) was considered. The team chose to build the scheduler as +part of Mist, and the cluster is expected to grow beyond two nodes. + +**Decision.** Mist's scheduler owns the queue, policy and placement. A pluggable +**executor** turns an admitted job into running processes. The first executor +uses k3s; the Kubernetes scheduler never decides when or where a job runs. + +**Consequences.** Mist implements queueing, limits, priority and accounting. +Kubernetes provides process supervision, device allocation (NVIDIA device plugin, +Tenstorrent DRA), cgroup limits and node membership. If both systems made +placement decisions, jobs could sit pending with no visible reason; pinning pods +to the scheduler's chosen node prevents that. + +## D2. Executors sit behind one interface, and each node has exactly one executor + +**Decision.** Executors implement the interface in [executors.md](executors.md). +The K3s executor ships first. A native node executor (systemd units and cgroups, +no containers) follows behind the same interface. Each partition maps to one +executor, and each node belongs to one executor, because two systems cannot both +own a node's devices. + +**Consequences.** The scheduler and API never import Kubernetes types. A shared +conformance test suite defines executor behaviour. Moving a node between +executors means draining it first. + +## D3. Postgres is the source of truth + +**Context.** The previous platform kept queue and policy state in ConfigMaps and +suspended Jobs. + +**Decision.** All Mist state lives in Postgres. Pods, Linux accounts and folders +are derived and reconciled from it. + +**Consequences.** Restarting `mistd` or wiping execution objects loses nothing; +the executor rebuilds its view by comparing the database with what is actually +running. Usage history for fairshare and accounting has a natural home. + +## D4. One Linux UID per person + +**Context.** Creating a Linux user per job was considered, so that only jobs +would get privileges. + +**Decision.** Each person has one stable UID, the same on every host. Jobs run +as that UID. Privileges (devices, write access to the right folders) come from +the job's cgroup, mounts and supplementary groups, not from a different user. + +**Consequences.** Files keep one owner across login, jobs and teammates. There +is no ownership mess between jobs. UID and GID allocation is centralised in the +Mist DB, in fixed ranges that don't collide with local system accounts. + +## D5. Each job is scoped to one charged team + +**Decision.** Every job names a charged team; by default it is the team whose +folder the job was submitted from. The job is given only that team's group and +that team's folder, plus shared read-only software. + +**Consequences.** Someone in two teams cannot accidentally mix IP-bound data +between them inside a job. They can still copy files by hand, since they can +read both teams; no technical control prevents a person from moving data they +can read. A person's home is per-team for the same reason (D8). + +## D6. Login moves files and manages jobs; code runs only in jobs + +**Decision.** Researcher SSH sessions are restricted by `ForceCommand` to: +SFTP/scp, `rsync`, a small set of built-in file viewing commands, and the `mist` +CLI. Anything that executes user code is a job. + +**Consequences.** The login host (also a storage and compute node) is protected +from stray compute. Internet downloads become jobs (D11). This is stricter than +typical HPC login nodes, and that is deliberate on a cluster with no dedicated +login hardware. + +## D7. Login and storage on the TT box; control plane on the NVIDIA box + +**Decision.** + +- **TT box:** the durable storage (`/mist`), the login gateway and the + provisioner. +- **NVIDIA box:** the k3s server, `mistd`, Postgres and the portal. + +**Consequences.** Uploads land on local disk with no network hop. The TT box is +the single point of failure for logins and file access. The control plane and +the database sit on separate hardware from the bulk storage. + +## D8. A researcher's team folder is their home + +**Decision.** `/mist/teams///` is both `$HOME` and the default +working directory for jobs charged to that team. It is team-readable (`2750`). +`.cache`, `.config`, `.local` and `.ssh` inside it are private (`0700`): the +provisioner creates them that way, and the job entry wrapper resets them on +every job. A few large shareable caches are mapped to the team's `.cache/` by +environment variables. + +**Consequences.** Every tool's cache and config lands somewhere sensible without +per-tool mapping. Credentials stored in the usual hidden folders stay private. +**Accepted risk:** a tool that writes a secret as a top-level file without +restricting its permissions exposes it to teammates (never to other teams). +Someone in two teams keeps two homes. Researchers need this explained, so it +appears under "What researchers see" in [storage.md](storage.md). + +## D9. Durable storage plus local scratch; growth by adding volumes + +**Decision.** `/mist` is the only durable storage. Node-local scratch is +temporary and wiped after each job. Durable capacity grows by adding **volumes** +(separate NFS exports), and each team folder lives entirely on one volume. No +distributed filesystem is used. + +**Consequences.** Researchers never have to work out which machine holds a file. +Adding storage is a database record plus an export. Spare disk on compute nodes +goes to backups first, then scratch, and only then to new volumes. + +## D10. The direct link runs at 10 GbE on existing network cards + +**Context.** The direct cable uses Intel I210 ports, which max out at 1 Gb/s +(about 110 MB/s). Loading a 14 GB model took around two minutes. + +**Decision.** Move the link to the 10GBASE-T ports already installed: the +Aquantia AQC107 (`ens6`) on the NVIDIA box and the Intel X710 +(`enp10s0f0np0`) on the TT box. Use Cat6a cable. + +**Consequences.** NFS reaches roughly 700–1000 MB/s, so the separate node-local +model cache is dropped from the design. The second X710 port can take one more +direct-connected node. A fourth node needs a 10 GbE switch. + +## D11. Downloads are ordinary jobs on a `cpu` partition + +**Decision.** The TT box's CPUs form a `cpu` partition, which sits next to the +storage. `mist run -p cpu -- ` and `mist shell -p cpu` cover every download +tool. There is no dedicated download service. + +**Consequences.** Any source works (Hugging Face, S3, Kaggle, `git lfs`, `wget`), +using the researcher's own tokens. GPUs are never held idle during downloads. + +## D12. Job outputs go to `/mist`; scratch is opt-in + +**Decision.** + +- **Output.** Stdout and stderr stream to `mist-.out` in the submit folder. + Mist appends its own messages there too (node, cancellation, time limit, + out-of-memory). +- **Job record.** The database keeps the job's metadata, a copy of the script, + and a tail of the log. +- **Scratch.** `$TMPDIR` points at node-local scratch, which is deleted when the + job ends. +- **Time limits.** At the limit the job receives SIGTERM, then SIGKILL after a + grace period (default 60 s). + +**Consequences.** Nothing a researcher writes by default is ever lost. The +portal can show logs without reading team files. + +## D13. Accelerator device files stay world-accessible; isolation comes from cgroups + +**Context.** `/dev/nvidia*` and `/dev/tenstorrent/*` are mode `0666` on both +hosts. + +**Decision.** Keep the host modes. Inside a job, the executor's device cgroup +(device plugin, or `DeviceAllow` in the node executor) exposes only the +allocated devices. Host-level access is prevented by D6 and by removing +unmanaged GPU consumers (for example an `ollama` service). + +**Consequences.** This matches Slurm's model. If the device files were tightened +to `0660`, containers could no longer open the devices they were given, because +non-root jobs inherit the host permissions. + +## D14. Misty owns people and teams; Mist owns accounts + +**Decision.** Misty is authoritative for who exists, which teams exist, and who +belongs to them. Mist caches that data and adds what is specific to Mist: +usernames, UIDs and GIDs, SSH keys, limits and roles. Until misty's API is +available, a stub backed by a file stands in for it. + +**Consequences.** Removing someone from a team in misty eventually removes their +Mist access to that team. Mist never edits people or teams. + +## D15. Other teams' jobs are anonymised in queue views + +**Decision.** Queue and partition views show every job's state, resources and +age, so researchers can see why they are waiting. The user, team, job name and +paths are shown only for the viewer's own teams. + +**Consequences.** Job names and paths can't leak IP-bound project details +between teams. + +## D16. One Go binary, plain Kubernetes objects + +**Decision.** `mistd` is one Go binary with subcommands (`api`, `scheduler`, +`provision`). It talks to Kubernetes through `client-go` and creates plain Pods. +It uses no CRDs, operators, `kubectl` shell-outs or Kubernetes Jobs. + +**Consequences.** Mist's own state machine stays in Mist's code and database, +which keeps it easy to understand and to swap executors. + +## D17. Accelerators are whole devices; CPU and memory are capped per GPU + +**Decision.** + +- **Whole devices.** Jobs request whole GPUs or TT boards; two 1-GPU jobs share + the A4000 box side by side. +- **Per-GPU caps.** Each GPU partition caps CPUs and memory per allocated GPU, + so one job cannot leave another GPU unusable. +- **No GPU-less jobs on GPU nodes.** `gpu` partition jobs must request at least + one GPU. +- **No GPU sharing.** Fractional GPUs (time-slicing) are not offered, because + the A4000 has no hardware partitioning and time-slicing gives no memory + isolation. + +**Consequences.** Placement only counts devices, CPUs and memory. Time-slicing +could later be added as an opt-in for small debug work. diff --git a/docs/agents/architecture/deployment-and-network.md b/docs/agents/architecture/deployment-and-network.md new file mode 100644 index 0000000..eb125f8 --- /dev/null +++ b/docs/agents/architecture/deployment-and-network.md @@ -0,0 +1,120 @@ +# Deployment and network + +Covers which host runs what, how hosts and users connect, where configuration +and secrets live, admin access, and how nodes are added. Overview: +[ARCHITECTURE.md](../../../ARCHITECTURE.md). Related decisions: D7, D10, D13. + +## Hosts + +| | `utmist-z1opa08` (NVIDIA) | `utmist-tt` (QuietBox) | +|---|---|---| +| Hardware | 56 CPUs, 157 GiB RAM, 2× RTX A4000 16 GB, 2× 447 GB SATA SSD | 32 CPUs, 503 GiB RAM, 4× n300 (8 chips), 3.6 TB NVMe | +| OS | Ubuntu 22.04, kernel 6.8, cgroup v2 | same | +| Roles | k3s server; `mistd api` + `mistd scheduler`; Postgres; portal (Nginx); `gpu` partition; backup target (M3) | k3s agent; `/mist` volume 1 + NFS server; login gateway (sshd, `mist-gate`, `mist-relay`); `mistd provision`; `cpu` and `tt` partitions | + +## Networks + +| Network | Addresses | Carries | +|---|---|---| +| **Direct link (10 GbE)** | NVIDIA `ens6` `192.168.240.1/24`, TT `enp10s0f0np0` `192.168.240.2/24` | k3s node traffic and Flannel, NFS, relay and provisioner → API, backups | +| LAN | NVIDIA `10.0.0.175` (currently over Wi-Fi), TT `10.0.0.112` | Internet access only | +| Tailscale | NVIDIA `100.73.139.66`, TT `100.95.175.37` | Users: portal (NVIDIA :8088), SSH login (TT :22); admin SSH | + +**Moving the direct link to 10 GbE (M1):** + +- **Cable:** Cat6a (or Cat6 under about 50 m) between the NVIDIA box's `ens6` + (Aquantia AQC107) and the TT box's `enp10s0f0np0` (Intel X710). Both are + 10GBASE-T (RJ45) ports. +- **Addresses:** move `192.168.240.1/.2` from the 1 GbE I210 ports to those two + ports, using a `/24` so more nodes can join. +- **MTU:** jumbo frames (9000) on both ends are optional, but help NFS. +- **Check:** `ethtool ` shows `Speed: 10000Mb/s`. An `iperf3` run should + reach above 9 Gb/s. + +**Wired LAN.** The NVIDIA box should also reach the LAN over wired Ethernet +rather than Wi-Fi; one of its I210 ports frees up once the direct link moves. + +**k3s** is installed fresh, with `--node-ip` and `--flannel-iface` on the direct +link, so cluster traffic never uses the LAN or Wi-Fi. + +## Services + +| Service | Host | Runs as | +|---|---|---| +| k3s server and agent | both | systemd | +| NVIDIA GPU Operator (device plugin + container toolkit) | NVIDIA | k3s | +| Tenstorrent DRA driver (M4) | TT | k3s | +| Postgres | NVIDIA | k3s StatefulSet, data on local SSD (never NFS) | +| `mistd api`, `mistd scheduler` | NVIDIA | k3s Deployments (1 replica each), reachable on `192.168.240.1` for agents | +| Portal (Nginx + static build) | NVIDIA | systemd, `:8088` on Tailscale, proxies `/api` | +| NFS server | TT | systemd | +| sshd + `mist-gate` | TT | systemd | +| `mist-relay` | TT | systemd (root) | +| `mistd provision` | TT (later every node) | systemd (root) | +| `mist-noded` (M5) | nodes moved to the node executor | systemd (root) | + +## Configuration and secrets + +- **Configuration in Git:** `deploy/` (manifests, systemd units, sshd and + exports snippets, host setup scripts). +- **Settings in the database:** partitions, QoS, limits, volumes. Admins change + them through the API. +- **Secrets never go in Git:** + - Postgres credentials, the relay token and per-host agent tokens. + - Kubernetes Secrets for in-cluster use; `/etc/mist/*.token` (0600 root) on + hosts. + - Rotate any secret that has been pasted into a chat or document. + +## Admin access + +- **Separate admin accounts** for each admin, with SSH keys only, `sudo`, and + not in `mist-users`. Researcher accounts never have `sudo` or `docker`. +- **Password SSH disabled** on both hosts. The shared `utmist` and `utmist-tt` + passwords are retired once admin accounts exist. +- **Clean up existing host state** after checking with whoever created it: + - leftover local accounts (`dev`, `terrymist`, `labadmin`, `labmember`) + - the `ollama` service and group + - Docker +- **Device files stay `0666`** (D13). This is safe only because researcher + logins can't run code and unmanaged GPU consumers are removed. + +## Starting fresh + +Before M1 goes live: + +1. Stop and remove the previous platform's API, namespaces (`mist-team-*`), + ConfigMaps and Jobs. +2. Keep the old storage folders untouched until a human confirms they can be + deleted. +3. Reinstall k3s on the direct link. + +## Adding a node + +1. **Connect it to the direct-link network.** With three nodes, use the TT box's + second X710 port, or better a 10 GbE switch with all nodes on + `192.168.240.0/24`. Four or more nodes need the switch. +2. **Install Ubuntu** with the drivers for its accelerators. +3. **K3s executor:** join it as a k3s agent and install its device plugin. Node + executor: install `mist-noded` and `mistd provision`. +4. **Register it in Mist:** add it to a partition (new or existing) and set its + reserved host share. +5. **Run the executor conformance suite** on it, then mark it `up`. + +## Work by milestone + +- **M1:** + - 10 GbE link and wired LAN + - fresh k3s + - Postgres + - deploy `mistd` and the portal + - gateway host setup + - admin accounts and secret rotation + - remove the old platform +- **M3:** backup target, and basic monitoring (disk space, node health, failed + provisioner runs). + +## Open questions + +- Monitoring and alerting stack. +- Whether the NVIDIA box's `sdb` is free for scratch and backups. +- A stable login hostname. diff --git a/docs/agents/architecture/executors.md b/docs/agents/architecture/executors.md new file mode 100644 index 0000000..eeb9892 --- /dev/null +++ b/docs/agents/architecture/executors.md @@ -0,0 +1,307 @@ +# Executors + +An executor turns an admitted job into processes on a node, streams their I/O, +and reports what happened. The scheduler decides; the executor carries the +decision out. Overview: [ARCHITECTURE.md](../../../ARCHITECTURE.md). Related +decisions: D1, D2, D13, D16, D17. + +There are two executors: + +- the **K3s executor**, used from M1 +- the **node executor** (M5), which runs jobs as systemd units without + containers + +Both implement the same interface and pass the same conformance tests. Each node +is managed by exactly one executor. + +## Interface + +```go +package executor + +type Executor interface { + Name() string + + // Nodes reports schedulable capacity and health for nodes this executor manages. + Nodes(ctx context.Context) ([]Node, error) + + // Launch starts the job on spec.Node. Idempotent per spec.JobID. + Launch(ctx context.Context, spec LaunchSpec) error + + // Terminate sends SIGTERM, then SIGKILL after grace. Idempotent. + Terminate(ctx context.Context, jobID int64, grace time.Duration, reason string) error + + // Attach connects a terminal to a running interactive job; returns when the session ends. + Attach(ctx context.Context, jobID int64, term Terminal) error + + // Logs streams the job's live output (stdout+stderr as written to the .out file). + Logs(ctx context.Context, jobID int64, follow bool) (io.ReadCloser, error) + + // List returns every execution this executor knows about, for reconciliation. + List(ctx context.Context) ([]Execution, error) + + // Events delivers state changes. Delivery is at-least-once; consumers dedupe by (JobID, Kind). + Events() <-chan Event +} + +type LaunchSpec struct { + JobID int64 + Kind Kind // Batch | Command | Interactive + Node string + User User // Name, UID, PersonalGID + TeamSlug string + TeamGID int + ExtraGIDs []int // mist-users + Resources Resources // CPUs, MemoryBytes, GPUs, TTBoards, ScratchBytes + DeviceIDs []string // optional; set when the scheduler assigns specific devices + Mounts []Mount // resolved team folder + software (volume, source, target, readOnly) + Workdir string + OutputPath string + Script string // Batch + Argv []string // Command + Env map[string]string // full job environment, see runtime-environment.md + Runtime string // partition runtime image / host profile, pinned + TimeLimit time.Duration // executor sets a backstop slightly beyond this + SignalGrace time.Duration +} + +type Event struct { + JobID int64 + Kind EventKind // Started | Exited | LaunchFailed | Lost + Node string + ExitCode *int + Reason ExitReason // Normal | OutOfMemory | ScratchExceeded | Deadline | Signaled | ... + Detail string // human-readable, shown to users + Transient bool // for LaunchFailed: safe to retry once + At time.Time +} + +type Node struct { + Name string + Partitions []string + Capacity Resources + Devices []Device // optional per-device inventory + Healthy bool + Detail string +} +``` + +The scheduler and API depend only on this package. Kubernetes and systemd types +never leak outside their executor packages. + +## Guarantees every executor must provide + +These guarantees are tested by a shared **conformance suite** +(`internal/executor/conformance`) that runs against each implementation on real +nodes. + +1. **Identity.** Processes run as `User.UID`. The primary group is `TeamGID`. + The supplementary groups are exactly `ExtraGIDs` plus `PersonalGID`. There is + no privilege escalation and there are no capabilities. +2. **Filesystem view.** + - **Visible:** only the given mounts, at `/mist/teams/` and + `/mist/software` (read-only), plus `/scratch`. Other teams' folders are + absent, not merely denied. + - **Writable:** only the team folder (as permissions allow), `/scratch` and + `/tmp`. `/tmp` lives inside scratch. +3. **Devices.** Only the allocated GPUs or TT boards can be opened, and they + appear numbered from 0. +4. **Limits.** CPU and memory limits apply, swap is off, and scratch is capped. + Hitting the memory limit gives `OutOfMemory`; going over scratch gives + `ScratchExceeded`. +5. **Time limits.** `Terminate` delivers SIGTERM to the job's processes, then + SIGKILL after the grace period. A backstop kills the job even if the + scheduler is down. +6. **Network.** + - **Allowed:** outbound internet and DNS. + - **Blocked:** the LAN, the direct link, the Tailscale range, cluster + services and the Kubernetes API. + - **Inbound:** none. +7. **Output.** Output goes to `OutputPath` through `mist-job-entry` (below), and + live output is also available from `Logs`. +8. **Cleanup.** When the job ends, all of its processes are gone, scratch is + deleted and devices are free. Executors report `Exited` only once this is + true. +9. **Repeat-safe and recoverable.** Repeating `Launch` or `Terminate` is safe. + After a restart, `List` reports what is actually running. + +## `mist-job-entry` + +A small static Go binary that is the first process of every job, under any +executor. It is the single place that implements the job contract in +[runtime-environment.md](runtime-environment.md): + +1. **Set up:** + - set `umask 0007` + - create, or reset to `0700`, `$HOME/{.cache,.config,.local,.ssh}` + - create the output file and write a header (job ID, node, resources, start + time) +2. **Run the work:** + - **Batch:** `bash - - diff --git a/web-interface/package-lock.json b/web-interface/package-lock.json deleted file mode 100644 index 2176980..0000000 --- a/web-interface/package-lock.json +++ /dev/null @@ -1,4695 +0,0 @@ -{ - "name": "web-interface", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "web-interface", - "dependencies": { - "@tailwindcss/vite": "^4.1.18", - "@tanstack/react-devtools": "latest", - "@tanstack/react-router": "latest", - "@tanstack/react-router-devtools": "latest", - "@tanstack/router-plugin": "^1.132.0", - "better-auth": "1.7.7", - "lucide-react": "^0.545.0", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "tailwindcss": "^4.1.18" - }, - "devDependencies": { - "@tailwindcss/typography": "^0.5.16", - "@tanstack/devtools-vite": "latest", - "@tanstack/eslint-config": "latest", - "@testing-library/dom": "^10.4.1", - "@testing-library/react": "^16.3.0", - "@types/node": "^22.10.2", - "@types/react": "^19.2.0", - "@types/react-dom": "^19.2.0", - "@vitejs/plugin-react": "^5.1.4", - "jsdom": "^28.1.0", - "prettier": "^3.8.1", - "typescript": "^5.7.2", - "vite": "^7.3.7", - "vite-tsconfig-paths": "^5.1.4", - "vitest": "^5.0.3" - }, - "engines": { - "node": ">=22.16.0" - } - }, - "node_modules/@acemir/cssom": { - "version": "0.9.31", - "dev": true, - "license": "MIT" - }, - "node_modules/@asamuzakjp/css-color": { - "version": "5.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/generational-cache": "^1.0.1", - "@csstools/css-calc": "^3.2.0", - "@csstools/css-color-parser": "^4.1.0", - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/@asamuzakjp/dom-selector": { - "version": "6.8.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.6" - } - }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.5.3", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@asamuzakjp/generational-cache": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.8", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.8", - "@babel/types": "^7.29.8", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.29.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.29.7", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.9", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.8" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.29.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.29.7", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.8", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.8", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.8", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.8", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.8", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@better-auth/core": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/core/-/core-1.7.7.tgz", - "integrity": "sha512-srgFzHEjB2WWlokFz1i4BfG41sNhsA105Pukgqu6RrEh5A+LSkzf1mCHydVipkjt9l5qswtBMi7IL6ouHbZL4Q==", - "license": "MIT", - "dependencies": { - "@opentelemetry/semantic-conventions": "^1.41.1", - "@standard-schema/spec": "^1.1.0", - "zod": "^4.5.4" - }, - "peerDependencies": { - "@better-auth/utils": "0.4.2", - "@better-fetch/fetch": "1.3.2", - "@opentelemetry/api": "^1.9.0", - "better-call": "1.4.0", - "jose": "^6.1.0", - "kysely": "^0.28.5 || ^0.29.0", - "nanostores": "^1.0.1" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - } - } - }, - "node_modules/@better-auth/drizzle-adapter": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/drizzle-adapter/-/drizzle-adapter-1.7.7.tgz", - "integrity": "sha512-qon0U94PR5FQysuyGoAlGVQpIIiNg5dtDpwjE63sN/HjoRWZadZzHPcS9mn7JsJyQZK6iTNhd7LD0AaXt2f78w==", - "license": "MIT", - "peerDependencies": { - "@better-auth/core": "^1.7.7", - "@better-auth/utils": "0.4.2", - "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0" - }, - "peerDependenciesMeta": { - "drizzle-orm": { - "optional": true - } - } - }, - "node_modules/@better-auth/kysely-adapter": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/kysely-adapter/-/kysely-adapter-1.7.7.tgz", - "integrity": "sha512-9FONOCgOcrQI9wJ5v1oDGIg9sT7pa9RjZZQ4fsCTudo8R87SrIGNUvUxDFTJhZvUblvFfGaIBR9Vb8LA+8bqLQ==", - "license": "MIT", - "peerDependencies": { - "@better-auth/core": "^1.7.7", - "@better-auth/utils": "0.4.2", - "kysely": "^0.28.17 || ^0.29.0" - }, - "peerDependenciesMeta": { - "kysely": { - "optional": true - } - } - }, - "node_modules/@better-auth/memory-adapter": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/memory-adapter/-/memory-adapter-1.7.7.tgz", - "integrity": "sha512-FqKFEe+b5tXXV0gRbyirca+qXgMpLOeJ8Wk19yykb/scQKy0WJ4k22WzEV3TTPctQV9DZhwCXPlDtQhnlOv5Gg==", - "license": "MIT", - "peerDependencies": { - "@better-auth/core": "^1.7.7", - "@better-auth/utils": "0.4.2" - } - }, - "node_modules/@better-auth/mongo-adapter": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/mongo-adapter/-/mongo-adapter-1.7.7.tgz", - "integrity": "sha512-ZnVDuRrXqbf0oHphrEN27oTImNH5NTO26dtWatq5cXyYAsH7goof9QIoTOmxTbBxUQahKBw9T6+9h6n+RtOE+g==", - "license": "MIT", - "peerDependencies": { - "@better-auth/core": "^1.7.7", - "@better-auth/utils": "0.4.2", - "mongodb": "^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "mongodb": { - "optional": true - } - } - }, - "node_modules/@better-auth/prisma-adapter": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/prisma-adapter/-/prisma-adapter-1.7.7.tgz", - "integrity": "sha512-4YcnrcVdvWiAZw0sZl63tWUClPXg5r3QsLn7C2sG7kKEBY06zOng0ibecyxRBixKq1zE1ceHuEUqez5Rhi+nQA==", - "license": "MIT", - "peerDependencies": { - "@better-auth/core": "^1.7.7", - "@better-auth/utils": "0.4.2", - "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", - "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "@prisma/client": { - "optional": true - }, - "prisma": { - "optional": true - } - } - }, - "node_modules/@better-auth/telemetry": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/@better-auth/telemetry/-/telemetry-1.7.7.tgz", - "integrity": "sha512-PaRA6i+kAioVYmza2gHPcdrxP0hAotph4KV9hft2GeNJq+AZXDiBu3FuLM9HxvcmiZeUT74Vufqd9ypmB8veTA==", - "license": "MIT", - "peerDependencies": { - "@better-auth/core": "^1.7.7", - "@better-auth/utils": "0.4.2", - "@better-fetch/fetch": "1.3.2" - } - }, - "node_modules/@better-auth/utils": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@better-auth/utils/-/utils-0.4.2.tgz", - "integrity": "sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "^2.0.1" - } - }, - "node_modules/@better-fetch/fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@better-fetch/fetch/-/fetch-1.3.2.tgz", - "integrity": "sha512-Gs7n99b5tqUC6cQAPbV0uED3IraHB6xQbHLQ/C3l7ZFafHScOx9pQ+DYmP5blbLFShVWLqxNUlI9wi4xU/X+ow==", - "license": "MIT" - }, - "node_modules/@bramus/specificity": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "^3.0.0" - }, - "bin": { - "specificity": "bin/cli.js" - } - }, - "node_modules/@cacheable/memory": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@cacheable/utils": "^2.5.0", - "@keyv/bigmap": "^1.3.1", - "hookified": "^1.15.1", - "keyv": "^5.6.0" - } - }, - "node_modules/@cacheable/utils": { - "version": "2.5.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hashery": "^1.5.1", - "keyv": "^5.6.0" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "6.1.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@csstools/css-calc": { - "version": "3.4.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "4.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^6.1.1", - "@csstools/css-calc": "^3.4.0" - }, - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "4.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^4.0.0" - } - }, - "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.14", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peerDependencies": { - "css-tree": "^3.2.1" - }, - "peerDependenciesMeta": { - "css-tree": { - "optional": true - } - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "4.0.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=20.19.0" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.28.2", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.10.1", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.23.5", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/object-schema": "^3.0.5", - "debug": "^4.3.1", - "minimatch": "^10.2.4" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.7.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/core": "^1.2.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/core": { - "version": "1.2.1", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/js": { - "version": "10.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "eslint": "^10.0.0" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/@eslint/object-schema": { - "version": "3.0.5", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.7.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@eslint/core": "^1.2.1", - "levn": "^0.4.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - } - }, - "node_modules/@exodus/bytes": { - "version": "1.16.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "@noble/hashes": "^1.8.0 || ^2.0.0" - }, - "peerDependenciesMeta": { - "@noble/hashes": { - "optional": true - } - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.2", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanfs/types": "^0.15.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.8", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanfs/core": "^0.19.2", - "@humanfs/types": "^0.15.0", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/types": { - "version": "0.15.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.6.0", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@keyv/bigmap": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hashery": "^1.4.0", - "hookified": "^1.15.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "keyv": "^5.6.0" - } - }, - "node_modules/@keyv/serialize": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@neodrag/core": { - "version": "3.0.0-next.11", - "license": "MIT" - }, - "node_modules/@neodrag/solid": { - "version": "3.0.0-next.11", - "license": "MIT", - "peerDependencies": { - "@neodrag/core": "3.0.0-next.11", - "solid-js": "^1.0.0" - } - }, - "node_modules/@noble/ciphers": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.4.0.tgz", - "integrity": "sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.4.0.tgz", - "integrity": "sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", - "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, - "node_modules/@oxc-parser/binding-linux-x64-gnu": { - "version": "0.120.0", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@oxc-project/types": { - "version": "0.120.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.63.5", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@solid-primitives/event-listener": { - "version": "2.4.6", - "license": "MIT", - "dependencies": { - "@solid-primitives/utils": "^6.4.1" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/keyboard": { - "version": "1.3.7", - "license": "MIT", - "dependencies": { - "@solid-primitives/event-listener": "^2.4.6", - "@solid-primitives/rootless": "^1.5.4", - "@solid-primitives/utils": "^6.4.1" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/resize-observer": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "@solid-primitives/event-listener": "^2.4.6", - "@solid-primitives/rootless": "^1.5.4", - "@solid-primitives/static-store": "^0.1.4", - "@solid-primitives/utils": "^6.4.1" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/rootless": { - "version": "1.5.4", - "license": "MIT", - "dependencies": { - "@solid-primitives/utils": "^6.4.1" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/static-store": { - "version": "0.1.4", - "license": "MIT", - "dependencies": { - "@solid-primitives/utils": "^6.4.1" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/utils": { - "version": "6.4.1", - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "license": "MIT" - }, - "node_modules/@stylistic/eslint-plugin": { - "version": "5.10.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/types": "^8.56.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "estraverse": "^5.3.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": "^9.0.0 || ^10.0.0" - } - }, - "node_modules/@tailwindcss/node": { - "version": "4.3.3", - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.24.1", - "jiti": "^2.7.0", - "lightningcss": "1.32.0", - "magic-string": "^0.30.21", - "source-map-js": "^1.2.1", - "tailwindcss": "4.3.3" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.3.3", - "license": "MIT", - "engines": { - "node": ">= 20" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.3", - "@tailwindcss/oxide-darwin-arm64": "4.3.3", - "@tailwindcss/oxide-darwin-x64": "4.3.3", - "@tailwindcss/oxide-freebsd-x64": "4.3.3", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", - "@tailwindcss/oxide-linux-x64-musl": "4.3.3", - "@tailwindcss/oxide-wasm32-wasi": "4.3.3", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.3", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.20", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >=4.0.0 || insiders" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.3.3", - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "4.3.3", - "@tailwindcss/oxide": "4.3.3", - "tailwindcss": "4.3.3" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6 || ^7 || ^8" - } - }, - "node_modules/@tanstack/devtools": { - "version": "0.15.0", - "license": "MIT", - "dependencies": { - "@neodrag/core": "3.0.0-next.11", - "@neodrag/solid": "3.0.0-next.11", - "@solid-primitives/event-listener": "^2.4.3", - "@solid-primitives/keyboard": "^1.3.3", - "@solid-primitives/resize-observer": "^2.1.3", - "@tanstack/devtools-client": "0.0.8", - "@tanstack/devtools-event-bus": "0.4.3", - "@tanstack/devtools-ui": "0.7.1", - "clsx": "^2.1.1", - "goober": "^2.1.16", - "solid-js": "^1.9.9" - }, - "bin": { - "intent": "bin/intent.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "solid-js": ">=1.9.7" - } - }, - "node_modules/@tanstack/devtools-bundler-core": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@tanstack/devtools-client": "0.0.8", - "@tanstack/devtools-event-bus": "0.4.3", - "chalk": "^5.6.2", - "launch-editor": "^2.14.1", - "magic-string": "^0.30.0", - "oxc-parser": "^0.120.0", - "picomatch": "^4.0.5" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/devtools-client": { - "version": "0.0.8", - "license": "MIT", - "dependencies": { - "@tanstack/devtools-event-client": "^0.5.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/devtools-event-bus": { - "version": "0.4.3", - "license": "MIT", - "dependencies": { - "ws": "^8.18.3" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/devtools-event-client": { - "version": "0.5.0", - "license": "MIT", - "bin": { - "intent": "bin/intent.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/devtools-ui": { - "version": "0.7.1", - "license": "MIT", - "dependencies": { - "clsx": "^2.1.1", - "dayjs": "^1.11.19", - "goober": "^2.1.16", - "solid-js": "^1.9.9" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "solid-js": ">=1.9.7" - } - }, - "node_modules/@tanstack/devtools-vite": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@tanstack/devtools-vite/-/devtools-vite-0.8.5.tgz", - "integrity": "sha512-xaifCEmiwwzizlbp973oISXNsnmuU/BugLa66gryAZaPJJ/qo1kJd2DxY5X960eHwmyIS3SN0KYrL3/aRhucmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tanstack/devtools-bundler-core": "0.1.3", - "@tanstack/devtools-client": "0.0.8", - "@tanstack/devtools-event-bus": "0.4.3", - "chalk": "^5.6.2" - }, - "bin": { - "intent": "bin/intent.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@tanstack/eslint-config": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@tanstack/eslint-config/-/eslint-config-0.4.0.tgz", - "integrity": "sha512-V+Cd81W/f65dqKJKpytbwTGx9R+IwxKAHsG/uJ3nSLYEh36hlAr54lRpstUhggQB8nf/cP733cIw8DuD2dzQUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint/js": "^10.0.1", - "@stylistic/eslint-plugin": "^5.8.0", - "eslint-plugin-import-x": "^4.16.1", - "eslint-plugin-n": "^17.24.0", - "globals": "^17.3.0", - "typescript-eslint": "^8.55.0", - "vue-eslint-parser": "^10.4.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "eslint": "^9.0.0 || ^10.0.0" - } - }, - "node_modules/@tanstack/history": { - "version": "1.162.4", - "license": "MIT", - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-devtools": { - "version": "0.10.13", - "resolved": "https://registry.npmjs.org/@tanstack/react-devtools/-/react-devtools-0.10.13.tgz", - "integrity": "sha512-r0cdB/14+st2Vxl/1Bodlyq4VC8pf9SykLQDYbGHDc1+V146WQo5B3KlYLkfyxD9Q/6+9NPRQHZyl8fvZVMdRA==", - "license": "MIT", - "dependencies": { - "@tanstack/devtools": "0.15.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "@types/react-dom": ">=16.8", - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/@tanstack/react-router": { - "version": "1.170.41", - "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.170.41.tgz", - "integrity": "sha512-Mpvw8Wm5MGDbTqI8Yc9flLKxbOHwoWocv0H2aGKcgw2a017oK5nZWqa954P+DrUx/8fI98YNywnHP5XcD3tQ9w==", - "license": "MIT", - "dependencies": { - "@tanstack/history": "1.162.4", - "@tanstack/react-store": "^0.11.2", - "@tanstack/router-core": "1.171.34", - "isbot": "^5.1.22" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=18.0.0 || >=19.0.0", - "react-dom": ">=18.0.0 || >=19.0.0" - } - }, - "node_modules/@tanstack/react-router-devtools": { - "version": "1.167.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-router-devtools/-/react-router-devtools-1.167.2.tgz", - "integrity": "sha512-VuoqB7OhDUrBa4WOFSKiAQ8xI8sJpeZdo9sYE1hQa89iMuVFUQu1iWE4iCiQhB+6TYOZDZ9e+iHKxYjop4ZVYw==", - "license": "MIT", - "dependencies": { - "@tanstack/router-devtools-core": "1.168.2" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/react-router": "^1.170.36", - "@tanstack/router-core": "^1.171.30", - "react": ">=18.0.0 || >=19.0.0", - "react-dom": ">=18.0.0 || >=19.0.0" - }, - "peerDependenciesMeta": { - "@tanstack/router-core": { - "optional": true - } - } - }, - "node_modules/@tanstack/react-router/node_modules/@tanstack/router-core": { - "version": "1.171.34", - "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.171.34.tgz", - "integrity": "sha512-X+19pGuuLVPvvAvPYw9v/+ktRk5cCll8AtfpBpOhDRmVgUMrfqze0467xtq8YRVVs/mmo5rVtWn/7Tp32RDBKw==", - "license": "MIT", - "dependencies": { - "@tanstack/history": "1.162.4", - "cookie-es": "^3.0.0", - "seroval": "^1.6.7", - "seroval-plugins": "^1.6.7" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-store": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.11.2.tgz", - "integrity": "sha512-oj5O5DmiMWE+ih+SioX2ayC1kbK7d3fpLx0B75fPJr9nY3zU+hoW010yr64qXsY/9fyiLVE2bn5mGNV3owm8RQ==", - "license": "MIT", - "dependencies": { - "@tanstack/store": "0.11.2", - "use-sync-external-store": "^1.6.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@tanstack/router-core": { - "version": "1.171.32", - "license": "MIT", - "dependencies": { - "@tanstack/history": "1.162.4", - "cookie-es": "^3.0.0", - "seroval": "^1.6.2", - "seroval-plugins": "^1.6.2" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/router-devtools-core": { - "version": "1.168.2", - "license": "MIT", - "dependencies": { - "clsx": "^2.1.1", - "goober": "^2.1.16" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/router-core": "^1.171.30", - "csstype": "^3.0.10" - }, - "peerDependenciesMeta": { - "csstype": { - "optional": true - } - } - }, - "node_modules/@tanstack/router-generator": { - "version": "1.167.38", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.8", - "@tanstack/router-core": "1.171.32", - "@tanstack/router-utils": "1.162.3", - "@tanstack/virtual-file-routes": "1.162.0", - "jiti": "^2.7.0", - "magic-string": "^0.30.21", - "prettier": "^3.9.6", - "zod": "^4.5.4" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/router-plugin": { - "version": "1.168.40", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.8", - "@tanstack/router-core": "1.171.32", - "@tanstack/router-generator": "1.167.38", - "@tanstack/router-utils": "1.162.3", - "chokidar": "^5.0.0", - "unplugin": "^3.3.0", - "zod": "^4.5.4" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@rsbuild/core": ">=1.0.2 || ^2.0.0", - "@tanstack/react-router": "^1.170.38", - "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0", - "vite-plugin-solid": "^2.11.10 || ^3.0.0-0", - "webpack": ">=5.92.0" - }, - "peerDependenciesMeta": { - "@rsbuild/core": { - "optional": true - }, - "@tanstack/react-router": { - "optional": true - }, - "vite": { - "optional": true - }, - "vite-plugin-solid": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@tanstack/router-utils": { - "version": "1.162.3", - "license": "MIT", - "dependencies": { - "@babel/generator": "^7.29.8", - "@babel/parser": "^7.29.8", - "@babel/types": "^7.29.8", - "ansis": "^4.3.1", - "babel-dead-code-elimination": "^1.0.12", - "diff": "^8.0.4", - "pathe": "^2.0.3", - "tinyglobby": "^0.2.17" - }, - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/store": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.11.2.tgz", - "integrity": "sha512-sJ4mjol8uQsHV0gOJzzjwXfh2Fwm+Sz0+8deqiTm4jGbMdjzNSW+xZCFm0kUa870uhd8yi+DpKnZb5Kc4apa0Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/virtual-file-routes": { - "version": "1.162.0", - "license": "MIT", - "engines": { - "node": ">=20.19" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@testing-library/dom": { - "version": "10.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/react": { - "version": "16.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/@types/esrecurse": { - "version": "4.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@types/node": { - "version": "22.20.4", - "devOptional": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/react": { - "version": "19.3.0", - "license": "MIT", - "dependencies": { - "csstype": "^3.2.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.3.0", - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.3.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.70.1", - "@typescript-eslint/type-utils": "8.70.1", - "@typescript-eslint/utils": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.70.1", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.10", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.70.1", - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.70.1", - "@typescript-eslint/types": "^8.70.1", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1", - "@typescript-eslint/utils": "8.70.1", - "debug": "^4.4.3", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.70.1", - "@typescript-eslint/tsconfig-utils": "8.70.1", - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/visitor-keys": "8.70.1", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.8.5", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.70.1", - "@typescript-eslint/types": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.70.1", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.12.2", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@vitejs/plugin-react": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.29.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-rc.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.18.0" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@vitest/mocker": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.3.tgz", - "integrity": "sha512-T8sWAIbkSyAjkwTcaEc3Iu0o9A27X1/kdXrizhZkGuSKScRQtRzclfAMpOTcGdXCsqxeWlpGy3XjqaW8CpLORg==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.31", - "@vitest/spy": "5.0.3", - "estree-walker": "^3.0.3", - "magic-string": "^1.2.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/mocker/node_modules/magic-string": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz", - "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.6.0" - } - }, - "node_modules/@vitest/spy": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.3.tgz", - "integrity": "sha512-XhFysQTB8AZ+P4gMi+Lpo99vg2AZi0qKpaB9yXQl37+CaMEAPO3iH/wGVnSyL5MPERiLezpqTVtrR6UZH5GCXg==", - "devOptional": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/acorn": { - "version": "8.18.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.15.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansis": { - "version": "4.4.0", - "license": "ISC", - "engines": { - "node": ">=14" - } - }, - "node_modules/aria-query": { - "version": "5.3.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/babel-dead-code-elimination": { - "version": "1.0.12", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" - } - }, - "node_modules/balanced-match": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/baseline-browser-mapping": { - "version": "2.11.25", - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/better-auth": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/better-auth/-/better-auth-1.7.7.tgz", - "integrity": "sha512-Zhgxi/c5ylmfB/sX+nwnBbsFf/j6k0L8DvL6CJXZSrXgxc5pPMC/e7j812zNd4L4B4ELmdURCPw3X8nAOUdcjw==", - "license": "MIT", - "dependencies": { - "@better-auth/core": "1.7.7", - "@better-auth/drizzle-adapter": "1.7.7", - "@better-auth/kysely-adapter": "1.7.7", - "@better-auth/memory-adapter": "1.7.7", - "@better-auth/mongo-adapter": "1.7.7", - "@better-auth/prisma-adapter": "1.7.7", - "@better-auth/telemetry": "1.7.7", - "@better-auth/utils": "0.4.2", - "@better-fetch/fetch": "1.3.2", - "@noble/ciphers": "^2.2.0", - "@noble/hashes": "^2.2.0", - "better-call": "1.4.0", - "defu": "^6.1.4", - "jose": "^6.2.3", - "kysely": "^0.28.17 || ^0.29.0", - "nanostores": "^1.3.0", - "zod": "^4.5.4" - }, - "peerDependencies": { - "@lynx-js/react": "*", - "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", - "@sveltejs/kit": "^2.0.0", - "@tanstack/react-start": "^1.0.0", - "@tanstack/solid-start": "^1.0.0", - "drizzle-kit": ">=0.31.4 || >=1.0.0-beta.1", - "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0", - "mongodb": "^6.0.0 || ^7.0.0", - "mysql2": "^3.0.0", - "next": "^14.0.0 || ^15.0.0 || ^16.0.0", - "pg": "^8.0.0", - "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0", - "solid-js": "^1.0.0", - "svelte": "^4.0.0 || ^5.0.0", - "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", - "vue": "^3.0.0" - }, - "peerDependenciesMeta": { - "@lynx-js/react": { - "optional": true - }, - "@prisma/client": { - "optional": true - }, - "@sveltejs/kit": { - "optional": true - }, - "@tanstack/react-start": { - "optional": true - }, - "@tanstack/solid-start": { - "optional": true - }, - "drizzle-kit": { - "optional": true - }, - "drizzle-orm": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "next": { - "optional": true - }, - "pg": { - "optional": true - }, - "prisma": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "solid-js": { - "optional": true - }, - "svelte": { - "optional": true - }, - "vitest": { - "optional": true - }, - "vue": { - "optional": true - } - } - }, - "node_modules/better-call": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/better-call/-/better-call-1.4.0.tgz", - "integrity": "sha512-bBKOT4vv1kZLDgxVePdilk/Jwkn+dtRRsmi3DzHcDP+WnswyVl6dR59l2HEeP/0cB+bDoopASAesWDPIdd/zZA==", - "license": "MIT", - "dependencies": { - "@better-auth/utils": "^0.5.0", - "@better-fetch/fetch": "^1.3.1", - "rou3": "^0.9.1", - "set-cookie-parser": "^3.1.2" - }, - "peerDependencies": { - "zod": "^4.0.0" - }, - "peerDependenciesMeta": { - "zod": { - "optional": true - } - } - }, - "node_modules/better-call/node_modules/@better-auth/utils": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@better-auth/utils/-/utils-0.5.0.tgz", - "integrity": "sha512-BL8W4EfIZFwlu0r54m3v1ztjDhu6dDe/amLTm0xybmbZaNgYUqhD3SjpAsnq0q8YD6/ki4iwIgxJNLP/N3TxiA==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "^2.0.1" - } - }, - "node_modules/bidi-js": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "require-from-string": "^2.0.2" - } - }, - "node_modules/brace-expansion": { - "version": "5.0.12", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/browserslist": { - "version": "4.29.1", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.11.25", - "caniuse-lite": "^1.0.30001810", - "electron-to-chromium": "^1.5.438", - "node-releases": "^2.0.57", - "update-browserslist-db": "^1.3.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/cacheable": { - "version": "2.5.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@cacheable/memory": "^2.2.0", - "@cacheable/utils": "^2.5.0", - "hookified": "^1.15.0", - "keyv": "^5.6.0", - "qified": "^0.10.1" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001812", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.3.0.tgz", - "integrity": "sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/chalk": { - "version": "5.6.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/comment-parser": { - "version": "1.4.9", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/cookie-es": { - "version": "3.1.1", - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-tree": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.27.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssstyle": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^5.0.1", - "@csstools/css-syntax-patches-for-csstree": "^1.0.28", - "css-tree": "^3.1.0", - "lru-cache": "^11.2.6" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/cssstyle/node_modules/lru-cache": { - "version": "11.5.3", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/dayjs": { - "version": "1.11.23", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.3", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/defu": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", - "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", - "license": "MIT" - }, - "node_modules/dequal": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "8.0.4", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.438", - "license": "ISC" - }, - "node_modules/enhanced-resolve": { - "version": "5.25.1", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "8.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-module-lexer": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", - "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.28.2", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.2", - "@esbuild/android-arm": "0.28.2", - "@esbuild/android-arm64": "0.28.2", - "@esbuild/android-x64": "0.28.2", - "@esbuild/darwin-arm64": "0.28.2", - "@esbuild/darwin-x64": "0.28.2", - "@esbuild/freebsd-arm64": "0.28.2", - "@esbuild/freebsd-x64": "0.28.2", - "@esbuild/linux-arm": "0.28.2", - "@esbuild/linux-arm64": "0.28.2", - "@esbuild/linux-ia32": "0.28.2", - "@esbuild/linux-loong64": "0.28.2", - "@esbuild/linux-mips64el": "0.28.2", - "@esbuild/linux-ppc64": "0.28.2", - "@esbuild/linux-riscv64": "0.28.2", - "@esbuild/linux-s390x": "0.28.2", - "@esbuild/linux-x64": "0.28.2", - "@esbuild/netbsd-arm64": "0.28.2", - "@esbuild/netbsd-x64": "0.28.2", - "@esbuild/openbsd-arm64": "0.28.2", - "@esbuild/openbsd-x64": "0.28.2", - "@esbuild/openharmony-arm64": "0.28.2", - "@esbuild/sunos-x64": "0.28.2", - "@esbuild/win32-arm64": "0.28.2", - "@esbuild/win32-ia32": "0.28.2", - "@esbuild/win32-x64": "0.28.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "10.11.0", - "dev": true, - "license": "MIT", - "peer": true, - "workspaces": [ - "packages/*" - ], - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.7.0", - "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.3", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^9.1.2", - "eslint-visitor-keys": "^5.0.1", - "espree": "^11.2.0", - "esquery": "^1.7.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "11.1.5 || >11.1.6 <12", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.5", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-compat-utils/node_modules/semver": { - "version": "7.8.5", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-import-context": { - "version": "0.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "get-tsconfig": "^4.10.1", - "stable-hash-x": "^0.2.0" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-context" - }, - "peerDependencies": { - "unrs-resolver": "^1.0.0" - }, - "peerDependenciesMeta": { - "unrs-resolver": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.8.0", - "dev": true, - "funding": [ - "https://github.com/sponsors/ota-meshi", - "https://opencollective.com/eslint" - ], - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.11.0", - "eslint-compat-utils": "^0.5.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import-x": { - "version": "4.17.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "^8.56.0", - "comment-parser": "^1.4.1", - "debug": "^4.4.1", - "eslint-import-context": "^0.1.9", - "is-glob": "^4.0.3", - "minimatch": "^9.0.3 || ^10.1.2", - "semver": "^7.7.2", - "stable-hash-x": "^0.2.0", - "unrs-resolver": "^1.9.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-import-x" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^8.56.0", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "eslint-import-resolver-node": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/utils": { - "optional": true - }, - "eslint-import-resolver-node": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-import-x/node_modules/semver": { - "version": "7.8.5", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-n": { - "version": "17.24.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.5.0", - "enhanced-resolve": "^5.17.1", - "eslint-plugin-es-x": "^7.8.0", - "get-tsconfig": "^4.8.1", - "globals": "^15.11.0", - "globrex": "^0.1.2", - "ignore": "^5.3.2", - "semver": "^7.6.3", - "ts-declaration-location": "^1.0.6" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": ">=8.23.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.15.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.8.5", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-scope": { - "version": "9.1.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@types/esrecurse": "^4.3.1", - "@types/estree": "^1.0.8", - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/espree": { - "version": "11.2.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "acorn": "^8.16.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^5.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect-type": { - "version": "1.4.0", - "devOptional": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fdir": { - "version": "6.5.0", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/file-entry-cache": { - "version": "11.1.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^6.1.23" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "6.1.23", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "cacheable": "^2.5.0", - "flatted": "^3.4.2", - "hookified": "^1.15.0" - } - }, - "node_modules/flatted": { - "version": "3.4.4", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-tsconfig": { - "version": "4.14.3", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "17.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globrex": { - "version": "0.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/goober": { - "version": "2.1.19", - "license": "MIT", - "peerDependencies": { - "csstype": "^3.0.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "license": "ISC" - }, - "node_modules/hashery": { - "version": "1.5.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hookified": "^1.15.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/hookified": { - "version": "1.15.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.6.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/isbot": { - "version": "5.2.2", - "license": "Unlicense", - "engines": { - "node": ">=18" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/jiti": { - "version": "2.7.0", - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/jose": { - "version": "6.2.12", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", - "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/jsdom": { - "version": "28.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@acemir/cssom": "^0.9.31", - "@asamuzakjp/dom-selector": "^6.8.1", - "@bramus/specificity": "^2.4.2", - "@exodus/bytes": "^1.11.0", - "cssstyle": "^6.0.1", - "data-urls": "^7.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", - "undici": "^7.21.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.1", - "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^16.0.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/json5": { - "version": "2.2.3", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/keyv": { - "version": "5.6.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, - "node_modules/kysely": { - "version": "0.29.6", - "resolved": "https://registry.npmjs.org/kysely/-/kysely-0.29.6.tgz", - "integrity": "sha512-hHaB8C/rfzDDtr/t8YZwxAuPJTT0zHyaPoVzcXwDYhYNAgH/4sIfVhi/XLLIY+bL/FqaIJnjATDbi8ObSELmxg==", - "license": "MIT", - "engines": { - "node": ">=22.0.0" - } - }, - "node_modules/launch-editor": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.2.tgz", - "integrity": "sha512-NHJEb30MGBCkmZXLZwz25t37QR4aY03ZzPYUJXOJaOa92uWwExI9SBQUuIznBYc1xkD7cJNGX7oc3Nl3sq2kQQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.1", - "shell-quote": "^1.10.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "cpu": [ - "x64" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.545.0", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/mdn-data": { - "version": "2.27.1", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/minimatch": { - "version": "10.2.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.19", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanostores": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/nanostores/-/nanostores-1.5.5.tgz", - "integrity": "sha512-FixtE239Gl6Gz0ZGCK0WzvNwObNCIwVT+L7zQcf1QgcA6AzBxblzqe9OT88qiucNkhsjSOqiogSaF5jVbJiqSA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "engines": { - "node": "^20.0.0 || >=22.0.0" - } - }, - "node_modules/napi-postinstall": { - "version": "0.3.4", - "dev": true, - "license": "MIT", - "bin": { - "napi-postinstall": "lib/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/napi-postinstall" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.57", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/obug": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz", - "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==", - "devOptional": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/oxc-parser": { - "version": "0.120.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "^0.120.0" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/sponsors/Boshen" - }, - "optionalDependencies": { - "@oxc-parser/binding-android-arm-eabi": "0.120.0", - "@oxc-parser/binding-android-arm64": "0.120.0", - "@oxc-parser/binding-darwin-arm64": "0.120.0", - "@oxc-parser/binding-darwin-x64": "0.120.0", - "@oxc-parser/binding-freebsd-x64": "0.120.0", - "@oxc-parser/binding-linux-arm-gnueabihf": "0.120.0", - "@oxc-parser/binding-linux-arm-musleabihf": "0.120.0", - "@oxc-parser/binding-linux-arm64-gnu": "0.120.0", - "@oxc-parser/binding-linux-arm64-musl": "0.120.0", - "@oxc-parser/binding-linux-ppc64-gnu": "0.120.0", - "@oxc-parser/binding-linux-riscv64-gnu": "0.120.0", - "@oxc-parser/binding-linux-riscv64-musl": "0.120.0", - "@oxc-parser/binding-linux-s390x-gnu": "0.120.0", - "@oxc-parser/binding-linux-x64-gnu": "0.120.0", - "@oxc-parser/binding-linux-x64-musl": "0.120.0", - "@oxc-parser/binding-openharmony-arm64": "0.120.0", - "@oxc-parser/binding-wasm32-wasi": "0.120.0", - "@oxc-parser/binding-win32-arm64-msvc": "0.120.0", - "@oxc-parser/binding-win32-ia32-msvc": "0.120.0", - "@oxc-parser/binding-win32-x64-msvc": "0.120.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "8.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.7", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.28", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.18", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", - "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.9.9", - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qified": { - "version": "0.10.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hookified": "^2.1.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/qified/node_modules/hookified": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/react": { - "version": "19.3.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.3.0", - "license": "MIT", - "dependencies": { - "scheduler": "^0.28.0" - }, - "peerDependencies": { - "react": "^19.3.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.18.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp": { - "version": "5.1.1", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/rollup": { - "version": "4.63.5", - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.9" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@napi-rs/lzma-linux-x64-gnu": "1.5.1", - "@rollup/rollup-android-arm-eabi": "4.63.5", - "@rollup/rollup-android-arm64": "4.63.5", - "@rollup/rollup-darwin-arm64": "4.63.5", - "@rollup/rollup-darwin-x64": "4.63.5", - "@rollup/rollup-freebsd-arm64": "4.63.5", - "@rollup/rollup-freebsd-x64": "4.63.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.63.5", - "@rollup/rollup-linux-arm-musleabihf": "4.63.5", - "@rollup/rollup-linux-arm64-gnu": "4.63.5", - "@rollup/rollup-linux-arm64-musl": "4.63.5", - "@rollup/rollup-linux-loong64-gnu": "4.63.5", - "@rollup/rollup-linux-loong64-musl": "4.63.5", - "@rollup/rollup-linux-ppc64-gnu": "4.63.5", - "@rollup/rollup-linux-ppc64-musl": "4.63.5", - "@rollup/rollup-linux-riscv64-gnu": "4.63.5", - "@rollup/rollup-linux-riscv64-musl": "4.63.5", - "@rollup/rollup-linux-s390x-gnu": "4.63.5", - "@rollup/rollup-linux-x64-gnu": "4.63.5", - "@rollup/rollup-linux-x64-musl": "4.63.5", - "@rollup/rollup-openbsd-x64": "4.63.5", - "@rollup/rollup-openharmony-arm64": "4.63.5", - "@rollup/rollup-win32-arm64-msvc": "4.63.5", - "@rollup/rollup-win32-ia32-msvc": "4.63.5", - "@rollup/rollup-win32-x64-gnu": "4.63.5", - "@rollup/rollup-win32-x64-msvc": "4.63.5", - "fsevents": "~2.3.2" - } - }, - "node_modules/rou3": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/rou3/-/rou3-0.9.2.tgz", - "integrity": "sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ==", - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.28.0", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/seroval": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.6.9.tgz", - "integrity": "sha512-UeEzHwAK+yl0YLbsvROV1t5yMYEwZZ0CfKYxDvUgS2fO9Vxdf8djqVIB+OuVpuawRNPqw68LE1Du/GMsW2ZPqA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/seroval-plugins": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.6.9.tgz", - "integrity": "sha512-kiDK/Tb8IWZ61WEU8pA2PDmAuw37gKph9Y77OZlD56mg0Y2g0Bg7gZ1HeHhs5d40w+nRoUq/wj08V26ilbez9g==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "seroval": "^1.0" - } - }, - "node_modules/set-cookie-parser": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-3.1.3.tgz", - "integrity": "sha512-xletSdAI5efyVJjsatBbzDkXl3M/Zmad3xfnQe7ZXuBB0yNwW7C2WFsNGjdRNfZunmNHQuX79xs/ACMTLCdcew==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.12.0.tgz", - "integrity": "sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/solid-js": { - "version": "1.9.17", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.17.tgz", - "integrity": "sha512-4GAmLOWPfNV8H9Jfn2LSFTpNEG6jiOKPiwd5lnLGQtehHaX6l3TOLzJqQ7mqwB/3k1Yy3zyumFVopmc/tm34ow==", - "license": "MIT", - "dependencies": { - "csstype": "^3.1.0", - "seroval": "~1.6.8", - "seroval-plugins": "~1.6.8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", - "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stable-hash-x": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/std-env": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.3.0.tgz", - "integrity": "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss": { - "version": "4.3.3", - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.3.3", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/tinybench": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-6.2.1.tgz", - "integrity": "sha512-IAbQaPJIIdhVxi0mqy9lez1wEwje0UQf9F1vwtbelEG5Nbgn0nPOxCvU+mNeNS9gyJTAhrHp74CbUaSynQpZcQ==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/tinyexec": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz", - "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tldts": { - "version": "7.4.15", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^7.4.15" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "7.4.15", - "dev": true, - "license": "MIT" - }, - "node_modules/tough-cookie": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/ts-api-utils": { - "version": "2.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/ts-declaration-location": { - "version": "1.0.7", - "dev": true, - "funding": [ - { - "type": "ko-fi", - "url": "https://ko-fi.com/rebeccastevens" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/ts-declaration-location" - } - ], - "license": "BSD-3-Clause", - "dependencies": { - "picomatch": "^4.0.2" - }, - "peerDependencies": { - "typescript": ">=4.0.0" - } - }, - "node_modules/tsconfck": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "bin": { - "tsconfck": "bin/tsconfck.js" - }, - "engines": { - "node": "^18 || >=20" - }, - "peerDependencies": { - "typescript": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.70.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.70.1", - "@typescript-eslint/parser": "8.70.1", - "@typescript-eslint/typescript-estree": "8.70.1", - "@typescript-eslint/utils": "8.70.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/undici": { - "version": "7.29.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "devOptional": true, - "license": "MIT" - }, - "node_modules/unplugin": { - "version": "3.4.0", - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "picomatch": "^4.0.7", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "@farmfe/core": "*", - "@rsbuild/core": "*", - "@rspack/core": "*", - "bun-types-no-globals": "*", - "esbuild": "*", - "rolldown": "*", - "rollup": "*", - "unloader": "*", - "vite": "*", - "webpack": "*" - }, - "peerDependenciesMeta": { - "@farmfe/core": { - "optional": true - }, - "@rsbuild/core": { - "optional": true - }, - "@rspack/core": { - "optional": true - }, - "bun-types-no-globals": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "rolldown": { - "optional": true - }, - "rollup": { - "optional": true - }, - "unloader": { - "optional": true - }, - "vite": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/unrs-resolver": { - "version": "1.12.2", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "napi-postinstall": "^0.3.4" - }, - "funding": { - "url": "https://opencollective.com/unrs-resolver" - }, - "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.12.2", - "@unrs/resolver-binding-android-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-x64": "1.12.2", - "@unrs/resolver-binding-freebsd-x64": "1.12.2", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", - "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", - "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-musl": "1.12.2", - "@unrs/resolver-binding-openharmony-arm64": "1.12.2", - "@unrs/resolver-binding-wasm32-wasi": "1.12.2", - "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", - "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", - "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.3.3", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", - "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.7.tgz", - "integrity": "sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.27.0 || ^0.28.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite-tsconfig-paths": { - "version": "5.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "globrex": "^0.1.2", - "tsconfck": "^3.0.3" - }, - "peerDependencies": { - "vite": "*" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } - } - }, - "node_modules/vitest": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.3.tgz", - "integrity": "sha512-xMw97S3rjdtj5dkVat7jCsqWBpvchs3RlpQctUqwJD0KkERk40vz2fJ77lDwW/Vzh/pk18eItYAzkodhSes3jQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/mocker": "5.0.3", - "chai": "^6.2.2", - "es-module-lexer": "^2.3.2", - "expect-type": "^1.4.0", - "magic-string": "^1.2.3", - "obug": "^2.1.4", - "picomatch": "^4.0.7", - "std-env": "^4.2.0", - "tinybench": "^6.1.4", - "tinyexec": "^1.3.0", - "tinyglobby": "^0.2.17", - "why-is-node-running": "3.2.1" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^22.12.0 || ^24.0.0 || >=26.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "5.0.3", - "@vitest/browser-preview": "5.0.3", - "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", - "@vitest/coverage-istanbul": "5.0.3", - "@vitest/coverage-v8": "5.0.3", - "@vitest/ui": "5.0.3", - "happy-dom": "*", - "jsdom": "*", - "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/coverage-istanbul": { - "optional": true - }, - "@vitest/coverage-v8": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - }, - "vite": { - "optional": false - } - } - }, - "node_modules/vitest/node_modules/magic-string": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.3.tgz", - "integrity": "sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.6.0" - } - }, - "node_modules/vue-eslint-parser": { - "version": "10.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "eslint-scope": "^8.2.0 || ^9.0.0", - "eslint-visitor-keys": "^4.2.0 || ^5.0.0", - "espree": "^10.3.0 || ^11.0.0", - "esquery": "^1.6.0", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.8.5", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/webidl-conversions": { - "version": "8.0.1", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "license": "MIT" - }, - "node_modules/whatwg-mimetype": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "node_modules/whatwg-url": { - "version": "16.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@exodus/bytes": "^1.11.0", - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/why-is-node-running": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-3.2.1.tgz", - "integrity": "sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==", - "devOptional": true, - "license": "MIT", - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=20.11" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ws": { - "version": "8.21.3", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "4.6.5", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/web-interface/package.json b/web-interface/package.json deleted file mode 100644 index a2e274d..0000000 --- a/web-interface/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "web-interface", - "private": true, - "type": "module", - "engines": { - "node": ">=22.16.0" - }, - "imports": { - "#/*": "./src/*" - }, - "scripts": { - "dev": "vite dev --port 3000", - "build": "vite build", - "build:docs": "hugo -s ../docs", - "preview": "vite preview", - "test": "vitest run", - "lint": "eslint", - "fake-backend": "node ../scripts/fake-backend.mjs", - "configure-fake-backend": "node ../scripts/configure-fake-backend.mjs", - "format": "prettier --check .", - "check": "prettier --write . && eslint --fix" - }, - "dependencies": { - "@tailwindcss/vite": "^4.1.18", - "@tanstack/react-devtools": "latest", - "@tanstack/react-router": "latest", - "@tanstack/react-router-devtools": "latest", - "@tanstack/router-plugin": "^1.132.0", - "better-auth": "1.7.7", - "lucide-react": "^0.545.0", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "tailwindcss": "^4.1.18" - }, - "devDependencies": { - "@tailwindcss/typography": "^0.5.16", - "@tanstack/devtools-vite": "latest", - "@tanstack/eslint-config": "latest", - "@testing-library/dom": "^10.4.1", - "@testing-library/react": "^16.3.0", - "@types/node": "^22.10.2", - "@types/react": "^19.2.0", - "@types/react-dom": "^19.2.0", - "@vitejs/plugin-react": "^5.1.4", - "jsdom": "^28.1.0", - "prettier": "^3.8.1", - "typescript": "^5.7.2", - "vite": "^7.3.7", - "vite-tsconfig-paths": "^5.1.4", - "vitest": "^5.0.3" - }, - "pnpm": { - "onlyBuiltDependencies": [ - "esbuild", - "lightningcss" - ] - }, - "overrides": { - "postcss-selector-parser": "^7.1.6" - } -} diff --git a/web-interface/pnpm-lock.yaml b/web-interface/pnpm-lock.yaml deleted file mode 100644 index 0e4a31e..0000000 --- a/web-interface/pnpm-lock.yaml +++ /dev/null @@ -1,4599 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@tailwindcss/vite': - specifier: ^4.1.18 - version: 4.3.3(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - '@tanstack/react-devtools': - specifier: latest - version: 0.10.13(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(csstype@3.2.3)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(solid-js@1.9.17) - '@tanstack/react-router': - specifier: latest - version: 1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - '@tanstack/react-router-devtools': - specifier: latest - version: 1.167.2(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(@tanstack/router-core@1.171.38)(csstype@3.2.3)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - '@tanstack/router-plugin': - specifier: ^1.132.0 - version: 1.168.47(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(esbuild@0.28.2)(rollup@4.64.7)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - better-auth: - specifier: 1.7.7 - version: 1.7.7(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(solid-js@1.9.17)(vitest@5.0.5(@types/node@22.20.5)(jsdom@28.1.0(@noble/hashes@2.4.0))(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))) - lucide-react: - specifier: ^0.545.0 - version: 0.545.0(react@19.3.1) - react: - specifier: ^19.2.0 - version: 19.3.1 - react-dom: - specifier: ^19.2.0 - version: 19.3.1(react@19.3.1) - tailwindcss: - specifier: ^4.1.18 - version: 4.3.3 - devDependencies: - '@tailwindcss/typography': - specifier: ^0.5.16 - version: 0.5.20(tailwindcss@4.3.3) - '@tanstack/devtools-vite': - specifier: latest - version: 0.8.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - '@tanstack/eslint-config': - specifier: latest - version: 0.4.0(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - '@testing-library/dom': - specifier: ^10.4.1 - version: 10.4.2 - '@testing-library/react': - specifier: ^16.3.0 - version: 16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - '@types/node': - specifier: ^22.10.2 - version: 22.20.5 - '@types/react': - specifier: ^19.2.0 - version: 19.3.0 - '@types/react-dom': - specifier: ^19.2.0 - version: 19.3.0(@types/react@19.3.0) - '@vitejs/plugin-react': - specifier: ^5.1.4 - version: 5.2.0(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - jsdom: - specifier: ^28.1.0 - version: 28.1.0(@noble/hashes@2.4.0) - prettier: - specifier: ^3.8.1 - version: 3.9.10 - typescript: - specifier: ^5.7.2 - version: 5.9.3 - vite: - specifier: ^7.3.7 - version: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - vitest: - specifier: ^5.0.3 - version: 5.0.5(@types/node@22.20.5)(jsdom@28.1.0(@noble/hashes@2.4.0))(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - -packages: - - '@acemir/cssom@0.9.32': - resolution: {integrity: sha512-OijrAUu7rrJhSIoHNg6LMPS5e344nwUHA+1EFYYjrh64D+GmytUsfBQjci45TjT+rd5Spsp8B5xsZDT+TgyXXQ==} - - '@asamuzakjp/css-color@5.1.11': - resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - '@asamuzakjp/dom-selector@6.8.1': - resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} - - '@asamuzakjp/generational-cache@1.0.1': - resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - '@asamuzakjp/nwsapi@2.3.9': - resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - - '@babel/code-frame@7.29.7': - resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.29.7': - resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.29.7': - resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.29.8': - resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.29.7': - resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.29.7': - resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.29.7': - resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.29.7': - resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.29.7': - resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.29.7': - resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.29.7': - resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.29.7': - resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.29.10': - resolution: {integrity: sha512-EMCx3AGZ3WfAl6ht7AyQoPm2Lh+BGYEMdc4Q6Hf7uSCDOZFuLq44qNwL+iaim8VlyYhRAo4X43+weadK8ZB4Yg==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.29.9': - resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-transform-react-jsx-self@7.29.7': - resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.29.7': - resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.29.10': - resolution: {integrity: sha512-NpugTzbKgGrNe45Ui32cN8vCFFMxVtP/9rtfwv0nP5FRDAjvYBxJcLVpYA9mr1jxP6cnIT7x9LUzuDTbWYYNRA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.29.7': - resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.29.10': - resolution: {integrity: sha512-B3lYAs2nkKskbgQ1nfy8Ma9ao9Q1rntTAQHrzzyDuj+TSO+X3le6PfWwqDvodsb+OumE10eMFfuMCTQSQ5iuIQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.29.8': - resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} - engines: {node: '>=6.9.0'} - - '@better-auth/core@1.7.7': - resolution: {integrity: sha512-srgFzHEjB2WWlokFz1i4BfG41sNhsA105Pukgqu6RrEh5A+LSkzf1mCHydVipkjt9l5qswtBMi7IL6ouHbZL4Q==} - peerDependencies: - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.2 - '@opentelemetry/api': ^1.9.0 - better-call: 1.4.0 - jose: ^6.1.0 - kysely: ^0.28.5 || ^0.29.0 - nanostores: ^1.0.1 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - - '@better-auth/drizzle-adapter@1.7.7': - resolution: {integrity: sha512-qon0U94PR5FQysuyGoAlGVQpIIiNg5dtDpwjE63sN/HjoRWZadZzHPcS9mn7JsJyQZK6iTNhd7LD0AaXt2f78w==} - peerDependencies: - '@better-auth/core': ^1.7.7 - '@better-auth/utils': 0.4.2 - drizzle-orm: ^0.45.2 || >=1.0.0-rc.1 <2.0.0 - peerDependenciesMeta: - drizzle-orm: - optional: true - - '@better-auth/kysely-adapter@1.7.7': - resolution: {integrity: sha512-9FONOCgOcrQI9wJ5v1oDGIg9sT7pa9RjZZQ4fsCTudo8R87SrIGNUvUxDFTJhZvUblvFfGaIBR9Vb8LA+8bqLQ==} - peerDependencies: - '@better-auth/core': ^1.7.7 - '@better-auth/utils': 0.4.2 - kysely: ^0.28.17 || ^0.29.0 - peerDependenciesMeta: - kysely: - optional: true - - '@better-auth/memory-adapter@1.7.7': - resolution: {integrity: sha512-FqKFEe+b5tXXV0gRbyirca+qXgMpLOeJ8Wk19yykb/scQKy0WJ4k22WzEV3TTPctQV9DZhwCXPlDtQhnlOv5Gg==} - peerDependencies: - '@better-auth/core': ^1.7.7 - '@better-auth/utils': 0.4.2 - - '@better-auth/mongo-adapter@1.7.7': - resolution: {integrity: sha512-ZnVDuRrXqbf0oHphrEN27oTImNH5NTO26dtWatq5cXyYAsH7goof9QIoTOmxTbBxUQahKBw9T6+9h6n+RtOE+g==} - peerDependencies: - '@better-auth/core': ^1.7.7 - '@better-auth/utils': 0.4.2 - mongodb: ^6.0.0 || ^7.0.0 - peerDependenciesMeta: - mongodb: - optional: true - - '@better-auth/prisma-adapter@1.7.7': - resolution: {integrity: sha512-4YcnrcVdvWiAZw0sZl63tWUClPXg5r3QsLn7C2sG7kKEBY06zOng0ibecyxRBixKq1zE1ceHuEUqez5Rhi+nQA==} - peerDependencies: - '@better-auth/core': ^1.7.7 - '@better-auth/utils': 0.4.2 - '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 - prisma: ^5.0.0 || ^6.0.0 || ^7.0.0 - peerDependenciesMeta: - '@prisma/client': - optional: true - prisma: - optional: true - - '@better-auth/telemetry@1.7.7': - resolution: {integrity: sha512-PaRA6i+kAioVYmza2gHPcdrxP0hAotph4KV9hft2GeNJq+AZXDiBu3FuLM9HxvcmiZeUT74Vufqd9ypmB8veTA==} - peerDependencies: - '@better-auth/core': ^1.7.7 - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.2 - - '@better-auth/utils@0.4.2': - resolution: {integrity: sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A==} - - '@better-auth/utils@0.5.0': - resolution: {integrity: sha512-BL8W4EfIZFwlu0r54m3v1ztjDhu6dDe/amLTm0xybmbZaNgYUqhD3SjpAsnq0q8YD6/ki4iwIgxJNLP/N3TxiA==} - - '@better-fetch/fetch@1.3.2': - resolution: {integrity: sha512-Gs7n99b5tqUC6cQAPbV0uED3IraHB6xQbHLQ/C3l7ZFafHScOx9pQ+DYmP5blbLFShVWLqxNUlI9wi4xU/X+ow==} - - '@bramus/specificity@2.4.3': - resolution: {integrity: sha512-0GEz8qJWokkUVYQYRukmkSHIFNoBH8QTreeHrAFbvz1XFYc3Y+puhMs8PQ5x8GNugiC2l5jvDBXKLbBIByeSBw==} - hasBin: true - - '@cacheable/memory@2.2.0': - resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==} - - '@cacheable/utils@2.5.0': - resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} - - '@csstools/color-helpers@6.1.2': - resolution: {integrity: sha512-grhRy3OKmniaAEKXMjua5z/EODX0MSqBGjunw8+j/3HQjOnahs2AGhvEOIYVUWcU6ScApbhLhVrQTX8XqrMrow==} - engines: {node: '>=20.19.0'} - - '@csstools/css-calc@3.4.3': - resolution: {integrity: sha512-iex20d8CHVkyvg6B7UKV7uHnI2Bqo9g+EFfT9E0y+GvTvhZ/DwONJ+9aKb1dlqm0ZiGsL5RXjp0fCoJYnkeDjA==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.2 - '@csstools/css-tokenizer': ^4.0.2 - - '@csstools/css-color-parser@4.2.6': - resolution: {integrity: sha512-iiPQ3iRWwnJkeEn6RIu6SJPr7hYrLz6XZ9s/QZl+2/LI5KQVjpl2fdmDSZKuD4xP6GMmMPgHFFXg6k1Wkz0Trg==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.2 - '@csstools/css-tokenizer': ^4.0.2 - - '@csstools/css-parser-algorithms@4.0.2': - resolution: {integrity: sha512-40cSKyMvK+tq4qz6Awrlye2WGuOKt3FwPgtGg6KTfbHOWNw+Rk1rzbAtZnZ6IBhsY491HLRnDXwoyBAijmmILA==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-tokenizer': ^4.0.2 - - '@csstools/css-syntax-patches-for-csstree@1.1.15': - resolution: {integrity: sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==} - peerDependencies: - css-tree: ^3.2.1 - peerDependenciesMeta: - css-tree: - optional: true - - '@csstools/css-tokenizer@4.0.2': - resolution: {integrity: sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==} - engines: {node: '>=20.19.0'} - - '@emnapi/core@1.10.0': - resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - - '@emnapi/wasi-threads@1.2.1': - resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - - '@esbuild/aix-ppc64@0.28.2': - resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.28.2': - resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.28.2': - resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.28.2': - resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.28.2': - resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.28.2': - resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.28.2': - resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.28.2': - resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.28.2': - resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.28.2': - resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.28.2': - resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.28.2': - resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.28.2': - resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.28.2': - resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.28.2': - resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.28.2': - resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.28.2': - resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.28.2': - resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.28.2': - resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.28.2': - resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.28.2': - resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.28.2': - resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.28.2': - resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.28.2': - resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.28.2': - resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.28.2': - resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.10.1': - resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} - 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.23.5': - resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/config-helpers@0.7.0': - resolution: {integrity: sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/core@1.2.1': - resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^10.0.0 - peerDependenciesMeta: - eslint: - optional: true - - '@eslint/object-schema@3.0.5': - resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@eslint/plugin-kit@0.7.3': - resolution: {integrity: sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - '@exodus/bytes@1.16.0': - resolution: {integrity: sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@noble/hashes': ^1.8.0 || ^2.0.0 - peerDependenciesMeta: - '@noble/hashes': - optional: true - - '@humanfs/core@0.19.2': - resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.8': - resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} - engines: {node: '>=18.18.0'} - - '@humanfs/types@0.15.0': - resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} - 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'} - - '@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.6.0': - resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@keyv/bigmap@1.3.1': - resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} - engines: {node: '>= 18'} - peerDependencies: - keyv: ^5.6.0 - - '@keyv/serialize@1.1.1': - resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - - '@napi-rs/lzma-linux-x64-gnu@1.5.1': - resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} - engines: {node: ^22.20 || ^24.12 || >=25} - cpu: [x64] - os: [linux] - - '@napi-rs/wasm-runtime@1.2.5': - resolution: {integrity: sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} - peerDependencies: - '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 - '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 - - '@neodrag/core@3.0.0-next.11': - resolution: {integrity: sha512-3WQWxyrbxiaK9zS5JU2wJsW2gpoQlZBXVghduBh61JpqaeE0T0cte8R0qYK2RuJo3J2TYQYqxO19CpG/C1i5eg==} - - '@neodrag/solid@3.0.0-next.11': - resolution: {integrity: sha512-vCBIn/pimjWMQ6vhTS2/O1XNAwzVtc4eUhdbQ91WykbZWWqQ5NocDXt/1OdYrEkeRzJcpCv8wEz5PnMkgKP81Q==} - peerDependencies: - '@neodrag/core': 3.0.0-next.11 - solid-js: ^1.0.0 - - '@noble/ciphers@2.4.0': - resolution: {integrity: sha512-AnjFn0Jv92laAkvMrghlFZq4qQCIN/4DxFV/eooqtC2YTjB7kBeLMS2T9KJX4Dn+ZVXLOwK0lSgqDtx9gvxtiw==} - engines: {node: '>= 20.19.0'} - - '@noble/hashes@2.4.0': - resolution: {integrity: sha512-X5XaVWZIBCT7HHZGm5I7ZQXDwLG+bGXuSrMQAW+7Zvl87h1kmc1ZB1VSRJcpUfoUrGQp4Fkoxm5kZ+Ms+aW+eA==} - engines: {node: '>= 20.19.0'} - - '@opentelemetry/semantic-conventions@1.43.0': - resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} - engines: {node: '>=14'} - - '@oxc-parser/binding-android-arm-eabi@0.120.0': - resolution: {integrity: sha512-WU3qtINx802wOl8RxAF1v0VvmC2O4D9M8Sv486nLeQ7iPHVmncYZrtBhB4SYyX+XZxj2PNnCcN+PW21jHgiOxg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [android] - - '@oxc-parser/binding-android-arm64@0.120.0': - resolution: {integrity: sha512-SEf80EHdhlbjZEgzeWm0ZA/br4GKMenDW3QB/gtyeTV1gStvvZeFi40ioHDZvds2m4Z9J1bUAUL8yn1/+A6iGg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - - '@oxc-parser/binding-darwin-arm64@0.120.0': - resolution: {integrity: sha512-xVrrbCai8R8CUIBu3CjryutQnEYhZqs1maIqDvtUCFZb8vY33H7uh9mHpL3a0JBIKoBUKjPH8+rzyAeXnS2d6A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@oxc-parser/binding-darwin-x64@0.120.0': - resolution: {integrity: sha512-xyHBbnJ6mydnQUH7MAcafOkkrNzQC6T+LXgDH/3InEq2BWl/g424IMRiJVSpVqGjB+p2bd0h0WRR8iIwzjU7rw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@oxc-parser/binding-freebsd-x64@0.120.0': - resolution: {integrity: sha512-UMnVRllquXUYTeNfFKmxTTEdZ/ix1nLl0ducDzMSREoWYGVIHnOOxoKMWlCOvRr9Wk/HZqo2rh1jeumbPGPV9A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': - resolution: {integrity: sha512-tkvn2CQ7QdcsMnpfiX3fd3wA3EFsWKYlcQzq9cFw/xc89Al7W6Y4O0FgLVkVQpo0Tnq/qtE1XfkJOnRRA9S/NA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': - resolution: {integrity: sha512-WN5y135Ic42gQDk9grbwY9++fDhqf8knN6fnP+0WALlAUh4odY/BDK1nfTJRSfpJD9P3r1BwU0m3pW2DU89whQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-parser/binding-linux-arm64-gnu@0.120.0': - resolution: {integrity: sha512-1GgQBCcXvFMw99EPdMy+4NZ3aYyXsxjf9kbUUg8HuAy3ZBXzOry5KfFEzT9nqmgZI1cuetvApkiJBZLAPo8uaw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@oxc-parser/binding-linux-arm64-musl@0.120.0': - resolution: {integrity: sha512-gmMQ70gsPdDBgpcErvJEoWNBr7bJooSLlvOBVBSGfOzlP5NvJ3bFvnUeZZ9d+dPrqSngtonf7nyzWUTUj/U+lw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': - resolution: {integrity: sha512-T/kZuU0ajop0xhzVMwH5r3srC9Nqup5HaIo+3uFjIN5uPxa0LvSxC1ZqP4aQGJVW5G0z8/nCkjIfSMS91P/wzw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - - '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': - resolution: {integrity: sha512-vn21KXLAXzaI3N5CZWlBr1iWeXLl9QFIMor7S1hUjUGTeUuWCoE6JZB040/ZNDwf+JXPX8Ao9KbmJq9FMC2iGw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - - '@oxc-parser/binding-linux-riscv64-musl@0.120.0': - resolution: {integrity: sha512-SUbUxlar007LTGmSLGIC5x/WJvwhdX+PwNzFJ9f/nOzZOrCFbOT4ikt7pJIRg1tXVsEfzk5mWpGO1NFiSs4PIw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - - '@oxc-parser/binding-linux-s390x-gnu@0.120.0': - resolution: {integrity: sha512-hYiPJTxyfJY2+lMBFk3p2bo0R9GN+TtpPFlRqVchL1qvLG+pznstramHNvJlw9AjaoRUHwp9IKR7UZQnRPGjgQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - - '@oxc-parser/binding-linux-x64-gnu@0.120.0': - resolution: {integrity: sha512-q+5jSVZkprJCIy3dzJpApat0InJaoxQLsJuD6DkX8hrUS61z2lHQ1Fe9L2+TYbKHXCLWbL0zXe7ovkIdopBGMQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@oxc-parser/binding-linux-x64-musl@0.120.0': - resolution: {integrity: sha512-D9QDDZNnH24e7X4ftSa6ar/2hCavETfW3uk0zgcMIrZNy459O5deTbWrjGzZiVrSWigGtlQwzs2McBP0QsfV1w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@oxc-parser/binding-openharmony-arm64@0.120.0': - resolution: {integrity: sha512-TBU8ZwOUWAOUWVfmI16CYWbvh4uQb9zHnGBHsw5Cp2JUVG044OIY1CSHODLifqzQIMTXvDvLzcL89GGdUIqNrA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@oxc-parser/binding-wasm32-wasi@0.120.0': - resolution: {integrity: sha512-WG/FOZgDJCpJnuF3ToG/K28rcOmSY7FmFmfBKYb2fmLyhDzPpUldFGV7/Fz4ru0Iz/v4KPmf8xVgO8N3lO4KHA==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@oxc-parser/binding-win32-arm64-msvc@0.120.0': - resolution: {integrity: sha512-1T0HKGcsz/BKo77t7+89L8Qvu4f9DoleKWHp3C5sJEcbCjDOLx3m9m722bWZTY+hANlUEs+yjlK+lBFsA+vrVQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@oxc-parser/binding-win32-ia32-msvc@0.120.0': - resolution: {integrity: sha512-L7vfLzbOXsjBXV0rv/6Y3Jd9BRjPeCivINZAqrSyAOZN3moCopDN+Psq9ZrGNZtJzP8946MtlRFZ0Als0wBCOw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ia32] - os: [win32] - - '@oxc-parser/binding-win32-x64-msvc@0.120.0': - resolution: {integrity: sha512-ys+upfqNtSu58huAhJMBKl3XCkGzyVFBlMlGPzHeFKgpFF/OdgNs1MMf8oaJIbgMH8ZxgGF7qfue39eJohmKIg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@oxc-project/types@0.120.0': - resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} - - '@rolldown/pluginutils@1.0.0-rc.3': - resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} - - '@rollup/rollup-android-arm-eabi@4.64.7': - resolution: {integrity: sha512-GFF2tHk0NqYVObrK0+/ps/LEXsV/v2q6Lyiy7mZr+Ej24fpQScvqK2ziz9NHeEQYnKWKym38Ml7dZbPtC9tuAw==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.64.7': - resolution: {integrity: sha512-BOymcXJFYYXqluDidj6sLelNjXruC3u1BqVxLn2OPCXH9xaPSOTH+MS4uychsGI1NU7tJoiv9KvqijDHFe+hhQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.64.7': - resolution: {integrity: sha512-jgVpGweIbls2H5jfBB70tnX52abMd5pJr3xmtoDILx6JdmGl+Un+tMb9R+MbHPVB46tTBpY8emtn7M71SnQhEQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.64.7': - resolution: {integrity: sha512-AVMpt94mrXH7WjyWKmd9nT4RC5yM0AN3Lt6A89xVIsuLDi3dDX6dxMytLbW36FlppY9JsoqUoS3LUUpUrYxiMQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.64.7': - resolution: {integrity: sha512-Nje29c/MyajxRNFGU05oyeTDS6SWdMg/wWMSlZSBTBju5BKz2NVc0kFiFSQGzRELNiB+CBk/ZvAVsWsENgjGag==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.64.7': - resolution: {integrity: sha512-xxgN5/kMzCNz/NYJ4t49B0/WS6InNlWv6xvgwUQqNnWM9WJMMwMUGWrAxdNEgYWdHL0sMnuh8I87StGrIMTA+w==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.64.7': - resolution: {integrity: sha512-5U/9gVn/X657I8+NHoHO9Wnfyd0lEXwqbslobRoB9TC8SwYzOitcIr6TLE7531Q/NWs3L4mb+YOGzlf3vHIeYw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.64.7': - resolution: {integrity: sha512-hcDS0a/Y8ggM3dcOfzH7UpSaogCViWTtNDSl0EXpWIj8g8/r86ITqptjil2hayTXS0Umzb+Yt3mjgpQVFVf2+A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.64.7': - resolution: {integrity: sha512-awbAr4N7Qd/yjZAQBEEPzgcPveYG2Gi5L6gq1/Bp+3SMRjn5F68Wv1zKsntzvvoioBR6yKvhLtWqu11am1TsxA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.64.7': - resolution: {integrity: sha512-Ut7xQJfeLhzu2yN3rHzVvL9ccyPJvN4aCdP1V7hJ5lGxX/eCzgB9SiMk/Md3J+rWWZgvoYsDW4BUFggJr32pBA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loong64-gnu@4.64.7': - resolution: {integrity: sha512-trqoni/vHkuM5oo5iQhoKPh6fjjD7E80pMgCXWgGxU8vSRPUlwvG8GeYvEEcB6eJAxNa99WH9iVHPHelgtKiHA==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loong64-musl@4.64.7': - resolution: {integrity: sha512-gvlUy0XFIwtUWiQmhc+4GT2Knm3KosinpUVhr7CtTFA78gFDnE5NWwMPzHrJsYpKkh2LlY7yvBIboN1FAV6Xeg==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.64.7': - resolution: {integrity: sha512-8yS/kSXTJ/47Z62JW+C2AJ3vd/8zZw016vFjtNpZwmZlwJumLua4s1i78dkYuSSqQ+0aIMxJcBp/4uIwp2ehjA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-ppc64-musl@4.64.7': - resolution: {integrity: sha512-mxVSKvvty0hOP1AFo/l4Kpv3i3HK0zx4rYUrirZDToYlWhS3xzmIkq3vUJ7rtrM2cPyXveDyDT6M1FfXZ9hTRA==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.64.7': - resolution: {integrity: sha512-lEse1zra1CagM+uHH2bl28GInDsZZ45NJzHei2OMaXQFzZWKBO1hFo07rS0xB6ayV4WU360UrSmPDSyCMpYsUQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.64.7': - resolution: {integrity: sha512-d/cqCoiG9WMZ5VuJZ5Qdlv9g97QyoGwnmvHccvGhKSacTy7xFrAS+jMcJSBdMNOw1oacSkl6p7K6O/DRYTKL3g==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.64.7': - resolution: {integrity: sha512-kVEA//CeDOZZP1XCH2JBgqXb9+ALlwuA/4civaazMVdgzaSQC9WM38w65zG/LLk0lA7F9Od19CSBZW7J9mCbNg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.64.7': - resolution: {integrity: sha512-14oLfDsOSr0TSntT/34jRg/V8B2XW/Jomh9zX9CjIM9gwwNlI1OCymS/GVn0DV32h67eRf7U0GGem0rvfXgNwQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.64.7': - resolution: {integrity: sha512-dFVtPfjZqAnUPpPY4Bfg+87yo1IBW9HiY8iCFtg49Pn46MfZTebSHZh8PL6SOsgyt9LQP8Nj/sE6jm3aWpySmQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openbsd-x64@4.64.7': - resolution: {integrity: sha512-Dm9CZ2SM3u2NgvBj4awW/gGqkOwzH8f6MSYIJE6+bKcKLI+T0+LhpD6vtetTfrIIx+rLXDf5RJqBP6v7V5O+wg==} - cpu: [x64] - os: [openbsd] - - '@rollup/rollup-openharmony-arm64@4.64.7': - resolution: {integrity: sha512-oaxsvS2mL6+78741CT2HCORBvy1USg3Wqpt5qvZwy3aMXRMl4zxyDo8maeFRWJkF3dp0Wbi71fKH5Gr9YI3vYA==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.64.7': - resolution: {integrity: sha512-UKZz1Y4mxUqkWh60uH7B1aZn6UcAimPk4ipRktpb3wfZq7JrzZYyAXTwiafkb3T+kd5P3Sf+vzcRdsDks4WtjQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.64.7': - resolution: {integrity: sha512-WWkSuC1J+mZJnsDh0mRaCAFSWfQdl6y3fDjZeWElI6zHo8CcOSG5lY3yurKJjEq+FrX0WD60sFrVVpbHqzMmrw==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.64.7': - resolution: {integrity: sha512-u9bp2yXCI3/BUjUxY6uWknAY32pfvvDCPysyUTySotx0dj3ydlFHrRQYfn/b/kZgnfjyEwySMtI7Ga054uiysQ==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.64.7': - resolution: {integrity: sha512-EhX6N3XPMEnVU5cRfNgzPOKcSucsbu3nNNWuoAaEuKIqmddBKHN5b9d4rPe65T1I+FaOT176JKiZNsUBp3rqbA==} - cpu: [x64] - os: [win32] - - '@solid-primitives/event-listener@2.4.6': - resolution: {integrity: sha512-5I0YJcTVYIWoMmgBSROBZGcz+ymhew/pGTg2dHW74BUjFKsV8Li4bOZYl0YAGP4mHw5o4UBd9/BEesqBci3wxw==} - peerDependencies: - solid-js: ^1.6.12 - - '@solid-primitives/keyboard@1.3.7': - resolution: {integrity: sha512-558RPNYnXx4nGh537DSqAn4xMrC8iFipl/5+xzgzWoTNFst4RnUN3BOLmtDjJ0UGGoQXVMALYR3bNOHM0xnt1Q==} - peerDependencies: - solid-js: ^1.6.12 - - '@solid-primitives/resize-observer@2.2.0': - resolution: {integrity: sha512-9Fuu/EWBeGj+atGHRJp70HKhdfalmpjwxY8a32NZixdLNmfCJ45AfhLQNr6uOzETbbiMx4iCKlTrJ8KZCHC2Ww==} - peerDependencies: - solid-js: ^1.6.12 - - '@solid-primitives/rootless@1.5.4': - resolution: {integrity: sha512-TOIZa1VUfVJ+9nkCcRajw3U4t9vBOP1HxX1WHNTbXq32mXwlqTvUnC4CRIilohcryBkT9u2ZkhUDSHRTaGp55g==} - peerDependencies: - solid-js: ^1.6.12 - - '@solid-primitives/static-store@0.1.4': - resolution: {integrity: sha512-LgtVaVBtB7EbmS4+M0b8xY5Iq6pUWXBsIC4VgtrFKDGDdyCaDt88sHk0fUlx1Enxm/XZnZyLXJABRoa39RjJqA==} - peerDependencies: - solid-js: ^1.6.12 - - '@solid-primitives/utils@6.4.1': - resolution: {integrity: sha512-ISSB5QX1qP2ynrheIpYwc4oKR5Ny4siNuUyf1qZniy+Il+p/PtDB0QK1Dnle8noiHpwRD3gpPdubOC3qI/Zamg==} - peerDependencies: - solid-js: ^1.6.12 - - '@standard-schema/spec@1.1.0': - resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - - '@stylistic/eslint-plugin@5.10.0': - resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^9.0.0 || ^10.0.0 - - '@tailwindcss/node@4.3.3': - resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==} - - '@tailwindcss/oxide-android-arm64@4.3.3': - resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.3.3': - resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.3.3': - resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.3.3': - resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3': - resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.3.3': - resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-musl@4.3.3': - resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-gnu@4.3.3': - resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-musl@4.3.3': - resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-wasm32-wasi@4.3.3': - resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-win32-arm64-msvc@4.3.3': - resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.3.3': - resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.3.3': - resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==} - engines: {node: '>= 20'} - - '@tailwindcss/typography@0.5.20': - resolution: {integrity: sha512-hwbzQuNUfcPvbegQFatVPl/MY/tcM9KLl963hQ5laJKPh81TEZ1+dNG9PirGvcaDBkp+BCshExAyKVPW91dozw==} - peerDependencies: - tailwindcss: '>=3.0.0 || >=4.0.0 || insiders' - - '@tailwindcss/vite@4.3.3': - resolution: {integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==} - peerDependencies: - vite: ^5.2.0 || ^6 || ^7 || ^8 - - '@tanstack/devtools-bundler-core@0.1.3': - resolution: {integrity: sha512-F0tlxIyfFqXkZ1mJP1EjtkiSeJA+ztXY2AYOHf7r4goCIEAOp86N9PFJ/yv8vu1TnmxGS6vKsZCS3Kyls9xQQA==} - engines: {node: '>=18'} - - '@tanstack/devtools-client@0.0.8': - resolution: {integrity: sha512-cG3iZkGWCwN330bLBKa8+9r4Of2AXNoz2zUqcsy/4XsD3105ghVBx78cGyvJj9fSclNomPxoqAnDGXXhg1WLvA==} - engines: {node: '>=18'} - - '@tanstack/devtools-event-bus@0.4.3': - resolution: {integrity: sha512-NeegBt5/n2E5q4DbrXHqECBq42+kDi6JBOp8/+RNqkIE+P4hJpbM36kGyjnGQFMWOoku31qhMyX9/48VuTTdmg==} - engines: {node: '>=18'} - - '@tanstack/devtools-event-client@0.5.0': - resolution: {integrity: sha512-H+OH3zC6Vhu/K0NaVfQKknEKawc/+2PT+D3SB3Ox0V8SiMlTo0abbmH2rH0721R2aNYbjdMXA1oENOd8E2UVoA==} - engines: {node: '>=18'} - hasBin: true - - '@tanstack/devtools-ui@0.7.1': - resolution: {integrity: sha512-3xQ/ezZ2qVNszhjpCN2N3jn7uHc2J1PMgcyjHzH4XZBt9xAQyMMcPNoR2cd7rzReyxWoJpZUWiDBmOJiCtLj9A==} - engines: {node: '>=18'} - peerDependencies: - solid-js: '>=1.9.7' - - '@tanstack/devtools-vite@0.8.5': - resolution: {integrity: sha512-xaifCEmiwwzizlbp973oISXNsnmuU/BugLa66gryAZaPJJ/qo1kJd2DxY5X960eHwmyIS3SN0KYrL3/aRhucmA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@tanstack/devtools@0.15.0': - resolution: {integrity: sha512-KyS7Qi82Eq9yG8C+uae3ikAPb+D5rfzVhvOOjXVAHZ/64s6TWJlDWpREw1FrHIYZaI7paErpsExSSKlF5BKA/A==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - solid-js: '>=1.9.7' - - '@tanstack/eslint-config@0.4.0': - resolution: {integrity: sha512-V+Cd81W/f65dqKJKpytbwTGx9R+IwxKAHsG/uJ3nSLYEh36hlAr54lRpstUhggQB8nf/cP733cIw8DuD2dzQUg==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^9.0.0 || ^10.0.0 - - '@tanstack/history@1.162.5': - resolution: {integrity: sha512-w1+YvwmTkwt5n8yUqEH3IWZ9DsmorCZW/EQ3KYHnqEgIkOZpH54NvW6/Epq3Dzb8H0ifIeYX8PExvrNLIH5FIA==} - engines: {node: '>=20.19'} - - '@tanstack/react-devtools@0.10.13': - resolution: {integrity: sha512-r0cdB/14+st2Vxl/1Bodlyq4VC8pf9SykLQDYbGHDc1+V146WQo5B3KlYLkfyxD9Q/6+9NPRQHZyl8fvZVMdRA==} - engines: {node: '>=18'} - peerDependencies: - '@types/react': '>=16.8' - '@types/react-dom': '>=16.8' - react: '>=16.8' - react-dom: '>=16.8' - - '@tanstack/react-router-devtools@1.167.2': - resolution: {integrity: sha512-VuoqB7OhDUrBa4WOFSKiAQ8xI8sJpeZdo9sYE1hQa89iMuVFUQu1iWE4iCiQhB+6TYOZDZ9e+iHKxYjop4ZVYw==} - engines: {node: '>=20.19'} - peerDependencies: - '@tanstack/react-router': ^1.170.36 - '@tanstack/router-core': ^1.171.30 - react: '>=18.0.0 || >=19.0.0' - react-dom: '>=18.0.0 || >=19.0.0' - peerDependenciesMeta: - '@tanstack/router-core': - optional: true - - '@tanstack/react-router@1.170.45': - resolution: {integrity: sha512-6tuiIAFb82zsk/YxveJRyGjbsm6kIfgUuoH7qCp2R2aSHveW6W0t/6j+Sn4m1iIlA2lLU4cvooqks08/YMOThw==} - engines: {node: '>=20.19'} - peerDependencies: - react: '>=18.0.0 || >=19.0.0' - react-dom: '>=18.0.0 || >=19.0.0' - - '@tanstack/react-store@0.11.2': - resolution: {integrity: sha512-oj5O5DmiMWE+ih+SioX2ayC1kbK7d3fpLx0B75fPJr9nY3zU+hoW010yr64qXsY/9fyiLVE2bn5mGNV3owm8RQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - '@tanstack/router-core@1.171.38': - resolution: {integrity: sha512-XRZVxiO6BIexICmEo3XfPmpoyyLhbjgaMJsONz4gIf5oYys0UiaG1BJGRyj9x8QZPDZcBhvAMuTYN70wSxV0gA==} - engines: {node: '>=20.19'} - - '@tanstack/router-devtools-core@1.168.2': - resolution: {integrity: sha512-pCCdQ5M/NUeWdiAbPmjyfcNdls6G4vaVlIQbPf1IqZk1FLYFr00aQvi578yUuWFBNM2KNS2QcwM1uPucbtGf5Q==} - engines: {node: '>=20.19'} - peerDependencies: - '@tanstack/router-core': ^1.171.30 - csstype: ^3.0.10 - peerDependenciesMeta: - csstype: - optional: true - - '@tanstack/router-generator@1.167.45': - resolution: {integrity: sha512-oCtNqtsMNcBJkPIOu1O7a68jnxt4TkVJj3jHrW3VgiZdBeaj/lBJQh50yvzmNRswRcyIkRg0g30g25bbLRrAGw==} - engines: {node: '>=20.19'} - - '@tanstack/router-plugin@1.168.47': - resolution: {integrity: sha512-1qvMto2Id0Uulux4qd+WttCbOFloIEQ5x82m68T4knt6NmUDQC66P/u/5yzN0FWGSO0u2U2nbDSIQoR6g7HNmQ==} - engines: {node: '>=20.19'} - peerDependencies: - '@rsbuild/core': '>=1.0.2 || ^2.0.0' - '@tanstack/react-router': ^1.170.45 - vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' - vite-plugin-solid: ^2.11.10 || ^3.0.0-0 - webpack: '>=5.92.0' - peerDependenciesMeta: - '@rsbuild/core': - optional: true - '@tanstack/react-router': - optional: true - vite: - optional: true - vite-plugin-solid: - optional: true - webpack: - optional: true - - '@tanstack/router-utils@1.162.4': - resolution: {integrity: sha512-3TSH3rwAQTqQOtTBF8IXMFXmGNJWnjwIm+l87uguyC/of0pSRKcU9GJrozaf0fY9it8dLQvUZJA2MOlfqbW1sA==} - engines: {node: '>=20.19'} - - '@tanstack/store@0.11.2': - resolution: {integrity: sha512-sJ4mjol8uQsHV0gOJzzjwXfh2Fwm+Sz0+8deqiTm4jGbMdjzNSW+xZCFm0kUa870uhd8yi+DpKnZb5Kc4apa0Q==} - - '@tanstack/virtual-file-routes@1.162.0': - resolution: {integrity: sha512-uhOeFyxLcU41HzvrxsGpiWdcMbScY1EDgbZ5K7DVRMYInbLYWAC0EA/kx9wXAoSM8q82bUG2hRl8+EAjE6XAbA==} - engines: {node: '>=20.19'} - - '@testing-library/dom@10.4.2': - resolution: {integrity: sha512-yzr2S9HyAIdhz2/6qHgbs665Q7PKVcDF05vsOlHPxG1mo36gKVesdYVeDLnXgfjJ03CrKRk08knc6+E/9m8v2Q==} - engines: {node: '>=18'} - - '@testing-library/react@16.3.3': - resolution: {integrity: sha512-Uo193NgQbPMz6lrrhtRQQFcMC6Re/ELLFbbuVL30WDlZxlpZf9/lMHTAVxPRLw1q1iu9OJmR1c2BLiENRstdBg==} - engines: {node: '>=18'} - peerDependencies: - '@testing-library/dom': ^10.0.0 - '@types/react': ^18.0.0 || ^19.0.0 - '@types/react-dom': ^18.0.0 || ^19.0.0 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@tybys/wasm-util@0.10.4': - resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==} - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - - '@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/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - - '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - - '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} - - '@types/estree@1.0.9': - resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/node@22.20.5': - resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==} - - '@types/react-dom@19.3.0': - resolution: {integrity: sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==} - peerDependencies: - '@types/react': ^19.3.0 - - '@types/react@19.3.0': - resolution: {integrity: sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==} - - '@typescript-eslint/eslint-plugin@8.71.2': - resolution: {integrity: sha512-K72/pvT7qpm8q3k8G5u93NCSN1RcLxX5h7Gw0bQpbMXviBHeY6Nx1WEwmk9wP+eKTSQ8ecxvcgt/ZX/rB938xQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.71.2 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/parser@8.71.2': - resolution: {integrity: sha512-aTtmZjp/x3gsGHkDs04/1I8kNogBJkpQaeGaN0PfiG43NzDEmW2n+OP5im9wfsvyX0yP1UZWBrAGtDBfH9jEVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/project-service@8.71.2': - resolution: {integrity: sha512-Pd68GsLVh5ZXlcEccFPdhSOvtHZ/2WU0XsA8zmXOS3F158lVlcTLhfQ6qvtL1RzbMie0Kp8xtbVwAg4nejKPHw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/scope-manager@8.71.2': - resolution: {integrity: sha512-YF4wgg5iUX5Obywoac27B56FhozMNFhdJSbh11H5GBAwmBtfyRhmgTQqW9tRNNmHDvsZ2CX6UGzoz+YfYn2Leg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.71.2': - resolution: {integrity: sha512-jz49TAWokm/7yWD9/o837nYax9DyALxIPOImdImvVzo6canBCZYzin8zJyqNR5k1j9K1DE0bVvr0XYB+99uAdg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@8.71.2': - resolution: {integrity: sha512-cC8UaalCViJkb3rH/xLIvidEwoFRtMZMUqDjjJMGEKaTFwYRHYBcoczlEGHuvkHEO8svRDrgZ0yQgOArFmwang==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/types@8.71.2': - resolution: {integrity: sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.71.2': - resolution: {integrity: sha512-DgNOEsl4pdYzwSL+N/Cl33tX1Hlw3FvId73LnKXfq7jnrF2viOEn7X+P7RBkkSWCVm92gnWd28GIC5vJuLREeA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/utils@8.71.2': - resolution: {integrity: sha512-RyKa1G1M9rKHDhrk+HJtiF1MvLD5Ux2JW3TSkzw+02pRALdpJb+QzG1Y5em+LvCgzGwgg8H7mBRFKljNz7ImPw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/visitor-keys@8.71.2': - resolution: {integrity: sha512-zozlN0UA32bSG2zkKAgQyRYSbEISVoyU6vvkKYo2aSny74D8Jh4e+POkJ6Lk0dlezZi5x7TtD+88Xb06IB8nhg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.12.2': - resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.12.2': - resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.12.2': - resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.12.2': - resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} - cpu: [loong64] - os: [linux] - - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} - cpu: [loong64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} - cpu: [arm64] - os: [openharmony] - - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} - cpu: [x64] - os: [win32] - - '@vitejs/plugin-react@5.2.0': - resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@vitest/mocker@5.0.5': - resolution: {integrity: sha512-xLL3lkDegJZw+MGoGaCCsFayDZthGgpAtr3Vziyfc4p7xH89K7KRPcRBBh/kEYm0Aqkt5DtTmkYpBtRV/FrHZg==} - peerDependencies: - msw: ^2.4.9 || ^3.0.0 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - - '@vitest/spy@5.0.5': - resolution: {integrity: sha512-lwJRExuH417257Q5wv9QYugN9IMJkoxcrKrYxGPQkBzl7wlNpTUxD/5yNX4ESKVUIShKPgkGchYPFMWOOk0wzw==} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.19.0: - resolution: {integrity: sha512-oJlA3XiRm7Cyk6qFD2Jn8ak9B7jSy0qy00ADO3+8dpT0LSjFihQYv4C02LFCSYJV3Q37xYwwRy5m+IpIiUzqWw==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - - ajv@6.15.0: - resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansis@4.4.0: - resolution: {integrity: sha512-9k3v7xcHwgdO/DruxGIg4HtjvlAZlcnsX/mzqUb1t3NkYnl9kK2UJ+Gq0io+vQf7iT//BD/HB/NBkUR1LWxoeA==} - engines: {node: '>=14'} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - babel-dead-code-elimination@1.0.12: - resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} - - balanced-match@4.0.4: - resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} - engines: {node: 18 || 20 || >=22} - - baseline-browser-mapping@2.11.29: - resolution: {integrity: sha512-YeesxhUmR4h5y5V8KF8iBCqJb8YFrBJ++XBTeGcWIaQOYXGN19JM0FoiOjAhwuDoln8owMgXcWBmgHtYSkky2w==} - engines: {node: '>=6.0.0'} - hasBin: true - - better-auth@1.7.7: - resolution: {integrity: sha512-Zhgxi/c5ylmfB/sX+nwnBbsFf/j6k0L8DvL6CJXZSrXgxc5pPMC/e7j812zNd4L4B4ELmdURCPw3X8nAOUdcjw==} - peerDependencies: - '@lynx-js/react': '*' - '@prisma/client': ^5.0.0 || ^6.0.0 || ^7.0.0 - '@sveltejs/kit': ^2.0.0 - '@tanstack/react-start': ^1.0.0 - '@tanstack/solid-start': ^1.0.0 - drizzle-kit: '>=0.31.4 || >=1.0.0-beta.1' - drizzle-orm: ^0.45.2 || >=1.0.0-rc.1 <2.0.0 - mongodb: ^6.0.0 || ^7.0.0 - mysql2: ^3.0.0 - next: ^14.0.0 || ^15.0.0 || ^16.0.0 - pg: ^8.0.0 - prisma: ^5.0.0 || ^6.0.0 || ^7.0.0 - react: ^18.0.0 || ^19.0.0 - react-dom: ^18.0.0 || ^19.0.0 - solid-js: ^1.0.0 - svelte: ^4.0.0 || ^5.0.0 - vitest: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vue: ^3.0.0 - peerDependenciesMeta: - '@lynx-js/react': - optional: true - '@prisma/client': - optional: true - '@sveltejs/kit': - optional: true - '@tanstack/react-start': - optional: true - '@tanstack/solid-start': - optional: true - drizzle-kit: - optional: true - drizzle-orm: - optional: true - mongodb: - optional: true - mysql2: - optional: true - next: - optional: true - pg: - optional: true - prisma: - optional: true - react: - optional: true - react-dom: - optional: true - solid-js: - optional: true - svelte: - optional: true - vitest: - optional: true - vue: - optional: true - - better-call@1.4.0: - resolution: {integrity: sha512-bBKOT4vv1kZLDgxVePdilk/Jwkn+dtRRsmi3DzHcDP+WnswyVl6dR59l2HEeP/0cB+bDoopASAesWDPIdd/zZA==} - peerDependencies: - zod: ^4.0.0 - peerDependenciesMeta: - zod: - optional: true - - bidi-js@1.1.0: - resolution: {integrity: sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==} - - brace-expansion@5.0.12: - resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} - engines: {node: 20 || >=22} - - browserslist@4.29.3: - resolution: {integrity: sha512-1R4kiYKXGViqEN0CnoDrXc1StD9niAwu+j2dukWzrD4bJgsD4lDmEp0CRbc6E/vYJIfTHwPmwyaKtVSudICdPA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - cacheable@2.5.0: - resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} - - caniuse-lite@1.0.30001816: - resolution: {integrity: sha512-+8Yx7BXCoqk6IF8yTicjfUR6D/ldJzdlsodlEOiOSPmhK844WIgk67/zIQaGAOxNkZyyvBlrRFnLvqKIoqbAFw==} - - chai@6.3.0: - resolution: {integrity: sha512-XWAtwJ6OHO+tj0EKCs0Y2UamnyOxseZWltU4x2U2wh8g4AigdjwvtUjvLP2tqkA/avxHEtzxNaqGq/YGNwckKg==} - engines: {node: '>=18'} - - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - chokidar@5.0.0: - resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} - engines: {node: '>= 20.19.0'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - comment-parser@1.4.9: - resolution: {integrity: sha512-+2AvZKjJaNq9GQljm3tr0utwrig5BL+jgJGvz5rDpGKNIp+ojcRXWUwBbh/sGIi1QCprR6PsKFakub+w1v+4hQ==} - engines: {node: '>= 12.0.0'} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-es@3.1.1: - resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - css-tree@3.2.1: - resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssstyle@6.2.0: - resolution: {integrity: sha512-Fm5NvhYathRnXNVndkUsCCuR63DCLVVwGOOwQw782coXFi5HhkXdu289l59HlXZBawsyNccXfWRYvLzcDCdDig==} - engines: {node: '>=20'} - - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - - data-urls@7.0.0: - resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - dayjs@1.11.23: - resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - defu@6.1.7: - resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} - - diff@9.0.0: - resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} - engines: {node: '>=0.3.1'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - electron-to-chromium@1.5.458: - resolution: {integrity: sha512-/hIH2gRSmxrf4/X4Nw/t/Wc8PVS22l8/3HnWjWTWsTOM5dsnMUPZF/+u+yr3LqweNuTBJE1rq6qAQzKkZVwMfA==} - - enhanced-resolve@5.26.0: - resolution: {integrity: sha512-9vhedylFonb2YGogzUKX6+Ja72gOJbN1QHAqdrvqLwhdl/QWbKopzoUC9EbQNVsAns/bx/4uyqalrQAoy1IByw==} - engines: {node: '>=10.13.0'} - - entities@8.1.0: - resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==} - engines: {node: '>=20.19.0'} - - es-module-lexer@2.3.2: - resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} - - esbuild@0.28.2: - resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true - - eslint-plugin-es-x@7.8.0: - resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-import-x@4.17.1: - resolution: {integrity: sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/utils': ^8.56.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true - - eslint-plugin-n@17.24.0: - resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.23.0' - - eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - 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-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - eslint@10.13.0: - resolution: {integrity: sha512-UohDjD4zSzEwhf58M3O7vc/ycc8O1I7dNlhtD0WxE8Px8EHNJKtUwzBqrzeGhisRuv2ag4sAYswszCJRgKXYUg==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - 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} - - espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - - esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} - 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'} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - expect-type@1.4.0: - resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} - engines: {node: '>=12.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==} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@11.1.5: - resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@6.1.23: - resolution: {integrity: sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==} - - flatted@3.4.4: - resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-tsconfig@4.14.3: - resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - globals@17.13.0: - resolution: {integrity: sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==} - engines: {node: '>=18'} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - goober@2.1.19: - resolution: {integrity: sha512-U7veizMqxyKlM58+Z5j2ngJBH/r9siDmxpvNxSw0PylF6WQvrASJEZrxh1hidRBJc2jqoBVSyOban5u8m+6Rxg==} - peerDependencies: - csstype: ^3.0.10 - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - hashery@1.5.1: - resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} - engines: {node: '>=20'} - - hookified@1.15.1: - resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} - - hookified@2.2.0: - resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} - - html-encoding-sniffer@6.0.0: - resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - ignore@7.0.12: - resolution: {integrity: sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==} - engines: {node: '>= 4'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - isbot@5.2.2: - resolution: {integrity: sha512-iQcBXcd+Rv/pkubRyGh2utW2j1oPG5hZY6TUhVPpqK4G+o3IbxpJNx04hgksjc/N7GK5pEorUxDeg31cFgEk/w==} - engines: {node: '>=18'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jiti@2.7.0: - resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} - hasBin: true - - jose@6.2.12: - resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - jsdom@28.1.0: - resolution: {integrity: sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - canvas: ^3.0.0 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - 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 - - keyv@5.6.0: - resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} - - kysely@0.29.6: - resolution: {integrity: sha512-hHaB8C/rfzDDtr/t8YZwxAuPJTT0zHyaPoVzcXwDYhYNAgH/4sIfVhi/XLLIY+bL/FqaIJnjATDbi8ObSELmxg==} - engines: {node: '>=22.0.0'} - - launch-editor@2.14.2: - resolution: {integrity: sha512-NHJEb30MGBCkmZXLZwz25t37QR4aY03ZzPYUJXOJaOa92uWwExI9SBQUuIznBYc1xkD7cJNGX7oc3Nl3sq2kQQ==} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] - - lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - - lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - - lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - - lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - - lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - - lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - - lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} - engines: {node: '>= 12.0.0'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lru-cache@11.5.3: - resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} - engines: {node: 20 || >=22} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lucide-react@0.545.0: - resolution: {integrity: sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - - magic-string@1.4.3: - resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==} - - mdn-data@2.27.1: - resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - - minimatch@10.2.6: - resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} - engines: {node: 18 || 20 || >=22} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - nanoid@3.3.20: - resolution: {integrity: sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanostores@1.5.5: - resolution: {integrity: sha512-FixtE239Gl6Gz0ZGCK0WzvNwObNCIwVT+L7zQcf1QgcA6AzBxblzqe9OT88qiucNkhsjSOqiogSaF5jVbJiqSA==} - engines: {node: ^20.0.0 || >=22.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==} - - node-releases@2.0.59: - resolution: {integrity: sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==} - engines: {node: '>=18'} - - obug@3.0.0: - resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} - engines: {node: '>=12.20.0'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - oxc-parser@0.120.0: - resolution: {integrity: sha512-WyPWZlcIm+Fkte63FGfgFB8mAAk33aH9h5N9lphXVOHSXEBFFsmYdOBedVKly363aWABjZdaj/m9lBfEY4wt+w==} - engines: {node: ^20.19.0 || >=22.12.0} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - parse5@8.0.1: - resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@4.0.7: - resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} - engines: {node: '>=12'} - - postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} - - postcss@8.5.30: - resolution: {integrity: sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier@3.9.10: - resolution: {integrity: sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - qified@0.10.1: - resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} - engines: {node: '>=20'} - - react-dom@19.3.1: - resolution: {integrity: sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ==} - peerDependencies: - react: ^19.3.1 - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-refresh@0.18.0: - resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} - engines: {node: '>=0.10.0'} - - react@19.3.1: - resolution: {integrity: sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw==} - engines: {node: '>=0.10.0'} - - readdirp@5.1.1: - resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} - engines: {node: '>= 20.19.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - rollup@4.64.7: - resolution: {integrity: sha512-aCiJONoZp0lNGJ6sYqspLkh6UXaWEey/7Ko2TZyXQ4kgzAhDUxAgbt/oulXKmD+zFHXw1k+RF6ZZWOrjp7DZnQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rou3@0.9.2: - resolution: {integrity: sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - scheduler@0.28.0: - resolution: {integrity: sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.8.5: - resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} - engines: {node: '>=10'} - hasBin: true - - seroval-plugins@1.6.9: - resolution: {integrity: sha512-kiDK/Tb8IWZ61WEU8pA2PDmAuw37gKph9Y77OZlD56mg0Y2g0Bg7gZ1HeHhs5d40w+nRoUq/wj08V26ilbez9g==} - engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 - - seroval@1.6.9: - resolution: {integrity: sha512-UeEzHwAK+yl0YLbsvROV1t5yMYEwZZ0CfKYxDvUgS2fO9Vxdf8djqVIB+OuVpuawRNPqw68LE1Du/GMsW2ZPqA==} - engines: {node: '>=10'} - - set-cookie-parser@3.1.4: - resolution: {integrity: sha512-iEmdEew+Tn1BwMGMP8LzGBEPC7Mf1sySjglCeEPb/Vchm9bnGezePvacYcId+fGprQzIng+TBkzqfJ/qS7AsBg==} - - 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'} - - shell-quote@1.12.0: - resolution: {integrity: sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==} - engines: {node: '>= 0.4'} - - solid-js@1.9.17: - resolution: {integrity: sha512-4GAmLOWPfNV8H9Jfn2LSFTpNEG6jiOKPiwd5lnLGQtehHaX6l3TOLzJqQ7mqwB/3k1Yy3zyumFVopmc/tm34ow==} - - source-map-js@1.2.2: - resolution: {integrity: sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==} - engines: {node: '>=0.10.0'} - - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} - - std-env@4.3.0: - resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - tailwindcss@4.3.3: - resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==} - - tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} - engines: {node: '>=6'} - - tinybench@6.2.2: - resolution: {integrity: sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==} - engines: {node: '>=20.0.0'} - - tinyexec@1.3.1: - resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} - engines: {node: '>=18'} - - tinyglobby@0.2.17: - resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} - engines: {node: '>=12.0.0'} - - tldts-core@7.4.18: - resolution: {integrity: sha512-KI2PKvCmvQI/xD6ypPqkU0i7oxNXR/O58RLRaHR4svsgVUQ2JE/XC8BtMbG6PSehD27I8sZJRcC1ASnCy6lp3g==} - - tldts@7.4.18: - resolution: {integrity: sha512-somxA8xKAUzlAxl0TX/jMSYIbRNFIVGnI96pVGJPeMc5BsHmfVXn6mOJT6U++ELnl04eGfzpfcEuZe8WiASkXg==} - hasBin: true - - tough-cookie@6.0.2: - resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==} - engines: {node: '>=16'} - - tr46@6.0.0: - resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} - engines: {node: '>=20'} - - ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-declaration-location@1.0.7: - resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} - peerDependencies: - typescript: '>=4.0.0' - - tsconfck@3.1.6: - resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} - engines: {node: ^18 || >=20} - deprecated: unmaintained - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - typescript-eslint@8.71.2: - resolution: {integrity: sha512-Rz4effbMy2g9wnvOJZG6SbVavX313Lap1vNEbk1RUochzickvzP8P4HB+bkNg5e50eVz1hQGjh9K1omI1xB4Bw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - - undici@7.30.1: - resolution: {integrity: sha512-03KrMbjIFDWQR5RNPrSw3bd1r12JpyFQl9/yxjUbJtqkjmllqC5lFjZh6ujeuJCKr8EOQvRW872Oy/az+nLYxg==} - engines: {node: '>=20.18.1'} - - unplugin@3.4.0: - resolution: {integrity: sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - '@farmfe/core': '*' - '@rsbuild/core': '*' - '@rspack/core': '*' - bun-types-no-globals: '*' - esbuild: '*' - rolldown: '*' - rollup: '*' - unloader: '*' - vite: '*' - webpack: '*' - peerDependenciesMeta: - '@farmfe/core': - optional: true - '@rsbuild/core': - optional: true - '@rspack/core': - optional: true - bun-types-no-globals: - optional: true - esbuild: - optional: true - rolldown: - optional: true - rollup: - optional: true - unloader: - optional: true - vite: - optional: true - webpack: - optional: true - - unrs-resolver@1.12.2: - resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} - - update-browserslist-db@1.3.4: - resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - use-sync-external-store@1.7.0: - resolution: {integrity: sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - vite-tsconfig-paths@5.1.4: - resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite@7.3.7: - resolution: {integrity: sha512-AHEzTORMbi7/7aXp7w7KZ5+DCUdSeLsJz0grY8xHpc9DHdYb0vQu6DqJfm2tOw3gDExNgPgnJTXxM6syYFHaCA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - jiti: '>=1.21.0' - less: ^4.0.0 - lightningcss: ^1.21.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitest@5.0.5: - resolution: {integrity: sha512-cPODOMF8YnkiiYtDdHo6n4wWmBrOBBbOIYH2d33M4l3CdNn72h+qMmO6uXffUN6A5AZFXNND/d+krS9mgkXRfg==} - engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@opentelemetry/api': ^1.9.0 - '@types/node': ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 5.0.5 - '@vitest/browser-preview': 5.0.5 - '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0 - '@vitest/coverage-istanbul': 5.0.5 - '@vitest/coverage-v8': 5.0.5 - '@vitest/ui': 5.0.5 - happy-dom: '*' - jsdom: '*' - vite: ^6.4.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@opentelemetry/api': - optional: true - '@types/node': - optional: true - '@vitest/browser-playwright': - optional: true - '@vitest/browser-preview': - optional: true - '@vitest/browser-webdriverio': - optional: true - '@vitest/coverage-istanbul': - optional: true - '@vitest/coverage-v8': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vue-eslint-parser@10.4.1: - resolution: {integrity: sha512-Gk6gRDj0n/fkRa3C3l0bBheoBckUq/Rs0F/TvMWIS6nzzx67amAViMe9CkNgsP2tXyQONvGiHQESHwFtZ3aYDA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} - - webidl-conversions@8.0.1: - resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} - engines: {node: '>=20'} - - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - - whatwg-mimetype@5.0.0: - resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} - engines: {node: '>=20'} - - whatwg-url@16.0.1: - resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - why-is-node-running@3.2.1: - resolution: {integrity: sha512-Tb2FUhB4vUsGQlfSquQLYkApkuPAFQXGFzxWKHHumVz2dK+X1RUm/HnID4+TfIGYJ1kTcwOaCk/buYCEJr6YjQ==} - engines: {node: '>=20.11'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - ws@8.22.0: - resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - zod@4.6.7: - resolution: {integrity: sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==} - -snapshots: - - '@acemir/cssom@0.9.32': {} - - '@asamuzakjp/css-color@5.1.11': - dependencies: - '@asamuzakjp/generational-cache': 1.0.1 - '@csstools/css-calc': 3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2) - '@csstools/css-color-parser': 4.2.6(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2) - '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2) - '@csstools/css-tokenizer': 4.0.2 - - '@asamuzakjp/dom-selector@6.8.1': - dependencies: - '@asamuzakjp/nwsapi': 2.3.9 - bidi-js: 1.1.0 - css-tree: 3.2.1 - is-potential-custom-element-name: 1.0.1 - lru-cache: 11.5.3 - - '@asamuzakjp/generational-cache@1.0.1': {} - - '@asamuzakjp/nwsapi@2.3.9': {} - - '@babel/code-frame@7.29.7': - dependencies: - '@babel/helper-validator-identifier': 7.29.7 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.29.7': {} - - '@babel/core@7.29.7': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.8 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helpers': 7.29.10 - '@babel/parser': 7.29.9 - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.10 - '@babel/types': 7.29.8 - '@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.29.8': - dependencies: - '@babel/parser': 7.29.9 - '@babel/types': 7.29.8 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.29.7': - dependencies: - '@babel/compat-data': 7.29.7 - '@babel/helper-validator-option': 7.29.7 - browserslist: 4.29.3 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.29.7': {} - - '@babel/helper-module-imports@7.29.7': - dependencies: - '@babel/traverse': 7.29.10 - '@babel/types': 7.29.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.10 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.29.7': {} - - '@babel/helper-string-parser@7.29.7': {} - - '@babel/helper-validator-identifier@7.29.7': {} - - '@babel/helper-validator-option@7.29.7': {} - - '@babel/helpers@7.29.10': - dependencies: - '@babel/template': 7.29.7 - '@babel/types': 7.29.8 - - '@babel/parser@7.29.9': - dependencies: - '@babel/types': 7.29.8 - - '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - - '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - - '@babel/runtime@7.29.10': {} - - '@babel/template@7.29.7': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.9 - '@babel/types': 7.29.8 - - '@babel/traverse@7.29.10': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.8 - '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.9 - '@babel/template': 7.29.7 - '@babel/types': 7.29.8 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.29.8': - dependencies: - '@babel/helper-string-parser': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - - '@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5)': - dependencies: - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.2 - '@opentelemetry/semantic-conventions': 1.43.0 - '@standard-schema/spec': 1.1.0 - better-call: 1.4.0(zod@4.6.7) - jose: 6.2.12 - kysely: 0.29.6 - nanostores: 1.5.5 - zod: 4.6.7 - - '@better-auth/drizzle-adapter@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - - '@better-auth/kysely-adapter@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(kysely@0.29.6)': - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - optionalDependencies: - kysely: 0.29.6 - - '@better-auth/memory-adapter@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - - '@better-auth/mongo-adapter@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - - '@better-auth/prisma-adapter@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)': - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - - '@better-auth/telemetry@1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)': - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.2 - - '@better-auth/utils@0.4.2': - dependencies: - '@noble/hashes': 2.4.0 - - '@better-auth/utils@0.5.0': - dependencies: - '@noble/hashes': 2.4.0 - - '@better-fetch/fetch@1.3.2': {} - - '@bramus/specificity@2.4.3': - dependencies: - css-tree: 3.2.1 - - '@cacheable/memory@2.2.0': - dependencies: - '@cacheable/utils': 2.5.0 - '@keyv/bigmap': 1.3.1(keyv@5.6.0) - hookified: 1.15.1 - keyv: 5.6.0 - - '@cacheable/utils@2.5.0': - dependencies: - hashery: 1.5.1 - keyv: 5.6.0 - - '@csstools/color-helpers@6.1.2': {} - - '@csstools/css-calc@3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)': - dependencies: - '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2) - '@csstools/css-tokenizer': 4.0.2 - - '@csstools/css-color-parser@4.2.6(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2)': - dependencies: - '@csstools/color-helpers': 6.1.2 - '@csstools/css-calc': 3.4.3(@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2))(@csstools/css-tokenizer@4.0.2) - '@csstools/css-parser-algorithms': 4.0.2(@csstools/css-tokenizer@4.0.2) - '@csstools/css-tokenizer': 4.0.2 - - '@csstools/css-parser-algorithms@4.0.2(@csstools/css-tokenizer@4.0.2)': - dependencies: - '@csstools/css-tokenizer': 4.0.2 - - '@csstools/css-syntax-patches-for-csstree@1.1.15(css-tree@3.2.1)': - optionalDependencies: - css-tree: 3.2.1 - - '@csstools/css-tokenizer@4.0.2': {} - - '@emnapi/core@1.10.0': - dependencies: - '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.10.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.2.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@esbuild/aix-ppc64@0.28.2': - optional: true - - '@esbuild/android-arm64@0.28.2': - optional: true - - '@esbuild/android-arm@0.28.2': - optional: true - - '@esbuild/android-x64@0.28.2': - optional: true - - '@esbuild/darwin-arm64@0.28.2': - optional: true - - '@esbuild/darwin-x64@0.28.2': - optional: true - - '@esbuild/freebsd-arm64@0.28.2': - optional: true - - '@esbuild/freebsd-x64@0.28.2': - optional: true - - '@esbuild/linux-arm64@0.28.2': - optional: true - - '@esbuild/linux-arm@0.28.2': - optional: true - - '@esbuild/linux-ia32@0.28.2': - optional: true - - '@esbuild/linux-loong64@0.28.2': - optional: true - - '@esbuild/linux-mips64el@0.28.2': - optional: true - - '@esbuild/linux-ppc64@0.28.2': - optional: true - - '@esbuild/linux-riscv64@0.28.2': - optional: true - - '@esbuild/linux-s390x@0.28.2': - optional: true - - '@esbuild/linux-x64@0.28.2': - optional: true - - '@esbuild/netbsd-arm64@0.28.2': - optional: true - - '@esbuild/netbsd-x64@0.28.2': - optional: true - - '@esbuild/openbsd-arm64@0.28.2': - optional: true - - '@esbuild/openbsd-x64@0.28.2': - optional: true - - '@esbuild/openharmony-arm64@0.28.2': - optional: true - - '@esbuild/sunos-x64@0.28.2': - optional: true - - '@esbuild/win32-arm64@0.28.2': - optional: true - - '@esbuild/win32-ia32@0.28.2': - optional: true - - '@esbuild/win32-x64@0.28.2': - optional: true - - '@eslint-community/eslint-utils@4.10.1(eslint@10.13.0(jiti@2.7.0))': - dependencies: - eslint: 10.13.0(jiti@2.7.0) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/config-array@0.23.5': - dependencies: - '@eslint/object-schema': 3.0.5 - debug: 4.4.3 - minimatch: 10.2.6 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.7.0': - dependencies: - '@eslint/core': 1.2.1 - - '@eslint/core@1.2.1': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/js@10.0.1(eslint@10.13.0(jiti@2.7.0))': - optionalDependencies: - eslint: 10.13.0(jiti@2.7.0) - - '@eslint/object-schema@3.0.5': {} - - '@eslint/plugin-kit@0.7.3': - dependencies: - '@eslint/core': 1.2.1 - levn: 0.4.1 - - '@exodus/bytes@1.16.0(@noble/hashes@2.4.0)': - optionalDependencies: - '@noble/hashes': 2.4.0 - - '@humanfs/core@0.19.2': - dependencies: - '@humanfs/types': 0.15.0 - - '@humanfs/node@0.16.8': - dependencies: - '@humanfs/core': 0.19.2 - '@humanfs/types': 0.15.0 - '@humanwhocodes/retry': 0.4.3 - - '@humanfs/types@0.15.0': {} - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.4.3': {} - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.6.0 - '@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.6.0': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.6.0 - - '@keyv/bigmap@1.3.1(keyv@5.6.0)': - dependencies: - hashery: 1.5.1 - hookified: 1.15.1 - keyv: 5.6.0 - - '@keyv/serialize@1.1.1': {} - - '@napi-rs/lzma-linux-x64-gnu@1.5.1': - optional: true - - '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.4 - optional: true - - '@neodrag/core@3.0.0-next.11': {} - - '@neodrag/solid@3.0.0-next.11(@neodrag/core@3.0.0-next.11)(solid-js@1.9.17)': - dependencies: - '@neodrag/core': 3.0.0-next.11 - solid-js: 1.9.17 - - '@noble/ciphers@2.4.0': {} - - '@noble/hashes@2.4.0': {} - - '@opentelemetry/semantic-conventions@1.43.0': {} - - '@oxc-parser/binding-android-arm-eabi@0.120.0': - optional: true - - '@oxc-parser/binding-android-arm64@0.120.0': - optional: true - - '@oxc-parser/binding-darwin-arm64@0.120.0': - optional: true - - '@oxc-parser/binding-darwin-x64@0.120.0': - optional: true - - '@oxc-parser/binding-freebsd-x64@0.120.0': - optional: true - - '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': - optional: true - - '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': - optional: true - - '@oxc-parser/binding-linux-arm64-gnu@0.120.0': - optional: true - - '@oxc-parser/binding-linux-arm64-musl@0.120.0': - optional: true - - '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': - optional: true - - '@oxc-parser/binding-linux-riscv64-musl@0.120.0': - optional: true - - '@oxc-parser/binding-linux-s390x-gnu@0.120.0': - optional: true - - '@oxc-parser/binding-linux-x64-gnu@0.120.0': - optional: true - - '@oxc-parser/binding-linux-x64-musl@0.120.0': - optional: true - - '@oxc-parser/binding-openharmony-arm64@0.120.0': - optional: true - - '@oxc-parser/binding-wasm32-wasi@0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - optional: true - - '@oxc-parser/binding-win32-arm64-msvc@0.120.0': - optional: true - - '@oxc-parser/binding-win32-ia32-msvc@0.120.0': - optional: true - - '@oxc-parser/binding-win32-x64-msvc@0.120.0': - optional: true - - '@oxc-project/types@0.120.0': {} - - '@rolldown/pluginutils@1.0.0-rc.3': {} - - '@rollup/rollup-android-arm-eabi@4.64.7': - optional: true - - '@rollup/rollup-android-arm64@4.64.7': - optional: true - - '@rollup/rollup-darwin-arm64@4.64.7': - optional: true - - '@rollup/rollup-darwin-x64@4.64.7': - optional: true - - '@rollup/rollup-freebsd-arm64@4.64.7': - optional: true - - '@rollup/rollup-freebsd-x64@4.64.7': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.64.7': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.64.7': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.64.7': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.64.7': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.64.7': - optional: true - - '@rollup/rollup-linux-loong64-musl@4.64.7': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.64.7': - optional: true - - '@rollup/rollup-linux-ppc64-musl@4.64.7': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.64.7': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.64.7': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.64.7': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.64.7': - optional: true - - '@rollup/rollup-linux-x64-musl@4.64.7': - optional: true - - '@rollup/rollup-openbsd-x64@4.64.7': - optional: true - - '@rollup/rollup-openharmony-arm64@4.64.7': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.64.7': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.64.7': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.64.7': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.64.7': - optional: true - - '@solid-primitives/event-listener@2.4.6(solid-js@1.9.17)': - dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.17) - solid-js: 1.9.17 - - '@solid-primitives/keyboard@1.3.7(solid-js@1.9.17)': - dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.17) - '@solid-primitives/rootless': 1.5.4(solid-js@1.9.17) - '@solid-primitives/utils': 6.4.1(solid-js@1.9.17) - solid-js: 1.9.17 - - '@solid-primitives/resize-observer@2.2.0(solid-js@1.9.17)': - dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.17) - '@solid-primitives/rootless': 1.5.4(solid-js@1.9.17) - '@solid-primitives/static-store': 0.1.4(solid-js@1.9.17) - '@solid-primitives/utils': 6.4.1(solid-js@1.9.17) - solid-js: 1.9.17 - - '@solid-primitives/rootless@1.5.4(solid-js@1.9.17)': - dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.17) - solid-js: 1.9.17 - - '@solid-primitives/static-store@0.1.4(solid-js@1.9.17)': - dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.17) - solid-js: 1.9.17 - - '@solid-primitives/utils@6.4.1(solid-js@1.9.17)': - dependencies: - solid-js: 1.9.17 - - '@standard-schema/spec@1.1.0': {} - - '@stylistic/eslint-plugin@5.10.0(eslint@10.13.0(jiti@2.7.0))': - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0(jiti@2.7.0)) - '@typescript-eslint/types': 8.71.2 - eslint: 10.13.0(jiti@2.7.0) - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - estraverse: 5.3.0 - picomatch: 4.0.7 - - '@tailwindcss/node@4.3.3': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.26.0 - jiti: 2.7.0 - lightningcss: 1.32.0 - magic-string: 0.30.21 - source-map-js: 1.2.2 - tailwindcss: 4.3.3 - - '@tailwindcss/oxide-android-arm64@4.3.3': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.3.3': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.3.3': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.3.3': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.3.3': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.3.3': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.3.3': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.3.3': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.3.3': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.3.3': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.3.3': - optional: true - - '@tailwindcss/oxide@4.3.3': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.3.3 - '@tailwindcss/oxide-darwin-arm64': 4.3.3 - '@tailwindcss/oxide-darwin-x64': 4.3.3 - '@tailwindcss/oxide-freebsd-x64': 4.3.3 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.3 - '@tailwindcss/oxide-linux-arm64-gnu': 4.3.3 - '@tailwindcss/oxide-linux-arm64-musl': 4.3.3 - '@tailwindcss/oxide-linux-x64-gnu': 4.3.3 - '@tailwindcss/oxide-linux-x64-musl': 4.3.3 - '@tailwindcss/oxide-wasm32-wasi': 4.3.3 - '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 - '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - - '@tailwindcss/typography@0.5.20(tailwindcss@4.3.3)': - dependencies: - postcss-selector-parser: 6.0.10 - tailwindcss: 4.3.3 - - '@tailwindcss/vite@4.3.3(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))': - dependencies: - '@tailwindcss/node': 4.3.3 - '@tailwindcss/oxide': 4.3.3 - tailwindcss: 4.3.3 - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - - '@tanstack/devtools-bundler-core@0.1.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@tanstack/devtools-client': 0.0.8 - '@tanstack/devtools-event-bus': 0.4.3 - chalk: 5.6.2 - launch-editor: 2.14.2 - magic-string: 0.30.21 - oxc-parser: 0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - picomatch: 4.0.7 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - bufferutil - - utf-8-validate - - '@tanstack/devtools-client@0.0.8': - dependencies: - '@tanstack/devtools-event-client': 0.5.0 - - '@tanstack/devtools-event-bus@0.4.3': - dependencies: - ws: 8.22.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@tanstack/devtools-event-client@0.5.0': {} - - '@tanstack/devtools-ui@0.7.1(csstype@3.2.3)(solid-js@1.9.17)': - dependencies: - clsx: 2.1.1 - dayjs: 1.11.23 - goober: 2.1.19(csstype@3.2.3) - solid-js: 1.9.17 - transitivePeerDependencies: - - csstype - - '@tanstack/devtools-vite@0.8.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))': - dependencies: - '@tanstack/devtools-bundler-core': 0.1.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - '@tanstack/devtools-client': 0.0.8 - '@tanstack/devtools-event-bus': 0.4.3 - chalk: 5.6.2 - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - bufferutil - - utf-8-validate - - '@tanstack/devtools@0.15.0(csstype@3.2.3)(solid-js@1.9.17)': - dependencies: - '@neodrag/core': 3.0.0-next.11 - '@neodrag/solid': 3.0.0-next.11(@neodrag/core@3.0.0-next.11)(solid-js@1.9.17) - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.17) - '@solid-primitives/keyboard': 1.3.7(solid-js@1.9.17) - '@solid-primitives/resize-observer': 2.2.0(solid-js@1.9.17) - '@tanstack/devtools-client': 0.0.8 - '@tanstack/devtools-event-bus': 0.4.3 - '@tanstack/devtools-ui': 0.7.1(csstype@3.2.3)(solid-js@1.9.17) - clsx: 2.1.1 - goober: 2.1.19(csstype@3.2.3) - solid-js: 1.9.17 - transitivePeerDependencies: - - bufferutil - - csstype - - utf-8-validate - - '@tanstack/eslint-config@0.4.0(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3)': - dependencies: - '@eslint/js': 10.0.1(eslint@10.13.0(jiti@2.7.0)) - '@stylistic/eslint-plugin': 5.10.0(eslint@10.13.0(jiti@2.7.0)) - eslint: 10.13.0(jiti@2.7.0) - eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.13.0(jiti@2.7.0)) - eslint-plugin-n: 17.24.0(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - globals: 17.13.0 - typescript-eslint: 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - vue-eslint-parser: 10.4.1(eslint@10.13.0(jiti@2.7.0)) - transitivePeerDependencies: - - '@typescript-eslint/utils' - - eslint-import-resolver-node - - supports-color - - typescript - - '@tanstack/history@1.162.5': {} - - '@tanstack/react-devtools@0.10.13(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(csstype@3.2.3)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(solid-js@1.9.17)': - dependencies: - '@tanstack/devtools': 0.15.0(csstype@3.2.3)(solid-js@1.9.17) - '@types/react': 19.3.0 - '@types/react-dom': 19.3.0(@types/react@19.3.0) - react: 19.3.1 - react-dom: 19.3.1(react@19.3.1) - transitivePeerDependencies: - - bufferutil - - csstype - - solid-js - - utf-8-validate - - '@tanstack/react-router-devtools@1.167.2(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(@tanstack/router-core@1.171.38)(csstype@3.2.3)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': - dependencies: - '@tanstack/react-router': 1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - '@tanstack/router-devtools-core': 1.168.2(@tanstack/router-core@1.171.38)(csstype@3.2.3) - react: 19.3.1 - react-dom: 19.3.1(react@19.3.1) - optionalDependencies: - '@tanstack/router-core': 1.171.38 - transitivePeerDependencies: - - csstype - - '@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': - dependencies: - '@tanstack/history': 1.162.5 - '@tanstack/react-store': 0.11.2(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - '@tanstack/router-core': 1.171.38 - isbot: 5.2.2 - react: 19.3.1 - react-dom: 19.3.1(react@19.3.1) - - '@tanstack/react-store@0.11.2(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': - dependencies: - '@tanstack/store': 0.11.2 - react: 19.3.1 - react-dom: 19.3.1(react@19.3.1) - use-sync-external-store: 1.7.0(react@19.3.1) - - '@tanstack/router-core@1.171.38': - dependencies: - '@tanstack/history': 1.162.5 - cookie-es: 3.1.1 - seroval: 1.6.9 - seroval-plugins: 1.6.9(seroval@1.6.9) - - '@tanstack/router-devtools-core@1.168.2(@tanstack/router-core@1.171.38)(csstype@3.2.3)': - dependencies: - '@tanstack/router-core': 1.171.38 - clsx: 2.1.1 - goober: 2.1.19(csstype@3.2.3) - optionalDependencies: - csstype: 3.2.3 - - '@tanstack/router-generator@1.167.45': - dependencies: - '@babel/types': 7.29.8 - '@tanstack/router-core': 1.171.38 - '@tanstack/router-utils': 1.162.4 - '@tanstack/virtual-file-routes': 1.162.0 - jiti: 2.7.0 - magic-string: 0.30.21 - prettier: 3.9.10 - zod: 4.6.7 - transitivePeerDependencies: - - supports-color - - '@tanstack/router-plugin@1.168.47(@tanstack/react-router@1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1))(esbuild@0.28.2)(rollup@4.64.7)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))': - dependencies: - '@babel/core': 7.29.7 - '@babel/template': 7.29.7 - '@babel/types': 7.29.8 - '@tanstack/router-core': 1.171.38 - '@tanstack/router-generator': 1.167.45 - '@tanstack/router-utils': 1.162.4 - chokidar: 5.0.0 - unplugin: 3.4.0(esbuild@0.28.2)(rollup@4.64.7)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - zod: 4.6.7 - optionalDependencies: - '@tanstack/react-router': 1.170.45(react-dom@19.3.1(react@19.3.1))(react@19.3.1) - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - supports-color - - unloader - - '@tanstack/router-utils@1.162.4': - dependencies: - '@babel/generator': 7.29.8 - '@babel/parser': 7.29.9 - '@babel/types': 7.29.8 - ansis: 4.4.0 - babel-dead-code-elimination: 1.0.12 - diff: 9.0.0 - pathe: 2.0.3 - tinyglobby: 0.2.17 - transitivePeerDependencies: - - supports-color - - '@tanstack/store@0.11.2': {} - - '@tanstack/virtual-file-routes@1.162.0': {} - - '@testing-library/dom@10.4.2': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/runtime': 7.29.10 - '@types/aria-query': 5.0.4 - aria-query: 5.3.0 - dom-accessibility-api: 0.5.16 - lz-string: 1.5.0 - picocolors: 1.1.1 - pretty-format: 27.5.1 - - '@testing-library/react@16.3.3(@testing-library/dom@10.4.2)(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.1(react@19.3.1))(react@19.3.1)': - dependencies: - '@babel/runtime': 7.29.10 - '@testing-library/dom': 10.4.2 - react: 19.3.1 - react-dom: 19.3.1(react@19.3.1) - optionalDependencies: - '@types/react': 19.3.0 - '@types/react-dom': 19.3.0(@types/react@19.3.0) - - '@tybys/wasm-util@0.10.4': - dependencies: - tslib: 2.8.1 - optional: true - - '@types/aria-query@5.0.4': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.29.9 - '@babel/types': 7.29.8 - '@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.29.8 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.29.9 - '@babel/types': 7.29.8 - - '@types/babel__traverse@7.28.0': - dependencies: - '@babel/types': 7.29.8 - - '@types/chai@5.2.3': - dependencies: - '@types/deep-eql': 4.0.2 - assertion-error: 2.0.1 - - '@types/deep-eql@4.0.2': {} - - '@types/esrecurse@4.3.1': {} - - '@types/estree@1.0.9': {} - - '@types/json-schema@7.0.15': {} - - '@types/node@22.20.5': - dependencies: - undici-types: 6.21.0 - - '@types/react-dom@19.3.0(@types/react@19.3.0)': - dependencies: - '@types/react': 19.3.0 - - '@types/react@19.3.0': - dependencies: - csstype: 3.2.3 - - '@typescript-eslint/eslint-plugin@8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.71.2 - '@typescript-eslint/type-utils': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.71.2 - eslint: 10.13.0(jiti@2.7.0) - ignore: 7.0.12 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.71.2 - '@typescript-eslint/types': 8.71.2 - '@typescript-eslint/typescript-estree': 8.71.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.71.2 - debug: 4.4.3 - eslint: 10.13.0(jiti@2.7.0) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.71.2(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.71.2(typescript@5.9.3) - '@typescript-eslint/types': 8.71.2 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.71.2': - dependencies: - '@typescript-eslint/types': 8.71.2 - '@typescript-eslint/visitor-keys': 8.71.2 - - '@typescript-eslint/tsconfig-utils@8.71.2(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/type-utils@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 8.71.2 - '@typescript-eslint/typescript-estree': 8.71.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - debug: 4.4.3 - eslint: 10.13.0(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.71.2': {} - - '@typescript-eslint/typescript-estree@8.71.2(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.71.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.71.2(typescript@5.9.3) - '@typescript-eslint/types': 8.71.2 - '@typescript-eslint/visitor-keys': 8.71.2 - debug: 4.4.3 - minimatch: 10.2.6 - semver: 7.8.5 - tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.71.2 - '@typescript-eslint/types': 8.71.2 - '@typescript-eslint/typescript-estree': 8.71.2(typescript@5.9.3) - eslint: 10.13.0(jiti@2.7.0) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.71.2': - dependencies: - '@typescript-eslint/types': 8.71.2 - eslint-visitor-keys: 5.0.1 - - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - optional: true - - '@unrs/resolver-binding-android-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.12.2': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - optional: true - - '@vitejs/plugin-react@5.2.0(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))': - dependencies: - '@babel/core': 7.29.7 - '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7) - '@rolldown/pluginutils': 1.0.0-rc.3 - '@types/babel__core': 7.20.5 - react-refresh: 0.18.0 - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - transitivePeerDependencies: - - supports-color - - '@vitest/mocker@5.0.5(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))': - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - '@vitest/spy': 5.0.5 - estree-walker: 3.0.3 - magic-string: 1.4.3 - optionalDependencies: - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - - '@vitest/spy@5.0.5': {} - - acorn-jsx@5.3.2(acorn@8.19.0): - dependencies: - acorn: 8.19.0 - - acorn@8.19.0: {} - - agent-base@7.1.4: {} - - ajv@6.15.0: - 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-regex@5.0.1: {} - - ansi-styles@5.2.0: {} - - ansis@4.4.0: {} - - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - - assertion-error@2.0.1: {} - - babel-dead-code-elimination@1.0.12: - dependencies: - '@babel/core': 7.29.7 - '@babel/parser': 7.29.9 - '@babel/traverse': 7.29.10 - '@babel/types': 7.29.8 - transitivePeerDependencies: - - supports-color - - balanced-match@4.0.4: {} - - baseline-browser-mapping@2.11.29: {} - - better-auth@1.7.7(react-dom@19.3.1(react@19.3.1))(react@19.3.1)(solid-js@1.9.17)(vitest@5.0.5(@types/node@22.20.5)(jsdom@28.1.0(@noble/hashes@2.4.0))(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0))): - dependencies: - '@better-auth/core': 1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5) - '@better-auth/drizzle-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/kysely-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(kysely@0.29.6) - '@better-auth/memory-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/mongo-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/prisma-adapter': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2) - '@better-auth/telemetry': 1.7.7(@better-auth/core@1.7.7(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2)(better-call@1.4.0(zod@4.6.7))(jose@6.2.12)(kysely@0.29.6)(nanostores@1.5.5))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.2) - '@better-auth/utils': 0.4.2 - '@better-fetch/fetch': 1.3.2 - '@noble/ciphers': 2.4.0 - '@noble/hashes': 2.4.0 - better-call: 1.4.0(zod@4.6.7) - defu: 6.1.7 - jose: 6.2.12 - kysely: 0.29.6 - nanostores: 1.5.5 - zod: 4.6.7 - optionalDependencies: - react: 19.3.1 - react-dom: 19.3.1(react@19.3.1) - solid-js: 1.9.17 - vitest: 5.0.5(@types/node@22.20.5)(jsdom@28.1.0(@noble/hashes@2.4.0))(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - transitivePeerDependencies: - - '@opentelemetry/api' - - better-call@1.4.0(zod@4.6.7): - dependencies: - '@better-auth/utils': 0.5.0 - '@better-fetch/fetch': 1.3.2 - rou3: 0.9.2 - set-cookie-parser: 3.1.4 - optionalDependencies: - zod: 4.6.7 - - bidi-js@1.1.0: - dependencies: - require-from-string: 2.0.2 - - brace-expansion@5.0.12: - dependencies: - balanced-match: 4.0.4 - - browserslist@4.29.3: - dependencies: - baseline-browser-mapping: 2.11.29 - caniuse-lite: 1.0.30001816 - electron-to-chromium: 1.5.458 - node-releases: 2.0.59 - update-browserslist-db: 1.3.4(browserslist@4.29.3) - - cacheable@2.5.0: - dependencies: - '@cacheable/memory': 2.2.0 - '@cacheable/utils': 2.5.0 - hookified: 1.15.1 - keyv: 5.6.0 - qified: 0.10.1 - - caniuse-lite@1.0.30001816: {} - - chai@6.3.0: {} - - chalk@5.6.2: {} - - chokidar@5.0.0: - dependencies: - readdirp: 5.1.1 - - clsx@2.1.1: {} - - comment-parser@1.4.9: {} - - convert-source-map@2.0.0: {} - - cookie-es@3.1.1: {} - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - css-tree@3.2.1: - dependencies: - mdn-data: 2.27.1 - source-map-js: 1.2.2 - - cssesc@3.0.0: {} - - cssstyle@6.2.0: - dependencies: - '@asamuzakjp/css-color': 5.1.11 - '@csstools/css-syntax-patches-for-csstree': 1.1.15(css-tree@3.2.1) - css-tree: 3.2.1 - lru-cache: 11.5.3 - - csstype@3.2.3: {} - - data-urls@7.0.0(@noble/hashes@2.4.0): - dependencies: - whatwg-mimetype: 5.0.0 - whatwg-url: 16.0.1(@noble/hashes@2.4.0) - transitivePeerDependencies: - - '@noble/hashes' - - dayjs@1.11.23: {} - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - decimal.js@10.6.0: {} - - deep-is@0.1.4: {} - - defu@6.1.7: {} - - dequal@2.0.3: {} - - detect-libc@2.1.2: {} - - diff@9.0.0: {} - - dom-accessibility-api@0.5.16: {} - - electron-to-chromium@1.5.458: {} - - enhanced-resolve@5.26.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - - entities@8.1.0: {} - - es-module-lexer@2.3.2: {} - - esbuild@0.28.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.28.2 - '@esbuild/android-arm': 0.28.2 - '@esbuild/android-arm64': 0.28.2 - '@esbuild/android-x64': 0.28.2 - '@esbuild/darwin-arm64': 0.28.2 - '@esbuild/darwin-x64': 0.28.2 - '@esbuild/freebsd-arm64': 0.28.2 - '@esbuild/freebsd-x64': 0.28.2 - '@esbuild/linux-arm': 0.28.2 - '@esbuild/linux-arm64': 0.28.2 - '@esbuild/linux-ia32': 0.28.2 - '@esbuild/linux-loong64': 0.28.2 - '@esbuild/linux-mips64el': 0.28.2 - '@esbuild/linux-ppc64': 0.28.2 - '@esbuild/linux-riscv64': 0.28.2 - '@esbuild/linux-s390x': 0.28.2 - '@esbuild/linux-x64': 0.28.2 - '@esbuild/netbsd-arm64': 0.28.2 - '@esbuild/netbsd-x64': 0.28.2 - '@esbuild/openbsd-arm64': 0.28.2 - '@esbuild/openbsd-x64': 0.28.2 - '@esbuild/openharmony-arm64': 0.28.2 - '@esbuild/sunos-x64': 0.28.2 - '@esbuild/win32-arm64': 0.28.2 - '@esbuild/win32-ia32': 0.28.2 - '@esbuild/win32-x64': 0.28.2 - - escalade@3.2.0: {} - - escape-string-regexp@4.0.0: {} - - eslint-compat-utils@0.5.1(eslint@10.13.0(jiti@2.7.0)): - dependencies: - eslint: 10.13.0(jiti@2.7.0) - semver: 7.8.5 - - eslint-import-context@0.1.9(unrs-resolver@1.12.2): - dependencies: - get-tsconfig: 4.14.3 - stable-hash-x: 0.2.0 - optionalDependencies: - unrs-resolver: 1.12.2 - - eslint-plugin-es-x@7.8.0(eslint@10.13.0(jiti@2.7.0)): - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0(jiti@2.7.0)) - '@eslint-community/regexpp': 4.12.2 - eslint: 10.13.0(jiti@2.7.0) - eslint-compat-utils: 0.5.1(eslint@10.13.0(jiti@2.7.0)) - - eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.13.0(jiti@2.7.0)): - dependencies: - '@typescript-eslint/types': 8.71.2 - comment-parser: 1.4.9 - debug: 4.4.3 - eslint: 10.13.0(jiti@2.7.0) - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) - is-glob: 4.0.3 - minimatch: 10.2.6 - semver: 7.8.5 - stable-hash-x: 0.2.0 - unrs-resolver: 1.12.2 - optionalDependencies: - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - transitivePeerDependencies: - - supports-color - - eslint-plugin-n@17.24.0(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3): - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0(jiti@2.7.0)) - enhanced-resolve: 5.26.0 - eslint: 10.13.0(jiti@2.7.0) - eslint-plugin-es-x: 7.8.0(eslint@10.13.0(jiti@2.7.0)) - get-tsconfig: 4.14.3 - globals: 15.15.0 - globrex: 0.1.2 - ignore: 5.3.2 - semver: 7.8.5 - ts-declaration-location: 1.0.7(typescript@5.9.3) - transitivePeerDependencies: - - typescript - - eslint-scope@9.1.2: - dependencies: - '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.9 - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint-visitor-keys@5.0.1: {} - - eslint@10.13.0(jiti@2.7.0): - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0(jiti@2.7.0)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5 - '@eslint/config-helpers': 0.7.0 - '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.3 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.9 - ajv: 6.15.0 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 11.1.5 - 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 - minimatch: 10.2.6 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.7.0 - transitivePeerDependencies: - - supports-color - - espree@10.4.0: - dependencies: - acorn: 8.19.0 - acorn-jsx: 5.3.2(acorn@8.19.0) - eslint-visitor-keys: 4.2.1 - - espree@11.2.0: - dependencies: - acorn: 8.19.0 - acorn-jsx: 5.3.2(acorn@8.19.0) - eslint-visitor-keys: 5.0.1 - - esquery@1.7.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.9 - - esutils@2.0.3: {} - - expect-type@1.4.0: {} - - fast-deep-equal@3.1.3: {} - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fdir@6.5.0(picomatch@4.0.7): - optionalDependencies: - picomatch: 4.0.7 - - file-entry-cache@11.1.5: - dependencies: - flat-cache: 6.1.23 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@6.1.23: - dependencies: - cacheable: 2.5.0 - flatted: 3.4.4 - hookified: 1.15.1 - - flatted@3.4.4: {} - - fsevents@2.3.3: - optional: true - - gensync@1.0.0-beta.2: {} - - get-tsconfig@4.14.3: - dependencies: - resolve-pkg-maps: 1.0.0 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - globals@15.15.0: {} - - globals@17.13.0: {} - - globrex@0.1.2: {} - - goober@2.1.19(csstype@3.2.3): - dependencies: - csstype: 3.2.3 - - graceful-fs@4.2.11: {} - - hashery@1.5.1: - dependencies: - hookified: 1.15.1 - - hookified@1.15.1: {} - - hookified@2.2.0: {} - - html-encoding-sniffer@6.0.0(@noble/hashes@2.4.0): - dependencies: - '@exodus/bytes': 1.16.0(@noble/hashes@2.4.0) - transitivePeerDependencies: - - '@noble/hashes' - - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - ignore@5.3.2: {} - - ignore@7.0.12: {} - - imurmurhash@0.1.4: {} - - is-extglob@2.1.1: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-potential-custom-element-name@1.0.1: {} - - isbot@5.2.2: {} - - isexe@2.0.0: {} - - jiti@2.7.0: {} - - jose@6.2.12: {} - - js-tokens@4.0.0: {} - - jsdom@28.1.0(@noble/hashes@2.4.0): - dependencies: - '@acemir/cssom': 0.9.32 - '@asamuzakjp/dom-selector': 6.8.1 - '@bramus/specificity': 2.4.3 - '@exodus/bytes': 1.16.0(@noble/hashes@2.4.0) - cssstyle: 6.2.0 - data-urls: 7.0.0(@noble/hashes@2.4.0) - decimal.js: 10.6.0 - html-encoding-sniffer: 6.0.0(@noble/hashes@2.4.0) - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - is-potential-custom-element-name: 1.0.1 - parse5: 8.0.1 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 6.0.2 - undici: 7.30.1 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 8.0.1 - whatwg-mimetype: 5.0.0 - whatwg-url: 16.0.1(@noble/hashes@2.4.0) - xml-name-validator: 5.0.0 - transitivePeerDependencies: - - '@noble/hashes' - - supports-color - - jsesc@3.1.0: {} - - json-schema-traverse@0.4.1: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@2.2.3: {} - - keyv@5.6.0: - dependencies: - '@keyv/serialize': 1.1.1 - - kysely@0.29.6: {} - - launch-editor@2.14.2: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.12.0 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lightningcss-android-arm64@1.32.0: - optional: true - - lightningcss-darwin-arm64@1.32.0: - optional: true - - lightningcss-darwin-x64@1.32.0: - optional: true - - lightningcss-freebsd-x64@1.32.0: - optional: true - - lightningcss-linux-arm-gnueabihf@1.32.0: - optional: true - - lightningcss-linux-arm64-gnu@1.32.0: - optional: true - - lightningcss-linux-arm64-musl@1.32.0: - optional: true - - lightningcss-linux-x64-gnu@1.32.0: - optional: true - - lightningcss-linux-x64-musl@1.32.0: - optional: true - - lightningcss-win32-arm64-msvc@1.32.0: - optional: true - - lightningcss-win32-x64-msvc@1.32.0: - optional: true - - lightningcss@1.32.0: - dependencies: - detect-libc: 2.1.2 - optionalDependencies: - lightningcss-android-arm64: 1.32.0 - lightningcss-darwin-arm64: 1.32.0 - lightningcss-darwin-x64: 1.32.0 - lightningcss-freebsd-x64: 1.32.0 - lightningcss-linux-arm-gnueabihf: 1.32.0 - lightningcss-linux-arm64-gnu: 1.32.0 - lightningcss-linux-arm64-musl: 1.32.0 - lightningcss-linux-x64-gnu: 1.32.0 - lightningcss-linux-x64-musl: 1.32.0 - lightningcss-win32-arm64-msvc: 1.32.0 - lightningcss-win32-x64-msvc: 1.32.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lru-cache@11.5.3: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lucide-react@0.545.0(react@19.3.1): - dependencies: - react: 19.3.1 - - lz-string@1.5.0: {} - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.6.0 - - magic-string@1.4.3: - dependencies: - '@jridgewell/sourcemap-codec': 1.6.0 - - mdn-data@2.27.1: {} - - minimatch@10.2.6: - dependencies: - brace-expansion: 5.0.12 - - ms@2.1.3: {} - - nanoid@3.3.20: {} - - nanostores@1.5.5: {} - - napi-postinstall@0.3.4: {} - - natural-compare@1.4.0: {} - - node-releases@2.0.59: {} - - obug@3.0.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 - - oxc-parser@0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0): - dependencies: - '@oxc-project/types': 0.120.0 - optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.120.0 - '@oxc-parser/binding-android-arm64': 0.120.0 - '@oxc-parser/binding-darwin-arm64': 0.120.0 - '@oxc-parser/binding-darwin-x64': 0.120.0 - '@oxc-parser/binding-freebsd-x64': 0.120.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.120.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.120.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.120.0 - '@oxc-parser/binding-linux-arm64-musl': 0.120.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.120.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.120.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.120.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.120.0 - '@oxc-parser/binding-linux-x64-gnu': 0.120.0 - '@oxc-parser/binding-linux-x64-musl': 0.120.0 - '@oxc-parser/binding-openharmony-arm64': 0.120.0 - '@oxc-parser/binding-wasm32-wasi': 0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - '@oxc-parser/binding-win32-arm64-msvc': 0.120.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.120.0 - '@oxc-parser/binding-win32-x64-msvc': 0.120.0 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - parse5@8.0.1: - dependencies: - entities: 8.1.0 - - path-exists@4.0.0: {} - - path-key@3.1.1: {} - - pathe@2.0.3: {} - - picocolors@1.1.1: {} - - picomatch@4.0.7: {} - - postcss-selector-parser@6.0.10: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss@8.5.30: - dependencies: - nanoid: 3.3.20 - picocolors: 1.1.1 - source-map-js: 1.2.2 - - prelude-ls@1.2.1: {} - - prettier@3.9.10: {} - - pretty-format@27.5.1: - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - - punycode@2.3.1: {} - - qified@0.10.1: - dependencies: - hookified: 2.2.0 - - react-dom@19.3.1(react@19.3.1): - dependencies: - react: 19.3.1 - scheduler: 0.28.0 - - react-is@17.0.2: {} - - react-refresh@0.18.0: {} - - react@19.3.1: {} - - readdirp@5.1.1: {} - - require-from-string@2.0.2: {} - - resolve-pkg-maps@1.0.0: {} - - rollup@4.64.7: - dependencies: - '@types/estree': 1.0.9 - optionalDependencies: - '@napi-rs/lzma-linux-x64-gnu': 1.5.1 - '@rollup/rollup-android-arm-eabi': 4.64.7 - '@rollup/rollup-android-arm64': 4.64.7 - '@rollup/rollup-darwin-arm64': 4.64.7 - '@rollup/rollup-darwin-x64': 4.64.7 - '@rollup/rollup-freebsd-arm64': 4.64.7 - '@rollup/rollup-freebsd-x64': 4.64.7 - '@rollup/rollup-linux-arm-gnueabihf': 4.64.7 - '@rollup/rollup-linux-arm-musleabihf': 4.64.7 - '@rollup/rollup-linux-arm64-gnu': 4.64.7 - '@rollup/rollup-linux-arm64-musl': 4.64.7 - '@rollup/rollup-linux-loong64-gnu': 4.64.7 - '@rollup/rollup-linux-loong64-musl': 4.64.7 - '@rollup/rollup-linux-ppc64-gnu': 4.64.7 - '@rollup/rollup-linux-ppc64-musl': 4.64.7 - '@rollup/rollup-linux-riscv64-gnu': 4.64.7 - '@rollup/rollup-linux-riscv64-musl': 4.64.7 - '@rollup/rollup-linux-s390x-gnu': 4.64.7 - '@rollup/rollup-linux-x64-gnu': 4.64.7 - '@rollup/rollup-linux-x64-musl': 4.64.7 - '@rollup/rollup-openbsd-x64': 4.64.7 - '@rollup/rollup-openharmony-arm64': 4.64.7 - '@rollup/rollup-win32-arm64-msvc': 4.64.7 - '@rollup/rollup-win32-ia32-msvc': 4.64.7 - '@rollup/rollup-win32-x64-gnu': 4.64.7 - '@rollup/rollup-win32-x64-msvc': 4.64.7 - fsevents: 2.3.3 - - rou3@0.9.2: {} - - saxes@6.0.0: - dependencies: - xmlchars: 2.2.0 - - scheduler@0.28.0: {} - - semver@6.3.1: {} - - semver@7.8.5: {} - - seroval-plugins@1.6.9(seroval@1.6.9): - dependencies: - seroval: 1.6.9 - - seroval@1.6.9: {} - - set-cookie-parser@3.1.4: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shell-quote@1.12.0: {} - - solid-js@1.9.17: - dependencies: - csstype: 3.2.3 - seroval: 1.6.9 - seroval-plugins: 1.6.9(seroval@1.6.9) - - source-map-js@1.2.2: {} - - stable-hash-x@0.2.0: {} - - std-env@4.3.0: {} - - symbol-tree@3.2.4: {} - - tailwindcss@4.3.3: {} - - tapable@2.3.3: {} - - tinybench@6.2.2: {} - - tinyexec@1.3.1: {} - - tinyglobby@0.2.17: - dependencies: - fdir: 6.5.0(picomatch@4.0.7) - picomatch: 4.0.7 - - tldts-core@7.4.18: {} - - tldts@7.4.18: - dependencies: - tldts-core: 7.4.18 - - tough-cookie@6.0.2: - dependencies: - tldts: 7.4.18 - - tr46@6.0.0: - dependencies: - punycode: 2.3.1 - - ts-api-utils@2.5.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - - ts-declaration-location@1.0.7(typescript@5.9.3): - dependencies: - picomatch: 4.0.7 - typescript: 5.9.3 - - tsconfck@3.1.6(typescript@5.9.3): - optionalDependencies: - typescript: 5.9.3 - - tslib@2.8.1: - optional: true - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - typescript-eslint@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.71.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0))(typescript@5.9.3) - eslint: 10.13.0(jiti@2.7.0) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - typescript@5.9.3: {} - - undici-types@6.21.0: {} - - undici@7.30.1: {} - - unplugin@3.4.0(esbuild@0.28.2)(rollup@4.64.7)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)): - dependencies: - '@jridgewell/remapping': 2.3.5 - picomatch: 4.0.7 - webpack-virtual-modules: 0.6.2 - optionalDependencies: - esbuild: 0.28.2 - rollup: 4.64.7 - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - - unrs-resolver@1.12.2: - dependencies: - napi-postinstall: 0.3.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.12.2 - '@unrs/resolver-binding-android-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-x64': 1.12.2 - '@unrs/resolver-binding-freebsd-x64': 1.12.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 - '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-musl': 1.12.2 - '@unrs/resolver-binding-openharmony-arm64': 1.12.2 - '@unrs/resolver-binding-wasm32-wasi': 1.12.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 - - update-browserslist-db@1.3.4(browserslist@4.29.3): - dependencies: - browserslist: 4.29.3 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - use-sync-external-store@1.7.0(react@19.3.1): - dependencies: - react: 19.3.1 - - util-deprecate@1.0.2: {} - - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)): - dependencies: - debug: 4.4.3 - globrex: 0.1.2 - tsconfck: 3.1.6(typescript@5.9.3) - optionalDependencies: - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - transitivePeerDependencies: - - supports-color - - typescript - - vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0): - dependencies: - esbuild: 0.28.2 - fdir: 6.5.0(picomatch@4.0.7) - picomatch: 4.0.7 - postcss: 8.5.30 - rollup: 4.64.7 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 22.20.5 - fsevents: 2.3.3 - jiti: 2.7.0 - lightningcss: 1.32.0 - - vitest@5.0.5(@types/node@22.20.5)(jsdom@28.1.0(@noble/hashes@2.4.0))(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)): - dependencies: - '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.5(vite@7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0)) - chai: 6.3.0 - es-module-lexer: 2.3.2 - expect-type: 1.4.0 - magic-string: 1.4.3 - obug: 3.0.0 - picomatch: 4.0.7 - std-env: 4.3.0 - tinybench: 6.2.2 - tinyexec: 1.3.1 - tinyglobby: 0.2.17 - vite: 7.3.7(@types/node@22.20.5)(jiti@2.7.0)(lightningcss@1.32.0) - why-is-node-running: 3.2.1 - optionalDependencies: - '@types/node': 22.20.5 - jsdom: 28.1.0(@noble/hashes@2.4.0) - transitivePeerDependencies: - - msw - - vue-eslint-parser@10.4.1(eslint@10.13.0(jiti@2.7.0)): - dependencies: - debug: 4.4.3 - eslint: 10.13.0(jiti@2.7.0) - eslint-scope: 9.1.2 - eslint-visitor-keys: 5.0.1 - espree: 11.2.0 - esquery: 1.7.0 - semver: 7.8.5 - transitivePeerDependencies: - - supports-color - - w3c-xmlserializer@5.0.0: - dependencies: - xml-name-validator: 5.0.0 - - webidl-conversions@8.0.1: {} - - webpack-virtual-modules@0.6.2: {} - - whatwg-mimetype@5.0.0: {} - - whatwg-url@16.0.1(@noble/hashes@2.4.0): - dependencies: - '@exodus/bytes': 1.16.0(@noble/hashes@2.4.0) - tr46: 6.0.0 - webidl-conversions: 8.0.1 - transitivePeerDependencies: - - '@noble/hashes' - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - why-is-node-running@3.2.1: {} - - word-wrap@1.2.5: {} - - ws@8.22.0: {} - - xml-name-validator@5.0.0: {} - - xmlchars@2.2.0: {} - - yallist@3.1.1: {} - - yocto-queue@0.1.0: {} - - zod@4.6.7: {} diff --git a/web-interface/prettier.config.js b/web-interface/prettier.config.js deleted file mode 100644 index f7279f7..0000000 --- a/web-interface/prettier.config.js +++ /dev/null @@ -1,10 +0,0 @@ -// @ts-check - -/** @type {import('prettier').Config} */ -const config = { - semi: false, - singleQuote: true, - trailingComma: 'all', -} - -export default config diff --git a/web-interface/public/favicon.ico b/web-interface/public/favicon.ico deleted file mode 100644 index bd4829290a12df81098f85c3a9027defd44ee06b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152126 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 diff --git a/web-interface/public/favicon.svg b/web-interface/public/favicon.svg deleted file mode 100644 index a526ef2..0000000 --- a/web-interface/public/favicon.svg +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - M - - diff --git a/web-interface/public/fonts/OFL.txt b/web-interface/public/fonts/OFL.txt deleted file mode 100644 index e271172..0000000 --- a/web-interface/public/fonts/OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2018 The Manrope Project Authors (https://github.com/googlefonts/manrope) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/web-interface/public/fonts/manrope-latin.woff2 b/web-interface/public/fonts/manrope-latin.woff2 deleted file mode 100644 index 71eb731d558046199aa7f985adbf812890a093a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24836 zcmV)0K+eB+Pew8T0RR910AU0G6951J0P*Mm0AQ2=0RR9100000000000000000000 z0000QP#e`;9Fqz^NLE2oi!KIWKT}jeRDl8jgk~>l5eN!_tr&rdT?>RV05E}6CI^aF3;Z;5virLSaNFE(axy*mQqs-!~XM8C3M>^SUN$NvCN@&`+X2=a4zKdC)YC%%Gvb zS|}*`DN1`q!m~IF&dOIh1Ki262sv^>JkPJ`&$;)$_jZ?ESYXj?2vLYSO%|Ha)bgn% zG$kq(C%%t}Ry|fH<|Lmuai>nzDa*sxe)XQ)-4ABwLkLLDhFPNUv3>V%K&4WiG_i^z z;leh;AiV$Ke_Q|i91eIyMARc55fKr|kPsEWp&bYvvY$EjGx|(1)-AK2{T-iRxB33N zKj-iLHIB<$zQ$>M_I-`xm^lsC{4$10NJfT4hXXwPe{R(+z%V)4A#-e`9n46-dXxoO zxSr7m3LXZbn!viZB6nSK|V6zdTRXRbkL@%ZQcgPr@cjH0Lo zB|+E%j4;p)+ln;c^r3Fpz&uW0s@XVU`|%qI$?&E1E$PFYDf5qR_8HnSmp6A_-xo*6 z;^y||vfNHWj44eKDI(IyMZ}0HrEx{dQN&S-lyXQd?)iG1gNLtO@29Fu`MHl)+<*8P^%X1{l;*h#u6*^3pSym$5c zor7W3cPDvCU6UYg83o3VUrX)Hy%4=3DBxeAc5<%jF0NIz6)r$OlTAr&E+yCkqXm@L zs!C7+RYFx|*;rOqmxx+9%T`y)uSM7>fwadS|J0#SY!pF)P?3C()Srw(BcnW4V~;=A zKQk%VSO<@6)X-z}|Gs(-YdM2k^zWu=$X;a|4p|&=M1uHz)xW-n?6>!Z*yo4+=tu7n zO@cWI=bRTD<3Q?=Idgz5pH|vm%b87tBRMj``YZ@7T1pZDohXnAf+T#$ph^-D2tEHL zPN?s*JKR1lAxYO&l-xS(MZ$w1bmC;PzzD2X0chwv?MUd+Y;+)1xWf{;jP;pfKQ#BK{S+AGFT zJ}QDGC|wRv5jDv5Un3?rF_NQnSzg~sK*e))`>E*s@_(V?CdR^4{XwzVL=Um9%)y;! zBepmu`^PwZnXhky1nSZ>F6t#krpMzV*(WW06LI(sH@Qpv4Mv#0M=ZS zr)OZ$Q%duUCaFqKJ>_yqtmw+jYm%M2d7GoL}zJTwAQ@ia|ETTyfUM6krJ;TUVsH ziF}c-##deAc=M)Grev3h$B2Pz`MEZc@>kECXC17Ib zAZ5*pyG6hSp2uQWp|mu~wjH`devi(*sn`;-QzOBOHUFW~feTZ`$P)S&msNPipz> zJfhFdIbx4VuaR-L{$?>?lS&o!iW9=+`R(}A}GtQLuggC7ZS zMD?WfA-s$@FpJ+5A1JYE!Dbp-fK{Zl0+lvQ*7ivW+Udm6Sr|WPnkozPmaV>+5B1SXO7&bAM z&5dKK@k}!DN%c+g5ba@)i1TRUhCJp8eowmDN=;VJRI8WZCmE})kz=iO8rcapvYYAl zFvDJ^+s6$1neG5HR59H_W;n!jhb<#hXs~YsU#Zd5H(*oWvZ3#&e9vS*Fw0MUdnpBk zhvv=Bgg!p;;`&Yy5U;TW$qb?%B+6BvOqS&~(MT?(IgOTK!`%7SU^8u)rtR6j3?e<) zNWwm!R*=VO`{*l9p#*CQ8#yYY0d)gEs;6xXn;Xj(#xccsrkcQ@iI$x;2>eJwK$_Nq zId-$YJgNSnsE;hvM;7WM3n2^TA{d9X{DdDNR_O!o+#1i{@Cmn3-um0#>fhe~ zG%mwM4S7zTp6nWS-cv2$o^cxbKJWXWZ>N6H4x|z})@~G>{+%j&VFRWqCoBn8o*C=BrOUuM_tyQRB2Ept;&w0*sp7WgN8W?pt z8V=c};&iYOx|p7EW^-Tt?BbFz6M!h7d2K;G!O<`KeA+fvf%qsO2oiG?&NX;g1iu6wZs^lL35DfDZ%!6w(Zf&EerS z4|yeg1=2pxbrIi2VQa**PcA5%knmp!fX1F~y9n*obj7@J?g}F=TXk3O4isXk&}Xh* z%%0y?h1HZm(9oA-|Jcw!*)K@14_w#_IEtBlg2TW>#SVqv#ToakqP>7>X-4bcMHvd~ zJls&86`Cl@b4@;sMFm^|T7pC}wlu?Hb9i{K!+>f*wbgSOTy&sViDf8yhIu0(hEior zS2{6TBPHH=~m2aA#X4`?rrs~`M*NRjQ+HWUE1{%LM?K6O4tc!%8 zY~-X$fxJaF#7NnP{}#&f0s9M`fcC?r(eVLja9}(~jkICFW{gnxRR4d7L`oBuMh^}|WS+d7Vw$?_QZ6Uo@zatun zh4VRgv#wgL)?3!$o;P|Bwv5d&-73f*@j`af))W&`2i(u|^<4 zr?NnxFa6B`El_L^3kett_(9BX%r6WUCKrmhTO@5t@%a?SsD!}LN+!xJZn~e&EROU+&FjI>?sK-{;l9@Ep<|yGuwM}4KyhE`*VhYuq zd=GJs7!Y%(uB=mw~hI8gL9Mp#pd}i9kW2dF~2xiY<-yDE7%L2(&XwGpu)xK z{mK8#T>U2B9f}$yg-B!sSb~4zhjQuP7Vj`rUy%*^5vkHcxJhbsnJm)}@L4&gpOWaC1QdGx<7RCBTN25zM4)&Hts&5aNluBGzy>k*he zZWD6Fz&RIXzN!U4X4wapuy|9CjFXI>E*WPUzH-Q8F)p5NCpxR zg4S;ss4+d{;0;aRP2w?o34#*wxmkosypz5N!^OV+oHa}e4-S*Yc#xC@Y|DouX~4?S zm99=-Ch1e}5l^E`#J*vvf_$ce_nP7sDW%+QvcG*937Zd_Xt!g&^4DeT-Jamnvi5T0 z&!@aR&zP*$`KkC0HdfIp%;U63xz;tuN<%|pmd-YpE)-}XFO|hv79V4xMOZ`*ML!0F zP;bnQ3|B`%!}z~2Y&h`13m@X(M*#6iKoE&YLNY=~K`PRajtpd?9>S=PEHpqi8ln*z zqY0X#8FG+|=4gSIXoc2jgSKdg_UM3)=!DMbg0AR>?&yJ@$iofjh2DrD9|gD(eb5($ zxC#AmGj74HxDB_XKmLaz+<`lB7w*PA7=VE&#=RJX`%r?x7=ob~hT#~2kr;*17=y7G zhw+$ziI{}@@cJYK+ycnL4#6}*bq@H*bWn|KRv;~gx)QY^!AtiZc?5AWjxe29pfzIEhm@jWallb2yI+xQI)*j4QZ`Yq*YTe1cE$89v7s_!3{C24CYFe2ee!J$}HC z_z6Gb7yOFf@H_s%pZE)Z;~)HsTKtDP#1Kdz1*u3w24qAgWJXrV8rdNGkp0L3pu8%F!PszB)JTGtBB9pwR!hO*>C3={v#=UZ! z7JAw^Pgo&WzoiLZw8VbbGWNT3f|)i<@wgGXDV+Nd!^}|OzUl)Nj+mh)H2C{r@yOQ| zcv_hmIOzt9O%k0x=tRflaoEpGNTxi6Doj(U(io4pO(Vt(QAXW!iTkwELleQ-CEqKa zu)kqLA^mmvx8ti;c{Kua|3vSXxa>n(U9Q#FN07dEsqZD`%M!n1PqNm5XnQscmML#`IK35m?(1mZeM?bo_Ad`2`UB7c)aSrRv6w$ zRm?_S1(@ru1!Obivf%>^Ar1&rPmi^m3P8L}&2&+qzd-~bK^5pcMOuL_sL=8(Bgwp> z$!~b`K@~TT_6?KHzNavxZ?{n8G38FJ1G|r3l7P0ln;|BW_MTT?P(x}sJ4!`TiBu+4 zNQu6_~aIBew$yc ziK*2p267XB`Gc_O!zX;=1SAMakt$7CeOVgF)<_GjwAMyj?FPw?)x&-}98l|2f_hd^ z=pP!}w#Y!m?%n7%+F0X^H_@bFOXX4gQ}(32MX=95YHakaAARSiUSdmvI81lNzmA7X z3NC+JZbb(D*TR-eTV{rWqoV=%e7Q7*ac+#p`? z{4G^bq{LNUd1t6X<1fHbA)&97S=6mw6tWV1t1m*Oe+d9NExgvQ7~Th!C!>mU{JadcP4#VMsuj ziZ0aX4SMujE-Np6zb&#Bc+B1S0g zkSQQzB2Z`){nYm!C=(Pky_g3D)@jYqhARszn4v`&1(+f7icb|kG5SYlU}!3=noG(d zFQySr2%`YoxE4EP@u44g2FJbBW8^yoeYk138uwt!tT}+741xv(7tEP+a|sA>M`ws+ zW0D=y@P|a&UcXeFLl}e^uFwnUvBN?3t#`ykJW(IZ)D8g$lWMV{W52}%9%D<7C^RSW zQ8j&pvAcrn5XP~BAL@gp?86vw)rB3nJ~x|XSuk=iu?CzB%;)MSajr02yPncYi5#fs zckmUp@r4(zSyKK>?;@~T$5V{l%*%|~ji(Wr4ASe?p|sq=XUVsJFeoy~;l^M@Dr0bZ zn~F3vV1kEac+fHYzmY+{)sxgH9{Ed=b1LLWoV#S(g9@10Cd2ZFDqu@g zJ6@xzb6HO4WOaYi{tXPqb(5!!ey5DAWvAo+1L8?=1bN*ek6d(p^W zuiQ_t)PCb`K#6uy1s{l1&Mc2p>CaoID9(*e`PUVyI3D~jW!Jl|KOWYgiGWl+V4g#f9KFP9R){Y;Zu9NK02njmOa#Qv+#$F@0w3xc7#T=L4=CHE6 z?G_!XY>}H&dR|%L5!!eHXMCe3Xb~(*k0f+f%3YeQ{NEs2lZl#DwSyOpu9VIi@>#-+ zmAV1G(ptm>9Vbhth4Hb}3gcpl(DATxI^vw;DB^S5r)!!KFeW!N6DK$MC=e*Xg&DJy!1yPJn|!1RYI6frL>JuhJ$|HzeTBK>Pf{j z8=N~&I;2|Zys>2x#;l8UXe6d@J0q}_`kV)e-a;ru#sE3Cnkcmvl8t5RDHXP2s!W4B z#Y46(7i8n2wx&J%vJO?Fb0Z=;BiJaNx^)8sguN5bTY;&lK?(uCjkOeMjcxUywO4U| z^XYD5(C!5^bB<^`N+oOXCc7NaQm`x!i0+CU`Rlb3465W+0c?A!b{%%=~fPgYn$SbP7bLVqjP&4{L@{ zT1$?<>+2lUC4>|HHOT=2#_0`NKP&XqdMgAN>x9B&`D_9AC-H|#(iO93U5X|Dx6Cl* z#L(t!+bTuE{KadDwjsl$xiS` zzV4=Zh(A#V^D+%MhP?oq()wmi@MdrglH990dw1|$_LCEX%6$W^6D61NU^AkU#4Lx> zz_s;@5(X@{60uGwv3_w^f+Rh(u#{h%H~T3R3AEGFKceoMgA7>1#7!0=vj*g%1`)5N z5q(SjW3Eof8!JNYGIF8mP9#eF3%?539UPK;Y$vf&aoa^>Y4qdWY5^<_!DXo~HZaBg* zmC0cjrw-Ppy*sB4O*_{eAuC)|gSiGxF(}qT@_T;$&J+%eCrK8%SD&Qz0p{$~Qzd}M zNXRy8H~^{co~>?>XY>!a2mv0~#((V*p)x{LgP^fd@N5=HuU=tpQpQi7g@v&udv)?K zRMWn~@IT~52gWZnxpR;c)Tffs*L~bihK?PlAk8bHlvYB;I7E;|sXj+E-#G9tR-w-+ zmIFU6eG#gwNnj^9lK-mM{okstQ)^4fskMWq8-a*$@Ti%o#jvN(dL8qVJ9PI?`y&fqCjY9VX`h_Mrw+1Ia`}0-i!aNIBwaHp zT5xfiMcUs#MOxoJ@pFbum<7;b(Barsat4F+Es}V(!C%rxDUp^pJ&&}#d*bIm%k1O@ z!DA#mRjs&Oqr0TJ*e$4+BN!jzgIi(dh6X5Mj$?lE<+|uxchGmqm@>6W;;63KQSADj z)s7^$Pt>H><1=rS@&`~TA8BWsJ?6qv{lwap4vMwNyfw9oW5a{uVzTfQV{M5o;*j3m z@U!TM%$RT?lj5*@ey5^sCj_>L4h6OaG%iA9B_Fn6gZTSZ z(p!HU@2E+*Wb!93E)Znjt*Cx^rWvD+hB@%)Ng@86I0PM+^P>c8R&xVd3rp+rsW#r) z$J*(-wVDZ{%H(!_8iI0?1Y0xNXJtdb?%88>@R>a37~(d+CqJu<3Rpj8Ugqch}@o3dpi(@SWKg6!6O_N7cfz5zX@iw11@(N@D0Q^lDd$jI!-VI3`O z35DJu1d8=CIZ68mNU^movC<{8WyHY!+PY}4m|k{g-!HCsm!i4UXDrsP zTW*<0K1RV^fMkQF%qT^`$`mk6q#}2p0<2V^nAw~A!XBCX$?uM;epsXBvq$*zr?SSY zmpUEEDtuTpb^>y4n_N==`tP5=;;{>cj$+{hoZl(c=z)`z z@WW#uyXR=Nov5XGW{i3mCNBE+?ejl7t%FEZJDYaJNSDPU!>F}4)wzop3J?F{lyQ*% zR4oiD-SRX0VAe5+IR~VinOQ>AdR6E&)`_vLdBvE+(i#@xQN^0e7ZUYct#U%Vd0Dif z7tODXZ&OPXX!29rVV!04%mU5vg6?xKdJjrwl|sR5`9lm#3lUOk?sQ@K{-nY*deKCe z4uv0N)B7LP^nbsu5&O@yV|s=7`1X1}AwN{nO(W0-uRNL%?aikUC@bY;0@)o%2*mqX znBF2!g6GP7SAuK8nc%$e*b;0LSOT`H(wtxp9I>k-ye~i3EkBk8TCSGK3Tba>z=;C6 z0v)dFddj(;_V%_RqM*Qx5NZ&Y8x+EZP7Rsh#q17)wzLM*HMssG{}xZ{IqGLOZ-iH* z-KM%rq`a}&E$q858mvD-fe!Z+x1zvRSj9W^inwu@^O^YuG_&7@=it0KK6vwTyzxFd zj?-e`B^%H52qwC@|LC!V7~+nnOvG+Tg)h^6tqva-jud0!}b2AZU;OX{@z)fh!r7YO4RNj9Wm~zpsrKIE2aXZ`IgSG^UbXsh1{Gyw z>!xXoV>(;L+<|@vZNuV7k)qU~%d)89>?!j+gzsU~`>W}m=N3)Bzmog0m#gfGVa9qU zBat0uvr4MQ!~}4{{O*rTMY_cTqe;kxzfbbDXdk+$V+I?8BT6>(J)J!cMZDzKA~IT8owSivm*kGFIv#JHyT=*O9oF5P5 ze1iTkyT=q{oXTx$|NMX(%*8*H8=l4M;hr7ggP&EG{Ib!#-^(P#{``fq+D;q0MK70B0!ArMBPhwmA^B%JpO-lj8(=*qq8I3wuk|g2@XAQ zAli?ljM=Ni%9YVA116F2swvg;97RBXF;clPD|BG?x^?v`+QQ zE>b>9ZtHk0>bz)B#njUg7azXFDaupE3F;VZentb~s?%nk%sDfjQk$9>K2Rq)O8~Y2 zxk?|(p?>NY9Irp}XG6y?<72R~Vek2l{88`7$WiYG=UhW092?u*@@FG(EppZ?sm@W* zwL)RDLFyS^uGru{=Cpyli>vA*S2ayxCFqa#5~O`Li-VQjmnycIorW1wgZrIdATCm4 zs{!J#XS1tmXKNN~(h|Ymvp{4z%M-;Lk3QDss~#X1+Hqs_04Af2*LVZ*+2lxw7BdJpEp`th-X>{_{F(i+5z z_u;$rb&WJe_Wu8Og+$E0`@NZnBS)p5A8PjGZ6Kw{jJo&ns&_UdDNj=u&xcLvy|OtjtqFw;|WOXaGA( z&`Vh7vaGkw4!!^WV3x|*umo{)uxIFQuLMji6|1Zdbuz1!UCwo|pDW8le!7bOycOf8 ztN+C_)TlG3e<*^`2NBQf-i1EUoUfA{{_6M6Z3c z{iODX>G7gpwwi}nYqx&8cl+VbODfAM_x`wh=l&16-ZT=k zQ3npbXp?JRY{7h<+Smwon;rRG`JiDxd-xjwL_>82K92I|Fo5yW#JD_EotG zovgM_4w0sRhOLGDy?mqB?68m|N+Li?AV3nWxutbl>Y(XvMOoA_7o}c>L$#o~1?n0F zHC+Bn5SIb>4Unm(LkHx5j4#Cyq_Jh0Vun0b3$_u0$qYPVWWlyjbSZr#=f3OSf_q%pXQVQQzfi*0pAdIFp)^#;m5 zCOu`-OH75O=@(Px3*+Og@zMQF4U5BvSOWvB&5JJSBQ=pQC)Y78n+BSCvNs!ESGE~e>xiEF9a4>YpwfFUuU z-n~V$muw77P-lPMXVJ*gGf!PB?(Undlm_6U2ZMSY_B$!5VJVU9^tzK#Ma4^0dAmje zOV2R(N^N%|LYc?M`9*dGR9lWZo?=GkF#BFifpC-?U-LNp%<$rd*G`T1epv&Fgm& z%~p0*+hptlR*#2mR^vaPUl?(?#aWT-8m-w8_C&cnfV+$+IkbdmF)nR76HAS+dHX|Va7c6{ zE2^gykaRF4&2rt_yGeU%W57g}whmWScYIM))_SDkMQ#N5d4SEoCz92=hnA}5eEUpFx(2V! z!dWkXL+4-O*Nve>@g}Ccg8D-doV*iK(aEe_*@=_l%>215{9e``m-pN7-7}XP{}GwX zsRebm;SrJZN+*8u*yc06f$xP|*!Sc8L zZ4}}98gH&+W}lQuPG)BtPR-eW%E6ZPAEQsPb=jx41h}DVSJJaD)OL419`tmtF|S)I zDH2be;T9D+?B1fHlB$(j^YS6jzQ^6QITu#bYnWeLog156QVtJ8pB&4EgTHpncXzYfY`_&~gZ}g%r=pi_#WwHnUO@I5I&l&YosRJK%)cZkJE1llXA@b-QZFFvYW8@bk z-0M`oKvH_JzbNR3-)*B?c@Q?m$2T$|qotM3j89b5CMGBpiHQnDf@6U>&8Urytz~2~ z?)Ya0<1ZsUo?TkT$|bj$%_=Kq=bFlZ70U5wIzRq>$fyUYC`8QuLV*>>lT%p24oLLF zCn6y|R#6+pVARCM)WrLmGkqcly0Xe`X&_ZSwNGrpi!(C|&!mt+5<*;%lq@UY@0K1I zt`=4PLRF=)Lh&M#;lRD^DV&Jf>L{R-ctT0@sNs9mPvNaFuyVoRLv< zDK}D3Rl^GoOiS|*Bqsacjj`GN;0<+2U~=+5PH{jaqv3|Hn!#vpVSr1*YGu&dhUj6? z8X^weKfCA_4_{F|RL%cPo2+ND!+VPMKh5~PHw*|=kRwYNiAl}LXm4l=D`NBes|)0P z)%mfol51cf#0r`c8IdIlGBbX!G$lchmCWPGk_8DlDV#erAuZmpQ>c*R^D`EpKAy1P z%cVpGgr%oN_}OMpU9Dze1HgQRAKaj@do1r~q>4u9sU&@*R7(WK$C*}gEiCy| z$xq~n5b%=%Dwv}C5g8l23iuWLV*{LA0M&AJ|4C;^!np~%lW@V7f}j6vbcl#mxVDF3 zGYF9E+^lkG3eVz=;X9066mj9MH9z?5p$Ox;xYQ-;DWG%cYicF zQsSE73YKMtFW0Hr@ZzKoo8i;0>Z*thcdLEbOpFl5b`57xs(x?S$^Nsp`PUk|Wg~kD z9-Q+_!1?g}{Nfr;c|SZChtHUpOrV?U9=d1r73may_6Gi9F5ht9F^eC@k+=mlCGrgBN?w3%m&`Xg&B`rdjakR zPFWdi-i|@f%S1`;35MP5jLnfksdrQ)el`?_?CsMqbRIV;@|HrddSUaH_{d1yyfO;~ zzd}6J*}b??DXPph&wBm9>;lkeiG|w${o4?HzVPpvJS{-7a&()-b;uy$< ztt0XkFcbg+4D#49b-y8PEeG^4|9^hpZ1PVfr^r|>xfSrj=CbBkGp{{PdsIq1w&LJM zPLf}0<=4~IPIHh4>qiQQ#3;OT2RLU4Vkmy+oNNqcG4NlR%=45B(|ZO)5iw4ZOHW7? z*I5fCucM2dP~RZiY`~KfyEqA5=1MmuDSR(3v1R`JelcXZ*-XIU$_#c$LpU*_qoaaT zF7g}Rr3@kilYldQ8tZ)-+bUI+NzwND+r1iR;F(6v`)zIo_c7&yiOI<3 zEBXN z77=DUV(V*d3$vlm+d#;`zoq;9Xf(g|ttT|PoE z`3%&8U^oU(z3S~;Dp=062~-ezN1SJn(;ARpJ*@P z2a^a{OTe?d9jSWhx^~h;G6>0DAie%Qpp)~7E;)HDEzRS^lR1SMQyCpy8508x9OVk~83U)Jr{THXNV}(t%4xQXW4HmV zBMwvH#afw+vnq4a^ZggB!j0kFzZwBS@$jHd?yZ~o1|$2#x-0i~9b33)T5;k5RYj{o z_w3|Cd8#78h|WQinnI%K#bM+!8VoBdCC8JReQYSKW~y~md}f;O-XPxsRk}t$?dPfa z?-K_`{>)Kc;{H(GlJV22Ge2fDr{5&3^s)&}4&DfCHi79voMyBN0+XJ zhDO-o+Eiiy#kptOh3ES-Wbs-h8NykPtCQ5kC$h^1@9P(48fSBGXikRmOJz8at->nk z;ZD5GvfM@FTN(j__?mYuSvPgz(!!ycQ4T9|@JhF795cGmF!)o@Rh`$tX1tm|Hdh;E zD;4wS31BgU$2K`RF4Esu#5gIH8Ya$V6DLfRK<$#80N-MOj^G_5)K!^^Sb8S3TtS<2 zNL)RhE{ct$#UJ#}#l+uJjuSJ)3BsJ}IqyUrK{0BwoKNP)4S4cQ3(*(IGI^#*)HX-4 z@-Pc7#>Xx4tEgs%$dk;+=d^3`SbF+=sif64D7w-sCLxHRkJQEyH}I`y=U55JM#039&Wd(mTVI(Um zp9^`DF8*`O9w3n}oQ|ljj+hoEM;rkLhI&LFK9Veqn8suYn3CCy^w~^F`V4hRCiIM% zLC=`QAL{xZynQ>MniJ^Y9$UjX&WIl`nfR&}^S_mCfO#$Otv&HWw3C^WSv2B%8ga*? zFvKGw`G79WhC2^{@$ZlSp;J#_C_DM%%pbdZjTKtso|p-r*z^4JkD%%E_V8N5`ytE} z;s1k)mnC5wG@TPr@9{{Vi%ag47hb(2jL-IJ2*y5GVIXoo+MUt&n!fkr{TBVX(2eid z))xNflZ;b3e9`Yuz}dE=E%NsT)(+0mjJyQB*Pf$y3=^}}QT>fXjm(5Pr$)euP{%=4 zkkH0q)uOG#MMYi7(QorwU>oe{xIK0Il4fnH!Z`EosiO5c%`q`GakbDh+iw}$oKrP4 z_dYc5;GMriX$u@~ywKb279CL&OYz^2&SlQ!&K1sgo$oo{cYZMNVFx*efNvpmn6y-- zc_?UmDh;|ZRA4_n_5empKfwL^qAI3Q4xQc_JUtM{RmXL$Z?kZFNowac>Y()t$L(Yr z5Dd=avv!^~+a|%%1(g8iyE=z|XhLQpNQfT|N7+DE0EK9vWn_C4!i>q0P^vw`fw=94WH!rS>~L z5!C{Sg-b%H<$zNIcs<=cWVNia$Z?(y>`?VULsm}J9)`JMnUK(0C76-!XOT&nwjgKi z@cl(S==E{g<;DT_06nZUX$Ic-Uy7l1_?tllRsLG~_tWvXug8l7KtKRhs4NBm)eiuq zlh00SMQYuYOr%QD$OZAEO7sO!y62$kP~WS&YFbNKIjmyVT5pqGtN-?@O z>DuWMbjiAHx=VVxdVYGDdWZEM>9h2M^_%p&^w$hf10RDVgTn^j8S)GXh7v>C4uvzq z5|N#J3s>aQC&ePjF{zaYG9NebCko@CD8#lDmuBfNbtNth)>-ve-BovJq(<%NSXX+~ zhra2r_G+H8TC7g3RFBr_Exm1QTie6_t=aM|V9#24>$g?fYH9^q8TOj{n^Vja&Bf*g z=2hnH<_F9_pwy^vR0669HGx_{EuvOX0~TTnTMLqfz~T#wdluss4=sFXW3&aDie{rT z(Aj7?x&mE~Zbf&a2hm@kC(v`~E%X!y#q7k`V}dc^7zQQ*la7&L8Zd2`!xU&_Sm-HK&i9e(ChNCf6Wn0FDA6%CXZ3L%DmK zCh#^&6pKKHBoZAo6Q{l~>hXbDuAqJOMVLZSE9hG2ImsNKR-2x%>WFc-Tne9?t8bdg zajDdR%^lSKvWvt#Ykr=WyCz$5C6|6@8{y3pLgBZSlp8&io>s0)npYU_$kRFc+>XWR z^1xD88}+M+!wsGvYAR5e)S4}AZKhd=tP)*&A-7KW3>L-Zens1@ttzamI!dsQ{?rQS z&j-I3TA8YsiPS?{6qUdsfRxwn9K(!{*{*>xPQ2Jqo|xhQ%HjEV++WAyb z1|kd+c*-g|fERv!3r$+hr(*H>xxznZE~#=2soAV9g@ol~&8cDPbd8@UcBKSO7a7n_ z(yPX*iRZAky*)Oa4x}k0#Dl09MErn9^}h-?WfCvQ6GVk1LMajzxpuw+h2W%p3|tEJ z^H(VN_{m1uYA@v+)B6!PF_jMjdVP@QrTY`%mXt!B0L z%14*977eRf_58S%CG_|o%icK$!JMv~rU5f$I$Gr52quO&4G&F~`!lXq4>wbDwKD#GI_Q@Cu1OOXQ!gmiDNRAg0!m??VDmt+L8kj(}**&02 zO(YkYmT8WkBSmQ{3isR)A0u=MW)z(L!Wa>-I`}zfPeF}}(QQ3qLRomky)h+tMTlAq zH#3DrfuhuyfQ9WIQEd)L%GHUy(n?FcD>I`7%aekZ1LY$cE!MY1g%G0E6wH5@?=XGJ zdLrU8gft;?ons5GbdZC`1Gz$-t_eR#e%Ux5IDCPFf0sp3$e?0Tt0i1WITRnLZQRid z=4YvB5|OY8hQ*iKmR5*8h6`~~&??1<%TH!7oP<$B7_Wc?b(bZnBsfT5;i2ggCkKALsZhtiBiR|++?E>R!zpGRk#u{?B z7-YttSlA_wVT9`HRuudCc*feeK09u;3zVrc3C=_kNR7C+Dq6r|=42DG<)rp-vBbe* zm$3vakcc;AG%;y&n5}2+juh_=+-*4VoJnxpl`Kv7qLv_x&Ciu7- z4}}|4+K7(!&9`)r4Ewwhp6zc%JE9fZ@_{2%VrWzO1*K8_m;e1;oR+v|p&my-FpDT|@&lY&$ge`R8OS^ia>SR|g#bMNmX+uJY%#e{}S* zbcr4de)N7)jZQk4&HvLM_FfcfRm&AvA?*1_%Y8o2Ise}D9}L0H?rvR^U9ak>WzoEM z(!%TB^-NacS(y$P^n~tzGNAAiu_F2itVEi=$g`&n=4vqa+Pr|n6*HU4$6lQ7bksSb@ zNgFMV*0q6okYA!a#>JvX7~H>|VWAot2eF zG*yLBVu_h+i_6trfu?nCYDuor$xyAO?p!Ieo`{>xC?wr#N%iP_1Sqz|WHI@bH4Os4 zdWVU*^!RMWpU$mR5V&fZ+z7v3jYC8YOWiCR2}q)^ zN-Vz~J1FBP@Ax-^&MkWTy@L9MMr`_Ch5t)vYt5?ub8bXhtCGcd9F1V%xD3kB+w-1v z4ysYZxip{1Hkmw->-LjkyRr8p@6mefcnreY~E&M z5-#?WRbN z#h>r_5%CR5g{+ah@swzxz7 zE-NSIVY@kt^Dt(SZrfI*6dtVRJr$>n4Fr5WL;_{k4(}xbpA?-E)&aNvVHd-(d7Up^Q<2LxlH zcYNb-{}jAqsEu*bXL<~;``h;S4$n}fZU4|02e$Le!az5Z+J3B6=61h{PnvzK_+~|e z#zVH4Xst>P0n;EX-_uca1V34>c`iL?7(X4nAJl3;eGQBxCJ*}Nd_kM_@LX>%@&Agh zE$+nh3D|x;{P^K`gd}kI;e4m}Zyk*KWygT4@79lXliYFvn$sfc{LjJ?GO{cEPd?h{ zpWYCao{<^bbj1GkPETue0eWvwevP~FCiWSY870zGg=Xclw#SQeO%+anQhMS~#7fSrZM(_~NF-@HW(%&K{UA%R*n9J!>G`z;>nzOQUVc zahjrHN{SOvn@&4@lcyF}x*87tFwV{U=WpDXwvX<7l&(C~VK7#i6{MLU^9|ne;5p_F zeFk-mQ6IxG_1^R34IJvbQCPxffC-4jGn6SmJKyj8<#J#qu|UI`RPj%ENmRUBB8DHS zareo7`39bKqjONUuJik8hSt?zxOd$BwC;!s>)>D>z)+>~VKBwexmaL{Rl9msle&ee zfBp__pT#FGOZ6FxxB27L+U4_x`o^aXH>sO)qnOjt5cBo?m#$L9=or=Og|c+zY#!Bq zo8>;!+e`HC&RKa;&Rz523;57`y|hQDd1+J+92o=^<qa}{e0VQq$bwR8;K!w zrlMUhmDr!XHEaFGVsBr$6re!&f2pI5jeBr|T`rZ%QE=8!Pub+CyqD2X7!nLok;x5#I09bdZbXDm`6lkK7&_FR^o+uX~5)y=dkF68n#o{fCh4WKjwK7@}b8 zZ!-4$)W84kV_Shidr`k?t##X6qsBUQXQ$rc!T6;GC!&!pf@*1w{BnARx% z|2SGb;IiJTN zIbR0YPuH1N4^JU*^@vkNoCt1OOCo6t?+MzR+uXi6iK7O3!*(9f^KWKNi6-}QUS%aN zC1i?KpU;x8IUwF7bzt(Us^>Bp?_pmCy@dy9Pi-B*t8J|$fnY`XdJ41p{#F?Uju1UD zp-4EkioybUDjROwdE3%tzR?*#N36D#iD_MNL4SvZ5(UN^?IE-2+Cf(GusT|XiI(O> z+hOdHFJ~z-ip~R-bKZrR8aXxUbk|JGwnEhkSLmbPq!SuZOsdl*D--G8kIl$33iLBt zxFFAfk&UVRY1=?&+SsNWtY)fCS@E_+GE1AcuBzcHW7-F{31eDIlp=R!mj=GfGFhk- zWNg;3i9rzhrL$#K=exSy&iFBAg@AWM*! zGigtjZCY3dx>1wOg9@XQ*Y#TYwf0wJZzRO5He^K|S zMu^4u>f=`G`kZ0{1C#n0kkwjg@**WXjB( zf{x;N;#>9J8Qd4)@cWSUhQWocJ|adEfL}Uipr)^^g!S&VwrmZ}Azc|pJYq9TCGS^fG zZd&7LS6x?!-{zk_Z4c!R1ROm95qrcD@=d`(Q|PZ%oo+eOGp^ZI1KZ1oCmJ7o8pM-U zl-s&~zt)tfnd#edbUv`=u|HjLc>9>ro_R;^j_SRqw)?vI{A_Z#Bc&T#{B`N>_e)oo zp7vm1b6@D6D3x2X=i`wi<>(@jAM`ZMKFdA6k1NG`bRHE)bol1ci$ARvT@Oc$hwcY!T78RYwskc^^z# zU`y?rx=a@A;Om?PGwngP6Az@kqcvYnyD9imQbOw~Lv|RNs08=8`3)JWaZtZHA`V8% zZb9qkwRqlITE!12w}7-z>T%~ePp)rvuC5lEYM2%%oDt7@cZ}#2e~?n9ODn+~YEeVZ zweae?4ik(t9)KHoBqNhPYX;e9+x259tavViQ}!YyzLz;3R~5OKXvAJTE_hD1(Gd$h zNBao{N#ujqN{v|m)Xr)>d%@ZHY`V{bC(6@8|8PuPFpf|k?g`KRCp`N1-bts^eJ3a& zR5GUm;kvUC*1r|V`$3XE`>pvm=VK&jGq|Iq)|%`YeFW0%NO#S|lzYlKGv&p&*#Sz7 z1^g`{uU1W9aOB!aPy4j@EnYG`?2 zgxo$)S>l;(^Oo(JYy#!fZ_&I7i zxn`^9D?hSdM-&|e_8(Ub8;@#MQQdaLpp^1m@K2pu&%=*1sun%BygLJ@HfY1eNg!Wh zabLWBFI7FV*^h3rAMB#Qz{yEpUrc}Ctz>obP+fQarkzg}{Wxxn_)280+|BRMJ-#o| zM3YPYIse)aT``?Ytm-Q)$gYxPsUYt2dY>f}JZDv8&Yb4ym5oR`>vdv2O{5XbZPf^8 zXiKtvg~!@W)s^8VXtVY3+z(Zfu&>X1>>_guu^q~Ew9e8~|2T@X_^&s0HjQ|}(W4vV^(gd2j&^#KfA1OU z!1HL%`IN8KgJY{epj2v+DC09@@p}L0QjJU*Ar3O0cVd86RYl3F^absuA++B|9aGjR zr}fpaeJagipPo->RJHV(@wPW6H3FUGV`bze()HO!F>l;ZV!K);yN-k=P){JZ}(4jRE)bkl6?{rRMovtx;@D@C5RtamlwI~FihZn zsO&h)roVsnQ43GpT}CMzcqQWCC^K%~T3>(({cq@I-HZng{-ZoDvF%ll`vW%5j;Unq6J694ZbGAfb=wDt%7>q`%SI z3U$o*X}(;&2W3UZvax=LSYx*yN=_GySl64=dtc81zeuuy5n0*YquVs-v*^p;%$b2_N<<&=Hwg3lK6-}9ty zBhWjIY14-)1dP>mZao-Q1JTEpST{}R+K;z0D*a-q_rhUjt3XmpT0U~#T-zVP1w z6DgKuXk<={;pnk))E5&pZghs}B#C;?oyYfGGwSgK&UpOpp5c1~HMtx!#gfc;Yr>{% zP~;m&pNv?ROFh}O4wGbO8?fW)CiA5F$w-7EH^eZJq-xo^Ty_xueYciz^*Zl^atAi$ zd?w)?n!v+#UC<&9?akh6Ogw1+ut45dBSS5$TFEGfkRDdCqGw?!8}2@ZJ2t7W(_Wm^ zmG@2#5k|ALyf{TB#tX!ZU?Fhb*)&aLR%rMH%zV+73%b14z;7;47EY$I6=4zluR>t% zNBM1;m4ifv`Jw(3=U{nDlLc;RX<8~v5)Q}mdEZnd#(0?<+C?*S5MS!(c_x#haW!rS z!7Yy$Z)Pgf{c4%W!?_&qy&a=hMw=4DJXGWIi5s>ZdM)l%yYrk z_>t#Ue1P_cjyeK|%KL+a&klx<&{X=BT+hjN{q^g%lynW|Or@3KEBWC*Q-W zN$|5B@;mhJ{0C@`-5;0;us-^AQ9_6$JWUO|)^-maa>-e?*f}%|{E%zx;IEF=sVqE9@~B zfOrd{YQ6!;nUbq3QUc*#PnhXXo@mRSa)*_gZWL69^Q?95Y-f?9HJ9`Kq4b0(?H#$P z1Klp5*O(-pi+SAlFXcOq3X)Icw?sizHFzE;oD%A@dCQjiH!vYOr|4 z7);nN=;Nh#ke+_pb!Yy;nV*L4-5LB&oubJi#szcp^V;h*0|U?Gavno@cK5iyj$R-W z**GilzOQGN_TE?Q!RuOoMrq-FG_rZL3OdQ!DZi$Os~hJbyj|(AK_KVtioj}P6Nm`WEiAsCUx7u!i zoqa#aQk5ul+{8pO%TJkocCa^-NV2f5|LXWTEPsua4E0OpN*cOuciXrrbm4WnKZnj$xi^A6_>>Hd7Kh9iP9pFwrQL^{+of?+iz+jF->WxB z78fp8UTH#F9bfOjT86L*uDwZLa?e#){k%Y+3$x(5vHaU`1q}Tm{HyCL>NiK<|L5x# zs!B8o&Pb2lRq;fi8Fi;AS_-Q9@^0p1TuK#>tTyjgWPU*CEX>|Zw=UQCt7Q8QQytrO z6KfPfRr~(&JfcBTA>_?C&r}h7zFb@n6D_Q4jb&9#OuLd2pgwA6&$VwTvl$Eu<9IT~ zo%{D4sv4{)A-c`lSJ^D@Jgde;Lxi_l&Wa8qO^W&riCS@g?lNw=`Qk+4y=rURmn#e; zK?cB0N*;U|0*jEch`zLNb9V){%*umTBEZ886wGO!Izj(k^@$)4ilbP0ZogY+5_n5p z+)*D3cGk$8PG7}Cdi9Xo1CilCZo{0FG5L{RFsDZK@%ud+ynU?;`Rc0nuhs7n*p+NMdp6ZQC223pUZoZ1%!b^m`!zDCj}X?>F;t zxeXltM2!D2=g$<3&>ub~^dAHT9#5{md8={!+KP?-ZEf@2k6SNlf@BoT{@@8%wSVgP z5o>5zuRo6SY^d~^Gtz;OXuTzxlAg5gae~beTtx>bwulpbxl8?I>&cxij)EVUR&=?x zzWHq2)x1+4qEg3Pm7WSy=)(RIAeJUA-cYJ+35cPqqA#stN5d%;-brCOQEW)4cc2_GfS8;_^ZB)&yNm~u5rvht zD4NZDBM;v-Fv-!3H8j2u`kzKvwL_)Jwtly<@XlF!0nIlR^Kx{tz^JhIJ?x8IUP5rW zjf<&;eSxN>XD_8TH3Si15#{xW2&Yp}al&Xzr6Hv-{%xL^{OJN9QYM~j#%`P|T%|}M z>J#w9^eA=?4(_!)20E|F>zsfIRpk;QsBWv(3sstb%zw}Aaqqv3<+fH~tJ2B0y zqFpfAcqgpnDxMz}Z2G}<_k|=oy&*BC`j>*|%gz-Zi8IQG2K-x6h?1IYCIvk{<(~nn zy0*}bU-+fdi!5=Hon`?eZm_rDy2jnVc;b5^|D-;{MQD)x@&tZWY$g<2&OTasE6vV~ z8~(5(m(`cE?Sn=ZK-jyw#v!fE6~T@qb6Ne zDxhTKF*oc8o$*(ya5&-7#Y=2mVY)OHaH zX@NMF4?M&cr|S?hq^a)M5mpS}9V!7aD(p330|k+M}y9SvL9 z!-9ex+i>uyOQPu7jxWdgV)C2JJ;8MNs_N;#pH|qUj$0c`<6w+<$GC_bOw^^4~Txp)npz5HjxQLjj*tOVhvCcjVGr?O{{uMs}~TwK)z=aO6wW>gDddlsc~chZ`rW z=8WZ^cVF}m%t8|Vf7AX!Y<7k7&MomY%}5JY>_|v?Y%t_9f}i%;r+(_<%#6xSg`QJR zdnuNH#$55WDGEo?j?QRBSI%BiadL3X8-gs#33vN2Nxu7|ZaoeKN9`My`P=7%!#6pG z+}NbJM80~fjyv!a(WMWp_GqY_N~68M9#Uw6@iJESUANC+X?`}}my|5mcgt*~QUv)8 z8XTB%V5+0(VI!0xJBH|+=oP5F<;`+T_H0-Zuz5xF9hZAD$hDv#L zp=g`>q*4z`bIwaSf0*OMty}i{lTRZFa>a=}*LE#>0`}~DgsNCqq|utv*~@NH&O-trn-d?ktvfQu~1O6MuUNC(=3-Kypl4L+xd5epDe5Sd2>!xlaW&@6fqGU&}f z1CN;$>?r4eiNQCq$$6{?)8pD^Rgygap7?M|64VV}klw83w3RRz(b!wmTp5`0v44J) zl7AaQ3I0f=VUd~|$wHEhc}K;)?-*9-jFE#$1HRXjmwF-Gt&+| zoB&bCoI@eZjx;5@>R@=-Rz~Tg@c}Fh#(HQ}2BPZ#rlcl63OhE|1yy+e&VayFH{!Xe zo7WI+#{|xBT{)L>e`daA!IaH0+gYYMnUHQyG2ifkrH9u-(i#F4;VBKnD0IuC0O+~+ zEn7Gcn-pJtjI_h$+mfD`)>eHqlep66{xzV4)oYd0T@C^yl*QrzEB*_*_<&$b6>_SF z1grmUbN~oF59xzOGCU1p_YRs(=rx8_&wO}%p{qUX8W%swkN}`lPU}%vJU#ZHT3IJx z&!F3RArtSYe{G%VYvNlr)eFgKfpsbnlgt``w;8&qB=a30rUozx$C7*?mRO_0#;T~u z_-+X`4I#IIuT_UsW_S?pxhr*X_J{CpN)Qs7EY(!F{aJHO=+u)-WKHCW37ll57z~fVJnbdR`Kllth z>^=(tH+{BJcvSk5B=cGh=?7ntsoz&+De^U8Jl`anzi*b#T3O=nhJXyAZ25BJO6MkA z3AubiWI3eLtkz5lb2vB|i4Ec)?TQP@%)n4YQIW>h`4&$s$!ubBW`de7uoP%o-`f5L zj`WT+IG&NqpGR?lRQV)RMeaQA3KVJj=H|#J;vpVIEYs=ffvx5HvU6m^^5zcD)78pV z129F36V))C^>pnV>#T)ZHk8Wmm1BAFw1*!R2uPojM5A?(sile(Nnw(-oM<*+IVLPv zAX6d|YobsJmDDOtmPk#^l2nN_LN`+uWP=lx@x-5_*QZfg0ZzM-#{ntkq?*^wj=eMv zzUC<1bvNDO#F-0Mx7~5qy%D;-`FmvWa^C|YkMvk@49@qw$L{vVJ@$my20#7+1o~Ex zu#Kf<$|f@+97T=@--xv2A4-TEcXPZPk$6A)$rjlfYTyNh7Mef`6^+=HsG=z|*w8dzqc*MD)e-nAU5U{tREMWt zdgi%T#e3D&{Pd!9&GkTSGgS&1F*_t@RT6<=@CU{U&c@J?gA4OenKn zL8o%USmfw47o+ zWbjSgBpERJqHn>}?{`OKK=+5jBj3!8ZaMU{`~=YdsjFWi?j9)Cz<~aStaP~y8qC#f z`lH(JYufg1t~mWb$l6Ix^FeWU+J?dKnVS-+bk>x!XCb4_+RcFB-UJ0}q$Gky^TJod zqmvQT;kt||39qBYdiD-g3x*JvX_c)+wUN;Qp=e&_S_kr?I vHGTYtQeSD*Z7MFz)l}pN#|t4r#9qfVWnOP^;?KG~|Js~im7eo&;4}dMEb^A; diff --git a/web-interface/public/logo192.png b/web-interface/public/logo192.png deleted file mode 100644 index 51ffbf36b4f75a4b32b3f2e619396a3f2a6430c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13841 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 F{{iqwvS|PS diff --git a/web-interface/public/logo512.png b/web-interface/public/logo512.png deleted file mode 100644 index b3bf8bbadf5d03ff07e2dcdba3174999253854df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41025 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

GlY;rU&kOIi~nsbIDAvX(qxtWO8t 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%0A6{9mAb-;t^5Qy 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

e%jvzRDq_Ypb2#C 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

    I8cF@^VU)ZOwRP%S2 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 N4OLy03MH$s{{sZ9@b>@! diff --git a/web-interface/src/api.ts b/web-interface/src/api.ts deleted file mode 100644 index ddfeda9..0000000 --- a/web-interface/src/api.ts +++ /dev/null @@ -1,331 +0,0 @@ -import type { Member } from '#/auth.tsx' - -export type Compute = 'cpu' | 'nvidia' | 'tenstorrent' - -export type Job = { - id: string - name: string - created: string - job_state: 'Scheduled' | 'InProgress' | 'Success' | 'Failure' | 'Cancelled' - accelerator: Compute - device_count: number - image: string - cpu: string - memory: string - node?: string - exit_code?: number - message?: string - checkpoint_directory: string - output_directory?: string - working_directory?: string - timeout_seconds?: number - team_id?: string - creator_id?: string - creator_name?: string - storage_scope?: string - can_cancel?: boolean -} - -export type Submission = { - name?: string - dataset_id?: string - type: 'command' | 'training-smoke' - accelerator: Compute - device_count?: number - script?: string - script_name?: string - image?: string - cpu?: string - memory?: string - timeout_seconds?: number - command?: string[] - args?: string[] - env?: Record - working_directory?: string - storage_scope?: string - tt_runtime?: 'host' | 'container' -} - -export type MachineHardware = { - name: string - address: string - ready: boolean - schedulable: boolean - cpu_allocatable: string - memory_allocatable: string -} - -export type AcceleratorPool = { - accelerator: Exclude - node: string - unit: string - total: number - allocated: number - available: number | null - ready: boolean - chips_per_device?: number - message?: string -} - -export type HardwareSnapshot = { - observed_at: string - machines: MachineHardware[] - pools: AcceleratorPool[] -} - -export type ImageCatalog = { - self_service?: boolean - teams_enabled?: boolean - registries?: string[] - images: { reference: string; accelerators: Compute[] }[] - profiles: { - accelerator: Compute - default_image: string - device_unit: string - max_devices: number - note?: string - }[] -} - -const base = (import.meta.env.VITE_API_URL ?? '/api').replace(/\/$/, '') -let activeTeam = '' -export function setActiveTeam(id: string) { - activeTeam = id -} -function teamQuery(): Record { - return activeTeam ? { team_id: activeTeam } : {} -} - -async function request(path: string, options?: RequestInit): Promise { - const requestTeam = activeTeam - const response = await fetch(`${base}${path}`, { - ...options, - headers: { - 'Content-Type': 'application/json', - ...(requestTeam ? { 'X-Mist-Team': requestTeam } : {}), - ...options?.headers, - }, - }) - if (response.status === 401 && path !== '/session') - window.dispatchEvent(new Event('mist:sign-in-required')) - if ( - response.status === 403 && - requestTeam && - (!options?.method || options.method === 'GET') && - !path.startsWith('/teams') - ) - window.dispatchEvent( - new CustomEvent('mist:workspace-access-revoked', { detail: requestTeam }), - ) - let body - try { - body = await response.json() - } catch { - throw new Error( - `Mist API returned HTTP ${response.status}. Check the API connection.`, - ) - } - if (!response.ok) - throw new Error(body.error ?? `Request failed (${response.status})`) - return body as T -} - -export const jobsAPI = { - session: (signal?: AbortSignal) => - request<{ enabled: boolean; user: Member | null }>('/session', { signal }), - list: (signal?: AbortSignal) => - request<{ jobs: Job[]; count: number }>('/jobs', { signal }), - hardware: (signal?: AbortSignal) => - request('/hardware', { signal }), - images: (signal?: AbortSignal) => - request('/images', { signal }), - submit: (submission: Submission) => - request<{ job_id: string; job: Job }>('/jobs', { - method: 'POST', - body: JSON.stringify(submission), - }), - cancel: (id: string) => - request(`/jobs/${encodeURIComponent(id)}/cancel`, { method: 'POST' }), - logs: (id: string, signal?: AbortSignal) => - request<{ logs: string }>(`/jobs/${encodeURIComponent(id)}/logs`, { - signal, - }), -} - -export type Dataset = { - id: string - name: string - filename: string - size: number - files: number - sha256: string - created: string - state: string - team_id?: string - team_name?: string - scope?: string - member_name?: string - shared?: boolean -} -export type ResultFile = { path: string; size: number; modified: string } -export const storageAPI = { - list: (signal?: AbortSignal) => - request<{ datasets: Dataset[]; upload_limit_bytes: number }>('/datasets', { - signal, - }), - info: (signal?: AbortSignal) => - request<{ - enabled: boolean - capacity_bytes: number - available_bytes: number - model_capacity_bytes?: number - model_available_bytes?: number - storage_mode?: 'shared-folders' - storage_limits_enforced?: boolean - dataset_used_bytes?: number - model_used_bytes?: number - usage_observed_at?: string - usage_stale?: boolean - storage_low?: boolean - dataset_allocation_gib?: number - model_allocation_gib?: number - upload_limit_bytes: number - }>('/storage', { signal }), - remove: (id: string) => - request(`/datasets/${encodeURIComponent(id)}`, { method: 'DELETE' }), - files: (id: string, signal?: AbortSignal) => - request<{ files: ResultFile[] }>(`/jobs/${encodeURIComponent(id)}/files`, { - signal, - }), - downloadURL: (id: string, path: string) => - `${base}/jobs/${encodeURIComponent(id)}/files/download?${new URLSearchParams({ path, ...teamQuery() })}`, - datasetFiles: (id: string, signal?: AbortSignal) => - request<{ files: ResultFile[] }>( - `/datasets/${encodeURIComponent(id)}/files`, - { signal }, - ), - datasetDownloadURL: (id: string, path: string) => - `${base}/datasets/${encodeURIComponent(id)}/files/download?${new URLSearchParams({ path, ...teamQuery() })}`, - folders: (signal?: AbortSignal) => - request<{ folders: StorageFolder[] }>('/storage/folders', { signal }), - folderFiles: (folder: StorageFolder, signal?: AbortSignal) => - request<{ files: ResultFile[] }>( - `/storage/files?${new URLSearchParams({ source_team: folder.team_id, scope: folder.scope })}`, - { signal }, - ), - folderDownloadURL: (folder: StorageFolder, path: string) => - `${base}/storage/files?${new URLSearchParams({ source_team: folder.team_id, scope: folder.scope, path, download: 'true', ...teamQuery() })}`, - upload: ( - file: File, - name: string, - zip: boolean, - progress: (value: number) => void, - scope?: string, - signal?: AbortSignal, - ) => - new Promise((resolve, reject) => { - const xhr = new XMLHttpRequest() - const abort = () => xhr.abort() - if (signal?.aborted) { - reject(new Error('Upload cancelled')) - return - } - signal?.addEventListener('abort', abort, { once: true }) - xhr.onloadend = () => signal?.removeEventListener('abort', abort) - xhr.onabort = () => reject(new Error('Upload cancelled')) - xhr.open( - 'POST', - `${base}/datasets?${new URLSearchParams({ filename: file.name, name, ...(scope ? { scope } : {}), ...(zip ? { format: 'zip' } : {}) })}`, - ) - xhr.timeout = 24 * 60 * 60 * 1000 - if (activeTeam) xhr.setRequestHeader('X-Mist-Team', activeTeam) - xhr.upload.onprogress = (e) => { - if (e.lengthComputable) progress(Math.round((100 * e.loaded) / e.total)) - } - xhr.onerror = () => reject(new Error('Upload connection failed')) - xhr.ontimeout = () => reject(new Error('Upload timed out')) - xhr.onload = () => { - if (xhr.status === 401) - window.dispatchEvent(new Event('mist:sign-in-required')) - try { - const body = JSON.parse(xhr.responseText) - if (xhr.status >= 200 && xhr.status < 300) resolve(body) - else reject(new Error(body.error ?? `Upload failed (${xhr.status})`)) - } catch { - reject(new Error('Invalid upload response')) - } - } - xhr.send(file) - }), -} - -export type TeamPolicy = { - cpu: string - memory: string - nvidia: number - tenstorrent: number - concurrent: number - queued: number - storage_gib: number - model_storage_gib: number - runtime_seconds: number - registries: string[] -} -export type TeamMember = { - id: string - name: string - email: string - common_writer: boolean -} -export type StorageGrant = { id: string; target_team: string; scope: string } -export type Team = { - id: string - name: string - disabled: boolean - policy: TeamPolicy - members: TeamMember[] - grants: StorageGrant[] -} -export type StorageFolder = { - team_id: string - team_name: string - scope: string - name: string - shared: boolean - writable: boolean -} -export const teamsAPI = { - list: (signal?: AbortSignal) => - request<{ teams: Team[]; storage_budget_gib: number }>('/teams', { - signal, - }), - create: (name: string, storage_gib = 200, model_storage_gib = 500) => - request('/teams', { - method: 'POST', - body: JSON.stringify({ name, storage_gib, model_storage_gib }), - }), - update: ( - id: string, - change: { name?: string; disabled?: boolean; policy?: TeamPolicy }, - ) => - request(`/teams/${id}`, { - method: 'PATCH', - body: JSON.stringify(change), - }), - enroll: (id: string, user_id: string, common_writer: boolean) => - request(`/teams/${id}/members`, { - method: 'POST', - body: JSON.stringify({ user_id, common_writer }), - }), - removeMember: (id: string, user: string) => - request(`/teams/${id}/members/${encodeURIComponent(user)}`, { - method: 'DELETE', - }), - grant: (id: string, target_team: string, scope: string) => - request(`/teams/${id}/grants`, { - method: 'POST', - body: JSON.stringify({ target_team, scope }), - }), - revoke: (id: string, grant: string) => - request(`/teams/${id}/grants/${grant}`, { method: 'DELETE' }), -} diff --git a/web-interface/src/auth.tsx b/web-interface/src/auth.tsx deleted file mode 100644 index 546b417..0000000 --- a/web-interface/src/auth.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { createContext, useContext, useState, useEffect } from 'react' -import type { ReactNode } from 'react' -import { createAuthClient } from 'better-auth/react' -import { adminClient } from 'better-auth/client/plugins' -import { jobsAPI } from '#/api.ts' -import { errorMessage, usePolling } from '#/hooks/usePolling.ts' -import { BackendConnectionError } from '#/components/BackendConnectionError.tsx' - -export const authClient = createAuthClient({ - basePath: '/auth', - plugins: [adminClient()], -}) -export type Member = { - id: string - name: string - email: string - role: string -} -const AccountContext = createContext<{ - user: Member | null - enabled: boolean - refresh: () => void -}>({ user: null, enabled: false, refresh: () => {} }) -export const useAccount = () => useContext(AccountContext) - -function Login({ refresh }: { refresh: () => void }) { - const [email, setEmail] = useState('') - const [password, setPassword] = useState('') - const [error, setError] = useState('') - const [busy, setBusy] = useState(false) - return ( -

    -

    MIST / RESEARCH COMPUTE

    -

    Sign in to Mist

    -

    - Run jobs on the team’s compute machines. Ask a Mist administrator for an - account. -

    -
    { - e.preventDefault() - setBusy(true) - setError('') - try { - const result = await authClient.signIn.email({ email, password }) - if (result.error) throw new Error(result.error.message) - setPassword('') - refresh() - } catch (err) { - setError(errorMessage(err)) - } finally { - setBusy(false) - } - }} - > -
    - - setEmail(e.target.value)} - /> -
    -
    - - setPassword(e.target.value)} - /> -
    - {error && ( -

    - {error} -

    - )} - -
    -
    - ) -} -export function AccountGate({ children }: { children: ReactNode }) { - const session = usePolling(jobsAPI.session, 60000) - useEffect(() => { - window.addEventListener('mist:sign-in-required', session.refresh) - return () => - window.removeEventListener('mist:sign-in-required', session.refresh) - }, [session.refresh]) - if (session.loading && !session.data) - return ( -

    - Loading account… -

    - ) - if (session.error) - return ( - - ) - if (session.data?.enabled && !session.data.user) - return - return ( - - {children} - - ) -} diff --git a/web-interface/src/components/AccountPage.tsx b/web-interface/src/components/AccountPage.tsx deleted file mode 100644 index 466cdd8..0000000 --- a/web-interface/src/components/AccountPage.tsx +++ /dev/null @@ -1,428 +0,0 @@ -import { Picker } from '#/components/Picker.tsx' -import { Modal } from '#/components/Modal.tsx' -import { Tabs } from '#/components/Tabs.tsx' -import { useState } from 'react' -import { Users, KeyRound, Plus, Search } from 'lucide-react' -import { PanelHeading } from '#/components/Card.tsx' -import { authClient, useAccount } from '#/auth.tsx' -import { errorMessage, usePolling } from '#/hooks/usePolling.ts' - -const field = 'border rounded p-2 w-full' -function PasswordReset({ - users, - initialUserId = '', -}: { - initialUserId?: string - users: { id: string; name: string; email: string }[] -}) { - const [userId, setUserId] = useState(initialUserId) - const [password, setPassword] = useState('') - const [message, setMessage] = useState('') - const [busy, setBusy] = useState(false) - return ( -
    { - e.preventDefault() - setBusy(true) - setMessage('') - try { - const reset = await authClient.admin.setUserPassword({ - userId, - newPassword: password, - }) - if (reset.error) throw new Error(reset.error.message) - const revoke = await authClient.admin.revokeUserSessions({ userId }) - if (revoke.error) - throw new Error( - `Password changed; session revocation needs retry: ${revoke.error.message}`, - ) - setPassword('') - setMessage( - 'Password reset and existing sessions signed out. Share the new password privately.', - ) - } catch (err) { - setMessage(errorMessage(err)) - } finally { - setBusy(false) - } - }} - > -
    - - setUserId(e.target.value)} - > - - {users.map((u) => ( - - ))} - -
    -
    - - setPassword(e.target.value)} - /> -
    - - {message &&

    {message}

    } -
    - ) -} -async function listMembers() { - const result = await authClient.admin.listUsers({ query: { limit: 1000 } }) - if (result.error) throw new Error(result.error.message) - return result.data -} -function Members() { - const members = usePolling(listMembers, 30000) - const [name, setName] = useState(''), - [email, setEmail] = useState(''), - [password, setPassword] = useState(''), - [error, setError] = useState(''), - [busy, setBusy] = useState(false) - const [creating, setCreating] = useState(false) - const [resetUser, setResetUser] = useState(null) - const [search, setSearch] = useState('') - const [page, setPage] = useState(1) - const filtered = (members.data?.users ?? []).filter((member) => - `${member.name} ${member.email}` - .toLowerCase() - .includes(search.toLowerCase()), - ) - const totalPages = Math.max(1, Math.ceil(filtered.length / 10)) - const currentPage = Math.min(page, totalPages) - const visibleMembers = filtered.slice( - (currentPage - 1) * 10, - currentPage * 10, - ) - function closeCreate() { - setCreating(false) - setName('') - setEmail('') - setPassword('') - setError('') - } - return ( -
    - } - action={ - - } - /> - {creating && ( - -
    { - e.preventDefault() - setBusy(true) - setError('') - try { - const result = await authClient.admin.createUser({ - name, - email, - password, - role: 'user', - }) - if (result.error) throw new Error(result.error.message) - setName('') - setEmail('') - setPassword('') - members.refresh() - setCreating(false) - } catch (err) { - setError(errorMessage(err)) - } finally { - setBusy(false) - } - }} - > -
    - - setName(e.target.value)} - /> -
    -
    - - setEmail(e.target.value)} - /> -
    -
    - - setPassword(e.target.value)} - /> -
    - -

    - Share the initial password privately. Members can change it after - signing in. -

    - {error &&

    {error}

    } -
    -
    - )} -
    - - {members.data?.total ?? 0} accounts -
    - {(error || members.error) && ( -

    - {error || members.error} -

    - )} -
      - {visibleMembers.map((member) => ( -
    • -
      - {member.name} - {member.email} -
      - - {member.role === 'admin' ? 'Admin' : 'Member'} - -
      - -
      -
    • - ))} -
    - {!members.loading && !filtered.length && ( -

    - {search ? 'No members match your search.' : 'No members yet.'} -

    - )} - {members.loading && !members.data && ( -

    - Loading members… -

    - )} - {totalPages > 1 && ( -
    - {filtered.length} accounts -
    - - - Page {currentPage} of {totalPages} - - -
    -
    - )} - - {resetUser !== null && ( - setResetUser(null)}> - - - )} -
    - ) -} -export function AccountPage() { - const account = useAccount() - const [tab, setTab] = useState('personal') - const isAdmin = account.user?.role.split(',').includes('admin') - const [current, setCurrent] = useState(''), - [next, setNext] = useState(''), - [message, setMessage] = useState(''), - [busy, setBusy] = useState(false) - if (!account.enabled) - return

    Member login is disabled in this local pilot.

    - return ( -
    -
    -
    -

    - {isAdmin ? 'Administrator & teammate' : 'Your workspace'} -

    -

    Account

    -

    - {account.user?.name} · {account.user?.email} -

    -
    -
    - {isAdmin && ( - - )} - - {isAdmin && ( - - )} -
    - ) -} diff --git a/web-interface/src/components/BackendConnectionError.test.tsx b/web-interface/src/components/BackendConnectionError.test.tsx deleted file mode 100644 index d074456..0000000 --- a/web-interface/src/components/BackendConnectionError.test.tsx +++ /dev/null @@ -1,76 +0,0 @@ -// @vitest-environment jsdom -import { afterEach, expect, test, vi } from 'vitest' -import { cleanup, fireEvent, render, screen } from '@testing-library/react' -import { BackendConnectionError } from './BackendConnectionError' - -afterEach(cleanup) - -test('renders connection error message and status badge', () => { - render( - , - ) - - const heading = screen.getByRole('heading', { level: 1 }) - expect(heading.textContent).toContain('Unable to reach the compute backend') - expect( - screen.getByText('Failed to fetch /api/session: connection refused'), - ).toBeTruthy() - expect(screen.getByText('Backend Offline')).toBeTruthy() -}) - -test('triggers onRetry when Try again button is clicked', () => { - const onRetry = vi.fn() - render( - , - ) - - const retryButton = screen.getByRole('button', { - name: 'Try again to connect to the backend', - }) - expect(retryButton).toBeTruthy() - expect(retryButton.textContent).toContain('Try again') - - fireEvent.click(retryButton) - expect(onRetry).toHaveBeenCalledTimes(1) -}) - -test('disables button and displays loading state when isRetrying is true', () => { - render( - {}} - isRetrying={true} - />, - ) - - const retryButton = screen.getByRole('button', { - name: 'Try again to connect to the backend', - }) - expect(retryButton.hasAttribute('disabled')).toBe(true) - expect(retryButton.textContent).toContain('Checking connection…') -}) - -test('provides links to static documentation and GitHub issues', () => { - render( - {}} - />, - ) - - const docsLink = screen.getByRole('link', { - name: /Documentation.*View documentation/s, - }) - expect(docsLink.getAttribute('href')).toBe('/docs/') - - const githubLink = screen.getByRole('link', { - name: /Report an Issue.*Open GitHub issues/s, - }) - expect(githubLink.getAttribute('href')).toBe( - 'https://github.com/UTMIST/Mist/issues', - ) - expect(githubLink.getAttribute('target')).toBe('_blank') -}) diff --git a/web-interface/src/components/BackendConnectionError.tsx b/web-interface/src/components/BackendConnectionError.tsx deleted file mode 100644 index 347cec4..0000000 --- a/web-interface/src/components/BackendConnectionError.tsx +++ /dev/null @@ -1,241 +0,0 @@ -import { useState } from 'react' -import { - AlertCircle, - BookOpen, - ExternalLink, - Github, - RefreshCw, -} from 'lucide-react' - -export interface BackendConnectionErrorProps { - error?: string - onRetry?: () => void | Promise - isRetrying?: boolean -} - -export function BackendConnectionError({ - error = 'Unable to establish connection to the Mist API service.', - onRetry, - isRetrying: externalRetrying, -}: BackendConnectionErrorProps) { - const [internalRetrying, setInternalRetrying] = useState(false) - const isRetrying = externalRetrying ?? internalRetrying - - async function handleRetry() { - if (isRetrying || !onRetry) return - setInternalRetrying(true) - try { - await onRetry() - } finally { - setInternalRetrying(false) - } - } - - return ( -
    - ) -} diff --git a/web-interface/src/components/Buttons.tsx b/web-interface/src/components/Buttons.tsx deleted file mode 100644 index 07d334b..0000000 --- a/web-interface/src/components/Buttons.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import type { ReactNode } from 'react' - -const variantStyles = { - success: 'bg-green-200 text-green-800 hover:bg-green-300', - warning: 'bg-yellow-200 text-yellow-800 hover:bg-yellow-300', - danger: 'bg-red-200 text-red-800 hover:bg-red-300', - normal: 'bg-gray-100 text-gray-800 hover:bg-gray-200', - disabled: 'bg-gray-200 text-gray-800', -} - -const fontSizeStyles = { - xs: 'text-xs', - sm: 'text-sm', - base: 'text-base', - lg: 'text-lg', - xl: 'text-xl', -} - -type ButtonVariant = keyof typeof variantStyles -type ButtonFontSize = keyof typeof fontSizeStyles - -export function Button({ - children, - onClick, - variant, - fontSize, -}: { - children: ReactNode - onClick: () => void - variant: ButtonVariant - fontSize: ButtonFontSize -}) { - return ( - - ) -} diff --git a/web-interface/src/components/Card.tsx b/web-interface/src/components/Card.tsx deleted file mode 100644 index c5ce615..0000000 --- a/web-interface/src/components/Card.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { Link } from '@tanstack/react-router' -import type { ReactNode } from 'react' - -export function PanelHeading({ - title, - description, - icon, - action, -}: { - title: string - description?: string - icon: ReactNode - action?: ReactNode -}) { - return ( -
    - -
    -

    {title}

    - {description &&

    {description}

    } -
    - {action} -
    - ) -} - -export function CardInfoField({ - label, - value, - link, -}: { - label: string - value: string - link?: string -}) { - return ( -
    -
    {label}
    - {link ? ( - - {value} - - ) : ( -
    {value}
    - )} -
    - ) -} - -export function CardHeader({ - header, - children, -}: { - header: string - children: ReactNode -}) { - return ( -
    -

    {header}

    -
    - {/* Actions */} - {children} -
    -
    - ) -} - -export default function Card({ - children, - className = '', -}: { - children: ReactNode - className?: string -}) { - return ( -
    - {children} -
    - ) -} diff --git a/web-interface/src/components/Controls.test.tsx b/web-interface/src/components/Controls.test.tsx deleted file mode 100644 index c0fca52..0000000 --- a/web-interface/src/components/Controls.test.tsx +++ /dev/null @@ -1,88 +0,0 @@ -// @vitest-environment jsdom -import { afterEach, expect, test, vi } from 'vitest' -import { cleanup, fireEvent, render, screen } from '@testing-library/react' -import { useState } from 'react' -import { Picker } from './Picker' -import { Tabs } from './Tabs' - -afterEach(cleanup) - -test('picker filters a long account list and selects by keyboard', () => { - const change = vi.fn() - render( - - {Array.from({ length: 30 }, (_, i) => ( - - ))} - , - ) - const trigger = screen.getByRole('combobox', { name: 'Account' }) - fireEvent.click(trigger) - const search = screen.getByRole('combobox', { name: 'Search Account' }) - expect(document.activeElement).toBe(search) - fireEvent.change(search, { target: { value: 'Researcher 29' } }) - expect(screen.getAllByRole('option')).toHaveLength(1) - fireEvent.keyDown(search, { key: 'Enter' }) - expect(change).toHaveBeenCalledWith({ target: { value: '29' } }) - expect(screen.queryByRole('listbox')).toBeNull() - expect(document.activeElement).toBe(trigger) -}) - -test('empty search cannot select an unrelated option; Escape returns focus', () => { - const change = vi.fn() - render( - - - , - ) - const trigger = screen.getByRole('combobox', { name: 'Device' }) - fireEvent.click(trigger) - const search = screen.getByRole('combobox', { name: 'Search Device' }) - fireEvent.change(search, { target: { value: 'missing' } }) - fireEvent.keyDown(search, { key: 'ArrowDown' }) - fireEvent.keyDown(search, { key: 'Enter' }) - expect(change).not.toHaveBeenCalled() - expect(screen.getByText('No matches')).toBeTruthy() - fireEvent.keyDown(search, { key: 'Escape' }) - expect(screen.queryByRole('listbox')).toBeNull() - expect(document.activeElement).toBe(trigger) -}) - -test('tab keyboard navigation wraps, focuses the chosen tab and controls the panel', () => { - function Settings() { - const [tab, setTab] = useState('members') - return ( - <> - - - - ) - } - render() - fireEvent.keyDown(screen.getByRole('tab', { name: 'Members' }), { - key: 'ArrowLeft', - }) - const limits = screen.getByRole('tab', { name: 'Limits' }) - expect(limits.getAttribute('aria-selected')).toBe('true') - expect(document.activeElement).toBe(limits) - expect( - document.getElementById(limits.getAttribute('aria-controls')!)?.hidden, - ).toBe(false) - fireEvent.keyDown(limits, { key: 'Home' }) - expect( - screen.getByRole('tab', { name: 'Members' }).getAttribute('tabindex'), - ).toBe('0') -}) diff --git a/web-interface/src/components/DatasetsPage.test.tsx b/web-interface/src/components/DatasetsPage.test.tsx deleted file mode 100644 index 443dd0d..0000000 --- a/web-interface/src/components/DatasetsPage.test.tsx +++ /dev/null @@ -1,58 +0,0 @@ -// @vitest-environment jsdom -import { afterEach, beforeEach, expect, test, vi } from 'vitest' -import { cleanup, render, screen } from '@testing-library/react' -import { DatasetsPage } from './DatasetsPage' -import { storageAPI } from '../api' - -vi.mock('../api', () => ({ storageAPI: { list: vi.fn(), info: vi.fn() } })) -vi.mock('../teams', () => ({ - useTeam: () => ({ - selected: 'team-a', - team: { name: 'Team A', members: [] }, - }), -})) -vi.mock('../auth', () => ({ - useAccount: () => ({ user: { id: 'alice', role: 'user' } }), -})) -vi.mock('./TeamStorageBrowser', () => ({ TeamStorageBrowser: () => null })) - -beforeEach(() => { - vi.resetAllMocks() - vi.mocked(storageAPI.list).mockResolvedValue({ - datasets: [], - upload_limit_bytes: 1024, - }) - vi.mocked(storageAPI.info).mockResolvedValue({ - enabled: true, - capacity_bytes: 100 * 1024 ** 3, - available_bytes: 60 * 1024 ** 3, - upload_limit_bytes: 1024, - storage_mode: 'shared-folders', - storage_limits_enforced: false, - dataset_used_bytes: 2 * 1024 ** 3, - model_used_bytes: 3 * 1024 ** 3, - dataset_allocation_gib: 1, - model_allocation_gib: 5, - usage_stale: true, - storage_low: true, - }) -}) -afterEach(cleanup) - -test('shows team file usage independently of shared disk usage and advisory allowances', async () => { - render() - await screen.findByText(/Shared disk:/) - expect(screen.getByText('2 GiB / 1 GiB')).toBeTruthy() - expect(screen.getByText('3 GiB / 5 GiB')).toBeTruthy() - expect(screen.getByText(/Above advisory allowance/)).toBeTruthy() - expect(screen.getByText(/shared disk space is not reserved/)).toBeTruthy() - expect(screen.getByText(/Shared disk:/).textContent).toContain( - '60 GiB free of 100 GiB', - ) -}) - -test('reports stale usage and shared-disk exhaustion risk separately', async () => { - render() - await screen.findByText(/Storage usage reporting is delayed/) - expect(screen.getByText(/Shared disk space is low/)).toBeTruthy() -}) diff --git a/web-interface/src/components/DatasetsPage.tsx b/web-interface/src/components/DatasetsPage.tsx deleted file mode 100644 index 2118ef0..0000000 --- a/web-interface/src/components/DatasetsPage.tsx +++ /dev/null @@ -1,436 +0,0 @@ -import { Picker } from '#/components/Picker.tsx' -import { Modal } from '#/components/Modal.tsx' -import { formatBytes } from '#/format.ts' -import { useState, useRef, useEffect } from 'react' -import { - UploadCloud, - Database, - Trash2, - FileCheck2, - LoaderCircle, -} from 'lucide-react' -import { PanelHeading } from '#/components/Card.tsx' -import { storageAPI } from '#/api.ts' -import { errorMessage, usePolling } from '#/hooks/usePolling.ts' -import { useTeam } from '#/teams.tsx' -import { useAccount } from '#/auth.tsx' -import { TeamStorageBrowser } from '#/components/TeamStorageBrowser.tsx' - -function StorageMeter({ - label, - capacity, - used, - advisory = false, -}: { - label: string - capacity: number - used: number - advisory?: boolean -}) { - return ( -
    -
    -
    - - - {advisory - ? used > capacity - ? 'Above advisory allowance — writes are still allowed while disk space remains.' - : 'Advisory allowance — shared disk space is not reserved.' - : `${formatBytes(Math.max(0, capacity - used))} available`} - -
    - ) -} - -export function DatasetsPage() { - const { selected, team } = useTeam() - const { user } = useAccount() - const [scope, setScope] = useState(user?.id ?? '') - const commonWriter = - team?.members.find((m) => m.id === user?.id)?.common_writer || - user?.role.split(',').includes('admin') - const datasets = usePolling(storageAPI.list, 10000), - storage = usePolling(storageAPI.info, 15000) - const [file, setFile] = useState(null), - [name, setName] = useState(''), - [zip, setZip] = useState(false), - [progress, setProgress] = useState(0), - [busy, setBusy] = useState(false), - [error, setError] = useState(''), - [message, setMessage] = useState('') - const [uploading, setUploading] = useState(false) - const uploadRequest = useRef(null) - useEffect(() => () => uploadRequest.current?.abort(), []) - const [search, setSearch] = useState('') - const [dragging, setDragging] = useState(false) - function chooseFile(next: File | null) { - setFile(next) - setZip(next?.name.toLowerCase().endsWith('.zip') ?? false) - } - const limit = datasets.data?.upload_limit_bytes ?? 0 - const isPreparing = (value: string) => - value.includes('team storage is being provisioned') || - value.includes('team storage is not ready') - const storagePending = - !!selected && - (datasets.loading || - storage.loading || - isPreparing(datasets.error) || - isPreparing(storage.error)) - const visibleDatasets = - datasets.data?.datasets.filter((ds) => - ds.name.toLowerCase().includes(search.toLowerCase()), - ) ?? [] - async function upload() { - if (!file) return - setBusy(true) - setError('') - setMessage('') - setProgress(0) - try { - if (file.size > limit) throw new Error('Dataset exceeds the upload limit') - uploadRequest.current = new AbortController() - const ds = await storageAPI.upload( - file, - name, - zip, - setProgress, - scope, - uploadRequest.current.signal, - ) - setMessage(`${ds.name} is ready to use.`) - setUploading(false) - datasets.refresh() - storage.refresh() - } catch (err) { - setError(errorMessage(err)) - } finally { - uploadRequest.current = null - setBusy(false) - } - } - async function remove(id: string) { - setBusy(true) - setError('') - try { - await storageAPI.remove(id) - datasets.refresh() - storage.refresh() - } catch (err) { - setError(errorMessage(err)) - } finally { - setBusy(false) - } - } - return ( -
    -
    -
    -

    {team?.name ?? 'Legacy workspace'}

    -

    Datasets

    -

    - A shared home for your team's data and experiment results. -

    -
    - -
    - {storagePending && ( -

    -

    - )} - {storage.data?.enabled && ( -
    -

    - Shared disk: {formatBytes(storage.data.available_bytes)} free of{' '} - {formatBytes(storage.data.capacity_bytes)}. All teams use this disk. -

    - {selected && ( -
    - - -
    - )} - {selected && ( -

    - File usage updates approximately every 30 seconds. -

    - )} - {storage.data.storage_low && ( -

    - Shared disk space is low. Uploads and jobs may run out of space. -

    - )} - {storage.data.usage_stale && ( -

    - Storage usage reporting is delayed. The displayed usage may be out - of date. -

    - )} -
    - )} - {uploading && ( - { - if (!busy) setUploading(false) - }} - > -
    { - e.preventDefault() - void upload() - }} - > - } - /> - {selected && ( -
    - - setScope(e.target.value)} - > - - {commonWriter && ( - - )} - -

    - All teammates can read these files. Other teams need an - explicit sharing grant. -

    -
    - )} -
    - - setName(e.target.value)} - /> -
    -
    { - e.preventDefault() - if (!busy) setDragging(true) - }} - onDragLeave={() => setDragging(false)} - onDrop={(e) => { - e.preventDefault() - setDragging(false) - if (!busy) chooseFile(e.dataTransfer.files.item(0)) - }} - > - {file ? ( -
    - -

    - {storagePending - ? 'Upload will be available when team storage is ready.' - : `Upload limit: ${formatBytes(limit)}. ZIP extraction also needs space for the expanded files.`} -

    - - {error &&

    {error}

    } - {busy && ( - - )} - {busy && ( -
    - -

    - {progress === 100 - ? 'Validating and saving dataset…' - : `${progress}% uploaded`} -

    -
    - )} - -
    - )} - {(error || - (!isPreparing(datasets.error) && datasets.error) || - (!isPreparing(storage.error) && storage.error)) && ( -

    - {error || - (!isPreparing(datasets.error) && datasets.error) || - storage.error} -

    - )} - {message &&

    {message}

    } -
    - } - action={ - - {datasets.data?.datasets.length ?? 0} datasets - - } - /> -
    - setSearch(event.target.value)} - /> -
    -
      - {visibleDatasets.map((ds) => ( -
    • -
      -

      {ds.name}

      - {ds.team_id && ( -

      - {ds.team_name ?? team?.name} /{' '} - {ds.scope === 'common' ? 'Common' : ds.member_name} - {ds.shared ? ' · Shared read-only' : ''} -

      - )} -

      - {ds.files} file(s) · {formatBytes(ds.size)} · {ds.state} -

      -
      - File details - {ds.id} -

      SHA256: {ds.sha256}

      -
      -
      - -
    • - ))} -
    - {!datasets.loading && - !datasets.error && - visibleDatasets.length === 0 && ( -

    - {search - ? 'No datasets match your search.' - : 'No datasets yet. Add your first dataset to get started.'} -

    - )} -
    - {selected ? ( -
    - - Team folders Browse shared files & results - - -
    - ) : ( -

    - Choose a team to upload. These are your preserved account files. -

    - )} -
    - ) -} diff --git a/web-interface/src/components/HardwarePanel.tsx b/web-interface/src/components/HardwarePanel.tsx deleted file mode 100644 index 7efa2b0..0000000 --- a/web-interface/src/components/HardwarePanel.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import Card, { PanelHeading } from '#/components/Card.tsx' -import { Server } from 'lucide-react' -import type { HardwareSnapshot } from '#/api.ts' - -export const computeNames = { - cpu: 'CPU', - nvidia: 'NVIDIA', - tenstorrent: 'Tenstorrent', -} - -function memoryLabel(quantity: string) { - const match = quantity.match(/^(\d+(?:\.\d+)?)(Ki|Mi|Gi|Ti)?$/) - if (!match) return quantity - const powers: Record = { Ki: 1, Mi: 2, Gi: 3, Ti: 4 } - const bytes = Number(match[1]) * 1024 ** (powers[match[2]] ?? 0) - return `${(bytes / 1024 ** 3).toFixed(1)} GiB` -} - -export function HardwarePanel({ - hardware, - error, - loading, -}: { - hardware: HardwareSnapshot | null - error: string - loading: boolean -}) { - return ( - - } - action={Live} - /> - {loading &&

    Loading hardware…

    } - {error && ( -

    - Hardware unavailable: {error} -

    - )} - {hardware && ( - <> -
    - - - - - {[ - 'Hardware', - 'Machine', - 'Total', - 'Allocated', - 'Available', - 'Placement', - ].map((label) => ( - - ))} - - - - {hardware.pools.map((pool) => ( - - - - - - - - - ))} - -
    - Current accelerator allocations -
    - {label} -
    - {computeNames[pool.accelerator]} {pool.unit}s - {pool.node}{pool.total}{pool.allocated} - {error || pool.available === null - ? 'Unknown' - : pool.available} - - {error ? 'Unknown' : pool.ready ? 'Ready' : 'Unavailable'} -
    -
    -
    - {hardware.machines.map((machine) => ( -

    - {machine.name}:{' '} - {machine.ready - ? machine.schedulable - ? 'Ready' - : 'Placement paused' - : 'Offline'} - {machine.ready && ( - <> - {' '} - · {machine.cpu_allocatable} CPU ·{' '} - {memoryLabel(machine.memory_allocatable)} RAM allocatable - - )} -

    - ))} -
    - {hardware.pools - .filter((pool) => pool.message) - .map((pool) => ( -

    - {computeNames[pool.accelerator]}: {pool.message} -

    - ))} -

    - Updated {new Date(hardware.observed_at).toLocaleTimeString()}. - Availability can change before submission. Jobs wait for resources. - One Tenstorrent board contains two chips. -

    - - )} -
    - ) -} diff --git a/web-interface/src/components/JobsPage.test.tsx b/web-interface/src/components/JobsPage.test.tsx deleted file mode 100644 index 3ace18f..0000000 --- a/web-interface/src/components/JobsPage.test.tsx +++ /dev/null @@ -1,286 +0,0 @@ -// @vitest-environment jsdom -import { afterEach, beforeEach, expect, test, vi } from 'vitest' -import { - act, - cleanup, - fireEvent, - render, - screen, - waitFor, -} from '@testing-library/react' -import { JobsPage } from './JobsPage' -import { jobsAPI, storageAPI } from '../api' -import type { Job } from '../api' - -vi.mock('../api', () => ({ - storageAPI: { list: vi.fn(), files: vi.fn() }, - jobsAPI: { - list: vi.fn(), - submit: vi.fn(), - cancel: vi.fn(), - logs: vi.fn(), - hardware: vi.fn(), - images: vi.fn(), - }, -})) - -let jobs: Job[] -beforeEach(() => { - vi.resetAllMocks() - HTMLDialogElement.prototype.showModal = function () { - this.setAttribute('open', '') - } - HTMLDialogElement.prototype.close = function () { - this.removeAttribute('open') - } - vi.mocked(storageAPI.list).mockResolvedValue({ - datasets: [], - upload_limit_bytes: 2147483648, - }) - jobs = [ - { - id: 'real-job', - name: 'Actual training', - created: '2026-10-03T20:00:00Z', - job_state: 'Scheduled', - accelerator: 'tenstorrent', - device_count: 2, - cpu: '4', - memory: '8Gi', - image: 'tt-runtime', - checkpoint_directory: '/checkpoints/real-job', - message: 'Waiting for boards', - }, - ] - vi.mocked(jobsAPI.list).mockImplementation(async () => ({ - jobs, - count: jobs.length, - })) - vi.mocked(jobsAPI.logs).mockResolvedValue({ logs: 'REAL_TRAINING_OUTPUT' }) - vi.mocked(jobsAPI.hardware).mockResolvedValue({ - observed_at: '2026-10-08T12:00:00Z', - machines: [], - pools: [ - { - accelerator: 'nvidia', - node: 'cpu-node', - unit: 'GPU', - total: 2, - allocated: 1, - available: 1, - ready: true, - }, - { - accelerator: 'tenstorrent', - node: 'tt-node', - unit: 'board', - total: 4, - allocated: 2, - available: 2, - ready: true, - chips_per_device: 2, - }, - ], - }) - vi.mocked(jobsAPI.images).mockResolvedValue({ - images: [ - { reference: 'cpu-runtime', accelerators: ['cpu'] }, - { reference: 'nvidia-runtime', accelerators: ['nvidia'] }, - { reference: 'tt-runtime', accelerators: ['tenstorrent'] }, - ], - profiles: [ - { - accelerator: 'cpu', - default_image: 'cpu-runtime', - device_unit: 'none', - max_devices: 0, - }, - { - accelerator: 'nvidia', - default_image: 'nvidia-runtime', - device_unit: 'GPU', - max_devices: 2, - }, - { - accelerator: 'tenstorrent', - default_image: 'tt-runtime', - device_unit: 'board', - max_devices: 4, - }, - ], - }) - vi.mocked(jobsAPI.submit).mockResolvedValue({ - job_id: 'submitted', - job: jobs[0], - }) - vi.mocked(jobsAPI.cancel).mockImplementation(async () => { - jobs = [{ ...jobs[0], job_state: 'Cancelled' }] - return jobs[0] - }) -}) -afterEach(() => { - cleanup() - vi.useRealTimers() -}) - -test('shows real job state, reads logs, and cancels through the API', async () => { - render() - await screen.findByText('Actual training') - fireEvent.click( - screen.getByRole('button', { name: 'Show details for Actual training' }), - ) - expect(screen.getByText('Waiting for boards')).toBeTruthy() - fireEvent.click(screen.getByRole('button', { name: 'Logs' })) - await screen.findByText('REAL_TRAINING_OUTPUT') - fireEvent.click(screen.getByRole('button', { name: 'Cancel' })) - await screen.findByText('Cancelled') - expect(jobsAPI.cancel).toHaveBeenCalledWith('real-job') - await waitFor(() => - expect(screen.queryByRole('button', { name: 'Cancel' })).toBeNull(), - ) -}) - -test('submits the requested Tenstorrent board count', async () => { - render() - fireEvent.click(screen.getByRole('button', { name: 'New job' })) - await screen.findByDisplayValue('cpu-runtime') - fireEvent.click(screen.getByRole('radio', { name: /Tenstorrent/ })) - fireEvent.change(screen.getByLabelText('Boards (two chips each)'), { - target: { value: '2' }, - }) - fireEvent.click(screen.getByRole('radio', { name: 'Training check' })) - fireEvent.click(screen.getByRole('button', { name: 'Submit job' })) - await waitFor(() => - expect(jobsAPI.submit).toHaveBeenCalledWith({ - name: '', - type: 'training-smoke', - accelerator: 'tenstorrent', - device_count: 2, - image: 'tt-runtime', - timeout_seconds: 600, - }), - ) -}) - -test('passes executable and each argument separately, preserving spaces', async () => { - render() - fireEvent.click(screen.getByRole('button', { name: 'New job' })) - await screen.findByDisplayValue('cpu-runtime') - fireEvent.click(screen.getByRole('radio', { name: 'Container' })) - fireEvent.change(screen.getByLabelText('Command executable (optional)'), { - target: { value: 'python' }, - }) - fireEvent.change(screen.getByLabelText('Arguments (one per line)'), { - target: { value: "-c\nprint('two words')" }, - }) - fireEvent.change(screen.getByLabelText('Working directory (optional)'), { - target: { value: '/app' }, - }) - fireEvent.click(screen.getByRole('button', { name: 'Submit job' })) - await waitFor(() => - expect(jobsAPI.submit).toHaveBeenCalledWith( - expect.objectContaining({ - image: 'cpu-runtime', - command: ['python'], - args: ['-c', "print('two words')"], - working_directory: '/app', - }), - ), - ) -}) - -test('rejects unapproved images and invalid board counts before submission', async () => { - render() - fireEvent.click(screen.getByRole('button', { name: 'New job' })) - await screen.findByDisplayValue('cpu-runtime') - fireEvent.change(screen.getByLabelText('Container image'), { - target: { value: 'unapproved/image' }, - }) - expect( - screen.getByRole('button', { name: 'Submit job' }).hasAttribute('disabled'), - ).toBe(true) - fireEvent.click(screen.getByRole('radio', { name: /Tenstorrent/ })) - fireEvent.change(screen.getByLabelText('Boards (two chips each)'), { - target: { value: '5' }, - }) - expect( - screen.getByRole('button', { name: 'Submit job' }).hasAttribute('disabled'), - ).toBe(true) - expect(jobsAPI.submit).not.toHaveBeenCalled() -}) - -test('recovers the job list after a temporary API outage', async () => { - vi.useFakeTimers() - vi.mocked(jobsAPI.list).mockRejectedValueOnce( - new Error('Temporary API outage'), - ) - render() - await act(async () => {}) - expect(screen.getByRole('alert').textContent).toContain( - 'Temporary API outage', - ) - await act(async () => { - await vi.advanceTimersByTimeAsync(3000) - }) - expect(screen.queryByRole('alert')).toBeNull() - expect(screen.getByText('Actual training')).toBeTruthy() -}) - -test('paginates history and searches across all pages', async () => { - jobs = Array.from({ length: 23 }, (_, index) => ({ - ...jobs[0], - id: `job-${index}`, - name: `Experiment ${index + 1}`, - })) - render() - await screen.findByText('Experiment 1') - expect( - screen.getAllByRole('button', { name: /Show details for Experiment/ }), - ).toHaveLength(10) - expect(screen.queryByText('Experiment 11')).toBeNull() - fireEvent.click(screen.getByRole('button', { name: 'Next page' })) - expect(screen.getByText('Experiment 11')).toBeTruthy() - expect(screen.queryByText('Experiment 1')).toBeNull() - fireEvent.click(screen.getByRole('button', { name: 'Next page' })) - expect( - screen.getAllByRole('button', { name: /Show details for Experiment/ }), - ).toHaveLength(3) - expect( - screen.getByRole('button', { name: 'Next page' }).hasAttribute('disabled'), - ).toBe(true) - fireEvent.change(screen.getByLabelText('Search job history'), { - target: { value: 'job-22' }, - }) - expect(screen.getByText('Experiment 23')).toBeTruthy() - expect( - screen.getAllByRole('button', { name: /Show details for Experiment/ }), - ).toHaveLength(1) - expect( - screen - .getByRole('button', { name: 'Previous page' }) - .hasAttribute('disabled'), - ).toBe(true) -}) - -test('keeps a cleared image blank while editing and uses the image startup defaults', async () => { - render() - fireEvent.click(screen.getByRole('button', { name: 'New job' })) - await screen.findByDisplayValue('cpu-runtime') - fireEvent.click(screen.getByRole('radio', { name: 'Container' })) - const image = screen.getByLabelText('Container image') - fireEvent.change(image, { target: { value: '' } }) - expect(image.value).toBe('') - expect( - screen.getByRole('button', { name: 'Submit job' }).hasAttribute('disabled'), - ).toBe(true) - fireEvent.change(image, { target: { value: 'cpu' } }) - expect(image.value).toBe('cpu') - fireEvent.change(image, { target: { value: 'cpu-runtime' } }) - fireEvent.click(screen.getByRole('button', { name: 'Submit job' })) - await waitFor(() => expect(jobsAPI.submit).toHaveBeenCalled()) - const submission = vi.mocked(jobsAPI.submit).mock.calls[0][0] - expect(submission.image).toBe('cpu-runtime') - expect(submission.command).toBeUndefined() - expect(submission.args).toBeUndefined() - expect(submission.script).toBeUndefined() -}) diff --git a/web-interface/src/components/JobsPage.tsx b/web-interface/src/components/JobsPage.tsx deleted file mode 100644 index 7db3a3c..0000000 --- a/web-interface/src/components/JobsPage.tsx +++ /dev/null @@ -1,336 +0,0 @@ -import { Picker } from '#/components/Picker.tsx' -import { useState } from 'react' -import { - History, - Search, - ChevronLeft, - ChevronRight, - CheckCircle2, - Clock3, - Activity, - Plus, -} from 'lucide-react' -import { Modal } from '#/components/Modal.tsx' -import { PanelHeading } from '#/components/Card.tsx' -import { jobsAPI, storageAPI } from '#/api.ts' -import type { Submission } from '#/api.ts' -import { HardwarePanel } from '#/components/HardwarePanel.tsx' -import { JobSubmissionForm } from '#/components/jobs/JobSubmissionForm.tsx' -import { JobCard } from '#/components/jobs/JobCard.tsx' -import { JobLogs } from '#/components/jobs/JobLogs.tsx' -import { errorMessage, usePolling } from '#/hooks/usePolling.ts' -import { useTeam } from '#/teams.tsx' - -export function JobsPage() { - const { team } = useTeam() - const jobs = usePolling(jobsAPI.list, 3000) - const hardware = usePolling(jobsAPI.hardware) - const datasets = usePolling(storageAPI.list, 15000) - const images = usePolling(jobsAPI.images, 15000) - const [selectedLogs, setSelectedLogs] = useState(null) - const [cancelling, setCancelling] = useState(null) - const [actionError, setActionError] = useState('') - const [composing, setComposing] = useState(false) - const [submitted, setSubmitted] = useState('') - const [search, setSearch] = useState('') - const [status, setStatus] = useState('all') - const [page, setPage] = useState(1) - const [pageSize, setPageSize] = useState(10) - const filtered = (jobs.data?.jobs ?? []).filter( - (job) => - (status === 'all' || job.job_state === status) && - `${job.name} ${job.id} ${job.creator_name ?? ''}` - .toLowerCase() - .includes(search.trim().toLowerCase()), - ) - const pageCount = Math.max(1, Math.ceil(filtered.length / pageSize)) - const currentPage = Math.min(page, pageCount) - const start = (currentPage - 1) * pageSize - const visibleJobs = filtered.slice(start, start + pageSize) - function filterStatus(next: string) { - setStatus(next) - setPage(1) - setSelectedLogs(null) - } - function changePage(next: number) { - setPage(next) - setSelectedLogs(null) - } - - async function submit(submission: Submission) { - const response = await jobsAPI.submit(submission) - setSubmitted(response.job_id) - setComposing(false) - setPage(1) - setSearch('') - setStatus('all') - setActionError('') - jobs.refresh() - hardware.refresh() - } - async function cancel(id: string) { - setCancelling(id) - setActionError('') - try { - await jobsAPI.cancel(id) - jobs.refresh() - hardware.refresh() - } catch (err) { - setActionError(errorMessage(err)) - } finally { - setCancelling(null) - } - } - - return ( -
    -
    -
    -

    {team?.name ?? 'Legacy workspace'}

    -

    Jobs

    -

    - From an experiment to a result. Run your code on the right hardware. -

    -
    - -
    -
    - {( - [ - [ - 'Running', - jobs.data?.jobs.filter((j) => j.job_state === 'InProgress') - .length, - 'InProgress', - Activity, - Plus, - ], - [ - 'In queue', - jobs.data?.jobs.filter((j) => j.job_state === 'Scheduled').length, - 'Scheduled', - Clock3, - ], - [ - 'Completed', - jobs.data?.jobs.filter((j) => j.job_state === 'Success').length, - 'Success', - CheckCircle2, - ], - ] as const - ).map(([label, count, state, Icon]) => ( - - ))} -
    -
    - - Connected compute - - {hardware.data?.pools - .map( - (pool) => - `${pool.available ?? '—'} ${pool.accelerator === 'nvidia' ? 'GPUs' : 'TT boards'}`, - ) - .join(' · ') ?? 'Checking availability…'} - - - -
    - {images.error && ( -

    - Image catalog unavailable: {images.error} -

    - )} - {composing && ( - setComposing(false)}> - - - )} - {submitted && ( -

    - Job submitted. Track it in the history below. -

    - )} -
    -
    - {(actionError || jobs.error) && ( -

    - {actionError || jobs.error} -

    - )} - {jobs.loading &&

    Loading jobs…

    } - {selectedLogs && ( - setSelectedLogs(null)} - /> - )} -
    - } - action={ - - {jobs.data?.count ?? '—'} jobs - - } - /> -
    -
    -
    - filterStatus(e.target.value)} - > - - - - - - - -
    -
    - - Job / submitted by - Status - Compute - Created -
    - {visibleJobs.map((job) => ( - setSelectedLogs(job.id)} - onCancel={() => { - void cancel(job.id) - }} - /> - ))} - {!jobs.loading && !jobs.error && filtered.length === 0 && ( -
    -
    - )} - -
    -
    -
    -
    - ) -} diff --git a/web-interface/src/components/MachinesPage.tsx b/web-interface/src/components/MachinesPage.tsx deleted file mode 100644 index 55a7f4e..0000000 --- a/web-interface/src/components/MachinesPage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { jobsAPI } from '#/api.ts' -import { HardwarePanel } from '#/components/HardwarePanel.tsx' -import { usePolling } from '#/hooks/usePolling.ts' - -export function MachinesPage() { - const hardware = usePolling(jobsAPI.hardware) - return ( -
    -

    Machines

    - -

    - CPU and RAM figures are allocatable scheduling capacity, not live - utilization. Jobs reserve whole NVIDIA GPUs or whole Tenstorrent boards. -

    -
    - ) -} diff --git a/web-interface/src/components/Modal.tsx b/web-interface/src/components/Modal.tsx deleted file mode 100644 index 64dfabe..0000000 --- a/web-interface/src/components/Modal.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { useEffect, useRef } from 'react' -import { createPortal } from 'react-dom' -import { X } from 'lucide-react' -import type { ReactNode } from 'react' - -/** Native dialog provides focus trapping, focus return and the modal top layer. */ -export function Modal({ - title, - onClose, - children, - closeDisabled = false, -}: { - title: string - onClose: () => void - children: ReactNode - closeDisabled?: boolean -}) { - const dialog = useRef(null) - useEffect(() => { - const current = dialog.current - current?.showModal() - const previous = document.body.style.overflow - document.body.style.overflow = 'hidden' - return () => { - current?.close() - document.body.style.overflow = previous - } - }, []) - return createPortal( - { - event.preventDefault() - if (!closeDisabled) onClose() - }} - onClick={(event) => { - if (!closeDisabled && event.target === event.currentTarget) onClose() - }} - > -
    - {title} - -
    -
    {children}
    -
    , - document.body, - ) -} diff --git a/web-interface/src/components/Navbar.tsx b/web-interface/src/components/Navbar.tsx deleted file mode 100644 index 3b50311..0000000 --- a/web-interface/src/components/Navbar.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import { Link } from '@tanstack/react-router' -import { authClient, useAccount } from '#/auth.tsx' -import { useState } from 'react' -import { - LayoutDashboard, - Play, - Database, - Server, - Users, - BookOpen, -} from 'lucide-react' -import { WorkspaceSelector } from '#/teams.tsx' - -export default function Navbar() { - const account = useAccount() - const [error, setError] = useState('') - return ( -
    - - - - MistResearch compute - - -

    WORKSPACE

    - -
    - - - - - {account.user?.name ?? 'Local pilot'} - Account settings - - - {account.enabled && ( - - )} - {error &&

    {error}

    } -
    -
    - ) -} diff --git a/web-interface/src/components/Picker.tsx b/web-interface/src/components/Picker.tsx deleted file mode 100644 index 644e5e3..0000000 --- a/web-interface/src/components/Picker.tsx +++ /dev/null @@ -1,215 +0,0 @@ -import { - Children, - isValidElement, - useEffect, - useId, - useRef, - useState, -} from 'react' -import { Check, ChevronDown, Search } from 'lucide-react' -import type { ReactNode } from 'react' - -type Props = { - id?: string - value: string | number - onChange: (event: { target: { value: string } }) => void - children: ReactNode - disabled?: boolean - required?: boolean - className?: string - 'aria-label'?: string -} -function text(node: ReactNode): string { - return Children.toArray(node) - .map((child) => - isValidElement<{ children?: ReactNode }>(child) - ? text(child.props.children) - : String(child), - ) - .join('') -} - -/** Searchable, keyboard-operable single selection shared across the portal. */ -export function Picker({ - id, - value, - onChange, - children, - disabled, - required, - className = '', - 'aria-label': ariaLabel, -}: Props) { - const options = Children.toArray(children) - .filter(isValidElement<{ value: string | number; children: ReactNode }>) - .map((option) => ({ - value: String(option.props.value), - label: text(option.props.children), - })) - const selected = options.find((option) => option.value === String(value)) - const [open, setOpen] = useState(false) - const [above, setAbove] = useState(false) - const [query, setQuery] = useState('') - const [active, setActive] = useState(0) - const root = useRef(null) - const trigger = useRef(null) - const search = useRef(null) - const uniqueId = useId() - const filtered = options.filter((option) => - option.label.toLowerCase().includes(query.toLowerCase()), - ) - const listId = `${id ?? uniqueId}-options` - useEffect(() => { - if (!open) return - const list = document.getElementById(listId) - const option = document.getElementById(`${listId}-${active}`) - if (!list || !option) return - const bounds = list.getBoundingClientRect() - const item = option.getBoundingClientRect() - if (item.top < bounds.top) list.scrollTop -= bounds.top - item.top - else if (item.bottom > bounds.bottom) - list.scrollTop += item.bottom - bounds.bottom - }, [open, active, listId, query]) - useEffect(() => { - if (!open) return - function place() { - const rect = root.current?.getBoundingClientRect() - if (!rect) return - const bound = Math.min( - window.innerHeight, - root.current?.closest('dialog')?.getBoundingClientRect().bottom ?? - window.innerHeight, - ) - setAbove(bound - rect.bottom < 260 && rect.top > bound - rect.bottom) - } - place() - search.current?.focus() - function outside(event: PointerEvent) { - if (!root.current?.contains(event.target as Node)) setOpen(false) - } - document.addEventListener('pointerdown', outside) - const outsideFocus = (event: FocusEvent) => { - if (!root.current?.contains(event.target as Node)) setOpen(false) - } - document.addEventListener('focusin', outsideFocus) - window.addEventListener('resize', place) - document.addEventListener('scroll', place, true) - return () => { - document.removeEventListener('pointerdown', outside) - document.removeEventListener('focusin', outsideFocus) - window.removeEventListener('resize', place) - document.removeEventListener('scroll', place, true) - } - }, [open]) - function choose(next: string) { - onChange({ target: { value: next } }) - setOpen(false) - trigger.current?.focus() - } - return ( -
    - - {open && ( -
    { - if (event.key === 'Escape') { - event.preventDefault() - event.stopPropagation() - setOpen(false) - trigger.current?.focus() - } - if (event.key === 'ArrowDown') { - event.preventDefault() - setActive((index) => - Math.max(0, Math.min(index + 1, filtered.length - 1)), - ) - } - if (event.key === 'ArrowUp') { - event.preventDefault() - setActive((index) => Math.max(index - 1, 0)) - } - if (event.key === 'Enter' && filtered[active]) { - event.preventDefault() - choose(filtered[active].value) - } - }} - > -
    -
    -
    - {filtered.map((option, index) => ( - - ))} - {!filtered.length && ( -

    No matches

    - )} -
    -
    - )} -
    - ) -} diff --git a/web-interface/src/components/Tabs.tsx b/web-interface/src/components/Tabs.tsx deleted file mode 100644 index 3ab0569..0000000 --- a/web-interface/src/components/Tabs.tsx +++ /dev/null @@ -1,49 +0,0 @@ -/** Shared tab navigation, with arrow keys, Home/End and a single tab stop. */ -export function Tabs({ - id, - label, - value, - onChange, - items, -}: { - id: string - label: string - value: string - onChange: (value: string) => void - items: readonly (readonly [string, string])[] -}) { - return ( -
    - {items.map(([key, title], index) => ( - - ))} -
    - ) -} diff --git a/web-interface/src/components/TeamStorageBrowser.tsx b/web-interface/src/components/TeamStorageBrowser.tsx deleted file mode 100644 index 49cc3a9..0000000 --- a/web-interface/src/components/TeamStorageBrowser.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { formatBytes } from '#/format.ts' -import { Picker } from '#/components/Picker.tsx' -import { useCallback, useState } from 'react' -import { storageAPI } from '#/api.ts' -import type { StorageFolder } from '#/api.ts' -import { usePolling } from '#/hooks/usePolling.ts' -import { FolderOpen, Folder, ArrowDownToLine, Users } from 'lucide-react' -import { PanelHeading } from '#/components/Card.tsx' - -function FolderFiles({ folder }: { folder: StorageFolder }) { - const load = useCallback( - (signal: AbortSignal) => storageAPI.folderFiles(folder, signal), - [folder.team_id, folder.scope], - ) - const files = usePolling(load, 10000) - return ( -
    -

    - {folder.team_name} / {folder.name} - {folder.shared ? ' · Shared read-only' : ''} -

    - {files.loading &&

    Loading files…

    } - {files.error &&

    {files.error}

    } - {files.data?.files.length === 0 &&

    No files in this folder yet.

    } -
      - {files.data?.files.map((file) => ( -
    • - - {file.path} · {formatBytes(file.size)} - - - -
    • - ))} -
    -
    - ) -} -export function TeamStorageBrowser() { - const folders = usePolling(storageAPI.folders, 15000) - const [selected, setSelected] = useState('') - const folder = folders.data?.folders.find( - (f) => `${f.team_id}:${f.scope}` === selected, - ) - return ( -
    - } - /> -
    - {folders.data?.folders.map((f) => { - const id = `${f.team_id}:${f.scope}` - return ( - - ) - })} -
    - - setSelected(e.target.value)} - > - - {folders.data?.folders.map((f) => ( - - ))} - - {folders.error &&

    {folders.error}

    } - {folder && } -
    - ) -} diff --git a/web-interface/src/components/TeamsPage.tsx b/web-interface/src/components/TeamsPage.tsx deleted file mode 100644 index 0b5ca00..0000000 --- a/web-interface/src/components/TeamsPage.tsx +++ /dev/null @@ -1,583 +0,0 @@ -import { Picker } from '#/components/Picker.tsx' -import { useState, useEffect } from 'react' -import { Modal } from '#/components/Modal.tsx' -import { Tabs } from '#/components/Tabs.tsx' -import { Users, Settings2, ArrowUpRight, Plus, UserMinus } from 'lucide-react' -import { PanelHeading } from '#/components/Card.tsx' -import type { Team, TeamPolicy } from '#/api.ts' -import { teamsAPI } from '#/api.ts' -import { authClient, useAccount } from '#/auth.tsx' -import { useTeam } from '#/teams.tsx' -import { errorMessage, usePolling } from '#/hooks/usePolling.ts' - -const field = 'border rounded p-2 w-full' -async function loadAccounts() { - const result = await authClient.admin.listUsers({ query: { limit: 1000 } }) - if (result.error) throw new Error(result.error.message) - return result.data.users -} - -function PolicyForm({ - team, - save, -}: { - team: Team - save: (policy: TeamPolicy) => Promise -}) { - const [policy, setPolicyState] = useState(team.policy) - const [editing, setEditing] = useState(false) - const signature = JSON.stringify(team.policy) - useEffect(() => { - if (!editing) setPolicyState(JSON.parse(signature) as TeamPolicy) - }, [signature, editing]) - function setPolicy(next: TeamPolicy) { - setEditing(true) - setPolicyState(next) - } - const [busy, setBusy] = useState(false) - const [message, setMessage] = useState('') - const numbers = [ - ['nvidia', 'NVIDIA GPUs', 0, 2], - ['tenstorrent', 'Tenstorrent boards (two chips each)', 0, 4], - ['concurrent', 'Simultaneous jobs', 1, 16], - ['queued', 'Queued jobs', 1, 200], - ['storage_gib', 'Dataset allowance (GiB, advisory)', 1, 1048576], - ['model_storage_gib', 'Model allowance (GiB, advisory)', 1, 1048576], - ['runtime_seconds', 'Maximum job runtime (seconds)', 10, 86400], - ] as const - return ( -
    { - e.preventDefault() - setBusy(true) - setMessage('') - try { - await save(policy) - setEditing(false) - setMessage('Team limits saved.') - } catch (err) { - setMessage(errorMessage(err)) - } finally { - setBusy(false) - } - }} - > -

    Team limits

    -
    -
    - - setPolicy({ ...policy, cpu: e.target.value })} - /> -
    -
    - - setPolicy({ ...policy, memory: e.target.value })} - /> -
    - {numbers.map(([key, name, min, max]) => ( -
    - - - setPolicy({ ...policy, [key]: Number(e.target.value) }) - } - /> - {!key.includes('storage') && ( - - setPolicy({ ...policy, [key]: Number(e.target.value) }) - } - className="mist-range w-full mt-3" - /> - )} -
    - ))} -
    -
    - -
    -
    - {/* Brand header & status badge */} -
    -
    - -
    - - Mist - - Research Compute -
    -
    - -
    -
    -
    - - {/* Primary Message */} -
    -

    SYSTEM STATUS / API DISCONNECTED

    -

    - Unable to reach the compute backend -

    -

    - The web portal is running, but cannot communicate with the Mist API - or account service. The backend server may be restarting, undergoing - maintenance, or temporarily unreachable over the private network. -

    -
    - - {/* Error diagnostics banner */} -
    -
    -
    -
    - - {/* Action button */} -
    - - - Automatic retries happen in the background. - -
    - - {/* Informational Cards: Docs & GitHub */} -
    - {/* Static Documentation link */} - -
    -
    - - - Static & Active - -
    -

    - Documentation - -

    -

    - The static documentation site remains unaffected and fully - accessible even when the compute backend is down. Browse - operating guides, architecture, and setup manuals. -

    -
    -
    - View documentation - -
    -
    - - {/* GitHub Repository Issue link */} - -
    -
    - - - GitHub - -
    -

    - Report an Issue -

    -

    - Notice an unexpected service outage or API bug? Submit a report - or check active incidents on the UTMIST GitHub repository. -

    -
    -
    - Open GitHub issues -
    -
    -
    - - {/* Troubleshooting checklist */} - -
    -