diff --git a/.changeset/tasty-results-doubt.md b/.changeset/tasty-results-doubt.md
new file mode 100644
index 000000000..3849d53ca
--- /dev/null
+++ b/.changeset/tasty-results-doubt.md
@@ -0,0 +1,6 @@
+---
+"@tanstack/react-optimistic": patch
+"@tanstack/optimistic": patch
+---
+
+Initial release
diff --git a/README.md b/README.md
index a1bf54481..2c355c296 100644
--- a/README.md
+++ b/README.md
@@ -67,6 +67,7 @@ const { data, insert, update, delete: deleteFn } = useCollection({
```
Returns:
+
- `data`: An array of all items in the collection
- `state`: A Map containing all items in the collection with their internal keys
- `insert`: Function to add new items to the collection
@@ -87,6 +88,7 @@ await preloadCollection({
```
Features:
+
1. Returns a promise that resolves when the first sync commit is complete
2. Shares the same collection instance with `useCollection`
3. Handles already-loaded collections by returning immediately
@@ -98,16 +100,16 @@ Features:
```typescript
// Insert a single item
-insert({ text: "Buy groceries", completed: false });
+insert({ text: "Buy groceries", completed: false })
// Insert multiple items
insert([
{ text: "Buy groceries", completed: false },
- { text: "Walk dog", completed: false }
-]);
+ { text: "Walk dog", completed: false },
+])
// Insert with custom key
-insert({ text: "Buy groceries" }, { key: "grocery-task" });
+insert({ text: "Buy groceries" }, { key: "grocery-task" })
```
#### Update
@@ -116,30 +118,34 @@ We use a proxy to capture updates as immutable draft optimistic updates.
```typescript
// Update a single item
-update(todo, (draft) => { draft.completed = true });
+update(todo, (draft) => {
+ draft.completed = true
+})
// Update multiple items
update([todo1, todo2], (drafts) => {
- drafts.forEach(draft => { draft.completed = true });
-});
+ drafts.forEach((draft) => {
+ draft.completed = true
+ })
+})
// Update with metadata
-update(todo, { metadata: { reason: "user update" } }, (draft) => {
- draft.text = "Updated text";
-});
+update(todo, { metadata: { reason: "user update" } }, (draft) => {
+ draft.text = "Updated text"
+})
```
#### Delete
```typescript
// Delete a single item
-delete(todo);
+delete todo
// Delete multiple items
-delete([todo1, todo2]);
+delete [todo1, todo2]
// Delete with metadata
-delete(todo, { metadata: { reason: "completed" } });
+delete (todo, { metadata: { reason: "completed" } })
```
### Schema Validation
@@ -148,11 +154,15 @@ Collections can optionally include a [standard schema](https://github.com/standa
```typescript
const todoCollection = useCollection({
- id: 'todos',
- sync: { /* sync config */ },
- mutationFn: { /* mutation functions */ },
- schema: todoSchema // Standard schema interface
-});
+ id: "todos",
+ sync: {
+ /* sync config */
+ },
+ mutationFn: {
+ /* mutation functions */
+ },
+ schema: todoSchema, // Standard schema interface
+})
```
## Transaction Management
@@ -163,6 +173,7 @@ The library includes a robust transaction management system:
- `TransactionStore`: Provides persistent storage for transactions using IndexedDB
Transactions progress through several states:
+
1. `pending`: Initial state when a transaction is created
2. `persisting`: Transaction is being persisted to the backend
3. `completed`: Transaction has been successfully persisted
@@ -241,31 +252,31 @@ export async function loader() {
// Example usage in a component
function TodoList() {
const { data, insert, update, delete: remove } = useCollection(todosConfig);
-
+
const addTodo = () => {
insert({ title: 'New todo', completed: false });
};
-
+
const toggleTodo = (todo) => {
update(todo, (draft) => {
draft.completed = !draft.completed;
});
};
-
+
const removeTodo = (todo) => {
remove(todo);
};
-
+
return (
{data.map(todo => (
-
- toggleTodo(todo)}
+ toggleTodo(todo)}
/>
{todo.title}
diff --git a/todo-app/README.md b/examples/react/todo/README.md
similarity index 62%
rename from todo-app/README.md
rename to examples/react/todo/README.md
index 1fc5860db..eb444f9fd 100644
--- a/todo-app/README.md
+++ b/examples/react/todo/README.md
@@ -3,10 +3,10 @@
## How to run
- Install packages
-`pnpm install`
+ `pnpm install`
- Start dev server & Docker containers
-`cd todo-app & pnpm dev`
+ `pnpm dev`
- Run db migrations
-`cd todo-app & pnpm db:push`
+ `pnpm db:push`
diff --git a/todo-app/docker-compose.yml b/examples/react/todo/docker-compose.yml
similarity index 98%
rename from todo-app/docker-compose.yml
rename to examples/react/todo/docker-compose.yml
index a4243d719..ab5f8104c 100644
--- a/todo-app/docker-compose.yml
+++ b/examples/react/todo/docker-compose.yml
@@ -1,4 +1,4 @@
-version: '3.8'
+version: "3.8"
services:
postgres:
image: postgres:17-alpine
diff --git a/todo-app/drizzle.config.ts b/examples/react/todo/drizzle.config.ts
similarity index 100%
rename from todo-app/drizzle.config.ts
rename to examples/react/todo/drizzle.config.ts
diff --git a/todo-app/drizzle/0000_whole_sprite.sql b/examples/react/todo/drizzle/0000_whole_sprite.sql
similarity index 100%
rename from todo-app/drizzle/0000_whole_sprite.sql
rename to examples/react/todo/drizzle/0000_whole_sprite.sql
diff --git a/todo-app/drizzle/0001_sturdy_titania.sql b/examples/react/todo/drizzle/0001_sturdy_titania.sql
similarity index 100%
rename from todo-app/drizzle/0001_sturdy_titania.sql
rename to examples/react/todo/drizzle/0001_sturdy_titania.sql
diff --git a/todo-app/drizzle/0002_update_timestamps_trigger.sql b/examples/react/todo/drizzle/0002_update_timestamps_trigger.sql
similarity index 100%
rename from todo-app/drizzle/0002_update_timestamps_trigger.sql
rename to examples/react/todo/drizzle/0002_update_timestamps_trigger.sql
diff --git a/todo-app/drizzle/meta/0000_snapshot.json b/examples/react/todo/drizzle/meta/0000_snapshot.json
similarity index 99%
rename from todo-app/drizzle/meta/0000_snapshot.json
rename to examples/react/todo/drizzle/meta/0000_snapshot.json
index 8012bc51f..407155f7c 100644
--- a/todo-app/drizzle/meta/0000_snapshot.json
+++ b/examples/react/todo/drizzle/meta/0000_snapshot.json
@@ -62,4 +62,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/todo-app/drizzle/meta/0001_snapshot.json b/examples/react/todo/drizzle/meta/0001_snapshot.json
similarity index 98%
rename from todo-app/drizzle/meta/0001_snapshot.json
rename to examples/react/todo/drizzle/meta/0001_snapshot.json
index 0b70be078..5774acf0d 100644
--- a/todo-app/drizzle/meta/0001_snapshot.json
+++ b/examples/react/todo/drizzle/meta/0001_snapshot.json
@@ -48,9 +48,7 @@
"config_key_unique": {
"name": "config_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "key"
- ]
+ "columns": ["key"]
}
},
"policies": {},
@@ -115,4 +113,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/todo-app/drizzle/meta/0002_snapshot.json b/examples/react/todo/drizzle/meta/0002_snapshot.json
similarity index 98%
rename from todo-app/drizzle/meta/0002_snapshot.json
rename to examples/react/todo/drizzle/meta/0002_snapshot.json
index a80301b6a..dde3eae11 100644
--- a/todo-app/drizzle/meta/0002_snapshot.json
+++ b/examples/react/todo/drizzle/meta/0002_snapshot.json
@@ -47,9 +47,7 @@
"uniqueConstraints": {
"config_key_unique": {
"name": "config_key_unique",
- "columns": [
- "key"
- ],
+ "columns": ["key"],
"nullsNotDistinct": false
}
},
@@ -115,4 +113,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/todo-app/drizzle/meta/_journal.json b/examples/react/todo/drizzle/meta/_journal.json
similarity index 99%
rename from todo-app/drizzle/meta/_journal.json
rename to examples/react/todo/drizzle/meta/_journal.json
index d90d3c883..bf477dc8f 100644
--- a/todo-app/drizzle/meta/_journal.json
+++ b/examples/react/todo/drizzle/meta/_journal.json
@@ -24,4 +24,4 @@
"breakpoints": true
}
]
-}
\ No newline at end of file
+}
diff --git a/todo-app/index.html b/examples/react/todo/index.html
similarity index 87%
rename from todo-app/index.html
rename to examples/react/todo/index.html
index f1049ee7d..1d0525a77 100644
--- a/todo-app/index.html
+++ b/examples/react/todo/index.html
@@ -4,7 +4,7 @@
-
+
TODO App
diff --git a/examples/react/todo/package.json b/examples/react/todo/package.json
new file mode 100644
index 000000000..e347ef53e
--- /dev/null
+++ b/examples/react/todo/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "todo-app",
+ "private": true,
+ "version": "0.0.0",
+ "dependencies": {
+ "@tanstack/react-optimistic": "workspace:*",
+ "cors": "^2.8.5",
+ "drizzle-orm": "^0.40.1",
+ "drizzle-zod": "^0.7.0",
+ "express": "^4.19.2",
+ "postgres": "^3.4.5",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "tailwindcss": "^4.0.17",
+ "zod": "^3.24.2"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.22.0",
+ "@tailwindcss/vite": "^4.0.0-alpha.8",
+ "@types/cors": "^2.8.17",
+ "@types/express": "^4.17.21",
+ "@types/node": "^22.13.10",
+ "@types/pg": "^8.11.11",
+ "@types/react": "^19.0.12",
+ "@types/react-dom": "^19.0.0",
+ "@typescript-eslint/eslint-plugin": "^8.26.1",
+ "@typescript-eslint/parser": "^8.26.1",
+ "@vitejs/plugin-react": "^4.3.4",
+ "concurrently": "^9.1.2",
+ "dotenv": "^16.3.1",
+ "drizzle-kit": "^0.30.5",
+ "eslint": "^9.22.0",
+ "eslint-plugin-react-hooks": "^5.2.0",
+ "eslint-plugin-react-refresh": "^0.4.5",
+ "tsx": "^4.6.2",
+ "typescript": "^5.8.2",
+ "vite": "^6.2.2"
+ },
+ "private": true,
+ "scripts": {
+ "api:dev": "tsx watch src/api/server.ts",
+ "build": "tsc -b && vite build",
+ "db:ensure-config": "tsx scripts/ensure-default-config.ts",
+ "db:generate": "drizzle-kit generate",
+ "db:push": "tsx scripts/migrate.ts",
+ "db:studio": "drizzle-kit studio",
+ "dev": "docker-compose up -d && concurrently \"pnpm api:dev\" \"vite\"",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "type": "module"
+}
diff --git a/examples/react/todo/pnpm-lock.yaml b/examples/react/todo/pnpm-lock.yaml
new file mode 100644
index 000000000..7b09a6b08
--- /dev/null
+++ b/examples/react/todo/pnpm-lock.yaml
@@ -0,0 +1,5671 @@
+lockfileVersion: "9.0"
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+ .:
+ dependencies:
+ "@types/use-sync-external-store":
+ specifier: ^0.0.6
+ version: 0.0.6
+ cors:
+ specifier: ^2.8.5
+ version: 2.8.5
+ drizzle-orm:
+ specifier: ^0.39.3
+ version: 0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3)
+ drizzle-zod:
+ specifier: ^0.7.0
+ version: 0.7.0(drizzle-orm@0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3))(zod@3.24.2)
+ express:
+ specifier: ^4.19.2
+ version: 4.21.2
+ kysely:
+ specifier: ^0.27.3
+ version: 0.27.5
+ mitt:
+ specifier: ^3.0.1
+ version: 3.0.1
+ pg:
+ specifier: ^8.13.3
+ version: 8.13.3
+ react:
+ specifier: ^19.0.0
+ version: 19.0.0
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
+ zod:
+ specifier: ^3.24.2
+ version: 3.24.2
+ devDependencies:
+ "@eslint/js":
+ specifier: ^9.19.0
+ version: 9.21.0
+ "@tailwindcss/vite":
+ specifier: ^4.0.8
+ version: 4.0.8(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))
+ "@types/cors":
+ specifier: ^2.8.17
+ version: 2.8.17
+ "@types/express":
+ specifier: ^4.17.21
+ version: 4.17.21
+ "@types/pg":
+ specifier: ^8.11.11
+ version: 8.11.11
+ "@types/react":
+ specifier: ^19.0.8
+ version: 19.0.10
+ "@types/react-dom":
+ specifier: ^19.0.3
+ version: 19.0.4(@types/react@19.0.10)
+ "@vitejs/plugin-react":
+ specifier: ^4.3.4
+ version: 4.3.4(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))
+ concurrently:
+ specifier: ^9.1.2
+ version: 9.1.2
+ dotenv:
+ specifier: ^16.4.7
+ version: 16.4.7
+ drizzle-kit:
+ specifier: ^0.30.4
+ version: 0.30.4
+ eslint:
+ specifier: ^9.19.0
+ version: 9.21.0(jiti@2.4.2)
+ eslint-plugin-react-hooks:
+ specifier: ^5.0.0
+ version: 5.1.0(eslint@9.21.0(jiti@2.4.2))
+ eslint-plugin-react-refresh:
+ specifier: ^0.4.18
+ version: 0.4.19(eslint@9.21.0(jiti@2.4.2))
+ globals:
+ specifier: ^15.14.0
+ version: 15.15.0
+ tailwindcss:
+ specifier: ^4.0.8
+ version: 4.0.8
+ tsx:
+ specifier: ^4.19.3
+ version: 4.19.3
+ typescript:
+ specifier: ~5.7.2
+ version: 5.7.3
+ typescript-eslint:
+ specifier: ^8.22.0
+ version: 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ vite:
+ specifier: ^6.1.0
+ version: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3)
+
+packages:
+ "@ampproject/remapping@2.3.0":
+ resolution:
+ {
+ integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==,
+ }
+ engines: { node: ">=6.0.0" }
+
+ "@babel/code-frame@7.26.2":
+ resolution:
+ {
+ integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/compat-data@7.26.8":
+ resolution:
+ {
+ integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/core@7.26.9":
+ resolution:
+ {
+ integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/generator@7.26.9":
+ resolution:
+ {
+ integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-compilation-targets@7.26.5":
+ resolution:
+ {
+ integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-module-imports@7.25.9":
+ resolution:
+ {
+ integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-module-transforms@7.26.0":
+ resolution:
+ {
+ integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0
+
+ "@babel/helper-plugin-utils@7.26.5":
+ resolution:
+ {
+ integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-string-parser@7.25.9":
+ resolution:
+ {
+ integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-validator-identifier@7.25.9":
+ resolution:
+ {
+ integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-validator-option@7.25.9":
+ resolution:
+ {
+ integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helpers@7.26.9":
+ resolution:
+ {
+ integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/parser@7.26.9":
+ resolution:
+ {
+ integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==,
+ }
+ engines: { node: ">=6.0.0" }
+ hasBin: true
+
+ "@babel/plugin-transform-react-jsx-self@7.25.9":
+ resolution:
+ {
+ integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/plugin-transform-react-jsx-source@7.25.9":
+ resolution:
+ {
+ integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/template@7.26.9":
+ resolution:
+ {
+ integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/traverse@7.26.9":
+ resolution:
+ {
+ integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/types@7.26.9":
+ resolution:
+ {
+ integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@drizzle-team/brocli@0.10.2":
+ resolution:
+ {
+ integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==,
+ }
+
+ "@esbuild-kit/core-utils@3.3.2":
+ resolution:
+ {
+ integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==,
+ }
+ deprecated: "Merged into tsx: https://tsx.is"
+
+ "@esbuild-kit/esm-loader@2.6.5":
+ resolution:
+ {
+ integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==,
+ }
+ deprecated: "Merged into tsx: https://tsx.is"
+
+ "@esbuild/aix-ppc64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ppc64]
+ os: [aix]
+
+ "@esbuild/aix-ppc64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ppc64]
+ os: [aix]
+
+ "@esbuild/aix-ppc64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ppc64]
+ os: [aix]
+
+ "@esbuild/android-arm64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [android]
+
+ "@esbuild/android-arm64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [android]
+
+ "@esbuild/android-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [android]
+
+ "@esbuild/android-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [android]
+
+ "@esbuild/android-arm@0.18.20":
+ resolution:
+ {
+ integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm]
+ os: [android]
+
+ "@esbuild/android-arm@0.19.12":
+ resolution:
+ {
+ integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm]
+ os: [android]
+
+ "@esbuild/android-arm@0.24.2":
+ resolution:
+ {
+ integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm]
+ os: [android]
+
+ "@esbuild/android-arm@0.25.0":
+ resolution:
+ {
+ integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm]
+ os: [android]
+
+ "@esbuild/android-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [android]
+
+ "@esbuild/android-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [android]
+
+ "@esbuild/android-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [android]
+
+ "@esbuild/android-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [android]
+
+ "@esbuild/darwin-arm64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@esbuild/darwin-arm64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@esbuild/darwin-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@esbuild/darwin-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@esbuild/darwin-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@esbuild/darwin-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@esbuild/darwin-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@esbuild/darwin-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@esbuild/freebsd-arm64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-arm64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@esbuild/linux-arm64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@esbuild/linux-arm64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@esbuild/linux-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@esbuild/linux-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@esbuild/linux-arm@0.18.20":
+ resolution:
+ {
+ integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm]
+ os: [linux]
+
+ "@esbuild/linux-arm@0.19.12":
+ resolution:
+ {
+ integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm]
+ os: [linux]
+
+ "@esbuild/linux-arm@0.24.2":
+ resolution:
+ {
+ integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm]
+ os: [linux]
+
+ "@esbuild/linux-arm@0.25.0":
+ resolution:
+ {
+ integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm]
+ os: [linux]
+
+ "@esbuild/linux-ia32@0.18.20":
+ resolution:
+ {
+ integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ia32]
+ os: [linux]
+
+ "@esbuild/linux-ia32@0.19.12":
+ resolution:
+ {
+ integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ia32]
+ os: [linux]
+
+ "@esbuild/linux-ia32@0.24.2":
+ resolution:
+ {
+ integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ia32]
+ os: [linux]
+
+ "@esbuild/linux-ia32@0.25.0":
+ resolution:
+ {
+ integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ia32]
+ os: [linux]
+
+ "@esbuild/linux-loong64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [loong64]
+ os: [linux]
+
+ "@esbuild/linux-loong64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [loong64]
+ os: [linux]
+
+ "@esbuild/linux-loong64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [loong64]
+ os: [linux]
+
+ "@esbuild/linux-loong64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [loong64]
+ os: [linux]
+
+ "@esbuild/linux-mips64el@0.18.20":
+ resolution:
+ {
+ integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [mips64el]
+ os: [linux]
+
+ "@esbuild/linux-mips64el@0.19.12":
+ resolution:
+ {
+ integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==,
+ }
+ engines: { node: ">=12" }
+ cpu: [mips64el]
+ os: [linux]
+
+ "@esbuild/linux-mips64el@0.24.2":
+ resolution:
+ {
+ integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [mips64el]
+ os: [linux]
+
+ "@esbuild/linux-mips64el@0.25.0":
+ resolution:
+ {
+ integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [mips64el]
+ os: [linux]
+
+ "@esbuild/linux-ppc64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ppc64]
+ os: [linux]
+
+ "@esbuild/linux-ppc64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ppc64]
+ os: [linux]
+
+ "@esbuild/linux-ppc64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ppc64]
+ os: [linux]
+
+ "@esbuild/linux-ppc64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ppc64]
+ os: [linux]
+
+ "@esbuild/linux-riscv64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==,
+ }
+ engines: { node: ">=12" }
+ cpu: [riscv64]
+ os: [linux]
+
+ "@esbuild/linux-riscv64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [riscv64]
+ os: [linux]
+
+ "@esbuild/linux-riscv64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==,
+ }
+ engines: { node: ">=18" }
+ cpu: [riscv64]
+ os: [linux]
+
+ "@esbuild/linux-riscv64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [riscv64]
+ os: [linux]
+
+ "@esbuild/linux-s390x@0.18.20":
+ resolution:
+ {
+ integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [s390x]
+ os: [linux]
+
+ "@esbuild/linux-s390x@0.19.12":
+ resolution:
+ {
+ integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [s390x]
+ os: [linux]
+
+ "@esbuild/linux-s390x@0.24.2":
+ resolution:
+ {
+ integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [s390x]
+ os: [linux]
+
+ "@esbuild/linux-s390x@0.25.0":
+ resolution:
+ {
+ integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [s390x]
+ os: [linux]
+
+ "@esbuild/linux-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [linux]
+
+ "@esbuild/linux-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [linux]
+
+ "@esbuild/linux-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [linux]
+
+ "@esbuild/linux-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [linux]
+
+ "@esbuild/netbsd-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [netbsd]
+
+ "@esbuild/netbsd-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [netbsd]
+
+ "@esbuild/netbsd-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [netbsd]
+
+ "@esbuild/netbsd-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [netbsd]
+
+ "@esbuild/netbsd-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [netbsd]
+
+ "@esbuild/netbsd-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [netbsd]
+
+ "@esbuild/openbsd-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [openbsd]
+
+ "@esbuild/openbsd-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [openbsd]
+
+ "@esbuild/openbsd-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [openbsd]
+
+ "@esbuild/openbsd-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [openbsd]
+
+ "@esbuild/openbsd-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [openbsd]
+
+ "@esbuild/openbsd-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [openbsd]
+
+ "@esbuild/sunos-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [sunos]
+
+ "@esbuild/sunos-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [sunos]
+
+ "@esbuild/sunos-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [sunos]
+
+ "@esbuild/sunos-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [sunos]
+
+ "@esbuild/win32-arm64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@esbuild/win32-arm64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==,
+ }
+ engines: { node: ">=12" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@esbuild/win32-arm64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@esbuild/win32-arm64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@esbuild/win32-ia32@0.18.20":
+ resolution:
+ {
+ integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ia32]
+ os: [win32]
+
+ "@esbuild/win32-ia32@0.19.12":
+ resolution:
+ {
+ integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [ia32]
+ os: [win32]
+
+ "@esbuild/win32-ia32@0.24.2":
+ resolution:
+ {
+ integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ia32]
+ os: [win32]
+
+ "@esbuild/win32-ia32@0.25.0":
+ resolution:
+ {
+ integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ia32]
+ os: [win32]
+
+ "@esbuild/win32-x64@0.18.20":
+ resolution:
+ {
+ integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [win32]
+
+ "@esbuild/win32-x64@0.19.12":
+ resolution:
+ {
+ integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==,
+ }
+ engines: { node: ">=12" }
+ cpu: [x64]
+ os: [win32]
+
+ "@esbuild/win32-x64@0.24.2":
+ resolution:
+ {
+ integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [win32]
+
+ "@esbuild/win32-x64@0.25.0":
+ resolution:
+ {
+ integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [win32]
+
+ "@eslint-community/eslint-utils@4.4.1":
+ resolution:
+ {
+ integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==,
+ }
+ 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.1":
+ resolution:
+ {
+ integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==,
+ }
+ engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 }
+
+ "@eslint/config-array@0.19.2":
+ resolution:
+ {
+ integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@eslint/core@0.12.0":
+ resolution:
+ {
+ integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@eslint/eslintrc@3.3.0":
+ resolution:
+ {
+ integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@eslint/js@9.21.0":
+ resolution:
+ {
+ integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@eslint/object-schema@2.1.6":
+ resolution:
+ {
+ integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@eslint/plugin-kit@0.2.7":
+ resolution:
+ {
+ integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@humanfs/core@0.19.1":
+ resolution:
+ {
+ integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==,
+ }
+ engines: { node: ">=18.18.0" }
+
+ "@humanfs/node@0.16.6":
+ resolution:
+ {
+ integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==,
+ }
+ engines: { node: ">=18.18.0" }
+
+ "@humanwhocodes/module-importer@1.0.1":
+ resolution:
+ {
+ integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==,
+ }
+ engines: { node: ">=12.22" }
+
+ "@humanwhocodes/retry@0.3.1":
+ resolution:
+ {
+ integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==,
+ }
+ engines: { node: ">=18.18" }
+
+ "@humanwhocodes/retry@0.4.2":
+ resolution:
+ {
+ integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==,
+ }
+ engines: { node: ">=18.18" }
+
+ "@jridgewell/gen-mapping@0.3.8":
+ resolution:
+ {
+ integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==,
+ }
+ engines: { node: ">=6.0.0" }
+
+ "@jridgewell/resolve-uri@3.1.2":
+ resolution:
+ {
+ integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==,
+ }
+ engines: { node: ">=6.0.0" }
+
+ "@jridgewell/set-array@1.2.1":
+ resolution:
+ {
+ integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==,
+ }
+ engines: { node: ">=6.0.0" }
+
+ "@jridgewell/sourcemap-codec@1.5.0":
+ resolution:
+ {
+ integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==,
+ }
+
+ "@jridgewell/trace-mapping@0.3.25":
+ resolution:
+ {
+ integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==,
+ }
+
+ "@nodelib/fs.scandir@2.1.5":
+ resolution:
+ {
+ integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==,
+ }
+ engines: { node: ">= 8" }
+
+ "@nodelib/fs.stat@2.0.5":
+ resolution:
+ {
+ integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==,
+ }
+ engines: { node: ">= 8" }
+
+ "@nodelib/fs.walk@1.2.8":
+ resolution:
+ {
+ integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==,
+ }
+ engines: { node: ">= 8" }
+
+ "@rollup/rollup-android-arm-eabi@4.34.8":
+ resolution:
+ {
+ integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==,
+ }
+ cpu: [arm]
+ os: [android]
+
+ "@rollup/rollup-android-arm64@4.34.8":
+ resolution:
+ {
+ integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==,
+ }
+ cpu: [arm64]
+ os: [android]
+
+ "@rollup/rollup-darwin-arm64@4.34.8":
+ resolution:
+ {
+ integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==,
+ }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@rollup/rollup-darwin-x64@4.34.8":
+ resolution:
+ {
+ integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==,
+ }
+ cpu: [x64]
+ os: [darwin]
+
+ "@rollup/rollup-freebsd-arm64@4.34.8":
+ resolution:
+ {
+ integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==,
+ }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@rollup/rollup-freebsd-x64@4.34.8":
+ resolution:
+ {
+ integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==,
+ }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@rollup/rollup-linux-arm-gnueabihf@4.34.8":
+ resolution:
+ {
+ integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==,
+ }
+ cpu: [arm]
+ os: [linux]
+
+ "@rollup/rollup-linux-arm-musleabihf@4.34.8":
+ resolution:
+ {
+ integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==,
+ }
+ cpu: [arm]
+ os: [linux]
+
+ "@rollup/rollup-linux-arm64-gnu@4.34.8":
+ resolution:
+ {
+ integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==,
+ }
+ cpu: [arm64]
+ os: [linux]
+
+ "@rollup/rollup-linux-arm64-musl@4.34.8":
+ resolution:
+ {
+ integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==,
+ }
+ cpu: [arm64]
+ os: [linux]
+
+ "@rollup/rollup-linux-loongarch64-gnu@4.34.8":
+ resolution:
+ {
+ integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==,
+ }
+ cpu: [loong64]
+ os: [linux]
+
+ "@rollup/rollup-linux-powerpc64le-gnu@4.34.8":
+ resolution:
+ {
+ integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==,
+ }
+ cpu: [ppc64]
+ os: [linux]
+
+ "@rollup/rollup-linux-riscv64-gnu@4.34.8":
+ resolution:
+ {
+ integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==,
+ }
+ cpu: [riscv64]
+ os: [linux]
+
+ "@rollup/rollup-linux-s390x-gnu@4.34.8":
+ resolution:
+ {
+ integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==,
+ }
+ cpu: [s390x]
+ os: [linux]
+
+ "@rollup/rollup-linux-x64-gnu@4.34.8":
+ resolution:
+ {
+ integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==,
+ }
+ cpu: [x64]
+ os: [linux]
+
+ "@rollup/rollup-linux-x64-musl@4.34.8":
+ resolution:
+ {
+ integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==,
+ }
+ cpu: [x64]
+ os: [linux]
+
+ "@rollup/rollup-win32-arm64-msvc@4.34.8":
+ resolution:
+ {
+ integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==,
+ }
+ cpu: [arm64]
+ os: [win32]
+
+ "@rollup/rollup-win32-ia32-msvc@4.34.8":
+ resolution:
+ {
+ integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==,
+ }
+ cpu: [ia32]
+ os: [win32]
+
+ "@rollup/rollup-win32-x64-msvc@4.34.8":
+ resolution:
+ {
+ integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==,
+ }
+ cpu: [x64]
+ os: [win32]
+
+ "@tailwindcss/node@4.0.8":
+ resolution:
+ {
+ integrity: sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==,
+ }
+
+ "@tailwindcss/oxide-android-arm64@4.0.8":
+ resolution:
+ {
+ integrity: sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [arm64]
+ os: [android]
+
+ "@tailwindcss/oxide-darwin-arm64@4.0.8":
+ resolution:
+ {
+ integrity: sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@tailwindcss/oxide-darwin-x64@4.0.8":
+ resolution:
+ {
+ integrity: sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@tailwindcss/oxide-freebsd-x64@4.0.8":
+ resolution:
+ {
+ integrity: sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8":
+ resolution:
+ {
+ integrity: sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [arm]
+ os: [linux]
+
+ "@tailwindcss/oxide-linux-arm64-gnu@4.0.8":
+ resolution:
+ {
+ integrity: sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@tailwindcss/oxide-linux-arm64-musl@4.0.8":
+ resolution:
+ {
+ integrity: sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@tailwindcss/oxide-linux-x64-gnu@4.0.8":
+ resolution:
+ {
+ integrity: sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [x64]
+ os: [linux]
+
+ "@tailwindcss/oxide-linux-x64-musl@4.0.8":
+ resolution:
+ {
+ integrity: sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [x64]
+ os: [linux]
+
+ "@tailwindcss/oxide-win32-arm64-msvc@4.0.8":
+ resolution:
+ {
+ integrity: sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@tailwindcss/oxide-win32-x64-msvc@4.0.8":
+ resolution:
+ {
+ integrity: sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==,
+ }
+ engines: { node: ">= 10" }
+ cpu: [x64]
+ os: [win32]
+
+ "@tailwindcss/oxide@4.0.8":
+ resolution:
+ {
+ integrity: sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==,
+ }
+ engines: { node: ">= 10" }
+
+ "@tailwindcss/vite@4.0.8":
+ resolution:
+ {
+ integrity: sha512-+SAq44yLzYlzyrb7QTcFCdU8Xa7FOA0jp+Xby7fPMUie+MY9HhJysM7Vp+vL8qIp8ceQJfLD+FjgJuJ4lL6nyg==,
+ }
+ peerDependencies:
+ vite: ^5.2.0 || ^6
+
+ "@types/babel__core@7.20.5":
+ resolution:
+ {
+ integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==,
+ }
+
+ "@types/babel__generator@7.6.8":
+ resolution:
+ {
+ integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==,
+ }
+
+ "@types/babel__template@7.4.4":
+ resolution:
+ {
+ integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==,
+ }
+
+ "@types/babel__traverse@7.20.6":
+ resolution:
+ {
+ integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==,
+ }
+
+ "@types/body-parser@1.19.5":
+ resolution:
+ {
+ integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==,
+ }
+
+ "@types/connect@3.4.38":
+ resolution:
+ {
+ integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==,
+ }
+
+ "@types/cors@2.8.17":
+ resolution:
+ {
+ integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==,
+ }
+
+ "@types/estree@1.0.6":
+ resolution:
+ {
+ integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==,
+ }
+
+ "@types/express-serve-static-core@4.19.6":
+ resolution:
+ {
+ integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==,
+ }
+
+ "@types/express@4.17.21":
+ resolution:
+ {
+ integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==,
+ }
+
+ "@types/http-errors@2.0.4":
+ resolution:
+ {
+ integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==,
+ }
+
+ "@types/json-schema@7.0.15":
+ resolution:
+ {
+ integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==,
+ }
+
+ "@types/mime@1.3.5":
+ resolution:
+ {
+ integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==,
+ }
+
+ "@types/node@22.13.5":
+ resolution:
+ {
+ integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==,
+ }
+
+ "@types/pg@8.11.11":
+ resolution:
+ {
+ integrity: sha512-kGT1qKM8wJQ5qlawUrEkXgvMSXoV213KfMGXcwfDwUIfUHXqXYXOfS1nE1LINRJVVVx5wCm70XnFlMHaIcQAfw==,
+ }
+
+ "@types/qs@6.9.18":
+ resolution:
+ {
+ integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==,
+ }
+
+ "@types/range-parser@1.2.7":
+ resolution:
+ {
+ integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==,
+ }
+
+ "@types/react-dom@19.0.4":
+ resolution:
+ {
+ integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==,
+ }
+ peerDependencies:
+ "@types/react": ^19.0.0
+
+ "@types/react@19.0.10":
+ resolution:
+ {
+ integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==,
+ }
+
+ "@types/send@0.17.4":
+ resolution:
+ {
+ integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==,
+ }
+
+ "@types/serve-static@1.15.7":
+ resolution:
+ {
+ integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==,
+ }
+
+ "@types/use-sync-external-store@0.0.6":
+ resolution:
+ {
+ integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==,
+ }
+
+ "@typescript-eslint/eslint-plugin@8.25.0":
+ resolution:
+ {
+ integrity: sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.8.0"
+
+ "@typescript-eslint/parser@8.25.0":
+ resolution:
+ {
+ integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.8.0"
+
+ "@typescript-eslint/scope-manager@8.25.0":
+ resolution:
+ {
+ integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@typescript-eslint/type-utils@8.25.0":
+ resolution:
+ {
+ integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.8.0"
+
+ "@typescript-eslint/types@8.25.0":
+ resolution:
+ {
+ integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@typescript-eslint/typescript-estree@8.25.0":
+ resolution:
+ {
+ integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ typescript: ">=4.8.4 <5.8.0"
+
+ "@typescript-eslint/utils@8.25.0":
+ resolution:
+ {
+ integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.8.0"
+
+ "@typescript-eslint/visitor-keys@8.25.0":
+ resolution:
+ {
+ integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ "@vitejs/plugin-react@4.3.4":
+ resolution:
+ {
+ integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==,
+ }
+ engines: { node: ^14.18.0 || >=16.0.0 }
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0
+
+ accepts@1.3.8:
+ resolution:
+ {
+ integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==,
+ }
+ engines: { node: ">= 0.6" }
+
+ acorn-jsx@5.3.2:
+ resolution:
+ {
+ integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==,
+ }
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.14.0:
+ resolution:
+ {
+ integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==,
+ }
+ engines: { node: ">=0.4.0" }
+ hasBin: true
+
+ ajv@6.12.6:
+ resolution:
+ {
+ integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==,
+ }
+
+ ansi-regex@5.0.1:
+ resolution:
+ {
+ integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==,
+ }
+ engines: { node: ">=8" }
+
+ ansi-styles@4.3.0:
+ resolution:
+ {
+ integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==,
+ }
+ engines: { node: ">=8" }
+
+ argparse@2.0.1:
+ resolution:
+ {
+ integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
+ }
+
+ array-flatten@1.1.1:
+ resolution:
+ {
+ integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==,
+ }
+
+ balanced-match@1.0.2:
+ resolution:
+ {
+ integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==,
+ }
+
+ body-parser@1.20.3:
+ resolution:
+ {
+ integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==,
+ }
+ engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 }
+
+ brace-expansion@1.1.11:
+ resolution:
+ {
+ integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==,
+ }
+
+ brace-expansion@2.0.1:
+ resolution:
+ {
+ integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==,
+ }
+
+ braces@3.0.3:
+ resolution:
+ {
+ integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==,
+ }
+ engines: { node: ">=8" }
+
+ browserslist@4.24.4:
+ resolution:
+ {
+ integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==,
+ }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
+
+ buffer-from@1.1.2:
+ resolution:
+ {
+ integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==,
+ }
+
+ bytes@3.1.2:
+ resolution:
+ {
+ integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ call-bind-apply-helpers@1.0.2:
+ resolution:
+ {
+ integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ call-bound@1.0.3:
+ resolution:
+ {
+ integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==,
+ }
+ engines: { node: ">= 0.4" }
+
+ callsites@3.1.0:
+ resolution:
+ {
+ integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==,
+ }
+ engines: { node: ">=6" }
+
+ caniuse-lite@1.0.30001700:
+ resolution:
+ {
+ integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==,
+ }
+
+ chalk@4.1.2:
+ resolution:
+ {
+ integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==,
+ }
+ engines: { node: ">=10" }
+
+ cliui@8.0.1:
+ resolution:
+ {
+ integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==,
+ }
+ engines: { node: ">=12" }
+
+ color-convert@2.0.1:
+ resolution:
+ {
+ integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==,
+ }
+ engines: { node: ">=7.0.0" }
+
+ color-name@1.1.4:
+ resolution:
+ {
+ integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==,
+ }
+
+ concat-map@0.0.1:
+ resolution:
+ {
+ integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==,
+ }
+
+ concurrently@9.1.2:
+ resolution:
+ {
+ integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==,
+ }
+ engines: { node: ">=18" }
+ hasBin: true
+
+ content-disposition@0.5.4:
+ resolution:
+ {
+ integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==,
+ }
+ engines: { node: ">= 0.6" }
+
+ content-type@1.0.5:
+ resolution:
+ {
+ integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==,
+ }
+ engines: { node: ">= 0.6" }
+
+ convert-source-map@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==,
+ }
+
+ cookie-signature@1.0.6:
+ resolution:
+ {
+ integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==,
+ }
+
+ cookie@0.7.1:
+ resolution:
+ {
+ integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==,
+ }
+ engines: { node: ">= 0.6" }
+
+ cors@2.8.5:
+ resolution:
+ {
+ integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==,
+ }
+ engines: { node: ">= 0.10" }
+
+ cross-spawn@7.0.6:
+ resolution:
+ {
+ integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==,
+ }
+ engines: { node: ">= 8" }
+
+ csstype@3.1.3:
+ resolution:
+ {
+ integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==,
+ }
+
+ debug@2.6.9:
+ resolution:
+ {
+ integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==,
+ }
+ peerDependencies:
+ supports-color: "*"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.0:
+ resolution:
+ {
+ integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==,
+ }
+ engines: { node: ">=6.0" }
+ peerDependencies:
+ supports-color: "*"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ deep-is@0.1.4:
+ resolution:
+ {
+ integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==,
+ }
+
+ depd@2.0.0:
+ resolution:
+ {
+ integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==,
+ }
+ engines: { node: ">= 0.8" }
+
+ destroy@1.2.0:
+ resolution:
+ {
+ integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==,
+ }
+ engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 }
+
+ detect-libc@1.0.3:
+ resolution:
+ {
+ integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==,
+ }
+ engines: { node: ">=0.10" }
+ hasBin: true
+
+ dotenv@16.4.7:
+ resolution:
+ {
+ integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==,
+ }
+ engines: { node: ">=12" }
+
+ drizzle-kit@0.30.4:
+ resolution:
+ {
+ integrity: sha512-B2oJN5UkvwwNHscPWXDG5KqAixu7AUzZ3qbe++KU9SsQ+cZWR4DXEPYcvWplyFAno0dhRJECNEhNxiDmFaPGyQ==,
+ }
+ hasBin: true
+
+ drizzle-orm@0.39.3:
+ resolution:
+ {
+ integrity: sha512-EZ8ZpYvDIvKU9C56JYLOmUskazhad+uXZCTCRN4OnRMsL+xAJ05dv1eCpAG5xzhsm1hqiuC5kAZUCS924u2DTw==,
+ }
+ peerDependencies:
+ "@aws-sdk/client-rds-data": ">=3"
+ "@cloudflare/workers-types": ">=4"
+ "@electric-sql/pglite": ">=0.2.0"
+ "@libsql/client": ">=0.10.0"
+ "@libsql/client-wasm": ">=0.10.0"
+ "@neondatabase/serverless": ">=0.10.0"
+ "@op-engineering/op-sqlite": ">=2"
+ "@opentelemetry/api": ^1.4.1
+ "@planetscale/database": ">=1"
+ "@prisma/client": "*"
+ "@tidbcloud/serverless": "*"
+ "@types/better-sqlite3": "*"
+ "@types/pg": "*"
+ "@types/sql.js": "*"
+ "@vercel/postgres": ">=0.8.0"
+ "@xata.io/client": "*"
+ better-sqlite3: ">=7"
+ bun-types: "*"
+ expo-sqlite: ">=14.0.0"
+ knex: "*"
+ kysely: "*"
+ mysql2: ">=2"
+ pg: ">=8"
+ postgres: ">=3"
+ prisma: "*"
+ sql.js: ">=1"
+ sqlite3: ">=5"
+ peerDependenciesMeta:
+ "@aws-sdk/client-rds-data":
+ optional: true
+ "@cloudflare/workers-types":
+ optional: true
+ "@electric-sql/pglite":
+ optional: true
+ "@libsql/client":
+ optional: true
+ "@libsql/client-wasm":
+ optional: true
+ "@neondatabase/serverless":
+ optional: true
+ "@op-engineering/op-sqlite":
+ optional: true
+ "@opentelemetry/api":
+ optional: true
+ "@planetscale/database":
+ optional: true
+ "@prisma/client":
+ optional: true
+ "@tidbcloud/serverless":
+ optional: true
+ "@types/better-sqlite3":
+ optional: true
+ "@types/pg":
+ optional: true
+ "@types/sql.js":
+ optional: true
+ "@vercel/postgres":
+ optional: true
+ "@xata.io/client":
+ optional: true
+ better-sqlite3:
+ optional: true
+ bun-types:
+ optional: true
+ expo-sqlite:
+ optional: true
+ knex:
+ optional: true
+ kysely:
+ optional: true
+ mysql2:
+ optional: true
+ pg:
+ optional: true
+ postgres:
+ optional: true
+ prisma:
+ optional: true
+ sql.js:
+ optional: true
+ sqlite3:
+ optional: true
+
+ drizzle-zod@0.7.0:
+ resolution:
+ {
+ integrity: sha512-xgCRYYVEzRkeXTS33GSMgoowe3vKsMNBjSI+cwG1oLQVEhAWWbqtb/AAMlm7tkmV4fG/uJjEmWzdzlEmTgWOoQ==,
+ }
+ peerDependencies:
+ drizzle-orm: ">=0.36.0"
+ zod: ">=3.0.0"
+
+ dunder-proto@1.0.1:
+ resolution:
+ {
+ integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==,
+ }
+ engines: { node: ">= 0.4" }
+
+ ee-first@1.1.1:
+ resolution:
+ {
+ integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==,
+ }
+
+ electron-to-chromium@1.5.104:
+ resolution:
+ {
+ integrity: sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g==,
+ }
+
+ emoji-regex@8.0.0:
+ resolution:
+ {
+ integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==,
+ }
+
+ encodeurl@1.0.2:
+ resolution:
+ {
+ integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==,
+ }
+ engines: { node: ">= 0.8" }
+
+ encodeurl@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ enhanced-resolve@5.18.1:
+ resolution:
+ {
+ integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==,
+ }
+ engines: { node: ">=10.13.0" }
+
+ es-define-property@1.0.1:
+ resolution:
+ {
+ integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==,
+ }
+ engines: { node: ">= 0.4" }
+
+ es-errors@1.3.0:
+ resolution:
+ {
+ integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==,
+ }
+ engines: { node: ">= 0.4" }
+
+ es-object-atoms@1.1.1:
+ resolution:
+ {
+ integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==,
+ }
+ engines: { node: ">= 0.4" }
+
+ esbuild-register@3.6.0:
+ resolution:
+ {
+ integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==,
+ }
+ peerDependencies:
+ esbuild: ">=0.12 <1"
+
+ esbuild@0.18.20:
+ resolution:
+ {
+ integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==,
+ }
+ engines: { node: ">=12" }
+ hasBin: true
+
+ esbuild@0.19.12:
+ resolution:
+ {
+ integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==,
+ }
+ engines: { node: ">=12" }
+ hasBin: true
+
+ esbuild@0.24.2:
+ resolution:
+ {
+ integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==,
+ }
+ engines: { node: ">=18" }
+ hasBin: true
+
+ esbuild@0.25.0:
+ resolution:
+ {
+ integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==,
+ }
+ engines: { node: ">=18" }
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution:
+ {
+ integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==,
+ }
+ engines: { node: ">=6" }
+
+ escape-html@1.0.3:
+ resolution:
+ {
+ integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==,
+ }
+
+ escape-string-regexp@4.0.0:
+ resolution:
+ {
+ integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==,
+ }
+ engines: { node: ">=10" }
+
+ eslint-plugin-react-hooks@5.1.0:
+ resolution:
+ {
+ integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+
+ eslint-plugin-react-refresh@0.4.19:
+ resolution:
+ {
+ integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==,
+ }
+ peerDependencies:
+ eslint: ">=8.40"
+
+ eslint-scope@8.2.0:
+ resolution:
+ {
+ integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ eslint-visitor-keys@3.4.3:
+ resolution:
+ {
+ integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==,
+ }
+ engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+
+ eslint-visitor-keys@4.2.0:
+ resolution:
+ {
+ integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ eslint@9.21.0:
+ resolution:
+ {
+ integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ hasBin: true
+ peerDependencies:
+ jiti: "*"
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.3.0:
+ resolution:
+ {
+ integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+
+ esquery@1.6.0:
+ resolution:
+ {
+ integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==,
+ }
+ engines: { node: ">=0.10" }
+
+ esrecurse@4.3.0:
+ resolution:
+ {
+ integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==,
+ }
+ engines: { node: ">=4.0" }
+
+ estraverse@5.3.0:
+ resolution:
+ {
+ integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==,
+ }
+ engines: { node: ">=4.0" }
+
+ esutils@2.0.3:
+ resolution:
+ {
+ integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ etag@1.8.1:
+ resolution:
+ {
+ integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==,
+ }
+ engines: { node: ">= 0.6" }
+
+ express@4.21.2:
+ resolution:
+ {
+ integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==,
+ }
+ engines: { node: ">= 0.10.0" }
+
+ fast-deep-equal@3.1.3:
+ resolution:
+ {
+ integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
+ }
+
+ fast-glob@3.3.3:
+ resolution:
+ {
+ integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==,
+ }
+ engines: { node: ">=8.6.0" }
+
+ fast-json-stable-stringify@2.1.0:
+ resolution:
+ {
+ integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==,
+ }
+
+ fast-levenshtein@2.0.6:
+ resolution:
+ {
+ integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==,
+ }
+
+ fastq@1.19.0:
+ resolution:
+ {
+ integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==,
+ }
+
+ file-entry-cache@8.0.0:
+ resolution:
+ {
+ integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==,
+ }
+ engines: { node: ">=16.0.0" }
+
+ fill-range@7.1.1:
+ resolution:
+ {
+ integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==,
+ }
+ engines: { node: ">=8" }
+
+ finalhandler@1.3.1:
+ resolution:
+ {
+ integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ find-up@5.0.0:
+ resolution:
+ {
+ integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==,
+ }
+ engines: { node: ">=10" }
+
+ flat-cache@4.0.1:
+ resolution:
+ {
+ integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==,
+ }
+ engines: { node: ">=16" }
+
+ flatted@3.3.3:
+ resolution:
+ {
+ integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==,
+ }
+
+ forwarded@0.2.0:
+ resolution:
+ {
+ integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==,
+ }
+ engines: { node: ">= 0.6" }
+
+ fresh@0.5.2:
+ resolution:
+ {
+ integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==,
+ }
+ engines: { node: ">= 0.6" }
+
+ fsevents@2.3.3:
+ resolution:
+ {
+ integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
+ }
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution:
+ {
+ integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==,
+ }
+
+ gensync@1.0.0-beta.2:
+ resolution:
+ {
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ get-caller-file@2.0.5:
+ resolution:
+ {
+ integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==,
+ }
+ engines: { node: 6.* || 8.* || >= 10.* }
+
+ get-intrinsic@1.3.0:
+ resolution:
+ {
+ integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ get-proto@1.0.1:
+ resolution:
+ {
+ integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==,
+ }
+ engines: { node: ">= 0.4" }
+
+ get-tsconfig@4.10.0:
+ resolution:
+ {
+ integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==,
+ }
+
+ glob-parent@5.1.2:
+ resolution:
+ {
+ integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==,
+ }
+ engines: { node: ">= 6" }
+
+ glob-parent@6.0.2:
+ resolution:
+ {
+ integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==,
+ }
+ engines: { node: ">=10.13.0" }
+
+ globals@11.12.0:
+ resolution:
+ {
+ integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==,
+ }
+ engines: { node: ">=4" }
+
+ globals@14.0.0:
+ resolution:
+ {
+ integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==,
+ }
+ engines: { node: ">=18" }
+
+ globals@15.15.0:
+ resolution:
+ {
+ integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==,
+ }
+ engines: { node: ">=18" }
+
+ gopd@1.2.0:
+ resolution:
+ {
+ integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==,
+ }
+ engines: { node: ">= 0.4" }
+
+ graceful-fs@4.2.11:
+ resolution:
+ {
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==,
+ }
+
+ graphemer@1.4.0:
+ resolution:
+ {
+ integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==,
+ }
+
+ has-flag@4.0.0:
+ resolution:
+ {
+ integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==,
+ }
+ engines: { node: ">=8" }
+
+ has-symbols@1.1.0:
+ resolution:
+ {
+ integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ hasown@2.0.2:
+ resolution:
+ {
+ integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ http-errors@2.0.0:
+ resolution:
+ {
+ integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ iconv-lite@0.4.24:
+ resolution:
+ {
+ integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ ignore@5.3.2:
+ resolution:
+ {
+ integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==,
+ }
+ engines: { node: ">= 4" }
+
+ import-fresh@3.3.1:
+ resolution:
+ {
+ integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==,
+ }
+ engines: { node: ">=6" }
+
+ imurmurhash@0.1.4:
+ resolution:
+ {
+ integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==,
+ }
+ engines: { node: ">=0.8.19" }
+
+ inherits@2.0.4:
+ resolution:
+ {
+ integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==,
+ }
+
+ ipaddr.js@1.9.1:
+ resolution:
+ {
+ integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==,
+ }
+ engines: { node: ">= 0.10" }
+
+ is-extglob@2.1.1:
+ resolution:
+ {
+ integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ is-fullwidth-code-point@3.0.0:
+ resolution:
+ {
+ integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==,
+ }
+ engines: { node: ">=8" }
+
+ is-glob@4.0.3:
+ resolution:
+ {
+ integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ is-number@7.0.0:
+ resolution:
+ {
+ integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==,
+ }
+ engines: { node: ">=0.12.0" }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==,
+ }
+
+ jiti@2.4.2:
+ resolution:
+ {
+ integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==,
+ }
+ hasBin: true
+
+ js-tokens@4.0.0:
+ resolution:
+ {
+ integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==,
+ }
+
+ js-yaml@4.1.0:
+ resolution:
+ {
+ integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==,
+ }
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==,
+ }
+ engines: { node: ">=6" }
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution:
+ {
+ integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==,
+ }
+
+ json-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@4.5.4:
+ resolution:
+ {
+ integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==,
+ }
+
+ kysely@0.27.5:
+ resolution:
+ {
+ integrity: sha512-s7hZHcQeSNKpzCkHRm8yA+0JPLjncSWnjb+2TIElwS2JAqYr+Kv3Ess+9KFfJS0C1xcQ1i9NkNHpWwCYpHMWsA==,
+ }
+ engines: { node: ">=14.0.0" }
+
+ levn@0.4.1:
+ resolution:
+ {
+ integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==,
+ }
+ engines: { node: ">= 0.8.0" }
+
+ lightningcss-darwin-arm64@1.29.1:
+ resolution:
+ {
+ integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.29.1:
+ resolution:
+ {
+ integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.29.1:
+ resolution:
+ {
+ integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.29.1:
+ resolution:
+ {
+ integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.29.1:
+ resolution:
+ {
+ integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.29.1:
+ resolution:
+ {
+ integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.29.1:
+ resolution:
+ {
+ integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.29.1:
+ resolution:
+ {
+ integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-win32-arm64-msvc@1.29.1:
+ resolution:
+ {
+ integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.29.1:
+ resolution:
+ {
+ integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.29.1:
+ resolution:
+ {
+ integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==,
+ }
+ engines: { node: ">= 12.0.0" }
+
+ locate-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==,
+ }
+ engines: { node: ">=10" }
+
+ lodash.merge@4.6.2:
+ resolution:
+ {
+ integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==,
+ }
+
+ lodash@4.17.21:
+ resolution:
+ {
+ integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==,
+ }
+
+ lru-cache@5.1.1:
+ resolution:
+ {
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
+ }
+
+ math-intrinsics@1.1.0:
+ resolution:
+ {
+ integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
+ }
+ engines: { node: ">= 0.4" }
+
+ media-typer@0.3.0:
+ resolution:
+ {
+ integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==,
+ }
+ engines: { node: ">= 0.6" }
+
+ merge-descriptors@1.0.3:
+ resolution:
+ {
+ integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==,
+ }
+
+ merge2@1.4.1:
+ resolution:
+ {
+ integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==,
+ }
+ engines: { node: ">= 8" }
+
+ methods@1.1.2:
+ resolution:
+ {
+ integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==,
+ }
+ engines: { node: ">= 0.6" }
+
+ micromatch@4.0.8:
+ resolution:
+ {
+ integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==,
+ }
+ engines: { node: ">=8.6" }
+
+ mime-db@1.52.0:
+ resolution:
+ {
+ integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==,
+ }
+ engines: { node: ">= 0.6" }
+
+ mime-types@2.1.35:
+ resolution:
+ {
+ integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==,
+ }
+ engines: { node: ">= 0.6" }
+
+ mime@1.6.0:
+ resolution:
+ {
+ integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==,
+ }
+ engines: { node: ">=4" }
+ hasBin: true
+
+ minimatch@3.1.2:
+ resolution:
+ {
+ integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==,
+ }
+
+ minimatch@9.0.5:
+ resolution:
+ {
+ integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==,
+ }
+ engines: { node: ">=16 || 14 >=14.17" }
+
+ mitt@3.0.1:
+ resolution:
+ {
+ integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==,
+ }
+
+ ms@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==,
+ }
+
+ ms@2.1.3:
+ resolution:
+ {
+ integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
+ }
+
+ nanoid@3.3.8:
+ resolution:
+ {
+ integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==,
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution:
+ {
+ integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==,
+ }
+
+ negotiator@0.6.3:
+ resolution:
+ {
+ integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==,
+ }
+ engines: { node: ">= 0.6" }
+
+ node-releases@2.0.19:
+ resolution:
+ {
+ integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==,
+ }
+
+ object-assign@4.1.1:
+ resolution:
+ {
+ integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ object-inspect@1.13.4:
+ resolution:
+ {
+ integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==,
+ }
+ engines: { node: ">= 0.4" }
+
+ obuf@1.1.2:
+ resolution:
+ {
+ integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==,
+ }
+
+ on-finished@2.4.1:
+ resolution:
+ {
+ integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ optionator@0.9.4:
+ resolution:
+ {
+ integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==,
+ }
+ engines: { node: ">= 0.8.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" }
+
+ parent-module@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==,
+ }
+ engines: { node: ">=6" }
+
+ parseurl@1.3.3:
+ resolution:
+ {
+ integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ path-exists@4.0.0:
+ resolution:
+ {
+ integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==,
+ }
+ engines: { node: ">=8" }
+
+ path-key@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==,
+ }
+ engines: { node: ">=8" }
+
+ path-to-regexp@0.1.12:
+ resolution:
+ {
+ integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==,
+ }
+
+ pg-cloudflare@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==,
+ }
+
+ pg-connection-string@2.7.0:
+ resolution:
+ {
+ integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==,
+ }
+
+ pg-int8@1.0.1:
+ resolution:
+ {
+ integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==,
+ }
+ engines: { node: ">=4.0.0" }
+
+ pg-numeric@1.0.2:
+ resolution:
+ {
+ integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==,
+ }
+ engines: { node: ">=4" }
+
+ pg-pool@3.7.1:
+ resolution:
+ {
+ integrity: sha512-xIOsFoh7Vdhojas6q3596mXFsR8nwBQBXX5JiV7p9buEVAGqYL4yFzclON5P9vFrpu1u7Zwl2oriyDa89n0wbw==,
+ }
+ peerDependencies:
+ pg: ">=8.0"
+
+ pg-protocol@1.7.1:
+ resolution:
+ {
+ integrity: sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==,
+ }
+
+ pg-types@2.2.0:
+ resolution:
+ {
+ integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==,
+ }
+ engines: { node: ">=4" }
+
+ pg-types@4.0.2:
+ resolution:
+ {
+ integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==,
+ }
+ engines: { node: ">=10" }
+
+ pg@8.13.3:
+ resolution:
+ {
+ integrity: sha512-P6tPt9jXbL9HVu/SSRERNYaYG++MjnscnegFh9pPHihfoBSujsrka0hyuymMzeJKFWrcG8wvCKy8rCe8e5nDUQ==,
+ }
+ engines: { node: ">= 8.0.0" }
+ peerDependencies:
+ pg-native: ">=3.0.1"
+ peerDependenciesMeta:
+ pg-native:
+ optional: true
+
+ pgpass@1.0.5:
+ resolution:
+ {
+ integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==,
+ }
+
+ picocolors@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==,
+ }
+
+ picomatch@2.3.1:
+ resolution:
+ {
+ integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==,
+ }
+ engines: { node: ">=8.6" }
+
+ postcss@8.5.3:
+ resolution:
+ {
+ integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==,
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ postgres-array@2.0.0:
+ resolution:
+ {
+ integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==,
+ }
+ engines: { node: ">=4" }
+
+ postgres-array@3.0.2:
+ resolution:
+ {
+ integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==,
+ }
+ engines: { node: ">=12" }
+
+ postgres-bytea@1.0.0:
+ resolution:
+ {
+ integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ postgres-bytea@3.0.0:
+ resolution:
+ {
+ integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==,
+ }
+ engines: { node: ">= 6" }
+
+ postgres-date@1.0.7:
+ resolution:
+ {
+ integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ postgres-date@2.1.0:
+ resolution:
+ {
+ integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==,
+ }
+ engines: { node: ">=12" }
+
+ postgres-interval@1.2.0:
+ resolution:
+ {
+ integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ postgres-interval@3.0.0:
+ resolution:
+ {
+ integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==,
+ }
+ engines: { node: ">=12" }
+
+ postgres-range@1.1.4:
+ resolution:
+ {
+ integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==,
+ }
+
+ prelude-ls@1.2.1:
+ resolution:
+ {
+ integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==,
+ }
+ engines: { node: ">= 0.8.0" }
+
+ proxy-addr@2.0.7:
+ resolution:
+ {
+ integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==,
+ }
+ engines: { node: ">= 0.10" }
+
+ punycode@2.3.1:
+ resolution:
+ {
+ integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==,
+ }
+ engines: { node: ">=6" }
+
+ qs@6.13.0:
+ resolution:
+ {
+ integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==,
+ }
+ engines: { node: ">=0.6" }
+
+ queue-microtask@1.2.3:
+ resolution:
+ {
+ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==,
+ }
+
+ range-parser@1.2.1:
+ resolution:
+ {
+ integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==,
+ }
+ engines: { node: ">= 0.6" }
+
+ raw-body@2.5.2:
+ resolution:
+ {
+ integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==,
+ }
+ engines: { node: ">= 0.8" }
+
+ react-dom@19.0.0:
+ resolution:
+ {
+ integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==,
+ }
+ peerDependencies:
+ react: ^19.0.0
+
+ react-refresh@0.14.2:
+ resolution:
+ {
+ integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ react@19.0.0:
+ resolution:
+ {
+ integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ require-directory@2.1.1:
+ resolution:
+ {
+ integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ resolve-from@4.0.0:
+ resolution:
+ {
+ integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==,
+ }
+ engines: { node: ">=4" }
+
+ resolve-pkg-maps@1.0.0:
+ resolution:
+ {
+ integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==,
+ }
+
+ reusify@1.0.4:
+ resolution:
+ {
+ integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==,
+ }
+ engines: { iojs: ">=1.0.0", node: ">=0.10.0" }
+
+ rollup@4.34.8:
+ resolution:
+ {
+ integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==,
+ }
+ engines: { node: ">=18.0.0", npm: ">=8.0.0" }
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution:
+ {
+ integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==,
+ }
+
+ rxjs@7.8.2:
+ resolution:
+ {
+ integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==,
+ }
+
+ safe-buffer@5.2.1:
+ resolution:
+ {
+ integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==,
+ }
+
+ safer-buffer@2.1.2:
+ resolution:
+ {
+ integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==,
+ }
+
+ scheduler@0.25.0:
+ resolution:
+ {
+ integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==,
+ }
+
+ semver@6.3.1:
+ resolution:
+ {
+ integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==,
+ }
+ hasBin: true
+
+ semver@7.7.1:
+ resolution:
+ {
+ integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==,
+ }
+ engines: { node: ">=10" }
+ hasBin: true
+
+ send@0.19.0:
+ resolution:
+ {
+ integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==,
+ }
+ engines: { node: ">= 0.8.0" }
+
+ serve-static@1.16.2:
+ resolution:
+ {
+ integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==,
+ }
+ engines: { node: ">= 0.8.0" }
+
+ setprototypeof@1.2.0:
+ resolution:
+ {
+ integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==,
+ }
+
+ shebang-command@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==,
+ }
+ engines: { node: ">=8" }
+
+ shebang-regex@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==,
+ }
+ engines: { node: ">=8" }
+
+ shell-quote@1.8.2:
+ resolution:
+ {
+ integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-list@1.0.0:
+ resolution:
+ {
+ integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-map@1.0.1:
+ resolution:
+ {
+ integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-weakmap@1.0.2:
+ resolution:
+ {
+ integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel@1.1.0:
+ resolution:
+ {
+ integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==,
+ }
+ engines: { node: ">= 0.4" }
+
+ source-map-js@1.2.1:
+ resolution:
+ {
+ integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ source-map-support@0.5.21:
+ resolution:
+ {
+ integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==,
+ }
+
+ source-map@0.6.1:
+ resolution:
+ {
+ integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ split2@4.2.0:
+ resolution:
+ {
+ integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==,
+ }
+ engines: { node: ">= 10.x" }
+
+ statuses@2.0.1:
+ resolution:
+ {
+ integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ string-width@4.2.3:
+ resolution:
+ {
+ integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==,
+ }
+ engines: { node: ">=8" }
+
+ strip-ansi@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==,
+ }
+ engines: { node: ">=8" }
+
+ strip-json-comments@3.1.1:
+ resolution:
+ {
+ integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==,
+ }
+ engines: { node: ">=8" }
+
+ supports-color@7.2.0:
+ resolution:
+ {
+ integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==,
+ }
+ engines: { node: ">=8" }
+
+ supports-color@8.1.1:
+ resolution:
+ {
+ integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==,
+ }
+ engines: { node: ">=10" }
+
+ tailwindcss@4.0.8:
+ resolution:
+ {
+ integrity: sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==,
+ }
+
+ tapable@2.2.1:
+ resolution:
+ {
+ integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==,
+ }
+ engines: { node: ">=6" }
+
+ to-regex-range@5.0.1:
+ resolution:
+ {
+ integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==,
+ }
+ engines: { node: ">=8.0" }
+
+ toidentifier@1.0.1:
+ resolution:
+ {
+ integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==,
+ }
+ engines: { node: ">=0.6" }
+
+ tree-kill@1.2.2:
+ resolution:
+ {
+ integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==,
+ }
+ hasBin: true
+
+ ts-api-utils@2.0.1:
+ resolution:
+ {
+ integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==,
+ }
+ engines: { node: ">=18.12" }
+ peerDependencies:
+ typescript: ">=4.8.4"
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==,
+ }
+
+ tsx@4.19.3:
+ resolution:
+ {
+ integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==,
+ }
+ engines: { node: ">=18.0.0" }
+ hasBin: true
+
+ type-check@0.4.0:
+ resolution:
+ {
+ integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==,
+ }
+ engines: { node: ">= 0.8.0" }
+
+ type-is@1.6.18:
+ resolution:
+ {
+ integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==,
+ }
+ engines: { node: ">= 0.6" }
+
+ typescript-eslint@8.25.0:
+ resolution:
+ {
+ integrity: sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==,
+ }
+ engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: ">=4.8.4 <5.8.0"
+
+ typescript@5.7.3:
+ resolution:
+ {
+ integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==,
+ }
+ engines: { node: ">=14.17" }
+ hasBin: true
+
+ undici-types@6.20.0:
+ resolution:
+ {
+ integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==,
+ }
+
+ unpipe@1.0.0:
+ resolution:
+ {
+ integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ update-browserslist-db@1.1.2:
+ resolution:
+ {
+ integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==,
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+
+ uri-js@4.4.1:
+ resolution:
+ {
+ integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==,
+ }
+
+ utils-merge@1.0.1:
+ resolution:
+ {
+ integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==,
+ }
+ engines: { node: ">= 0.4.0" }
+
+ vary@1.1.2:
+ resolution:
+ {
+ integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ vite@6.1.1:
+ resolution:
+ {
+ integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==,
+ }
+ engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 }
+ hasBin: true
+ peerDependencies:
+ "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
+ jiti: ">=1.21.0"
+ less: "*"
+ lightningcss: ^1.21.0
+ sass: "*"
+ sass-embedded: "*"
+ stylus: "*"
+ sugarss: "*"
+ 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
+
+ which@2.0.2:
+ resolution:
+ {
+ integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==,
+ }
+ engines: { node: ">= 8" }
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution:
+ {
+ integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ wrap-ansi@7.0.0:
+ resolution:
+ {
+ integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==,
+ }
+ engines: { node: ">=10" }
+
+ xtend@4.0.2:
+ resolution:
+ {
+ integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==,
+ }
+ engines: { node: ">=0.4" }
+
+ y18n@5.0.8:
+ resolution:
+ {
+ integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==,
+ }
+ engines: { node: ">=10" }
+
+ yallist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==,
+ }
+
+ yargs-parser@21.1.1:
+ resolution:
+ {
+ integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==,
+ }
+ engines: { node: ">=12" }
+
+ yargs@17.7.2:
+ resolution:
+ {
+ integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==,
+ }
+ engines: { node: ">=12" }
+
+ yocto-queue@0.1.0:
+ resolution:
+ {
+ integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==,
+ }
+ engines: { node: ">=10" }
+
+ zod@3.24.2:
+ resolution:
+ {
+ integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==,
+ }
+
+snapshots:
+ "@ampproject/remapping@2.3.0":
+ dependencies:
+ "@jridgewell/gen-mapping": 0.3.8
+ "@jridgewell/trace-mapping": 0.3.25
+
+ "@babel/code-frame@7.26.2":
+ dependencies:
+ "@babel/helper-validator-identifier": 7.25.9
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ "@babel/compat-data@7.26.8": {}
+
+ "@babel/core@7.26.9":
+ dependencies:
+ "@ampproject/remapping": 2.3.0
+ "@babel/code-frame": 7.26.2
+ "@babel/generator": 7.26.9
+ "@babel/helper-compilation-targets": 7.26.5
+ "@babel/helper-module-transforms": 7.26.0(@babel/core@7.26.9)
+ "@babel/helpers": 7.26.9
+ "@babel/parser": 7.26.9
+ "@babel/template": 7.26.9
+ "@babel/traverse": 7.26.9
+ "@babel/types": 7.26.9
+ convert-source-map: 2.0.0
+ debug: 4.4.0
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/generator@7.26.9":
+ dependencies:
+ "@babel/parser": 7.26.9
+ "@babel/types": 7.26.9
+ "@jridgewell/gen-mapping": 0.3.8
+ "@jridgewell/trace-mapping": 0.3.25
+ jsesc: 3.1.0
+
+ "@babel/helper-compilation-targets@7.26.5":
+ dependencies:
+ "@babel/compat-data": 7.26.8
+ "@babel/helper-validator-option": 7.25.9
+ browserslist: 4.24.4
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ "@babel/helper-module-imports@7.25.9":
+ dependencies:
+ "@babel/traverse": 7.26.9
+ "@babel/types": 7.26.9
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)":
+ dependencies:
+ "@babel/core": 7.26.9
+ "@babel/helper-module-imports": 7.25.9
+ "@babel/helper-validator-identifier": 7.25.9
+ "@babel/traverse": 7.26.9
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-plugin-utils@7.26.5": {}
+
+ "@babel/helper-string-parser@7.25.9": {}
+
+ "@babel/helper-validator-identifier@7.25.9": {}
+
+ "@babel/helper-validator-option@7.25.9": {}
+
+ "@babel/helpers@7.26.9":
+ dependencies:
+ "@babel/template": 7.26.9
+ "@babel/types": 7.26.9
+
+ "@babel/parser@7.26.9":
+ dependencies:
+ "@babel/types": 7.26.9
+
+ "@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.9)":
+ dependencies:
+ "@babel/core": 7.26.9
+ "@babel/helper-plugin-utils": 7.26.5
+
+ "@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.9)":
+ dependencies:
+ "@babel/core": 7.26.9
+ "@babel/helper-plugin-utils": 7.26.5
+
+ "@babel/template@7.26.9":
+ dependencies:
+ "@babel/code-frame": 7.26.2
+ "@babel/parser": 7.26.9
+ "@babel/types": 7.26.9
+
+ "@babel/traverse@7.26.9":
+ dependencies:
+ "@babel/code-frame": 7.26.2
+ "@babel/generator": 7.26.9
+ "@babel/parser": 7.26.9
+ "@babel/template": 7.26.9
+ "@babel/types": 7.26.9
+ debug: 4.4.0
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/types@7.26.9":
+ dependencies:
+ "@babel/helper-string-parser": 7.25.9
+ "@babel/helper-validator-identifier": 7.25.9
+
+ "@drizzle-team/brocli@0.10.2": {}
+
+ "@esbuild-kit/core-utils@3.3.2":
+ dependencies:
+ esbuild: 0.18.20
+ source-map-support: 0.5.21
+
+ "@esbuild-kit/esm-loader@2.6.5":
+ dependencies:
+ "@esbuild-kit/core-utils": 3.3.2
+ get-tsconfig: 4.10.0
+
+ "@esbuild/aix-ppc64@0.19.12":
+ optional: true
+
+ "@esbuild/aix-ppc64@0.24.2":
+ optional: true
+
+ "@esbuild/aix-ppc64@0.25.0":
+ optional: true
+
+ "@esbuild/android-arm64@0.18.20":
+ optional: true
+
+ "@esbuild/android-arm64@0.19.12":
+ optional: true
+
+ "@esbuild/android-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/android-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/android-arm@0.18.20":
+ optional: true
+
+ "@esbuild/android-arm@0.19.12":
+ optional: true
+
+ "@esbuild/android-arm@0.24.2":
+ optional: true
+
+ "@esbuild/android-arm@0.25.0":
+ optional: true
+
+ "@esbuild/android-x64@0.18.20":
+ optional: true
+
+ "@esbuild/android-x64@0.19.12":
+ optional: true
+
+ "@esbuild/android-x64@0.24.2":
+ optional: true
+
+ "@esbuild/android-x64@0.25.0":
+ optional: true
+
+ "@esbuild/darwin-arm64@0.18.20":
+ optional: true
+
+ "@esbuild/darwin-arm64@0.19.12":
+ optional: true
+
+ "@esbuild/darwin-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/darwin-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/darwin-x64@0.18.20":
+ optional: true
+
+ "@esbuild/darwin-x64@0.19.12":
+ optional: true
+
+ "@esbuild/darwin-x64@0.24.2":
+ optional: true
+
+ "@esbuild/darwin-x64@0.25.0":
+ optional: true
+
+ "@esbuild/freebsd-arm64@0.18.20":
+ optional: true
+
+ "@esbuild/freebsd-arm64@0.19.12":
+ optional: true
+
+ "@esbuild/freebsd-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/freebsd-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/freebsd-x64@0.18.20":
+ optional: true
+
+ "@esbuild/freebsd-x64@0.19.12":
+ optional: true
+
+ "@esbuild/freebsd-x64@0.24.2":
+ optional: true
+
+ "@esbuild/freebsd-x64@0.25.0":
+ optional: true
+
+ "@esbuild/linux-arm64@0.18.20":
+ optional: true
+
+ "@esbuild/linux-arm64@0.19.12":
+ optional: true
+
+ "@esbuild/linux-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/linux-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/linux-arm@0.18.20":
+ optional: true
+
+ "@esbuild/linux-arm@0.19.12":
+ optional: true
+
+ "@esbuild/linux-arm@0.24.2":
+ optional: true
+
+ "@esbuild/linux-arm@0.25.0":
+ optional: true
+
+ "@esbuild/linux-ia32@0.18.20":
+ optional: true
+
+ "@esbuild/linux-ia32@0.19.12":
+ optional: true
+
+ "@esbuild/linux-ia32@0.24.2":
+ optional: true
+
+ "@esbuild/linux-ia32@0.25.0":
+ optional: true
+
+ "@esbuild/linux-loong64@0.18.20":
+ optional: true
+
+ "@esbuild/linux-loong64@0.19.12":
+ optional: true
+
+ "@esbuild/linux-loong64@0.24.2":
+ optional: true
+
+ "@esbuild/linux-loong64@0.25.0":
+ optional: true
+
+ "@esbuild/linux-mips64el@0.18.20":
+ optional: true
+
+ "@esbuild/linux-mips64el@0.19.12":
+ optional: true
+
+ "@esbuild/linux-mips64el@0.24.2":
+ optional: true
+
+ "@esbuild/linux-mips64el@0.25.0":
+ optional: true
+
+ "@esbuild/linux-ppc64@0.18.20":
+ optional: true
+
+ "@esbuild/linux-ppc64@0.19.12":
+ optional: true
+
+ "@esbuild/linux-ppc64@0.24.2":
+ optional: true
+
+ "@esbuild/linux-ppc64@0.25.0":
+ optional: true
+
+ "@esbuild/linux-riscv64@0.18.20":
+ optional: true
+
+ "@esbuild/linux-riscv64@0.19.12":
+ optional: true
+
+ "@esbuild/linux-riscv64@0.24.2":
+ optional: true
+
+ "@esbuild/linux-riscv64@0.25.0":
+ optional: true
+
+ "@esbuild/linux-s390x@0.18.20":
+ optional: true
+
+ "@esbuild/linux-s390x@0.19.12":
+ optional: true
+
+ "@esbuild/linux-s390x@0.24.2":
+ optional: true
+
+ "@esbuild/linux-s390x@0.25.0":
+ optional: true
+
+ "@esbuild/linux-x64@0.18.20":
+ optional: true
+
+ "@esbuild/linux-x64@0.19.12":
+ optional: true
+
+ "@esbuild/linux-x64@0.24.2":
+ optional: true
+
+ "@esbuild/linux-x64@0.25.0":
+ optional: true
+
+ "@esbuild/netbsd-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/netbsd-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/netbsd-x64@0.18.20":
+ optional: true
+
+ "@esbuild/netbsd-x64@0.19.12":
+ optional: true
+
+ "@esbuild/netbsd-x64@0.24.2":
+ optional: true
+
+ "@esbuild/netbsd-x64@0.25.0":
+ optional: true
+
+ "@esbuild/openbsd-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/openbsd-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/openbsd-x64@0.18.20":
+ optional: true
+
+ "@esbuild/openbsd-x64@0.19.12":
+ optional: true
+
+ "@esbuild/openbsd-x64@0.24.2":
+ optional: true
+
+ "@esbuild/openbsd-x64@0.25.0":
+ optional: true
+
+ "@esbuild/sunos-x64@0.18.20":
+ optional: true
+
+ "@esbuild/sunos-x64@0.19.12":
+ optional: true
+
+ "@esbuild/sunos-x64@0.24.2":
+ optional: true
+
+ "@esbuild/sunos-x64@0.25.0":
+ optional: true
+
+ "@esbuild/win32-arm64@0.18.20":
+ optional: true
+
+ "@esbuild/win32-arm64@0.19.12":
+ optional: true
+
+ "@esbuild/win32-arm64@0.24.2":
+ optional: true
+
+ "@esbuild/win32-arm64@0.25.0":
+ optional: true
+
+ "@esbuild/win32-ia32@0.18.20":
+ optional: true
+
+ "@esbuild/win32-ia32@0.19.12":
+ optional: true
+
+ "@esbuild/win32-ia32@0.24.2":
+ optional: true
+
+ "@esbuild/win32-ia32@0.25.0":
+ optional: true
+
+ "@esbuild/win32-x64@0.18.20":
+ optional: true
+
+ "@esbuild/win32-x64@0.19.12":
+ optional: true
+
+ "@esbuild/win32-x64@0.24.2":
+ optional: true
+
+ "@esbuild/win32-x64@0.25.0":
+ optional: true
+
+ "@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))":
+ dependencies:
+ eslint: 9.21.0(jiti@2.4.2)
+ eslint-visitor-keys: 3.4.3
+
+ "@eslint-community/regexpp@4.12.1": {}
+
+ "@eslint/config-array@0.19.2":
+ dependencies:
+ "@eslint/object-schema": 2.1.6
+ debug: 4.4.0
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ "@eslint/core@0.12.0":
+ dependencies:
+ "@types/json-schema": 7.0.15
+
+ "@eslint/eslintrc@3.3.0":
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.0
+ espree: 10.3.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ "@eslint/js@9.21.0": {}
+
+ "@eslint/object-schema@2.1.6": {}
+
+ "@eslint/plugin-kit@0.2.7":
+ dependencies:
+ "@eslint/core": 0.12.0
+ levn: 0.4.1
+
+ "@humanfs/core@0.19.1": {}
+
+ "@humanfs/node@0.16.6":
+ dependencies:
+ "@humanfs/core": 0.19.1
+ "@humanwhocodes/retry": 0.3.1
+
+ "@humanwhocodes/module-importer@1.0.1": {}
+
+ "@humanwhocodes/retry@0.3.1": {}
+
+ "@humanwhocodes/retry@0.4.2": {}
+
+ "@jridgewell/gen-mapping@0.3.8":
+ dependencies:
+ "@jridgewell/set-array": 1.2.1
+ "@jridgewell/sourcemap-codec": 1.5.0
+ "@jridgewell/trace-mapping": 0.3.25
+
+ "@jridgewell/resolve-uri@3.1.2": {}
+
+ "@jridgewell/set-array@1.2.1": {}
+
+ "@jridgewell/sourcemap-codec@1.5.0": {}
+
+ "@jridgewell/trace-mapping@0.3.25":
+ dependencies:
+ "@jridgewell/resolve-uri": 3.1.2
+ "@jridgewell/sourcemap-codec": 1.5.0
+
+ "@nodelib/fs.scandir@2.1.5":
+ dependencies:
+ "@nodelib/fs.stat": 2.0.5
+ run-parallel: 1.2.0
+
+ "@nodelib/fs.stat@2.0.5": {}
+
+ "@nodelib/fs.walk@1.2.8":
+ dependencies:
+ "@nodelib/fs.scandir": 2.1.5
+ fastq: 1.19.0
+
+ "@rollup/rollup-android-arm-eabi@4.34.8":
+ optional: true
+
+ "@rollup/rollup-android-arm64@4.34.8":
+ optional: true
+
+ "@rollup/rollup-darwin-arm64@4.34.8":
+ optional: true
+
+ "@rollup/rollup-darwin-x64@4.34.8":
+ optional: true
+
+ "@rollup/rollup-freebsd-arm64@4.34.8":
+ optional: true
+
+ "@rollup/rollup-freebsd-x64@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-arm-gnueabihf@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-arm-musleabihf@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-arm64-gnu@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-arm64-musl@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-loongarch64-gnu@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-powerpc64le-gnu@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-riscv64-gnu@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-s390x-gnu@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-x64-gnu@4.34.8":
+ optional: true
+
+ "@rollup/rollup-linux-x64-musl@4.34.8":
+ optional: true
+
+ "@rollup/rollup-win32-arm64-msvc@4.34.8":
+ optional: true
+
+ "@rollup/rollup-win32-ia32-msvc@4.34.8":
+ optional: true
+
+ "@rollup/rollup-win32-x64-msvc@4.34.8":
+ optional: true
+
+ "@tailwindcss/node@4.0.8":
+ dependencies:
+ enhanced-resolve: 5.18.1
+ jiti: 2.4.2
+ tailwindcss: 4.0.8
+
+ "@tailwindcss/oxide-android-arm64@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-darwin-arm64@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-darwin-x64@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-freebsd-x64@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-linux-arm64-gnu@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-linux-arm64-musl@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-linux-x64-gnu@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-linux-x64-musl@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-win32-arm64-msvc@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide-win32-x64-msvc@4.0.8":
+ optional: true
+
+ "@tailwindcss/oxide@4.0.8":
+ optionalDependencies:
+ "@tailwindcss/oxide-android-arm64": 4.0.8
+ "@tailwindcss/oxide-darwin-arm64": 4.0.8
+ "@tailwindcss/oxide-darwin-x64": 4.0.8
+ "@tailwindcss/oxide-freebsd-x64": 4.0.8
+ "@tailwindcss/oxide-linux-arm-gnueabihf": 4.0.8
+ "@tailwindcss/oxide-linux-arm64-gnu": 4.0.8
+ "@tailwindcss/oxide-linux-arm64-musl": 4.0.8
+ "@tailwindcss/oxide-linux-x64-gnu": 4.0.8
+ "@tailwindcss/oxide-linux-x64-musl": 4.0.8
+ "@tailwindcss/oxide-win32-arm64-msvc": 4.0.8
+ "@tailwindcss/oxide-win32-x64-msvc": 4.0.8
+
+ "@tailwindcss/vite@4.0.8(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))":
+ dependencies:
+ "@tailwindcss/node": 4.0.8
+ "@tailwindcss/oxide": 4.0.8
+ lightningcss: 1.29.1
+ tailwindcss: 4.0.8
+ vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3)
+
+ "@types/babel__core@7.20.5":
+ dependencies:
+ "@babel/parser": 7.26.9
+ "@babel/types": 7.26.9
+ "@types/babel__generator": 7.6.8
+ "@types/babel__template": 7.4.4
+ "@types/babel__traverse": 7.20.6
+
+ "@types/babel__generator@7.6.8":
+ dependencies:
+ "@babel/types": 7.26.9
+
+ "@types/babel__template@7.4.4":
+ dependencies:
+ "@babel/parser": 7.26.9
+ "@babel/types": 7.26.9
+
+ "@types/babel__traverse@7.20.6":
+ dependencies:
+ "@babel/types": 7.26.9
+
+ "@types/body-parser@1.19.5":
+ dependencies:
+ "@types/connect": 3.4.38
+ "@types/node": 22.13.5
+
+ "@types/connect@3.4.38":
+ dependencies:
+ "@types/node": 22.13.5
+
+ "@types/cors@2.8.17":
+ dependencies:
+ "@types/node": 22.13.5
+
+ "@types/estree@1.0.6": {}
+
+ "@types/express-serve-static-core@4.19.6":
+ dependencies:
+ "@types/node": 22.13.5
+ "@types/qs": 6.9.18
+ "@types/range-parser": 1.2.7
+ "@types/send": 0.17.4
+
+ "@types/express@4.17.21":
+ dependencies:
+ "@types/body-parser": 1.19.5
+ "@types/express-serve-static-core": 4.19.6
+ "@types/qs": 6.9.18
+ "@types/serve-static": 1.15.7
+
+ "@types/http-errors@2.0.4": {}
+
+ "@types/json-schema@7.0.15": {}
+
+ "@types/mime@1.3.5": {}
+
+ "@types/node@22.13.5":
+ dependencies:
+ undici-types: 6.20.0
+
+ "@types/pg@8.11.11":
+ dependencies:
+ "@types/node": 22.13.5
+ pg-protocol: 1.7.1
+ pg-types: 4.0.2
+
+ "@types/qs@6.9.18": {}
+
+ "@types/range-parser@1.2.7": {}
+
+ "@types/react-dom@19.0.4(@types/react@19.0.10)":
+ dependencies:
+ "@types/react": 19.0.10
+
+ "@types/react@19.0.10":
+ dependencies:
+ csstype: 3.1.3
+
+ "@types/send@0.17.4":
+ dependencies:
+ "@types/mime": 1.3.5
+ "@types/node": 22.13.5
+
+ "@types/serve-static@1.15.7":
+ dependencies:
+ "@types/http-errors": 2.0.4
+ "@types/node": 22.13.5
+ "@types/send": 0.17.4
+
+ "@types/use-sync-external-store@0.0.6": {}
+
+ "@typescript-eslint/eslint-plugin@8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)":
+ dependencies:
+ "@eslint-community/regexpp": 4.12.1
+ "@typescript-eslint/parser": 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ "@typescript-eslint/scope-manager": 8.25.0
+ "@typescript-eslint/type-utils": 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ "@typescript-eslint/utils": 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ "@typescript-eslint/visitor-keys": 8.25.0
+ eslint: 9.21.0(jiti@2.4.2)
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare: 1.4.0
+ ts-api-utils: 2.0.1(typescript@5.7.3)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)":
+ dependencies:
+ "@typescript-eslint/scope-manager": 8.25.0
+ "@typescript-eslint/types": 8.25.0
+ "@typescript-eslint/typescript-estree": 8.25.0(typescript@5.7.3)
+ "@typescript-eslint/visitor-keys": 8.25.0
+ debug: 4.4.0
+ eslint: 9.21.0(jiti@2.4.2)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@typescript-eslint/scope-manager@8.25.0":
+ dependencies:
+ "@typescript-eslint/types": 8.25.0
+ "@typescript-eslint/visitor-keys": 8.25.0
+
+ "@typescript-eslint/type-utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)":
+ dependencies:
+ "@typescript-eslint/typescript-estree": 8.25.0(typescript@5.7.3)
+ "@typescript-eslint/utils": 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ debug: 4.4.0
+ eslint: 9.21.0(jiti@2.4.2)
+ ts-api-utils: 2.0.1(typescript@5.7.3)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@typescript-eslint/types@8.25.0": {}
+
+ "@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)":
+ dependencies:
+ "@typescript-eslint/types": 8.25.0
+ "@typescript-eslint/visitor-keys": 8.25.0
+ debug: 4.4.0
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.1
+ ts-api-utils: 2.0.1(typescript@5.7.3)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)":
+ dependencies:
+ "@eslint-community/eslint-utils": 4.4.1(eslint@9.21.0(jiti@2.4.2))
+ "@typescript-eslint/scope-manager": 8.25.0
+ "@typescript-eslint/types": 8.25.0
+ "@typescript-eslint/typescript-estree": 8.25.0(typescript@5.7.3)
+ eslint: 9.21.0(jiti@2.4.2)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@typescript-eslint/visitor-keys@8.25.0":
+ dependencies:
+ "@typescript-eslint/types": 8.25.0
+ eslint-visitor-keys: 4.2.0
+
+ "@vitejs/plugin-react@4.3.4(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))":
+ dependencies:
+ "@babel/core": 7.26.9
+ "@babel/plugin-transform-react-jsx-self": 7.25.9(@babel/core@7.26.9)
+ "@babel/plugin-transform-react-jsx-source": 7.25.9(@babel/core@7.26.9)
+ "@types/babel__core": 7.20.5
+ react-refresh: 0.14.2
+ vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3)
+ transitivePeerDependencies:
+ - supports-color
+
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ acorn-jsx@5.3.2(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn@8.14.0: {}
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ argparse@2.0.1: {}
+
+ array-flatten@1.1.1: {}
+
+ balanced-match@1.0.2: {}
+
+ body-parser@1.20.3:
+ dependencies:
+ bytes: 3.1.2
+ content-type: 1.0.5
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.13.0
+ raw-body: 2.5.2
+ type-is: 1.6.18
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.24.4:
+ dependencies:
+ caniuse-lite: 1.0.30001700
+ electron-to-chromium: 1.5.104
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.2(browserslist@4.24.4)
+
+ buffer-from@1.1.2: {}
+
+ bytes@3.1.2: {}
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bound@1.0.3:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001700: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ concat-map@0.0.1: {}
+
+ concurrently@9.1.2:
+ dependencies:
+ chalk: 4.1.2
+ lodash: 4.17.21
+ rxjs: 7.8.2
+ shell-quote: 1.8.2
+ supports-color: 8.1.1
+ tree-kill: 1.2.2
+ yargs: 17.7.2
+
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ content-type@1.0.5: {}
+
+ convert-source-map@2.0.0: {}
+
+ cookie-signature@1.0.6: {}
+
+ cookie@0.7.1: {}
+
+ cors@2.8.5:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ csstype@3.1.3: {}
+
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ deep-is@0.1.4: {}
+
+ depd@2.0.0: {}
+
+ destroy@1.2.0: {}
+
+ detect-libc@1.0.3: {}
+
+ dotenv@16.4.7: {}
+
+ drizzle-kit@0.30.4:
+ dependencies:
+ "@drizzle-team/brocli": 0.10.2
+ "@esbuild-kit/esm-loader": 2.6.5
+ esbuild: 0.19.12
+ esbuild-register: 3.6.0(esbuild@0.19.12)
+ transitivePeerDependencies:
+ - supports-color
+
+ drizzle-orm@0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3):
+ optionalDependencies:
+ "@types/pg": 8.11.11
+ kysely: 0.27.5
+ pg: 8.13.3
+
+ drizzle-zod@0.7.0(drizzle-orm@0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3))(zod@3.24.2):
+ dependencies:
+ drizzle-orm: 0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3)
+ zod: 3.24.2
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ ee-first@1.1.1: {}
+
+ electron-to-chromium@1.5.104: {}
+
+ emoji-regex@8.0.0: {}
+
+ encodeurl@1.0.2: {}
+
+ encodeurl@2.0.0: {}
+
+ enhanced-resolve@5.18.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ esbuild-register@3.6.0(esbuild@0.19.12):
+ dependencies:
+ debug: 4.4.0
+ esbuild: 0.19.12
+ transitivePeerDependencies:
+ - supports-color
+
+ esbuild@0.18.20:
+ optionalDependencies:
+ "@esbuild/android-arm": 0.18.20
+ "@esbuild/android-arm64": 0.18.20
+ "@esbuild/android-x64": 0.18.20
+ "@esbuild/darwin-arm64": 0.18.20
+ "@esbuild/darwin-x64": 0.18.20
+ "@esbuild/freebsd-arm64": 0.18.20
+ "@esbuild/freebsd-x64": 0.18.20
+ "@esbuild/linux-arm": 0.18.20
+ "@esbuild/linux-arm64": 0.18.20
+ "@esbuild/linux-ia32": 0.18.20
+ "@esbuild/linux-loong64": 0.18.20
+ "@esbuild/linux-mips64el": 0.18.20
+ "@esbuild/linux-ppc64": 0.18.20
+ "@esbuild/linux-riscv64": 0.18.20
+ "@esbuild/linux-s390x": 0.18.20
+ "@esbuild/linux-x64": 0.18.20
+ "@esbuild/netbsd-x64": 0.18.20
+ "@esbuild/openbsd-x64": 0.18.20
+ "@esbuild/sunos-x64": 0.18.20
+ "@esbuild/win32-arm64": 0.18.20
+ "@esbuild/win32-ia32": 0.18.20
+ "@esbuild/win32-x64": 0.18.20
+
+ esbuild@0.19.12:
+ optionalDependencies:
+ "@esbuild/aix-ppc64": 0.19.12
+ "@esbuild/android-arm": 0.19.12
+ "@esbuild/android-arm64": 0.19.12
+ "@esbuild/android-x64": 0.19.12
+ "@esbuild/darwin-arm64": 0.19.12
+ "@esbuild/darwin-x64": 0.19.12
+ "@esbuild/freebsd-arm64": 0.19.12
+ "@esbuild/freebsd-x64": 0.19.12
+ "@esbuild/linux-arm": 0.19.12
+ "@esbuild/linux-arm64": 0.19.12
+ "@esbuild/linux-ia32": 0.19.12
+ "@esbuild/linux-loong64": 0.19.12
+ "@esbuild/linux-mips64el": 0.19.12
+ "@esbuild/linux-ppc64": 0.19.12
+ "@esbuild/linux-riscv64": 0.19.12
+ "@esbuild/linux-s390x": 0.19.12
+ "@esbuild/linux-x64": 0.19.12
+ "@esbuild/netbsd-x64": 0.19.12
+ "@esbuild/openbsd-x64": 0.19.12
+ "@esbuild/sunos-x64": 0.19.12
+ "@esbuild/win32-arm64": 0.19.12
+ "@esbuild/win32-ia32": 0.19.12
+ "@esbuild/win32-x64": 0.19.12
+
+ esbuild@0.24.2:
+ optionalDependencies:
+ "@esbuild/aix-ppc64": 0.24.2
+ "@esbuild/android-arm": 0.24.2
+ "@esbuild/android-arm64": 0.24.2
+ "@esbuild/android-x64": 0.24.2
+ "@esbuild/darwin-arm64": 0.24.2
+ "@esbuild/darwin-x64": 0.24.2
+ "@esbuild/freebsd-arm64": 0.24.2
+ "@esbuild/freebsd-x64": 0.24.2
+ "@esbuild/linux-arm": 0.24.2
+ "@esbuild/linux-arm64": 0.24.2
+ "@esbuild/linux-ia32": 0.24.2
+ "@esbuild/linux-loong64": 0.24.2
+ "@esbuild/linux-mips64el": 0.24.2
+ "@esbuild/linux-ppc64": 0.24.2
+ "@esbuild/linux-riscv64": 0.24.2
+ "@esbuild/linux-s390x": 0.24.2
+ "@esbuild/linux-x64": 0.24.2
+ "@esbuild/netbsd-arm64": 0.24.2
+ "@esbuild/netbsd-x64": 0.24.2
+ "@esbuild/openbsd-arm64": 0.24.2
+ "@esbuild/openbsd-x64": 0.24.2
+ "@esbuild/sunos-x64": 0.24.2
+ "@esbuild/win32-arm64": 0.24.2
+ "@esbuild/win32-ia32": 0.24.2
+ "@esbuild/win32-x64": 0.24.2
+
+ esbuild@0.25.0:
+ optionalDependencies:
+ "@esbuild/aix-ppc64": 0.25.0
+ "@esbuild/android-arm": 0.25.0
+ "@esbuild/android-arm64": 0.25.0
+ "@esbuild/android-x64": 0.25.0
+ "@esbuild/darwin-arm64": 0.25.0
+ "@esbuild/darwin-x64": 0.25.0
+ "@esbuild/freebsd-arm64": 0.25.0
+ "@esbuild/freebsd-x64": 0.25.0
+ "@esbuild/linux-arm": 0.25.0
+ "@esbuild/linux-arm64": 0.25.0
+ "@esbuild/linux-ia32": 0.25.0
+ "@esbuild/linux-loong64": 0.25.0
+ "@esbuild/linux-mips64el": 0.25.0
+ "@esbuild/linux-ppc64": 0.25.0
+ "@esbuild/linux-riscv64": 0.25.0
+ "@esbuild/linux-s390x": 0.25.0
+ "@esbuild/linux-x64": 0.25.0
+ "@esbuild/netbsd-arm64": 0.25.0
+ "@esbuild/netbsd-x64": 0.25.0
+ "@esbuild/openbsd-arm64": 0.25.0
+ "@esbuild/openbsd-x64": 0.25.0
+ "@esbuild/sunos-x64": 0.25.0
+ "@esbuild/win32-arm64": 0.25.0
+ "@esbuild/win32-ia32": 0.25.0
+ "@esbuild/win32-x64": 0.25.0
+
+ escalade@3.2.0: {}
+
+ escape-html@1.0.3: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.21.0(jiti@2.4.2)
+
+ eslint-plugin-react-refresh@0.4.19(eslint@9.21.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.21.0(jiti@2.4.2)
+
+ eslint-scope@8.2.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.0: {}
+
+ eslint@9.21.0(jiti@2.4.2):
+ dependencies:
+ "@eslint-community/eslint-utils": 4.4.1(eslint@9.21.0(jiti@2.4.2))
+ "@eslint-community/regexpp": 4.12.1
+ "@eslint/config-array": 0.19.2
+ "@eslint/core": 0.12.0
+ "@eslint/eslintrc": 3.3.0
+ "@eslint/js": 9.21.0
+ "@eslint/plugin-kit": 0.2.7
+ "@humanfs/node": 0.16.6
+ "@humanwhocodes/module-importer": 1.0.1
+ "@humanwhocodes/retry": 0.4.2
+ "@types/estree": 1.0.6
+ "@types/json-schema": 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.2.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.3.0:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 4.2.0
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ esutils@2.0.3: {}
+
+ etag@1.8.1: {}
+
+ express@4.21.2:
+ dependencies:
+ accepts: 1.3.8
+ array-flatten: 1.1.1
+ body-parser: 1.20.3
+ content-disposition: 0.5.4
+ content-type: 1.0.5
+ cookie: 0.7.1
+ cookie-signature: 1.0.6
+ debug: 2.6.9
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 1.3.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ merge-descriptors: 1.0.3
+ methods: 1.1.2
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ path-to-regexp: 0.1.12
+ proxy-addr: 2.0.7
+ qs: 6.13.0
+ range-parser: 1.2.1
+ safe-buffer: 5.2.1
+ send: 0.19.0
+ serve-static: 1.16.2
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ type-is: 1.6.18
+ utils-merge: 1.0.1
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ "@nodelib/fs.stat": 2.0.5
+ "@nodelib/fs.walk": 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.19.0:
+ dependencies:
+ reusify: 1.0.4
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ finalhandler@1.3.1:
+ dependencies:
+ debug: 2.6.9
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.1
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
+ forwarded@0.2.0: {}
+
+ fresh@0.5.2: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-tsconfig@4.10.0:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ globals@11.12.0: {}
+
+ globals@14.0.0: {}
+
+ globals@15.15.0: {}
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-symbols@1.1.0: {}
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ inherits@2.0.4: {}
+
+ ipaddr.js@1.9.1: {}
+
+ is-extglob@2.1.1: {}
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ isexe@2.0.0: {}
+
+ jiti@2.4.2: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@2.2.3: {}
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ kysely@0.27.5: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lightningcss-darwin-arm64@1.29.1:
+ optional: true
+
+ lightningcss-darwin-x64@1.29.1:
+ optional: true
+
+ lightningcss-freebsd-x64@1.29.1:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.29.1:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.29.1:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.29.1:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.29.1:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.29.1:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.29.1:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.29.1:
+ optional: true
+
+ lightningcss@1.29.1:
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.29.1
+ lightningcss-darwin-x64: 1.29.1
+ lightningcss-freebsd-x64: 1.29.1
+ lightningcss-linux-arm-gnueabihf: 1.29.1
+ lightningcss-linux-arm64-gnu: 1.29.1
+ lightningcss-linux-arm64-musl: 1.29.1
+ lightningcss-linux-x64-gnu: 1.29.1
+ lightningcss-linux-x64-musl: 1.29.1
+ lightningcss-win32-arm64-msvc: 1.29.1
+ lightningcss-win32-x64-msvc: 1.29.1
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.merge@4.6.2: {}
+
+ lodash@4.17.21: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ math-intrinsics@1.1.0: {}
+
+ media-typer@0.3.0: {}
+
+ merge-descriptors@1.0.3: {}
+
+ merge2@1.4.1: {}
+
+ methods@1.1.2: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@1.6.0: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ mitt@3.0.1: {}
+
+ ms@2.0.0: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.8: {}
+
+ natural-compare@1.4.0: {}
+
+ negotiator@0.6.3: {}
+
+ node-releases@2.0.19: {}
+
+ object-assign@4.1.1: {}
+
+ object-inspect@1.13.4: {}
+
+ obuf@1.1.2: {}
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parseurl@1.3.3: {}
+
+ path-exists@4.0.0: {}
+
+ path-key@3.1.1: {}
+
+ path-to-regexp@0.1.12: {}
+
+ pg-cloudflare@1.1.1:
+ optional: true
+
+ pg-connection-string@2.7.0: {}
+
+ pg-int8@1.0.1: {}
+
+ pg-numeric@1.0.2: {}
+
+ pg-pool@3.7.1(pg@8.13.3):
+ dependencies:
+ pg: 8.13.3
+
+ pg-protocol@1.7.1: {}
+
+ pg-types@2.2.0:
+ dependencies:
+ pg-int8: 1.0.1
+ postgres-array: 2.0.0
+ postgres-bytea: 1.0.0
+ postgres-date: 1.0.7
+ postgres-interval: 1.2.0
+
+ pg-types@4.0.2:
+ dependencies:
+ pg-int8: 1.0.1
+ pg-numeric: 1.0.2
+ postgres-array: 3.0.2
+ postgres-bytea: 3.0.0
+ postgres-date: 2.1.0
+ postgres-interval: 3.0.0
+ postgres-range: 1.1.4
+
+ pg@8.13.3:
+ dependencies:
+ pg-connection-string: 2.7.0
+ pg-pool: 3.7.1(pg@8.13.3)
+ pg-protocol: 1.7.1
+ pg-types: 2.2.0
+ pgpass: 1.0.5
+ optionalDependencies:
+ pg-cloudflare: 1.1.1
+
+ pgpass@1.0.5:
+ dependencies:
+ split2: 4.2.0
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ postcss@8.5.3:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postgres-array@2.0.0: {}
+
+ postgres-array@3.0.2: {}
+
+ postgres-bytea@1.0.0: {}
+
+ postgres-bytea@3.0.0:
+ dependencies:
+ obuf: 1.1.2
+
+ postgres-date@1.0.7: {}
+
+ postgres-date@2.1.0: {}
+
+ postgres-interval@1.2.0:
+ dependencies:
+ xtend: 4.0.2
+
+ postgres-interval@3.0.0: {}
+
+ postgres-range@1.1.4: {}
+
+ prelude-ls@1.2.1: {}
+
+ proxy-addr@2.0.7:
+ dependencies:
+ forwarded: 0.2.0
+ ipaddr.js: 1.9.1
+
+ punycode@2.3.1: {}
+
+ qs@6.13.0:
+ dependencies:
+ side-channel: 1.1.0
+
+ queue-microtask@1.2.3: {}
+
+ range-parser@1.2.1: {}
+
+ raw-body@2.5.2:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+
+ react-dom@19.0.0(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+ scheduler: 0.25.0
+
+ react-refresh@0.14.2: {}
+
+ react@19.0.0: {}
+
+ require-directory@2.1.1: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-pkg-maps@1.0.0: {}
+
+ reusify@1.0.4: {}
+
+ rollup@4.34.8:
+ dependencies:
+ "@types/estree": 1.0.6
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi": 4.34.8
+ "@rollup/rollup-android-arm64": 4.34.8
+ "@rollup/rollup-darwin-arm64": 4.34.8
+ "@rollup/rollup-darwin-x64": 4.34.8
+ "@rollup/rollup-freebsd-arm64": 4.34.8
+ "@rollup/rollup-freebsd-x64": 4.34.8
+ "@rollup/rollup-linux-arm-gnueabihf": 4.34.8
+ "@rollup/rollup-linux-arm-musleabihf": 4.34.8
+ "@rollup/rollup-linux-arm64-gnu": 4.34.8
+ "@rollup/rollup-linux-arm64-musl": 4.34.8
+ "@rollup/rollup-linux-loongarch64-gnu": 4.34.8
+ "@rollup/rollup-linux-powerpc64le-gnu": 4.34.8
+ "@rollup/rollup-linux-riscv64-gnu": 4.34.8
+ "@rollup/rollup-linux-s390x-gnu": 4.34.8
+ "@rollup/rollup-linux-x64-gnu": 4.34.8
+ "@rollup/rollup-linux-x64-musl": 4.34.8
+ "@rollup/rollup-win32-arm64-msvc": 4.34.8
+ "@rollup/rollup-win32-ia32-msvc": 4.34.8
+ "@rollup/rollup-win32-x64-msvc": 4.34.8
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
+ safe-buffer@5.2.1: {}
+
+ safer-buffer@2.1.2: {}
+
+ scheduler@0.25.0: {}
+
+ semver@6.3.1: {}
+
+ semver@7.7.1: {}
+
+ send@0.19.0:
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ serve-static@1.16.2:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.0
+ transitivePeerDependencies:
+ - supports-color
+
+ setprototypeof@1.2.0: {}
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ shell-quote@1.8.2: {}
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ source-map-js@1.2.1: {}
+
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ split2@4.2.0: {}
+
+ statuses@2.0.1: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-json-comments@3.1.1: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-color@8.1.1:
+ dependencies:
+ has-flag: 4.0.0
+
+ tailwindcss@4.0.8: {}
+
+ tapable@2.2.1: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toidentifier@1.0.1: {}
+
+ tree-kill@1.2.2: {}
+
+ ts-api-utils@2.0.1(typescript@5.7.3):
+ dependencies:
+ typescript: 5.7.3
+
+ tslib@2.8.1: {}
+
+ tsx@4.19.3:
+ dependencies:
+ esbuild: 0.25.0
+ get-tsconfig: 4.10.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-is@1.6.18:
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+
+ typescript-eslint@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3):
+ dependencies:
+ "@typescript-eslint/eslint-plugin": 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ "@typescript-eslint/parser": 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ "@typescript-eslint/utils": 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
+ eslint: 9.21.0(jiti@2.4.2)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
+
+ typescript@5.7.3: {}
+
+ undici-types@6.20.0: {}
+
+ unpipe@1.0.0: {}
+
+ update-browserslist-db@1.1.2(browserslist@4.24.4):
+ dependencies:
+ browserslist: 4.24.4
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ utils-merge@1.0.1: {}
+
+ vary@1.1.2: {}
+
+ vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3):
+ dependencies:
+ esbuild: 0.24.2
+ postcss: 8.5.3
+ rollup: 4.34.8
+ optionalDependencies:
+ "@types/node": 22.13.5
+ fsevents: 2.3.3
+ jiti: 2.4.2
+ lightningcss: 1.29.1
+ tsx: 4.19.3
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ xtend@4.0.2: {}
+
+ y18n@5.0.8: {}
+
+ yallist@3.1.1: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yocto-queue@0.1.0: {}
+
+ zod@3.24.2: {}
diff --git a/todo-app/postgres.conf b/examples/react/todo/postgres.conf
similarity index 100%
rename from todo-app/postgres.conf
rename to examples/react/todo/postgres.conf
diff --git a/todo-app/public/vite.svg b/examples/react/todo/public/vite.svg
similarity index 100%
rename from todo-app/public/vite.svg
rename to examples/react/todo/public/vite.svg
diff --git a/todo-app/scripts/migrate.ts b/examples/react/todo/scripts/migrate.ts
similarity index 100%
rename from todo-app/scripts/migrate.ts
rename to examples/react/todo/scripts/migrate.ts
diff --git a/todo-app/src/App.tsx b/examples/react/todo/src/App.tsx
similarity index 98%
rename from todo-app/src/App.tsx
rename to examples/react/todo/src/App.tsx
index 731047fd6..ffab314a8 100644
--- a/todo-app/src/App.tsx
+++ b/examples/react/todo/src/App.tsx
@@ -1,10 +1,9 @@
import React, { useState } from "react"
-import { useCollection } from "../../src/useCollection"
-import { createElectricSync } from "../../src/lib/electric"
+import { createElectricSync, useCollection } from "@tanstack/react-optimistic"
import { DevTools } from "./DevTools"
import { updateConfigSchema, updateTodoSchema } from "./db/validation"
import type { UpdateConfig, UpdateTodo } from "./db/validation"
-import type { Collection } from "../../src/collection"
+import type { Collection } from "@tanstack/react-optimistic"
import type { FormEvent } from "react"
export default function App() {
diff --git a/todo-app/src/DevTools.tsx b/examples/react/todo/src/DevTools.tsx
similarity index 98%
rename from todo-app/src/DevTools.tsx
rename to examples/react/todo/src/DevTools.tsx
index b6826e46c..84fe554d1 100644
--- a/todo-app/src/DevTools.tsx
+++ b/examples/react/todo/src/DevTools.tsx
@@ -1,7 +1,7 @@
import React, { useState } from "react"
-import { useCollections } from "../../src/useCollection"
+import { useCollections } from "@tanstack/react-optimistic"
import { DiffView } from "./DiffView"
-import type { Transaction } from "../../src/types"
+import type { Transaction } from "@tanstack/react-optimistic"
export function DevTools() {
const collections = useCollections()
diff --git a/todo-app/src/DiffView.tsx b/examples/react/todo/src/DiffView.tsx
similarity index 100%
rename from todo-app/src/DiffView.tsx
rename to examples/react/todo/src/DiffView.tsx
diff --git a/todo-app/src/api/mutations.ts b/examples/react/todo/src/api/mutations.ts
similarity index 100%
rename from todo-app/src/api/mutations.ts
rename to examples/react/todo/src/api/mutations.ts
diff --git a/todo-app/src/api/server.ts b/examples/react/todo/src/api/server.ts
similarity index 100%
rename from todo-app/src/api/server.ts
rename to examples/react/todo/src/api/server.ts
diff --git a/todo-app/src/api/write-to-pg.ts b/examples/react/todo/src/api/write-to-pg.ts
similarity index 100%
rename from todo-app/src/api/write-to-pg.ts
rename to examples/react/todo/src/api/write-to-pg.ts
diff --git a/todo-app/src/assets/react.svg b/examples/react/todo/src/assets/react.svg
similarity index 100%
rename from todo-app/src/assets/react.svg
rename to examples/react/todo/src/assets/react.svg
diff --git a/todo-app/src/db/index.ts b/examples/react/todo/src/db/index.ts
similarity index 100%
rename from todo-app/src/db/index.ts
rename to examples/react/todo/src/db/index.ts
diff --git a/todo-app/src/db/postgres.ts b/examples/react/todo/src/db/postgres.ts
similarity index 100%
rename from todo-app/src/db/postgres.ts
rename to examples/react/todo/src/db/postgres.ts
diff --git a/todo-app/src/db/schema.ts b/examples/react/todo/src/db/schema.ts
similarity index 100%
rename from todo-app/src/db/schema.ts
rename to examples/react/todo/src/db/schema.ts
diff --git a/todo-app/src/db/validation.ts b/examples/react/todo/src/db/validation.ts
similarity index 100%
rename from todo-app/src/db/validation.ts
rename to examples/react/todo/src/db/validation.ts
diff --git a/todo-app/src/index.css b/examples/react/todo/src/index.css
similarity index 94%
rename from todo-app/src/index.css
rename to examples/react/todo/src/index.css
index 9e6251953..5211a0414 100644
--- a/todo-app/src/index.css
+++ b/examples/react/todo/src/index.css
@@ -20,7 +20,11 @@ button {
}
body {
- font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font:
+ 14px "Helvetica Neue",
+ Helvetica,
+ Arial,
+ sans-serif;
line-height: 1.4em;
background: #f5f5f5;
color: #4d4d4d;
diff --git a/todo-app/src/main.tsx b/examples/react/todo/src/main.tsx
similarity index 100%
rename from todo-app/src/main.tsx
rename to examples/react/todo/src/main.tsx
diff --git a/todo-app/src/vite-env.d.ts b/examples/react/todo/src/vite-env.d.ts
similarity index 100%
rename from todo-app/src/vite-env.d.ts
rename to examples/react/todo/src/vite-env.d.ts
diff --git a/todo-app/vite.config.ts b/examples/react/todo/vite.config.ts
similarity index 100%
rename from todo-app/vite.config.ts
rename to examples/react/todo/vite.config.ts
diff --git a/package.json b/package.json
index 8fc1751f4..08244f789 100644
--- a/package.json
+++ b/package.json
@@ -1,82 +1,78 @@
{
- "name": "@tanstack/optimistic",
- "version": "0.0.8",
+ "name": "@tanstack/optimistic-monorepo",
"description": "Optimistic UI library for sync engines",
- "packageManager": "pnpm@10.6.3",
- "type": "module",
- "exports": {
- "./react-electric": {
- "types": "./dist/lib/electric.d.ts",
- "import": "./dist/lib/electric.mjs",
- "require": "./dist/cjs/lib/electric.cjs"
- },
- "./package.json": "./package.json"
- },
- "files": [
- "dist",
- "src"
- ],
- "scripts": {
- "build": "vite build && publint --strict",
- "prepack": "vite build",
- "test": "vitest --run",
- "lint": "eslint . --fix",
- "prepare": "husky",
- "changeset": "changeset",
- "changeset:version": "changeset version && pnpm install --no-frozen-lockfile",
- "changeset:publish": "changeset publish"
- },
- "lint-staged": {
- "*.{ts,tsx}": [
- "eslint --fix",
- "vitest related --run"
- ]
- },
- "keywords": [],
+ "version": "0.0.0",
"author": "Kyle Mathews ",
- "license": "MIT",
+ "dependencies": {
+ "diff": "^7.0.0"
+ },
"devDependencies": {
"@changesets/cli": "^2.28.1",
- "@eslint/js": "^9.20.0",
- "@stylistic/eslint-plugin": "^4.0.1",
+ "@eslint/js": "^9.22.0",
+ "@stylistic/eslint-plugin": "^4.2.0",
"@svitejs/changesets-changelog-github-compact": "^1.2.0",
"@tanstack/config": "^0.17.1",
"@testing-library/jest-dom": "^6.6.3",
- "@testing-library/react": "^16.2.0",
- "@types/node": "^22.13.4",
- "@types/react": "^19.0.10",
+ "@types/node": "^22.13.10",
+ "@types/react": "^19.0.12",
"@types/react-dom": "^19.0.4",
"@types/use-sync-external-store": "^0.0.6",
- "@typescript-eslint/eslint-plugin": "^8.24.1",
- "@typescript-eslint/parser": "^8.24.1",
+ "@typescript-eslint/eslint-plugin": "^8.26.1",
+ "@typescript-eslint/parser": "^8.26.1",
"@vitejs/plugin-react": "^4.3.4",
- "eslint": "^9.0.0",
- "eslint-config-prettier": "^10.0.1",
+ "eslint": "^9.22.0",
+ "eslint-config-prettier": "^10.1.1",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-react": "^7.37.4",
"fake-indexeddb": "^6.0.0",
"husky": "^9.1.7",
"jsdom": "^26.0.0",
- "lint-staged": "^15.4.3",
+ "lint-staged": "^15.5.0",
"mitt": "^3.0.1",
- "prettier": "^3.5.1",
+ "prettier": "^3.5.3",
"publint": "^0.3.9",
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
- "shx": "^0.3.4",
+ "shx": "^0.4.0",
"tsup": "^8.0.2",
- "typescript": "^5.7.3",
+ "typescript": "^5.8.2",
"vite": "^6.2.2",
- "vitest": "^3.0.6",
+ "vitest": "^3.0.9",
"zod": "^3.24.2"
},
- "dependencies": {
- "@electric-sql/client": "1.0.0",
- "@standard-schema/spec": "^1.0.0",
- "@tanstack/store": "^0.7.0",
- "diff": "^7.0.0",
- "idb": "^8.0.2",
- "postgres": "^3.4.5",
- "use-sync-external-store": "^1.4.0"
- }
+ "exports": {
+ "./react-electric": {
+ "types": "./dist/lib/electric.d.ts",
+ "import": "./dist/lib/electric.mjs",
+ "require": "./dist/cjs/lib/electric.cjs"
+ },
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "keywords": [],
+ "license": "MIT",
+ "lint-staged": {
+ "*.{ts,tsx}": [
+ "eslint --fix"
+ ]
+ },
+ "packageManager": "pnpm@10.6.3",
+ "private": true,
+ "scripts": {
+ "build": "pnpm --filter \"./packages/**\" build",
+ "changeset": "changeset",
+ "changeset:publish": "changeset publish",
+ "changeset:version": "changeset version && pnpm install --no-frozen-lockfile",
+ "lint": "eslint . --fix",
+ "prepack": "vite build",
+ "prepare": "husky",
+ "test": "pnpm --filter \"./packages/**\" test"
+ },
+ "type": "module",
+ "workspaces": [
+ "packages/*",
+ "examples/*",
+ "examples/react/*"
+ ]
}
diff --git a/packages/optimistic/package.json b/packages/optimistic/package.json
new file mode 100644
index 000000000..478eb1a9b
--- /dev/null
+++ b/packages/optimistic/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "@tanstack/optimistic",
+ "description": "Core optimistic updates library",
+ "version": "0.0.0",
+ "dependencies": {
+ "@standard-schema/spec": "^1.0.0",
+ "@tanstack/store": "^0.7.0",
+ "idb": "^8.0.2"
+ },
+ "devDependencies": {
+ "@vitest/coverage-istanbul": "^3.0.9"
+ },
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./dist/esm/index.d.ts",
+ "default": "./dist/esm/index.js"
+ },
+ "require": {
+ "types": "./dist/cjs/index.d.cts",
+ "default": "./dist/cjs/index.cjs"
+ }
+ },
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "main": "dist/cjs/index.cjs",
+ "module": "dist/esm/index.js",
+ "peerDependencies": {
+ "typescript": ">=4.7"
+ },
+ "scripts": {
+ "build": "vite build",
+ "dev": "vite build --watch",
+ "test": "npx vitest --run"
+ },
+ "sideEffects": false,
+ "type": "module",
+ "types": "dist/esm/index.d.ts"
+}
diff --git a/src/SortedMap.ts b/packages/optimistic/src/SortedMap.ts
similarity index 100%
rename from src/SortedMap.ts
rename to packages/optimistic/src/SortedMap.ts
diff --git a/src/TransactionManager.ts b/packages/optimistic/src/TransactionManager.ts
similarity index 98%
rename from src/TransactionManager.ts
rename to packages/optimistic/src/TransactionManager.ts
index 9aa6b4f69..a660a0669 100644
--- a/src/TransactionManager.ts
+++ b/packages/optimistic/src/TransactionManager.ts
@@ -65,7 +65,7 @@ export class TransactionManager> {
this.store.getTransactions().then((transactions) => {
transactions.forEach((tx) => {
this.transactions.setState((sortedMap) => {
- sortedMap.set(tx.id, tx)
+ sortedMap.set(tx.id, tx as Transaction)
return sortedMap
})
})
@@ -79,7 +79,9 @@ export class TransactionManager> {
* @returns The transaction if found, undefined otherwise
*/
getTransaction(id: string): Transaction | undefined {
- return this.transactions.state.get(id)
+ const transaction = this.transactions.state.get(id)
+
+ return transaction
}
private setTransaction(transaction: Transaction): void {
@@ -187,7 +189,7 @@ export class TransactionManager> {
strategy,
isSynced: createDeferred(),
isPersisted: createDeferred(),
- }
+ } as Transaction
}
// For ordered transactions, check if we need to queue behind another transaction
diff --git a/src/TransactionStore.ts b/packages/optimistic/src/TransactionStore.ts
similarity index 92%
rename from src/TransactionStore.ts
rename to packages/optimistic/src/TransactionStore.ts
index 252a8a37f..afcd0fe55 100644
--- a/src/TransactionStore.ts
+++ b/packages/optimistic/src/TransactionStore.ts
@@ -1,6 +1,6 @@
import { openDB } from "idb"
import type { DBSchema, IDBPDatabase } from "idb"
-import type { Transaction } from "./types"
+import type { Transaction, TransactionWithoutToObject } from "./types"
/**
* Interface defining the database schema for transaction storage
@@ -8,7 +8,7 @@ import type { Transaction } from "./types"
interface SyncDB extends DBSchema {
transactions: {
key: string
- value: Transaction
+ value: TransactionWithoutToObject
}
}
@@ -44,7 +44,7 @@ export class TransactionStore {
*
* @returns Promise resolving to an array of all transactions
*/
- async getTransactions(): Promise> {
+ async getTransactions(): Promise> {
const db = await this.getDB()
return db.getAll(`transactions`)
}
diff --git a/src/collection.ts b/packages/optimistic/src/collection.ts
similarity index 99%
rename from src/collection.ts
rename to packages/optimistic/src/collection.ts
index 7df775308..8cf8258f8 100644
--- a/src/collection.ts
+++ b/packages/optimistic/src/collection.ts
@@ -1,5 +1,5 @@
import { Derived, Store, batch } from "@tanstack/store"
-import { withArrayChangeTracking, withChangeTracking } from "./lib/proxy"
+import { withArrayChangeTracking, withChangeTracking } from "./proxy"
import { getTransactionManager } from "./TransactionManager"
import { TransactionStore } from "./TransactionStore"
import type {
@@ -552,7 +552,7 @@ export class Collection> {
items.forEach((item, index) => {
// Validate the data against the schema if one exists
const validatedData = this.validateData(item, `insert`)
- const key = keys[index]
+ const key = keys[index]!
const mutation: PendingMutation = {
mutationId: crypto.randomUUID(),
@@ -612,6 +612,9 @@ export class Collection> {
configOrCallback: ((draft: TItem | Array) => void) | OperationConfig,
maybeCallback?: (draft: TItem | Array) => void
) {
+ if (typeof items === `undefined`) {
+ throw new Error(`The first argument to update is missing`)
+ }
const isArray = Array.isArray(items)
const itemsArray = Array.isArray(items) ? items : [items]
const callback =
@@ -644,7 +647,7 @@ export class Collection> {
)
} else {
const result = withChangeTracking(
- currentObjects[0],
+ currentObjects[0] as TItem,
callback as (draft: TItem) => void
)
changesArray = [result]
diff --git a/src/deferred.ts b/packages/optimistic/src/deferred.ts
similarity index 100%
rename from src/deferred.ts
rename to packages/optimistic/src/deferred.ts
diff --git a/src/errors.ts b/packages/optimistic/src/errors.ts
similarity index 100%
rename from src/errors.ts
rename to packages/optimistic/src/errors.ts
diff --git a/packages/optimistic/src/index.ts b/packages/optimistic/src/index.ts
new file mode 100644
index 000000000..15b394472
--- /dev/null
+++ b/packages/optimistic/src/index.ts
@@ -0,0 +1,9 @@
+// Re-export all public APIs
+export * from "./collection"
+export * from "./SortedMap"
+export * from "./TransactionManager"
+export * from "./TransactionStore"
+export * from "./types"
+export * from "./errors"
+export * from "./utils"
+export * from "./proxy"
diff --git a/src/lib/proxy.ts b/packages/optimistic/src/proxy.ts
similarity index 99%
rename from src/lib/proxy.ts
rename to packages/optimistic/src/proxy.ts
index 6567d8f47..f9c9a33c5 100644
--- a/src/lib/proxy.ts
+++ b/packages/optimistic/src/proxy.ts
@@ -97,7 +97,7 @@ function deepClone(
// Copy the values
for (let i = 0; i < (obj as unknown as TypedArray).length; i++) {
- clone[i] = (obj as unknown as TypedArray)[i]
+ clone[i] = (obj as unknown as TypedArray)[i]!
}
return clone as unknown as T
@@ -761,11 +761,15 @@ export function createChangeProxy(
// Delete the property from the copy
if (changeTracker.copy_) {
- delete changeTracker.copy_[prop as keyof T]
+ // Use type assertion to tell TypeScript this is allowed
+ delete (changeTracker.copy_ as Record)[
+ prop
+ ]
}
// Delete the property from the original object
- delete dobj[prop as keyof TObj]
+ // Use type assertion to tell TypeScript this is allowed
+ delete (dobj as Record)[prop]
// If the property didn't exist in the original object, removing it
// should revert to the original state
diff --git a/src/types.ts b/packages/optimistic/src/types.ts
similarity index 92%
rename from src/types.ts
rename to packages/optimistic/src/types.ts
index 0be19b8b6..7058da2e9 100644
--- a/src/types.ts
+++ b/packages/optimistic/src/types.ts
@@ -1,5 +1,5 @@
-import type { Collection } from "./collection"
-import type { Deferred } from "./deferred"
+import type { Collection } from "../src/collection"
+import type { Deferred } from "../src/deferred"
import type { StandardSchemaV1 } from "@standard-schema/spec"
export type TransactionState =
@@ -43,9 +43,11 @@ export interface Transaction {
* Get a plain object representation of the transaction
* This is useful for creating clones or serializing the transaction
*/
- toObject?: () => Omit
+ toObject: () => Omit
}
+export type TransactionWithoutToObject = Omit
+
type Value =
| string
| number
@@ -58,7 +60,7 @@ type Value =
export type Row = Record>
-type OperationType = `insert` | `update` | `delete`
+export type OperationType = `insert` | `update` | `delete`
export interface SyncConfig> {
sync: (params: {
diff --git a/src/utils.ts b/packages/optimistic/src/utils.ts
similarity index 100%
rename from src/utils.ts
rename to packages/optimistic/src/utils.ts
diff --git a/src/SortedMap.test.ts b/packages/optimistic/tests/SortedMap.test.ts
similarity index 97%
rename from src/SortedMap.test.ts
rename to packages/optimistic/tests/SortedMap.test.ts
index 54587a13b..49feaf8e3 100644
--- a/src/SortedMap.test.ts
+++ b/packages/optimistic/tests/SortedMap.test.ts
@@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest"
-import { SortedMap } from "./SortedMap"
+import { SortedMap } from "../src/SortedMap"
describe(`SortedMap`, () => {
it(`maintains sorted order by values`, () => {
diff --git a/src/TransactionManager.test.ts b/packages/optimistic/tests/TransactionManager.test.ts
similarity index 94%
rename from src/TransactionManager.test.ts
rename to packages/optimistic/tests/TransactionManager.test.ts
index 7dd1df66c..7c4e6d072 100644
--- a/src/TransactionManager.test.ts
+++ b/packages/optimistic/tests/TransactionManager.test.ts
@@ -1,9 +1,9 @@
import { beforeEach, describe, expect, it } from "vitest"
-import { TransactionManager } from "./TransactionManager"
-import { TransactionStore } from "./TransactionStore"
+import { TransactionManager } from "../src/TransactionManager"
+import { TransactionStore } from "../src/TransactionStore"
import "fake-indexeddb/auto"
-import { Collection } from "./collection"
-import type { MutationStrategy, PendingMutation } from "./types"
+import { Collection } from "../src/collection"
+import type { MutationStrategy, PendingMutation } from "../src/types"
describe(`TransactionManager`, () => {
let store: TransactionStore
@@ -14,8 +14,8 @@ describe(`TransactionManager`, () => {
// Reset indexedDB for each test using the fake-indexeddb implementation
store = new TransactionStore()
collection = new Collection({
+ id: `foo`,
sync: {
- id: `mock`,
sync: () => {},
},
mutationFn: {
@@ -38,7 +38,7 @@ describe(`TransactionManager`, () => {
metadata: null,
createdAt: new Date(),
updatedAt: new Date(),
- state: `created`,
+ syncMetadata: {},
})
const orderedStrategy: MutationStrategy = {
@@ -192,7 +192,9 @@ describe(`TransactionManager`, () => {
...tx.toObject(),
createdAt: new Date(timestamp),
}
+
manager.transactions.setState((sortedMap) => {
+ // @ts-expect-error this is fine for a test
sortedMap.set(updatedTx.id, updatedTx)
return sortedMap
})
@@ -202,9 +204,9 @@ describe(`TransactionManager`, () => {
// Verify transactions are returned in chronological order (oldest first)
const sortedTransactions = Array.from(manager.transactions.state.values())
- expect(sortedTransactions[0].createdAt.getTime()).toBe(timestamps[2]) // Oldest
- expect(sortedTransactions[1].createdAt.getTime()).toBe(timestamps[1])
- expect(sortedTransactions[2].createdAt.getTime()).toBe(timestamps[0]) // Newest
+ expect(sortedTransactions[0]?.createdAt.getTime()).toBe(timestamps[2]) // Oldest
+ expect(sortedTransactions[1]?.createdAt.getTime()).toBe(timestamps[1])
+ expect(sortedTransactions[2]?.createdAt.getTime()).toBe(timestamps[0]) // Newest
})
it(`should create a new transaction when no existing transactions with overlapping keys exist`, () => {
@@ -230,7 +232,7 @@ describe(`TransactionManager`, () => {
// Create second transaction with a mutation - this should be queued behind the first.
const tx1 = manager.applyTransaction([originalMutation], orderedStrategy)
- expect(tx1.mutations[0].modified.value).toBe(`original-value`)
+ expect(tx1.mutations[0]?.modified.value).toBe(`original-value`)
// Apply a new transaction with a mutation for the same key but different value.
const newMutation = {
@@ -246,8 +248,8 @@ describe(`TransactionManager`, () => {
// Should have updated the mutation
expect(tx2.mutations.length).toBe(1)
- expect(tx2.mutations[0].modified.value).toBe(`updated-value`)
- expect(tx2.mutations[0].changes.value).toBe(`updated-value`)
+ expect(tx2.mutations[0]?.modified.value).toBe(`updated-value`)
+ expect(tx2.mutations[0]?.changes.value).toBe(`updated-value`)
})
it(`should add new mutations while preserving existing ones for different keys`, () => {
@@ -262,7 +264,7 @@ describe(`TransactionManager`, () => {
// Should create a new transaction since keys don't overlap
expect(tx2.id).not.toBe(tx1.id)
expect(tx2.mutations.length).toBe(1)
- expect(tx2.mutations[0].key).toBe(`test-apply-3b`)
+ expect(tx2.mutations[0]?.key).toBe(`test-apply-3b`)
})
it(`should handle multiple transactions with overlapping keys`, () => {
@@ -350,17 +352,17 @@ describe(`TransactionManager`, () => {
expect(tx3.id).not.toBe(tx1.id)
expect(tx3.id).not.toBe(tx2.id)
expect(tx3.mutations.length).toBe(1)
- expect(tx3.mutations[0].key).toBe(`key-3`)
+ expect(tx3.mutations[0]?.key).toBe(`key-3`)
// Original transactions should be unchanged
const updatedTx1 = manager.getTransaction(tx1.id)
const updatedTx2 = manager.getTransaction(tx2.id)
expect(updatedTx1?.mutations.length).toBe(1)
- expect(updatedTx1?.mutations[0].key).toBe(`key-1`)
+ expect(updatedTx1?.mutations[0]?.key).toBe(`key-1`)
expect(updatedTx2?.mutations.length).toBe(1)
- expect(updatedTx2?.mutations[0].key).toBe(`key-2`)
+ expect(updatedTx2?.mutations[0]?.key).toBe(`key-2`)
})
it(`should only consider active transactions for applying updates`, () => {
@@ -381,7 +383,7 @@ describe(`TransactionManager`, () => {
// Should create a new transaction since the existing one is completed
expect(tx2.id).not.toBe(tx1.id)
expect(tx2.mutations.length).toBe(1)
- expect(tx2.mutations[0].modified.value).toBe(`new-value`)
+ expect(tx2.mutations[0]?.modified.value).toBe(`new-value`)
})
})
@@ -596,7 +598,7 @@ describe(`TransactionManager`, () => {
// Verify transaction exists in IndexedDB
let transactions = await store.getTransactions()
expect(transactions.length).toBe(1)
- expect(transactions[0].id).toBe(tx.id)
+ expect(transactions[0]?.id).toBe(tx.id)
// Update to 'completed' state (terminal)
manager.setTransactionState(tx.id, `completed`)
@@ -614,7 +616,7 @@ describe(`TransactionManager`, () => {
// Verify transaction exists in IndexedDB
transactions = await store.getTransactions()
expect(transactions.length).toBe(1)
- expect(transactions[0].id).toBe(tx2.id)
+ expect(transactions[0]?.id).toBe(tx2.id)
// Update to 'failed' state (terminal)
manager.setTransactionState(tx2.id, `failed`)
diff --git a/src/TransactionStore.test.ts b/packages/optimistic/tests/TransactionStore.test.ts
similarity index 90%
rename from src/TransactionStore.test.ts
rename to packages/optimistic/tests/TransactionStore.test.ts
index b818cd156..d3dcdce3e 100644
--- a/src/TransactionStore.test.ts
+++ b/packages/optimistic/tests/TransactionStore.test.ts
@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it } from "vitest"
-import { TransactionStore } from "./TransactionStore"
-import type { Transaction, TransactionState } from "./types"
+import { TransactionStore } from "../src/TransactionStore"
+import type { Transaction, TransactionState } from "../src/types"
import "fake-indexeddb/auto"
describe(`TransactionStore`, () => {
@@ -33,7 +33,7 @@ describe(`TransactionStore`, () => {
const transactions = await store.getTransactions()
expect(transactions).toHaveLength(1)
- expect(transactions[0].id).toBe(`test-1`)
+ expect(transactions[0]?.id).toBe(`test-1`)
})
it(`should update an existing transaction`, async () => {
@@ -46,7 +46,7 @@ describe(`TransactionStore`, () => {
const transactions = await store.getTransactions()
expect(transactions).toHaveLength(1)
- expect(transactions[0].state).toBe(`completed`)
+ expect(transactions[0]?.state).toBe(`completed`)
})
it(`should delete a transaction`, async () => {
diff --git a/src/collection-getters.test.ts b/packages/optimistic/tests/collection-getters.test.ts
similarity index 96%
rename from src/collection-getters.test.ts
rename to packages/optimistic/tests/collection-getters.test.ts
index 8f81d05e5..cb2f03a2a 100644
--- a/src/collection-getters.test.ts
+++ b/packages/optimistic/tests/collection-getters.test.ts
@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it, vi } from "vitest"
-import { Collection } from "./collection"
-import type { ChangeMessage, CollectionConfig } from "./types"
+import { Collection } from "../src/collection"
+import type { ChangeMessage, CollectionConfig } from "../src/types"
import "fake-indexeddb/auto"
describe(`Collection getters`, () => {
@@ -9,7 +9,7 @@ describe(`Collection getters`, () => {
sync: (params: {
collection: Collection
begin: () => void
- write: (message: ChangeMessage) => void
+ write: (message: ChangeMessage) => void
commit: () => void
}) => void
}
diff --git a/src/collection.test.ts b/packages/optimistic/tests/collection.test.ts
similarity index 86%
rename from src/collection.test.ts
rename to packages/optimistic/tests/collection.test.ts
index e332b606b..e795e385c 100644
--- a/src/collection.test.ts
+++ b/packages/optimistic/tests/collection.test.ts
@@ -2,9 +2,8 @@ import { describe, expect, it, vi } from "vitest"
import "fake-indexeddb/auto"
import mitt from "mitt"
import { z } from "zod"
-import { Collection, SchemaValidationError } from "./collection"
-import type { ChangeMessage, PendingMutation } from "./types"
-import type { Row } from "@electric-sql/client"
+import { Collection, SchemaValidationError } from "../src/collection"
+import type { ChangeMessage, PendingMutation } from "../src/types"
describe(`Collection`, () => {
it(`should throw if there's no sync config`, () => {
@@ -14,16 +13,17 @@ describe(`Collection`, () => {
it(`should throw if there's no mutationFn`, () => {
expect(
() =>
- // @ts-expect-error Property 'mutationFn' is missing but required in type 'CollectionConfig'
+ // @ts-expect-error mutationFn is supposed to be missing.
new Collection({
- sync: { id: `test`, sync: async () => {} },
+ id: `foo`,
+ sync: { sync: async () => {} },
})
).toThrow(`Collection requires a mutationFn`)
})
it(`It shouldn't expose any state until the initial sync is finished`, () => {
// Create a collection with a mock sync plugin
- new Collection<{ value: string }>({
+ new Collection<{ name: string }>({
id: `foo`,
sync: {
sync: ({ collection, begin, write, commit }) => {
@@ -34,7 +34,7 @@ describe(`Collection`, () => {
begin()
// Write some test data
- const operations: Array = [
+ const operations: Array> = [
{ key: `user1`, value: { name: `Alice` }, type: `insert` },
{ key: `user2`, value: { name: `Bob` }, type: `insert` },
]
@@ -70,8 +70,8 @@ describe(`Collection`, () => {
// new collection w/ mock sync/mutation
const collection = new Collection<{ value: string; newProp?: string }>({
+ id: `mock`,
sync: {
- id: `mock`,
sync: ({ begin, write, commit }) => {
// @ts-expect-error don't trust mitt's typing
emitter.on(`*`, (_, changes: Array) => {
@@ -80,7 +80,8 @@ describe(`Collection`, () => {
write({
key: change.key,
type: change.type,
- value: change.changes as Row,
+ // @ts-expect-error TODO type changes
+ value: change.changes,
})
})
commit()
@@ -121,6 +122,7 @@ describe(`Collection`, () => {
// Test insert with auto-generated key
const data = { value: `bar` }
const transaction = collection.insert(data)
+ // @ts-expect-error possibly undefined is ok in test
const insertedKey = transaction.mutations[0].key
// The merged value should immediately contain the new insert
@@ -128,6 +130,7 @@ describe(`Collection`, () => {
// check there's a transaction in peristing state
expect(
+ // @ts-expect-error possibly undefined is ok in test
Array.from(collection.transactions.values())[0].mutations[0].changes
).toEqual({
value: `bar`,
@@ -142,6 +145,7 @@ describe(`Collection`, () => {
expect(collection.optimisticOperations.state[0]).toEqual(insertOperation)
// Check persist data (moved outside the persist callback)
+ // @ts-expect-error possibly undefined is ok in test
const persistData = persistMock.mock.calls[0][0]
// Check that the transaction is in the right state during persist
expect(persistData.transaction.state).toBe(`persisting`)
@@ -155,6 +159,7 @@ describe(`Collection`, () => {
await transaction.isSynced?.promise
// Check sync data (moved outside the awaitSync callback)
+ // @ts-expect-error possibly undefined is ok in test
const syncData = syncMock.mock.calls[0][0]
// Check that the transaction is in the right state during sync waiting
expect(syncData.transaction.state).toBe(`completed`)
@@ -166,6 +171,7 @@ describe(`Collection`, () => {
// after mutationFn returns, check that the transaction is updated &
// optimistic update is gone & synced data & comibned state are all updated.
expect(
+ // @ts-expect-error possibly undefined is ok in test
Array.from(collection.transactions.values())[0].state
).toMatchInlineSnapshot(`"completed"`)
expect(collection.optimisticOperations.state).toEqual([])
@@ -179,11 +185,14 @@ describe(`Collection`, () => {
const bulkData = [{ value: `item1` }, { value: `item2` }]
collection.insert(bulkData)
const keys = Array.from(collection.state.keys())
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[2])).toEqual(bulkData[0])
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[3])).toEqual(bulkData[1])
// Test update with callback
collection.update([collection.state.get(insertedKey)!], (item) => {
+ // @ts-expect-error possibly undefined is ok in test
item[0].value = `bar2`
})
@@ -192,7 +201,7 @@ describe(`Collection`, () => {
// Test update with config and callback
collection.update(
- collection.state.get(insertedKey)!,
+ collection.state.get(insertedKey),
{ metadata: { updated: true } },
(item) => {
item.value = `bar3`
@@ -208,17 +217,21 @@ describe(`Collection`, () => {
// Test bulk update
const items = [
+ // @ts-expect-error possibly undefined is ok in test
collection.state.get(keys[2])!,
+ // @ts-expect-error possibly undefined is ok in test
collection.state.get(keys[3])!,
]
- collection.update(items, { metadata: { bulkUpdate: true } }, (draft) => {
- draft.forEach((item) => {
- item.value += `-updated`
+ collection.update(items, { metadata: { bulkUpdate: true } }, (drafts) => {
+ drafts.forEach((draft) => {
+ draft.value += `-updated`
})
})
// Check bulk updates
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[2])).toEqual({ value: `item1-updated` })
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[3])).toEqual({ value: `item2-updated` })
const toBeDeleted = collection.state.get(insertedKey)!
@@ -228,17 +241,21 @@ describe(`Collection`, () => {
expect(collection.objectKeyMap.has(toBeDeleted)).toBe(false)
// Test delete with metadata
- collection.delete(collection.state.get(`custom-key`)!, {
+ collection.delete(collection.state.get(`custom-key`), {
metadata: { reason: `test` },
})
expect(collection.state.has(`custom-key`)).toBe(false)
// Test bulk delete
collection.delete([
+ // @ts-expect-error possibly undefined is ok in test
collection.state.get(keys[2])!,
+ // @ts-expect-error possibly undefined is ok in test
collection.state.get(keys[3])!,
])
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.has(keys[2])).toBe(false)
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.has(keys[3])).toBe(false)
})
@@ -247,8 +264,8 @@ describe(`Collection`, () => {
// new collection w/ mock sync/mutation
const collection = new Collection<{ value: string }>({
+ id: `mock`,
sync: {
- id: `mock`,
sync: ({ begin, write, commit }) => {
// @ts-expect-error don't trust Mitt's typing and this works.
emitter.on(`*`, (_, changes: Array) => {
@@ -257,7 +274,8 @@ describe(`Collection`, () => {
write({
key: change.key,
type: change.type,
- value: change.changes as Row,
+ // @ts-expect-error TODO type changes
+ value: change.changes,
})
})
commit()
@@ -296,6 +314,7 @@ describe(`Collection`, () => {
// check there's a transaction in peristing state
expect(
+ // @ts-expect-error possibly undefined is ok in test
Array.from(collection.transactions.values())[0].mutations[0].changes
).toEqual({
value: `bar`,
@@ -330,8 +349,8 @@ describe(`Collection`, () => {
it(`should handle sparse key arrays for bulk inserts`, () => {
const collection = new Collection<{ value: string }>({
+ id: `test`,
sync: {
- id: `test`,
sync: ({ begin, commit }) => {
begin()
commit()
@@ -367,9 +386,13 @@ describe(`Collection`, () => {
expect(keys[3]).toHaveLength(6)
// Verify all items were inserted with correct values
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[0])).toEqual({ value: `item1` })
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[1])).toEqual({ value: `item2` })
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[2])).toEqual({ value: `item3` })
+ // @ts-expect-error possibly undefined is ok in test
expect(collection.state.get(keys[3])).toEqual({ value: `item4` })
// Test error case: more keys than items
@@ -392,8 +415,8 @@ describe(`Collection with schema validation`, () => {
// Create a collection with the schema
const collection = new Collection>({
+ id: `test`,
sync: {
- id: `test`,
sync: ({ begin, commit }) => {
begin()
commit()
@@ -444,13 +467,13 @@ describe(`Collection with schema validation`, () => {
}
// Partial updates should work with valid data
- collection.update(collection.state.get(`user1`)!, (draft) => {
+ collection.update(collection.state.get(`user1`), (draft) => {
draft.age = 31
})
// Partial updates should fail with invalid data
try {
- collection.update(collection.state.get(`user1`)!, (draft) => {
+ collection.update(collection.state.get(`user1`), (draft) => {
draft.age = -1
})
// Should not reach here
diff --git a/src/deferred.test.ts b/packages/optimistic/tests/deferred.test.ts
similarity index 97%
rename from src/deferred.test.ts
rename to packages/optimistic/tests/deferred.test.ts
index e44522f86..ad5b285e3 100644
--- a/src/deferred.test.ts
+++ b/packages/optimistic/tests/deferred.test.ts
@@ -1,6 +1,6 @@
import { describe, expect, it } from "vitest"
-import { createDeferred } from "./deferred"
-import type { Deferred } from "./deferred"
+import { createDeferred } from "../src/deferred"
+import type { Deferred } from "../src/deferred"
describe(`Deferred`, () => {
it(`should create a deferred object with the correct shape`, () => {
diff --git a/src/object-key-map.test.ts b/packages/optimistic/tests/object-key-map.test.ts
similarity index 91%
rename from src/object-key-map.test.ts
rename to packages/optimistic/tests/object-key-map.test.ts
index e0c2eb436..cef6669d9 100644
--- a/src/object-key-map.test.ts
+++ b/packages/optimistic/tests/object-key-map.test.ts
@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it } from "vitest"
import { z } from "zod"
-import { Collection } from "./collection"
+import { Collection } from "../src/collection"
import "fake-indexeddb/auto"
describe(`Object-Key Association`, () => {
@@ -13,10 +13,9 @@ describe(`Object-Key Association`, () => {
})
collection = new Collection<{ name: string; age: number }>({
- name: `test-collection`,
+ id: `test-sync`,
schema,
sync: {
- id: `test-sync`,
sync: async () => {},
},
mutationFn: {
@@ -37,7 +36,7 @@ describe(`Object-Key Association`, () => {
expect(item).toBeDefined()
// Update using the object reference
- collection.update(item!, (draft) => {
+ collection.update(item, (draft) => {
draft.age = 31
})
@@ -60,8 +59,10 @@ describe(`Object-Key Association`, () => {
// Update multiple objects using their references
collection.update([john!, jane!], (items) => {
- items[0].age = 31
- items[1].name = `Jane Doe`
+ if (items[0] && items[1]) {
+ items[0].age = 31
+ items[1].name = `Jane Doe`
+ }
})
// Verify updates
@@ -77,7 +78,7 @@ describe(`Object-Key Association`, () => {
const john = collection.state.get(`user1`)
// Delete using the object reference
- collection.delete(john!)
+ collection.delete(john)
// Verify deletion
expect(collection.state.get(`user1`)).toBeUndefined()
@@ -91,12 +92,12 @@ describe(`Object-Key Association`, () => {
const john = collection.state.get(`user1`)
// First update
- collection.update(john!, (item) => {
+ collection.update(john, (item) => {
item.age = 31
})
// Second update using the same object reference
- collection.update(john!, (item) => {
+ collection.update(john, (item) => {
item.name = `John Doe`
})
diff --git a/src/lib/proxy.test.ts b/packages/optimistic/tests/proxy.test.ts
similarity index 92%
rename from src/lib/proxy.test.ts
rename to packages/optimistic/tests/proxy.test.ts
index e7acecd11..dd1647efd 100644
--- a/src/lib/proxy.test.ts
+++ b/packages/optimistic/tests/proxy.test.ts
@@ -4,7 +4,7 @@ import {
createChangeProxy,
withArrayChangeTracking,
withChangeTracking,
-} from "./proxy"
+} from "../src/proxy"
describe(`Proxy Library`, () => {
describe(`createChangeProxy`, () => {
@@ -101,7 +101,11 @@ describe(`Proxy Library`, () => {
})
it(`should track when properties are deleted from objects`, () => {
- const obj = { name: `John`, age: 30, role: `admin` }
+ const obj: { name: string; age: number; role?: string } = {
+ name: `John`,
+ age: 30,
+ role: `admin`,
+ }
const { proxy, getChanges } = createChangeProxy(obj)
delete proxy.role
@@ -129,15 +133,19 @@ describe(`Proxy Library`, () => {
it(`should properly handle objects with circular references`, () => {
const obj: unknown = { name: `John`, age: 30 }
+ // @ts-expect-error ignore for test
obj.self = obj // Create circular reference
+ // @ts-expect-error ignore for test
const { proxy, getChanges } = createChangeProxy(obj)
+ // @ts-expect-error ignore for test
proxy.name = `Jane`
expect(getChanges()).toEqual({
name: `Jane`,
})
+ // @ts-expect-error ignore for test
expect(obj.name).toBe(`Jane`)
})
@@ -316,11 +324,13 @@ describe(`Proxy Library`, () => {
})
const { proxy, getChanges } = createChangeProxy(obj)
+ // @ts-expect-error ignore for test
proxy.hidden = `modified`
expect(getChanges()).toEqual({
hidden: `modified`,
})
+ // @ts-expect-error ignore for test
expect(obj.hidden).toBe(`modified`)
})
@@ -329,15 +339,21 @@ describe(`Proxy Library`, () => {
const { proxy } = createChangeProxy(obj)
// Attempt to modify Object.prototype through the proxy
+ // @ts-expect-error ignore for test
proxy.__proto__ = { malicious: true }
+ // @ts-expect-error ignore for test
proxy.constructor.prototype.malicious = true
// Verify that Object.prototype wasn't polluted
+ // @ts-expect-error ignore for test
expect({}.malicious).toBeUndefined()
+ // @ts-expect-error ignore for test
expect(Object.prototype.malicious).toBeUndefined()
// The changes should only affect the proxy's own prototype chain
+ // @ts-expect-error ignore for test
expect(proxy.__proto__.malicious).toBe(true)
+ // @ts-expect-error ignore for test
expect(proxy.constructor.prototype.malicious).toBe(true)
})
})
@@ -391,6 +407,7 @@ describe(`Proxy Library`, () => {
let errorThrown = false
let errorMessage = ``
try {
+ // @ts-expect-error ignore for test
proxy.role = `admin`
} catch (e) {
// Expected error
@@ -432,6 +449,7 @@ describe(`Proxy Library`, () => {
let errorThrown = false
let errorMessage = ``
try {
+ // @ts-expect-error ignore for test
proxy.role = `admin`
} catch (e) {
// Expected error
@@ -479,7 +497,7 @@ describe(`Proxy Library`, () => {
}
// Verify the original map was modified
- expect(map.get(`key1`).count).toBe(10)
+ expect(map.get(`key1`)?.count).toBe(10)
// Force a change to ensure the proxy tracks it
proxy.myMap.set(`key3`, { count: 3 })
@@ -540,7 +558,7 @@ describe(`Proxy Library`, () => {
})
// Verify the original map was modified
- expect(map.get(`key2`).count).toBe(20)
+ expect(map.get(`key2`)?.count).toBe(20)
// Force a change to ensure the proxy tracks it
proxy.myMap.set(`key3`, { count: 3 })
@@ -676,7 +694,9 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Make changes to the proxies
+ // @ts-expect-error ok possibly undefined
proxies[0].name = `Johnny`
+ // @ts-expect-error ok possibly undefined
proxies[1].name = `Janet`
// Check that the changes are tracked
@@ -708,6 +728,7 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Create a new array without the last element
+ // @ts-expect-error ok possibly undefined
proxies[0].items = proxies[0].items.slice(0, -1)
expect(getChanges()).toEqual([
@@ -715,6 +736,7 @@ describe(`Proxy Library`, () => {
items: [`apple`, `banana`],
},
])
+ // @ts-expect-error ok possibly undefined
expect(objs[0].items).toEqual([`apple`, `banana`])
})
@@ -723,6 +745,8 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Create a new array without the first element
+
+ // @ts-expect-error ok possibly undefined
proxies[0].items = proxies[0].items.slice(1)
expect(getChanges()).toEqual([
@@ -730,6 +754,7 @@ describe(`Proxy Library`, () => {
items: [`banana`, `cherry`],
},
])
+ // @ts-expect-error ok possibly undefined
expect(objs[0].items).toEqual([`banana`, `cherry`])
})
@@ -738,6 +763,8 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Create a new array with an element added at the beginning
+ // @ts-expect-error ok possibly undefined
+
proxies[0].items = [`apple`, ...proxies[0].items]
expect(getChanges()).toEqual([
@@ -745,6 +772,8 @@ describe(`Proxy Library`, () => {
items: [`apple`, `banana`, `cherry`],
},
])
+ // @ts-expect-error ok possibly undefined
+
expect(objs[0].items).toEqual([`apple`, `banana`, `cherry`])
})
@@ -753,8 +782,12 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Create a new array with elements replaced in the middle
+ // @ts-expect-error ok possibly undefined
+
const newItems = [...proxies[0].items]
newItems.splice(1, 2, `blueberry`, `cranberry`)
+ // @ts-expect-error ok possibly undefined
+
proxies[0].items = newItems
expect(getChanges()).toEqual([
@@ -762,6 +795,7 @@ describe(`Proxy Library`, () => {
items: [`apple`, `blueberry`, `cranberry`, `date`],
},
])
+ // @ts-expect-error ok possibly undefined
expect(objs[0].items).toEqual([`apple`, `blueberry`, `cranberry`, `date`])
})
@@ -770,6 +804,7 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Create a new sorted array
+ // @ts-expect-error ok possibly undefined
proxies[0].items = [...proxies[0].items].sort()
expect(getChanges()).toEqual([
@@ -777,6 +812,7 @@ describe(`Proxy Library`, () => {
items: [`apple`, `banana`, `cherry`],
},
])
+ // @ts-expect-error ok possibly undefined
expect(objs[0].items).toEqual([`apple`, `banana`, `cherry`])
})
@@ -792,8 +828,10 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Update a nested array
+ // @ts-expect-error ok possibly undefined
const newMatrix = [...proxies[0].matrix]
newMatrix[0] = [5, 6]
+ // @ts-expect-error ok possibly undefined
proxies[0].matrix = newMatrix
expect(getChanges()).toEqual([
@@ -804,10 +842,12 @@ describe(`Proxy Library`, () => {
],
},
])
- expect(objs[0].matrix).toEqual([
- [5, 6],
- [3, 4],
- ])
+ if (objs[0]) {
+ expect(objs[0].matrix).toEqual([
+ [5, 6],
+ [3, 4],
+ ])
+ }
})
it(`should handle objects containing arrays as properties`, () => {
@@ -822,8 +862,10 @@ describe(`Proxy Library`, () => {
const { proxies, getChanges } = createArrayChangeProxy(objs)
// Update the array within the nested object
+ // @ts-expect-error ok for test.
const updatedUser = { ...proxies[0].user }
updatedUser.hobbies = [...updatedUser.hobbies, `cycling`]
+ // @ts-expect-error ok for test.
proxies[0].user = updatedUser
expect(getChanges()).toEqual([
@@ -834,7 +876,9 @@ describe(`Proxy Library`, () => {
},
},
])
- expect(objs[0].user.hobbies).toEqual([`reading`, `swimming`, `cycling`])
+ if (objs[0]) {
+ expect(objs[0].user.hobbies).toEqual([`reading`, `swimming`, `cycling`])
+ }
})
it(`should handle Set and Map objects`, () => {
@@ -858,9 +902,11 @@ describe(`Proxy Library`, () => {
const newSet = new Set([...set, 4])
const newMap = new Map([...map, [`key3`, `value3`]])
- proxies[0].collections = {
- set: newSet,
- map: newMap,
+ if (proxies[0]) {
+ proxies[0].collections = {
+ set: newSet,
+ map: newMap,
+ }
}
expect(getChanges()).toEqual([
@@ -871,8 +917,10 @@ describe(`Proxy Library`, () => {
},
},
])
- expect(objs[0].collections.set).toEqual(newSet)
- expect(objs[0].collections.map).toEqual(newMap)
+ if (objs[0]) {
+ expect(objs[0].collections.set).toEqual(newSet)
+ expect(objs[0].collections.map).toEqual(newMap)
+ }
})
})
@@ -907,8 +955,10 @@ describe(`Proxy Library`, () => {
]
const changes = withArrayChangeTracking(objs, (proxies) => {
- proxies[0].name = `Johnny`
- proxies[1].name = `Janet`
+ if (proxies[0] && proxies[1]) {
+ proxies[0].name = `Johnny`
+ proxies[1].name = `Janet`
+ }
})
// Check that the changes are tracked
@@ -1155,7 +1205,7 @@ describe(`Proxy Library`, () => {
describe(`Object.defineProperty and Meta Operations`, () => {
it(`should track changes made through Object.defineProperty`, () => {
- const obj = { name: `John` }
+ const obj: { name: string; age?: number } = { name: `John` }
const { proxy, getChanges } = createChangeProxy(obj)
Object.defineProperty(proxy, `age`, {
@@ -1172,9 +1222,10 @@ describe(`Proxy Library`, () => {
})
it(`should handle Object.setPrototypeOf`, () => {
- const obj = { name: `John` }
- const proto = {
- greet() {
+ type foo = { name?: string; greet?: any }
+ const obj: foo = { name: `John` }
+ const proto: foo = {
+ greet(): string {
return `Hello, ${this.name}!`
},
}
@@ -1193,15 +1244,21 @@ describe(`Proxy Library`, () => {
const { proxy } = createChangeProxy(obj)
// Attempt to modify Object.prototype through the proxy
+ // @ts-expect-error ignore for test
proxy.__proto__ = { malicious: true }
+ // @ts-expect-error ignore for test
proxy.constructor.prototype.malicious = true
// Verify that Object.prototype wasn't polluted
+ // @ts-expect-error ignore for test
expect({}.malicious).toBeUndefined()
+ // @ts-expect-error ignore for test
expect(Object.prototype.malicious).toBeUndefined()
// The changes should only affect the proxy's own prototype chain
+ // @ts-expect-error ignore for test
expect(proxy.__proto__.malicious).toBe(true)
+ // @ts-expect-error ignore for test
expect(proxy.constructor.prototype.malicious).toBe(true)
})
})
diff --git a/packages/optimistic/tests/test-setup.ts b/packages/optimistic/tests/test-setup.ts
new file mode 100644
index 000000000..b9e762299
--- /dev/null
+++ b/packages/optimistic/tests/test-setup.ts
@@ -0,0 +1 @@
+import "@testing-library/jest-dom/vitest"
diff --git a/packages/optimistic/tsconfig.json b/packages/optimistic/tsconfig.json
new file mode 100644
index 000000000..7e586bab3
--- /dev/null
+++ b/packages/optimistic/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "target": "ES2020",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "declaration": true,
+ "outDir": "dist",
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "jsx": "react",
+ "paths": {
+ "@tanstack/store": ["../store/src"]
+ }
+ },
+ "include": ["src", "tests", "vite.config.ts"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/packages/optimistic/vite.config.ts b/packages/optimistic/vite.config.ts
new file mode 100644
index 000000000..840a0f7b9
--- /dev/null
+++ b/packages/optimistic/vite.config.ts
@@ -0,0 +1,22 @@
+import { defineConfig, mergeConfig } from "vitest/config"
+import { tanstackViteConfig } from "@tanstack/config/vite"
+import packageJson from "./package.json"
+
+const config = defineConfig({
+ test: {
+ name: packageJson.name,
+ dir: `./tests`,
+ environment: `jsdom`,
+ coverage: { enabled: true, provider: `istanbul`, include: [`src/**/*`] },
+ typecheck: { enabled: true },
+ setupFiles: [`./tests/test-setup.ts`],
+ },
+})
+
+export default mergeConfig(
+ config,
+ tanstackViteConfig({
+ entry: `./src/index.ts`,
+ srcDir: `./src`,
+ })
+)
diff --git a/packages/react-optimistic/package.json b/packages/react-optimistic/package.json
new file mode 100644
index 000000000..2bb1258b5
--- /dev/null
+++ b/packages/react-optimistic/package.json
@@ -0,0 +1,51 @@
+{
+ "name": "@tanstack/react-optimistic",
+ "description": "React hooks for optimistic updates",
+ "version": "0.0.0",
+ "dependencies": {
+ "@tanstack/optimistic": "workspace:*",
+ "@tanstack/store": "^0.7.0",
+ "use-sync-external-store": "^1.2.0"
+ },
+ "devDependencies": {
+ "@electric-sql/client": "1.0.0",
+ "@testing-library/react": "^16.2.0",
+ "@types/react": "^19.0.12",
+ "@types/react-dom": "^19.0.3",
+ "@types/use-sync-external-store": "^0.0.6",
+ "@vitest/coverage-istanbul": "^3.0.9",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0"
+ },
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./dist/esm/index.d.ts",
+ "default": "./dist/esm/index.js"
+ },
+ "require": {
+ "types": "./dist/cjs/index.d.cts",
+ "default": "./dist/cjs/index.cjs"
+ }
+ },
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "main": "dist/cjs/index.cjs",
+ "module": "dist/esm/index.js",
+ "peerDependencies": {
+ "@electric-sql/client": "1.0.0",
+ "react": ">=16.8.0"
+ },
+ "scripts": {
+ "build": "vite build",
+ "dev": "vite build --watch",
+ "test": "npx vitest --run"
+ },
+ "sideEffects": false,
+ "type": "module",
+ "types": "dist/esm/index.d.ts"
+}
diff --git a/src/lib/electric.ts b/packages/react-optimistic/src/electric.ts
similarity index 97%
rename from src/lib/electric.ts
rename to packages/react-optimistic/src/electric.ts
index ecaa8f150..c68e4ce66 100644
--- a/src/lib/electric.ts
+++ b/packages/react-optimistic/src/electric.ts
@@ -4,7 +4,7 @@ import {
isControlMessage,
} from "@electric-sql/client"
import { Store } from "@tanstack/store"
-import type { SyncConfig } from "../types"
+import type { SyncConfig } from "@tanstack/optimistic"
import type {
ControlMessage,
Message,
@@ -13,9 +13,9 @@ import type {
} from "@electric-sql/client"
// Re-exports
-export type * from "../types"
-export * from "../useCollection"
-export type { Collection } from "../collection"
+export type * from "@tanstack/optimistic"
+export * from "./useCollection"
+export type { Collection } from "@tanstack/optimistic"
/**
* Extended SyncConfig interface with ElectricSQL-specific functionality
diff --git a/packages/react-optimistic/src/index.ts b/packages/react-optimistic/src/index.ts
new file mode 100644
index 000000000..0781006b2
--- /dev/null
+++ b/packages/react-optimistic/src/index.ts
@@ -0,0 +1,6 @@
+// Re-export all public APIs
+export * from "./useCollection"
+export * from "./electric"
+
+// Re-export everything from @tanstack/optimistic
+export * from "@tanstack/optimistic"
diff --git a/src/useCollection.ts b/packages/react-optimistic/src/useCollection.ts
similarity index 97%
rename from src/useCollection.ts
rename to packages/react-optimistic/src/useCollection.ts
index 4c06672f7..e1742a469 100644
--- a/src/useCollection.ts
+++ b/packages/react-optimistic/src/useCollection.ts
@@ -1,7 +1,14 @@
import { useSyncExternalStoreWithSelector } from "use-sync-external-store/shim/with-selector.js"
-import { Collection, collectionsStore, preloadCollection } from "./collection"
-import type { SortedMap } from "./SortedMap"
-import type { CollectionConfig, Transaction } from "./types"
+import {
+ Collection,
+ collectionsStore,
+ preloadCollection,
+} from "@tanstack/optimistic"
+import type {
+ CollectionConfig,
+ SortedMap,
+ Transaction,
+} from "@tanstack/optimistic"
export { preloadCollection }
@@ -395,10 +402,10 @@ export function shallow(objA: T, objB: T) {
return false
}
- for (const i of keysA) {
+ for (const key of keysA) {
if (
- !Object.prototype.hasOwnProperty.call(objB, keysA[i]) ||
- !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])
+ !Object.prototype.hasOwnProperty.call(objB, key) ||
+ !Object.is(objA[key as keyof T], objB[key as keyof T])
) {
return false
}
diff --git a/src/lib/electric.test.ts b/packages/react-optimistic/tests/electric.test.ts
similarity index 93%
rename from src/lib/electric.test.ts
rename to packages/react-optimistic/tests/electric.test.ts
index ede6fe8a8..9faacea78 100644
--- a/src/lib/electric.test.ts
+++ b/packages/react-optimistic/tests/electric.test.ts
@@ -1,10 +1,10 @@
import { beforeEach, describe, expect, it, vi } from "vitest"
-import { Collection } from "../collection"
-import { createElectricSync } from "./electric"
+import { Collection } from "@tanstack/optimistic"
+import { createElectricSync } from "../src/electric"
+import type { PendingMutation, Transaction } from "@tanstack/optimistic"
import type { Message, Row } from "@electric-sql/client"
-import type { ElectricSync } from "./electric"
+import type { ElectricSync } from "../src/electric"
import "fake-indexeddb/auto"
-import type { PendingMutation, Transaction } from "../types"
// Mock the ShapeStream module
const mockSubscribe = vi.fn()
@@ -47,6 +47,7 @@ describe(`Electric Integration`, () => {
// Create collection with Electric sync
collection = new Collection({
+ id: `test`,
sync: electricSync,
mutationFn: {
persist: vi.fn().mockResolvedValue(undefined),
@@ -159,7 +160,7 @@ describe(`Electric Integration`, () => {
subscriber([
{
key: `1`,
- value: null,
+ value: {},
headers: { operation: `delete` },
},
{
@@ -271,7 +272,7 @@ describe(`Electric Integration`, () => {
},
{
headers: {
- control: `info`,
+ control: `up-to-date`,
txids: [laterTxid],
},
},
@@ -291,7 +292,7 @@ describe(`Electric Integration`, () => {
it(`should simulate the complete flow from persist to awaitSync`, async () => {
// Create a fake backend store to simulate server-side storage
const fakeBackend = {
- data: new Map(),
+ data: new Map(),
// Simulates persisting data to a backend and returning a txid
persist: (mutations: Array): Promise => {
const txid = Date.now()
@@ -311,11 +312,11 @@ describe(`Electric Integration`, () => {
// Create messages for each item in the store that has this txid
const messages: Array> = []
- fakeBackend.data.forEach((data, key) => {
- if (data.txid === txid) {
+ fakeBackend.data.forEach((value, key) => {
+ if (value.txid === txid) {
messages.push({
key,
- value: data.value,
+ value: value.value as Row,
headers: {
operation: `insert`,
txids: [txid],
@@ -344,7 +345,7 @@ describe(`Electric Integration`, () => {
const txid = await fakeBackend.persist(transaction.mutations)
// Return the txid (which will be passed to awaitSync)
- return { txid }
+ return Promise.resolve({ txid })
}
),
@@ -368,13 +369,14 @@ describe(`Electric Integration`, () => {
// Wait for the txid to be seen
await awaitPromise
- return true
+ return Promise.resolve()
}
),
}
// Create a new collection with our test mutation function
const testCollection = new Collection({
+ id: `ofo`,
sync: electricSync,
mutationFn: testMutationFn,
})
@@ -420,7 +422,9 @@ describe(`Electric Integration`, () => {
])
// Get the metadata for the inserted item
- const metadata = collection.syncedMetadata.state.get(`1`)
+ const metadata = collection.syncedMetadata.state.get(`1`) as {
+ primaryKey: string
+ }
// Verify that the primaryKey is included in the metadata
expect(metadata).toHaveProperty(`primaryKey`)
@@ -430,7 +434,8 @@ describe(`Electric Integration`, () => {
it(`Transaction proxy with toObject method works correctly`, () => {
// Create a collection with a simple mutation function
const testCollection = new Collection({
- sync: createElectricSync({}, { primaryKey: [`id`] }), // Add primary key
+ id: `foo`,
+ sync: createElectricSync({ url: `foo` }, { primaryKey: [`id`] }), // Add primary key
mutationFn: {
persist: async () => {},
awaitSync: async () => {},
diff --git a/src/preloadCollection.test.ts b/packages/react-optimistic/tests/preloadCollection.test.ts
similarity index 94%
rename from src/preloadCollection.test.ts
rename to packages/react-optimistic/tests/preloadCollection.test.ts
index 61302af2d..549e6fa8b 100644
--- a/src/preloadCollection.test.ts
+++ b/packages/react-optimistic/tests/preloadCollection.test.ts
@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it, vi } from "vitest"
-import { preloadCollection } from "./useCollection"
-import type { CollectionConfig } from "./types"
+import { preloadCollection } from "../src/useCollection"
+import type { CollectionConfig } from "@tanstack/optimistic"
import "fake-indexeddb/auto"
describe(`preloadCollection`, () => {
@@ -15,7 +15,6 @@ describe(`preloadCollection`, () => {
const config: { id: string } & CollectionConfig = {
id: `test-collection`,
sync: {
- id: `test-collection-sync`,
sync: ({ begin, write, commit }) => {
// Store the commit function to call it later
commitFn = commit
@@ -67,7 +66,6 @@ describe(`preloadCollection`, () => {
const config: { id: string } & CollectionConfig = {
id: `test-collection-2`,
sync: {
- id: `test-collection-sync-2`,
sync: ({ begin, write, commit }) => {
begin()
write({
@@ -106,7 +104,6 @@ describe(`preloadCollection`, () => {
const config: { id: string } & CollectionConfig = {
id: `test-collection-3`,
sync: {
- id: `test-collection-sync-3`,
sync: ({ begin, write, commit }) => {
beginCalled++
commitFn = commit
diff --git a/packages/react-optimistic/tests/test-setup.ts b/packages/react-optimistic/tests/test-setup.ts
new file mode 100644
index 000000000..84b267ed1
--- /dev/null
+++ b/packages/react-optimistic/tests/test-setup.ts
@@ -0,0 +1,7 @@
+import "@testing-library/jest-dom/vitest"
+import { cleanup } from "@testing-library/react"
+import { afterEach } from "vitest"
+
+global.IS_REACT_ACT_ENVIRONMENT = true
+// https://testing-library.com/docs/react-testing-library/api#cleanup
+afterEach(() => cleanup())
diff --git a/src/useCollection.test.tsx b/packages/react-optimistic/tests/useCollection.test.tsx
similarity index 71%
rename from src/useCollection.test.tsx
rename to packages/react-optimistic/tests/useCollection.test.tsx
index 82a42d57a..54be99524 100644
--- a/src/useCollection.test.tsx
+++ b/packages/react-optimistic/tests/useCollection.test.tsx
@@ -1,7 +1,8 @@
import { describe, expect, it, vi } from "vitest"
import { act, renderHook } from "@testing-library/react"
import mitt from "mitt"
-import { useCollection } from "./useCollection"
+import { useCollection } from "../src/useCollection"
+import type { PendingMutation } from "@tanstack/optimistic"
import "fake-indexeddb/auto"
describe(`useCollection`, () => {
@@ -11,20 +12,19 @@ describe(`useCollection`, () => {
// Setup initial hook render
const { result } = renderHook(() =>
- useCollection({
+ useCollection<{ name: string }>({
id: `test-collection`,
sync: {
- id: `mock`,
sync: ({ begin, write, commit }) => {
- emitter.on(`*`, (type, mutations) => {
+ emitter.on(`*`, (_, mutations) => {
begin()
- mutations.forEach((mutation) =>
+ ;(mutations as Array).forEach((mutation) => {
write({
key: mutation.key,
- type: mutation.type as string,
- value: mutation.changes,
+ type: mutation.type,
+ value: mutation.changes as { name: string },
})
- )
+ })
commit()
})
},
@@ -32,7 +32,10 @@ describe(`useCollection`, () => {
mutationFn: {
persist: persistMock,
awaitSync: ({ transaction }) => {
- emitter.emit(`update`, transaction.mutations)
+ act(() => {
+ emitter.emit(`update`, transaction.mutations)
+ })
+ return Promise.resolve()
},
},
})
@@ -43,8 +46,8 @@ describe(`useCollection`, () => {
expect(result.current.data).toEqual([])
// Test single insert with explicit key
- act(() => {
- return result.current.insert({ name: `Alice` }, { key: `user1` })
+ await act(async () => {
+ await result.current.insert({ name: `Alice` }, { key: `user1` })
})
// Verify insert
@@ -53,8 +56,8 @@ describe(`useCollection`, () => {
expect(result.current.data).toEqual([{ name: `Alice` }])
// Test bulk insert with sparse keys
- act(() => {
- result.current.insert([{ name: `Bob` }, { name: `Charlie` }], {
+ await act(async () => {
+ await result.current.insert([{ name: `Bob` }, { name: `Charlie` }], {
key: [`user2`, undefined],
})
})
@@ -65,14 +68,14 @@ describe(`useCollection`, () => {
// Verify bulk insert
expect(result.current.state.size).toBe(3)
expect(result.current.state.get(`user2`)).toEqual({ name: `Bob` })
- expect(result.current.state.get(charlieKey)).toEqual({ name: `Charlie` })
+ expect(result.current.state.get(charlieKey!)).toEqual({ name: `Charlie` })
expect(result.current.data.length).toBe(3)
expect(result.current.data).toContainEqual({ name: `Bob` })
expect(result.current.data).toContainEqual({ name: `Charlie` })
// Test update with callback
- const updateTransaction = await act(() => {
- return result.current.update(
+ const updateTransaction = await act(async () => {
+ return await result.current.update(
result.current.state.get(`user1`)!,
(item) => {
item.name = `Alice Smith`
@@ -80,24 +83,31 @@ describe(`useCollection`, () => {
)
})
- await updateTransaction.isSynced?.promise
+ await act(async () => {
+ await updateTransaction.isSynced?.promise
+ })
// Verify update
expect(result.current.state.get(`user1`)).toEqual({ name: `Alice Smith` })
expect(result.current.data).toContainEqual({ name: `Alice Smith` })
// Test bulk update with metadata
- await act(() => {
+ await act(async () => {
const items = [
result.current.state.get(`user1`)!,
result.current.state.get(`user2`)!,
]
- return result.current.update(
+ return await result.current.update(
items,
{ metadata: { bulkUpdate: true } },
- (draft) => {
- draft[0].name = draft[0].name + ` Jr.`
- draft[1].name = draft[1].name + ` Sr.`
+ (drafts) => {
+ drafts.forEach((draft, i) => {
+ if (i === 0) {
+ draft.name = draft.name + ` Jr.`
+ } else if (i === 1) {
+ draft.name = draft.name + ` Sr.`
+ }
+ })
}
)
})
@@ -111,8 +121,8 @@ describe(`useCollection`, () => {
expect(result.current.data).toContainEqual({ name: `Bob Sr.` })
// Test single delete
- await act(() => {
- return result.current.delete(result.current.state.get(`user1`)!)
+ await act(async () => {
+ await result.current.delete(result.current.state.get(`user1`)!)
})
// Verify single delete
@@ -120,12 +130,14 @@ describe(`useCollection`, () => {
expect(result.current.data).not.toContainEqual({ name: `Alice Smith Jr.` })
// Test bulk delete with metadata
- act(() => {
+ await act(async () => {
const items = [
result.current.state.get(`user2`)!,
- result.current.state.get(charlieKey)!,
+ result.current.state.get(charlieKey!)!,
]
- result.current.delete(items, { metadata: { reason: `bulk cleanup` } })
+ await result.current.delete(items, {
+ metadata: { reason: `bulk cleanup` },
+ })
})
// Verify all items are deleted
@@ -136,7 +148,7 @@ describe(`useCollection`, () => {
expect(persistMock).toHaveBeenCalledTimes(6) // 2 inserts + 2 updates + 2 deletes
})
- it(`should expose state, items, and data properties correctly`, () => {
+ it(`should expose state, items, and data properties correctly`, async () => {
const emitter = mitt()
const persistMock = vi.fn().mockResolvedValue(undefined)
@@ -147,20 +159,23 @@ describe(`useCollection`, () => {
mutationFn: {
persist: persistMock,
awaitSync: ({ transaction }) => {
- emitter.emit(`update`, transaction.mutations)
+ act(() => {
+ emitter.emit(`update`, transaction.mutations)
+ })
+ return Promise.resolve()
},
},
sync: {
sync: ({ begin, write, commit }) => {
- emitter.on(`*`, (type, mutations) => {
+ emitter.on(`*`, (_, mutations) => {
begin()
- mutations.forEach((mutation) =>
+ ;(mutations as Array).forEach((mutation) => {
write({
key: mutation.key,
- type: mutation.type as string,
+ type: mutation.type,
value: mutation.changes,
})
- )
+ })
commit()
})
},
@@ -175,8 +190,8 @@ describe(`useCollection`, () => {
expect(result.current.data.length).toBe(0)
// Insert some test data
- act(() => {
- result.current.insert(
+ await act(async () => {
+ await result.current.insert(
[
{ id: 1, name: `Item 1` },
{ id: 2, name: `Item 2` },
@@ -204,31 +219,35 @@ describe(`useCollection`, () => {
expect(result.current.data).toContainEqual({ id: 3, name: `Item 3` })
})
- it(`should work with a selector function`, () => {
+ it(`should work with a selector function`, async () => {
const emitter = mitt()
const persistMock = vi.fn().mockResolvedValue(undefined)
// Setup hook with selector
const { result } = renderHook(() =>
- useCollection({
+ useCollection<{ id: number; name: string }>({
id: `test-selector`,
mutationFn: {
persist: persistMock,
awaitSync: ({ transaction }) => {
- emitter.emit(`update`, transaction.mutations)
+ act(() => {
+ emitter.emit(`update`, transaction.mutations)
+ })
+ return Promise.resolve()
},
},
sync: {
sync: ({ begin, write, commit }) => {
- emitter.on(`*`, (type, mutations) => {
+ emitter.on(`*`, (_, mutations) => {
begin()
- mutations.forEach((mutation) =>
+ ;(mutations as Array).forEach((mutation) => {
write({
key: mutation.key,
- type: mutation.type as string,
- value: mutation.changes,
+ type: mutation.type,
+ // TODO this should get the type automatically
+ value: mutation.changes as { id: number; name: string },
})
- )
+ })
commit()
})
},
@@ -243,8 +262,8 @@ describe(`useCollection`, () => {
expect(result.current.data.length).toBe(0)
// Insert some test data
- act(() => {
- result.current.insert(
+ await act(async () => {
+ await result.current.insert(
[
{ id: 1, name: `Alice` },
{ id: 2, name: `Bob` },
@@ -260,11 +279,9 @@ describe(`useCollection`, () => {
})
// Verify selector result
- expect(result.current.data.map((item) => item.name)).toEqual([
- `Alice`,
- `Bob`,
- `Charlie`,
- ])
+ expect(
+ result.current.data.map((item) => (item as { name: string }).name)
+ ).toEqual([`Alice`, `Bob`, `Charlie`])
// Verify state and data are still available
expect(result.current.state.size).toBe(3)
diff --git a/packages/react-optimistic/tsconfig.json b/packages/react-optimistic/tsconfig.json
new file mode 100644
index 000000000..2d5d115b5
--- /dev/null
+++ b/packages/react-optimistic/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "target": "ES2020",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "declaration": true,
+ "outDir": "dist",
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "jsx": "react-jsx",
+ "paths": {
+ "@tanstack/store": ["../store/src"],
+ "@tanstack/optimistic": ["../optimistic/src"]
+ }
+ },
+ "include": ["src/**/*", "tests", "vite.config.ts"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/packages/react-optimistic/vite.config.ts b/packages/react-optimistic/vite.config.ts
new file mode 100644
index 000000000..f21131bf1
--- /dev/null
+++ b/packages/react-optimistic/vite.config.ts
@@ -0,0 +1,25 @@
+import { defineConfig, mergeConfig } from "vitest/config"
+import { tanstackViteConfig } from "@tanstack/config/vite"
+import react from "@vitejs/plugin-react"
+import packageJson from "./package.json"
+
+const config = defineConfig({
+ plugins: [react()],
+ test: {
+ name: packageJson.name,
+ dir: `./tests`,
+ watch: false,
+ environment: `jsdom`,
+ setupFiles: [`./tests/test-setup.ts`],
+ coverage: { enabled: true, provider: `istanbul`, include: [`src/**/*`] },
+ typecheck: { enabled: true },
+ },
+})
+
+export default mergeConfig(
+ config,
+ tanstackViteConfig({
+ entry: `./src/index.ts`,
+ srcDir: `./src`,
+ })
+)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d7ae79825..813bf2d2f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,82 +8,61 @@ importers:
.:
dependencies:
- '@electric-sql/client':
- specifier: 1.0.0
- version: 1.0.0
- '@standard-schema/spec':
- specifier: ^1.0.0
- version: 1.0.0
- '@tanstack/store':
- specifier: ^0.7.0
- version: 0.7.0
diff:
specifier: ^7.0.0
version: 7.0.0
- idb:
- specifier: ^8.0.2
- version: 8.0.2
- postgres:
- specifier: ^3.4.5
- version: 3.4.5
- use-sync-external-store:
- specifier: ^1.4.0
- version: 1.4.0(react@19.0.0)
devDependencies:
'@changesets/cli':
specifier: ^2.28.1
version: 2.28.1
'@eslint/js':
- specifier: ^9.20.0
- version: 9.20.0
+ specifier: ^9.22.0
+ version: 9.22.0
'@stylistic/eslint-plugin':
- specifier: ^4.0.1
- version: 4.0.1(eslint@9.20.1)(typescript@5.7.3)
+ specifier: ^4.2.0
+ version: 4.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
'@svitejs/changesets-changelog-github-compact':
specifier: ^1.2.0
version: 1.2.0
'@tanstack/config':
specifier: ^0.17.1
- version: 0.17.1(@types/node@22.13.4)(eslint@9.20.1)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
+ version: 0.17.1(@types/node@22.13.10)(eslint@9.22.0(jiti@2.4.2))(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
'@testing-library/jest-dom':
specifier: ^6.6.3
version: 6.6.3
- '@testing-library/react':
- specifier: ^16.2.0
- version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@types/node':
- specifier: ^22.13.4
- version: 22.13.4
+ specifier: ^22.13.10
+ version: 22.13.10
'@types/react':
- specifier: ^19.0.10
- version: 19.0.10
+ specifier: ^19.0.12
+ version: 19.0.12
'@types/react-dom':
specifier: ^19.0.4
- version: 19.0.4(@types/react@19.0.10)
+ version: 19.0.4(@types/react@19.0.12)
'@types/use-sync-external-store':
specifier: ^0.0.6
version: 0.0.6
'@typescript-eslint/eslint-plugin':
- specifier: ^8.24.1
- version: 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3)
+ specifier: ^8.26.1
+ version: 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
'@typescript-eslint/parser':
- specifier: ^8.24.1
- version: 8.24.1(eslint@9.20.1)(typescript@5.7.3)
+ specifier: ^8.26.1
+ version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
'@vitejs/plugin-react':
specifier: ^4.3.4
- version: 4.3.4(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
+ version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
eslint:
- specifier: ^9.0.0
- version: 9.20.1
+ specifier: ^9.22.0
+ version: 9.22.0(jiti@2.4.2)
eslint-config-prettier:
- specifier: ^10.0.1
- version: 10.0.1(eslint@9.20.1)
+ specifier: ^10.1.1
+ version: 10.1.1(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-prettier:
specifier: ^5.2.3
- version: 5.2.3(eslint-config-prettier@10.0.1(eslint@9.20.1))(eslint@9.20.1)(prettier@3.5.1)
+ version: 5.2.3(eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3)
eslint-plugin-react:
specifier: ^7.37.4
- version: 7.37.4(eslint@9.20.1)
+ version: 7.37.4(eslint@9.22.0(jiti@2.4.2))
fake-indexeddb:
specifier: ^6.0.0
version: 6.0.0
@@ -94,41 +73,185 @@ importers:
specifier: ^26.0.0
version: 26.0.0
lint-staged:
- specifier: ^15.4.3
- version: 15.4.3
+ specifier: ^15.5.0
+ version: 15.5.0
mitt:
specifier: ^3.0.1
version: 3.0.1
prettier:
- specifier: ^3.5.1
- version: 3.5.1
+ specifier: ^3.5.3
+ version: 3.5.3
publint:
specifier: ^0.3.9
version: 0.3.9
- react:
- specifier: ^19.0.0
- version: 19.0.0
- react-dom:
- specifier: ^19.0.0
- version: 19.0.0(react@19.0.0)
shx:
- specifier: ^0.3.4
- version: 0.3.4
+ specifier: ^0.4.0
+ version: 0.4.0
tsup:
specifier: ^8.0.2
- version: 8.4.0(@microsoft/api-extractor@7.47.7(@types/node@22.13.4))(postcss@8.5.3)(typescript@5.7.3)(yaml@2.7.0)
+ version: 8.4.0(@microsoft/api-extractor@7.52.1(@types/node@22.13.10))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0)
typescript:
- specifier: ^5.7.3
- version: 5.7.3
+ specifier: ^5.8.2
+ version: 5.8.2
vite:
specifier: ^6.2.2
- version: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
vitest:
- specifier: ^3.0.6
- version: 3.0.6(@types/node@22.13.4)(happy-dom@17.1.1)(jsdom@26.0.0)(yaml@2.7.0)
+ specifier: ^3.0.9
+ version: 3.0.9(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
+ zod:
+ specifier: ^3.24.2
+ version: 3.24.2
+
+ examples/react/todo:
+ dependencies:
+ '@tanstack/react-optimistic':
+ specifier: workspace:*
+ version: link:../../../packages/react-optimistic
+ cors:
+ specifier: ^2.8.5
+ version: 2.8.5
+ drizzle-orm:
+ specifier: ^0.40.1
+ version: 0.40.1(@types/pg@8.11.11)(gel@2.0.1)(kysely@0.27.6)(pg@8.14.1)(postgres@3.4.5)
+ drizzle-zod:
+ specifier: ^0.7.0
+ version: 0.7.0(drizzle-orm@0.40.1(@types/pg@8.11.11)(gel@2.0.1)(kysely@0.27.6)(pg@8.14.1)(postgres@3.4.5))(zod@3.24.2)
+ express:
+ specifier: ^4.19.2
+ version: 4.21.2
+ postgres:
+ specifier: ^3.4.5
+ version: 3.4.5
+ react:
+ specifier: ^19.0.0
+ version: 19.0.0
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
+ tailwindcss:
+ specifier: ^4.0.17
+ version: 4.0.17
zod:
specifier: ^3.24.2
version: 3.24.2
+ devDependencies:
+ '@eslint/js':
+ specifier: ^9.22.0
+ version: 9.22.0
+ '@tailwindcss/vite':
+ specifier: ^4.0.0-alpha.8
+ version: 4.0.14(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+ '@types/cors':
+ specifier: ^2.8.17
+ version: 2.8.17
+ '@types/express':
+ specifier: ^4.17.21
+ version: 4.17.21
+ '@types/node':
+ specifier: ^22.13.10
+ version: 22.13.10
+ '@types/pg':
+ specifier: ^8.11.11
+ version: 8.11.11
+ '@types/react':
+ specifier: ^19.0.12
+ version: 19.0.12
+ '@types/react-dom':
+ specifier: ^19.0.0
+ version: 19.0.4(@types/react@19.0.12)
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^8.26.1
+ version: 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/parser':
+ specifier: ^8.26.1
+ version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ '@vitejs/plugin-react':
+ specifier: ^4.3.4
+ version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+ concurrently:
+ specifier: ^9.1.2
+ version: 9.1.2
+ dotenv:
+ specifier: ^16.3.1
+ version: 16.4.7
+ drizzle-kit:
+ specifier: ^0.30.5
+ version: 0.30.5
+ eslint:
+ specifier: ^9.22.0
+ version: 9.22.0(jiti@2.4.2)
+ eslint-plugin-react-hooks:
+ specifier: ^5.2.0
+ version: 5.2.0(eslint@9.22.0(jiti@2.4.2))
+ eslint-plugin-react-refresh:
+ specifier: ^0.4.5
+ version: 0.4.19(eslint@9.22.0(jiti@2.4.2))
+ tsx:
+ specifier: ^4.6.2
+ version: 4.19.3
+ typescript:
+ specifier: ^5.8.2
+ version: 5.8.2
+ vite:
+ specifier: ^6.2.2
+ version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
+
+ packages/optimistic:
+ dependencies:
+ '@standard-schema/spec':
+ specifier: ^1.0.0
+ version: 1.0.0
+ '@tanstack/store':
+ specifier: ^0.7.0
+ version: 0.7.0
+ idb:
+ specifier: ^8.0.2
+ version: 8.0.2
+ typescript:
+ specifier: '>=4.7'
+ version: 5.8.2
+ devDependencies:
+ '@vitest/coverage-istanbul':
+ specifier: ^3.0.9
+ version: 3.0.9(vitest@3.0.9(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+
+ packages/react-optimistic:
+ dependencies:
+ '@tanstack/optimistic':
+ specifier: workspace:*
+ version: link:../optimistic
+ '@tanstack/store':
+ specifier: ^0.7.0
+ version: 0.7.0
+ use-sync-external-store:
+ specifier: ^1.2.0
+ version: 1.4.0(react@19.0.0)
+ devDependencies:
+ '@electric-sql/client':
+ specifier: 1.0.0
+ version: 1.0.0
+ '@testing-library/react':
+ specifier: ^16.2.0
+ version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ '@types/react':
+ specifier: ^19.0.12
+ version: 19.0.12
+ '@types/react-dom':
+ specifier: ^19.0.3
+ version: 19.0.4(@types/react@19.0.12)
+ '@types/use-sync-external-store':
+ specifier: ^0.0.6
+ version: 0.0.6
+ '@vitest/coverage-istanbul':
+ specifier: ^3.0.9
+ version: 3.0.9(vitest@3.0.9(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+ react:
+ specifier: ^19.0.0
+ version: 19.0.0
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
packages:
@@ -192,6 +315,11 @@ packages:
resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==}
engines: {node: '>=6.9.0'}
+ '@babel/parser@7.26.10':
+ resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/parser@7.26.9':
resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==}
engines: {node: '>=6.0.0'}
@@ -209,6 +337,10 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
+ '@babel/runtime@7.26.10':
+ resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/runtime@7.26.9':
resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==}
engines: {node: '>=6.9.0'}
@@ -221,6 +353,10 @@ packages:
resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.26.10':
+ resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.26.9':
resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
engines: {node: '>=6.9.0'}
@@ -319,6 +455,9 @@ packages:
resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==}
engines: {node: '>=18'}
+ '@drizzle-team/brocli@0.10.2':
+ resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
+
'@electric-sql/client@1.0.0':
resolution: {integrity: sha512-kGiVbBIlMqc/CeJpWZuLjxNkm0836NWxeMtIWH2w5IUK8pUL13hyxg3ZkR7+FlTGhpKuZRiCP5nPOH9D6wbhPw==}
@@ -331,158 +470,586 @@ packages:
'@emnapi/wasi-threads@1.0.1':
resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==}
+ '@esbuild-kit/core-utils@3.3.2':
+ resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
+ deprecated: 'Merged into tsx: https://tsx.is'
+
+ '@esbuild-kit/esm-loader@2.6.5':
+ resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
+ deprecated: 'Merged into tsx: https://tsx.is'
+
+ '@esbuild/aix-ppc64@0.19.12':
+ resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/aix-ppc64@0.25.0':
resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
+ '@esbuild/aix-ppc64@0.25.1':
+ resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.18.20':
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm64@0.19.12':
+ resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm64@0.25.0':
resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm64@0.25.1':
+ resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.18.20':
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-arm@0.19.12':
+ resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-arm@0.25.0':
resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
+ '@esbuild/android-arm@0.25.1':
+ resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.18.20':
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/android-x64@0.19.12':
+ resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/android-x64@0.25.0':
resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
+ '@esbuild/android-x64@0.25.1':
+ resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.18.20':
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-arm64@0.19.12':
+ resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-arm64@0.25.0':
resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-arm64@0.25.1':
+ resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.18.20':
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.19.12':
+ resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.25.0':
resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
+ '@esbuild/darwin-x64@0.25.1':
+ resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.18.20':
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-arm64@0.19.12':
+ resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-arm64@0.25.0':
resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-arm64@0.25.1':
+ resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.18.20':
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.19.12':
+ resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.25.0':
resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.25.1':
+ resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.18.20':
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm64@0.19.12':
+ resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm64@0.25.0':
resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm64@0.25.1':
+ resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.18.20':
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.19.12':
+ resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-arm@0.25.0':
resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
+ '@esbuild/linux-arm@0.25.1':
+ resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.18.20':
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.19.12':
+ resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-ia32@0.25.0':
resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-ia32@0.25.1':
+ resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.18.20':
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.19.12':
+ resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-loong64@0.25.0':
resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-loong64@0.25.1':
+ resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.18.20':
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.19.12':
+ resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.25.0':
resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-mips64el@0.25.1':
+ resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.18.20':
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.19.12':
+ resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.25.0':
resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-ppc64@0.25.1':
+ resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.18.20':
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.19.12':
+ resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.25.0':
resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-riscv64@0.25.1':
+ resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.18.20':
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.19.12':
+ resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-s390x@0.25.0':
resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-s390x@0.25.1':
+ resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.18.20':
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.19.12':
+ resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
'@esbuild/linux-x64@0.25.0':
resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
+ '@esbuild/linux-x64@0.25.1':
+ resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
'@esbuild/netbsd-arm64@0.25.0':
resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
+ '@esbuild/netbsd-arm64@0.25.1':
+ resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.18.20':
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.19.12':
+ resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
'@esbuild/netbsd-x64@0.25.0':
resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.25.1':
+ resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
'@esbuild/openbsd-arm64@0.25.0':
resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
+ '@esbuild/openbsd-arm64@0.25.1':
+ resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.18.20':
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.19.12':
+ resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.25.0':
resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.25.1':
+ resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.18.20':
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/sunos-x64@0.19.12':
+ resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
'@esbuild/sunos-x64@0.25.0':
resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
+ '@esbuild/sunos-x64@0.25.1':
+ resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.18.20':
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-arm64@0.19.12':
+ resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-arm64@0.25.0':
resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-arm64@0.25.1':
+ resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.18.20':
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.19.12':
+ resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-ia32@0.25.0':
resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-ia32@0.25.1':
+ resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.18.20':
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.19.12':
+ resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
'@esbuild/win32-x64@0.25.0':
resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.4.1':
- resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+ '@esbuild/win32-x64@0.25.1':
+ resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.5.1':
+ resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -495,16 +1062,16 @@ packages:
resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/core@0.11.0':
- resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==}
+ '@eslint/config-helpers@0.1.0':
+ resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/eslintrc@3.2.0':
- resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
+ '@eslint/core@0.12.0':
+ resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.20.0':
- resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==}
+ '@eslint/eslintrc@3.3.0':
+ resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.22.0':
@@ -515,8 +1082,8 @@ packages:
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/plugin-kit@0.2.6':
- resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==}
+ '@eslint/plugin-kit@0.2.7':
+ resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@gerrit0/mini-shiki@1.27.2':
@@ -546,6 +1113,10 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
+ '@istanbuljs/schema@0.1.3':
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
+ engines: {node: '>=8'}
+
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
@@ -579,10 +1150,17 @@ packages:
'@microsoft/api-extractor-model@7.29.6':
resolution: {integrity: sha512-gC0KGtrZvxzf/Rt9oMYD2dHvtN/1KPEYsrQPyMKhLHnlVuO/f4AFN3E4toqZzD2pt4LhkKoYmL2H9tX3yCOyRw==}
+ '@microsoft/api-extractor-model@7.30.4':
+ resolution: {integrity: sha512-RobC0gyVYsd2Fao9MTKOfTdBm41P/bCMUmzS5mQ7/MoAKEqy0FOBph3JOYdq4X4BsEnMEiSHc+0NUNmdzxCpjA==}
+
'@microsoft/api-extractor@7.47.7':
resolution: {integrity: sha512-fNiD3G55ZJGhPOBPMKD/enozj8yxJSYyVJWxRWdcUtw842rvthDHJgUWq9gXQTensFlMHv2wGuCjjivPv53j0A==}
hasBin: true
+ '@microsoft/api-extractor@7.52.1':
+ resolution: {integrity: sha512-m3I5uAwE05orsu3D1AGyisX5KxsgVXB+U4bWOOaX/Z7Ftp/2Cy41qsNhO6LPvSxHBaapyser5dVorF1t5M6tig==}
+ hasBin: true
+
'@microsoft/tsdoc-config@0.17.1':
resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==}
@@ -604,60 +1182,8 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@oxc-resolver/binding-darwin-arm64@5.0.0':
- resolution: {integrity: sha512-zwHAf+owoxSWTDD4dFuwW+FkpaDzbaL30H5Ltocb+RmLyg4WKuteusRLKh5Y8b/cyu7UzhxM0haIqQjyqA1iuA==}
- cpu: [arm64]
- os: [darwin]
-
- '@oxc-resolver/binding-darwin-x64@5.0.0':
- resolution: {integrity: sha512-1lS3aBNVjVQKBvZdHm13+8tSjvu2Tl1Cv4FnUyMYxqx6+rsom2YaOylS5LhDUwfZu0zAgpLMwK6kGpF/UPncNg==}
- cpu: [x64]
- os: [darwin]
-
- '@oxc-resolver/binding-freebsd-x64@5.0.0':
- resolution: {integrity: sha512-q9sRd68wC1/AJ0eu6ClhxlklVfe8gH4wrUkSyEbIYTZ8zY5yjsLY3fpqqsaCvWJUx65nW+XtnAxCGCi5AXr1Mw==}
- cpu: [x64]
- os: [freebsd]
-
- '@oxc-resolver/binding-linux-arm-gnueabihf@5.0.0':
- resolution: {integrity: sha512-catYavWsvqViYnCveQjhrK6yVYDEPFvIOgGLxnz5r2dcgrjpmquzREoyss0L2QG/J5HTTbwqwZ1kk+g56hE/1A==}
- cpu: [arm]
- os: [linux]
-
- '@oxc-resolver/binding-linux-arm64-gnu@5.0.0':
- resolution: {integrity: sha512-l/0pWoQM5kVmJLg4frQ1mKZOXgi0ex/hzvFt8E4WK2ifXr5JgKFUokxsb/oat7f5YzdJJh5r9p+qS/t3dA26Aw==}
- cpu: [arm64]
- os: [linux]
-
- '@oxc-resolver/binding-linux-arm64-musl@5.0.0':
- resolution: {integrity: sha512-bx0oz/oaAW4FGYqpIIxJCnmgb906YfMhTEWCJvYkxjpEI8VKLJEL3PQevYiqDq36SA0yRLJ/sQK2fqry8AFBfA==}
- cpu: [arm64]
- os: [linux]
-
- '@oxc-resolver/binding-linux-x64-gnu@5.0.0':
- resolution: {integrity: sha512-4PH++qbSIhlRsFYdN1P9neDov4OGhTGo5nbQ1D7AL6gWFLo3gdZTc00FM2y8JjeTcPWEXkViZuwpuc0w5i6qHg==}
- cpu: [x64]
- os: [linux]
-
- '@oxc-resolver/binding-linux-x64-musl@5.0.0':
- resolution: {integrity: sha512-mLfQFpX3/5y9oWi0b+9FbWDkL2hM0Y29653beCHiHxAdGyVgb2DsJbK74WkMTwtSz9by8vyBh8jGPZcg1yLZbQ==}
- cpu: [x64]
- os: [linux]
-
- '@oxc-resolver/binding-wasm32-wasi@5.0.0':
- resolution: {integrity: sha512-uEhsAZSo65qsRi6+IfBTEUUFbjg7T2yruJeLYpFfEATpm3ory5Mgo5vx3L0c2/Cz1OUZXBgp3A8x6VMUB2jT2A==}
- engines: {node: '>=14.0.0'}
- cpu: [wasm32]
-
- '@oxc-resolver/binding-win32-arm64-msvc@5.0.0':
- resolution: {integrity: sha512-8DbSso9Jp1ns8AYuZFXdRfAcdJrzZwkFm/RjPuvAPTENsm685dosBF8G6gTHQlHvULnk6o3sa9ygZaTGC/UoEw==}
- cpu: [arm64]
- os: [win32]
-
- '@oxc-resolver/binding-win32-x64-msvc@5.0.0':
- resolution: {integrity: sha512-ylppfPEg63NuRXOPNsXFlgyl37JrtRn0QMO26X3K3Ytp5HtLrMreQMGVtgr30e1l2YmAWqhvmKlCryOqzGPD/g==}
- cpu: [x64]
- os: [win32]
+ '@petamoriken/float16@3.9.2':
+ resolution: {integrity: sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==}
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
@@ -685,96 +1211,199 @@ packages:
cpu: [arm]
os: [android]
+ '@rollup/rollup-android-arm-eabi@4.36.0':
+ resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==}
+ cpu: [arm]
+ os: [android]
+
'@rollup/rollup-android-arm64@4.34.8':
resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==}
cpu: [arm64]
os: [android]
+ '@rollup/rollup-android-arm64@4.36.0':
+ resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==}
+ cpu: [arm64]
+ os: [android]
+
'@rollup/rollup-darwin-arm64@4.34.8':
resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==}
cpu: [arm64]
os: [darwin]
+ '@rollup/rollup-darwin-arm64@4.36.0':
+ resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==}
+ cpu: [arm64]
+ os: [darwin]
+
'@rollup/rollup-darwin-x64@4.34.8':
resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==}
cpu: [x64]
os: [darwin]
+ '@rollup/rollup-darwin-x64@4.36.0':
+ resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==}
+ cpu: [x64]
+ os: [darwin]
+
'@rollup/rollup-freebsd-arm64@4.34.8':
resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==}
cpu: [arm64]
os: [freebsd]
+ '@rollup/rollup-freebsd-arm64@4.36.0':
+ resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==}
+ cpu: [arm64]
+ os: [freebsd]
+
'@rollup/rollup-freebsd-x64@4.34.8':
resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==}
cpu: [x64]
os: [freebsd]
+ '@rollup/rollup-freebsd-x64@4.36.0':
+ resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==}
+ cpu: [x64]
+ os: [freebsd]
+
'@rollup/rollup-linux-arm-gnueabihf@4.34.8':
resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==}
cpu: [arm]
os: [linux]
+ '@rollup/rollup-linux-arm-gnueabihf@4.36.0':
+ resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==}
+ cpu: [arm]
+ os: [linux]
+
'@rollup/rollup-linux-arm-musleabihf@4.34.8':
resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==}
cpu: [arm]
os: [linux]
+ '@rollup/rollup-linux-arm-musleabihf@4.36.0':
+ resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==}
+ cpu: [arm]
+ os: [linux]
+
'@rollup/rollup-linux-arm64-gnu@4.34.8':
resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-arm64-gnu@4.36.0':
+ resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==}
+ cpu: [arm64]
+ os: [linux]
+
'@rollup/rollup-linux-arm64-musl@4.34.8':
resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==}
cpu: [arm64]
os: [linux]
+ '@rollup/rollup-linux-arm64-musl@4.36.0':
+ resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==}
+ cpu: [arm64]
+ os: [linux]
+
'@rollup/rollup-linux-loongarch64-gnu@4.34.8':
resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==}
cpu: [loong64]
os: [linux]
+ '@rollup/rollup-linux-loongarch64-gnu@4.36.0':
+ resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==}
+ cpu: [loong64]
+ os: [linux]
+
'@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==}
cpu: [ppc64]
os: [linux]
+ '@rollup/rollup-linux-powerpc64le-gnu@4.36.0':
+ resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==}
+ cpu: [ppc64]
+ os: [linux]
+
'@rollup/rollup-linux-riscv64-gnu@4.34.8':
resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==}
cpu: [riscv64]
os: [linux]
+ '@rollup/rollup-linux-riscv64-gnu@4.36.0':
+ resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==}
+ cpu: [riscv64]
+ os: [linux]
+
'@rollup/rollup-linux-s390x-gnu@4.34.8':
resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==}
cpu: [s390x]
os: [linux]
+ '@rollup/rollup-linux-s390x-gnu@4.36.0':
+ resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==}
+ cpu: [s390x]
+ os: [linux]
+
'@rollup/rollup-linux-x64-gnu@4.34.8':
resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==}
cpu: [x64]
os: [linux]
+ '@rollup/rollup-linux-x64-gnu@4.36.0':
+ resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==}
+ cpu: [x64]
+ os: [linux]
+
'@rollup/rollup-linux-x64-musl@4.34.8':
resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==}
cpu: [x64]
os: [linux]
+ '@rollup/rollup-linux-x64-musl@4.36.0':
+ resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==}
+ cpu: [x64]
+ os: [linux]
+
'@rollup/rollup-win32-arm64-msvc@4.34.8':
resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==}
cpu: [arm64]
os: [win32]
+ '@rollup/rollup-win32-arm64-msvc@4.36.0':
+ resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==}
+ cpu: [arm64]
+ os: [win32]
+
'@rollup/rollup-win32-ia32-msvc@4.34.8':
resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==}
cpu: [ia32]
os: [win32]
+ '@rollup/rollup-win32-ia32-msvc@4.36.0':
+ resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==}
+ cpu: [ia32]
+ os: [win32]
+
'@rollup/rollup-win32-x64-msvc@4.34.8':
resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==}
cpu: [x64]
os: [win32]
+ '@rollup/rollup-win32-x64-msvc@4.36.0':
+ resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==}
+ cpu: [x64]
+ os: [win32]
+
+ '@rushstack/node-core-library@5.12.0':
+ resolution: {integrity: sha512-QSwwzgzWoil1SCQse+yCHwlhRxNv2dX9siPnAb9zR/UmMhac4mjMrlMZpk64BlCeOFi1kJKgXRkihSwRMbboAQ==}
+ peerDependencies:
+ '@types/node': '*'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@rushstack/node-core-library@5.7.0':
resolution: {integrity: sha512-Ff9Cz/YlWu9ce4dmqNBZpA45AEya04XaBFIjV7xTVeEf+y/kTjEasmozqFELXlNG4ROdevss75JrrZ5WgufDkQ==}
peerDependencies:
@@ -794,9 +1423,20 @@ packages:
'@types/node':
optional: true
+ '@rushstack/terminal@0.15.1':
+ resolution: {integrity: sha512-3vgJYwumcjoDOXU3IxZfd616lqOdmr8Ezj4OWgJZfhmiBK4Nh7eWcv8sU8N/HdzXcuHDXCRGn/6O2Q75QvaZMA==}
+ peerDependencies:
+ '@types/node': '*'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@rushstack/ts-command-line@4.22.6':
resolution: {integrity: sha512-QSRqHT/IfoC5nk9zn6+fgyqOPXHME0BfchII9EUPR19pocsNp/xSbeBCbD3PIR2Lg+Q5qk7OFqk1VhWPMdKHJg==}
+ '@rushstack/ts-command-line@4.23.6':
+ resolution: {integrity: sha512-7WepygaF3YPEoToh4MAL/mmHkiIImQq3/uAkQX46kVoKTNOOlCtFGyNnze6OYuWw2o9rxsyrHVfIBKxq/am2RA==}
+
'@shikijs/engine-oniguruma@1.29.2':
resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==}
@@ -815,8 +1455,8 @@ packages:
peerDependencies:
eslint: '>=9.0.0'
- '@stylistic/eslint-plugin@4.0.1':
- resolution: {integrity: sha512-RwKkRKiDrF4ptiur54ckDhOByQYKYZ1dEmI5K8BJCmuGpauFJXzVL1UQYTA2zq702CqMFdYiJcVFJWfokIgFxw==}
+ '@stylistic/eslint-plugin@4.2.0':
+ resolution: {integrity: sha512-8hXezgz7jexGHdo5WN6JBEIPHCSFyyU4vgbxevu4YLVS5vl+sxqAAGyXSzfNDyR6xMNSH5H1x67nsXcYMOHtZA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: '>=9.0.0'
@@ -825,6 +1465,84 @@ packages:
resolution: {integrity: sha512-08eKiDAjj4zLug1taXSIJ0kGL5cawjVCyJkBb6EWSg5fEPX6L+Wtr0CH2If4j5KYylz85iaZiFlUItvgJvll5g==}
engines: {node: ^14.13.1 || ^16.0.0 || >=18}
+ '@tailwindcss/node@4.0.14':
+ resolution: {integrity: sha512-Ux9NbFkKWYE4rfUFz6M5JFLs/GEYP6ysxT8uSyPn6aTbh2K3xDE1zz++eVK4Vwx799fzMF8CID9sdHn4j/Ab8w==}
+
+ '@tailwindcss/oxide-android-arm64@4.0.14':
+ resolution: {integrity: sha512-VBFKC2rFyfJ5J8lRwjy6ub3rgpY186kAcYgiUr8ArR8BAZzMruyeKJ6mlsD22Zp5ZLcPW/FXMasJiJBx0WsdQg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@tailwindcss/oxide-darwin-arm64@4.0.14':
+ resolution: {integrity: sha512-U3XOwLrefGr2YQZ9DXasDSNWGPZBCh8F62+AExBEDMLDfvLLgI/HDzY8Oq8p/JtqkAY38sWPOaNnRwEGKU5Zmg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-darwin-x64@4.0.14':
+ resolution: {integrity: sha512-V5AjFuc3ndWGnOi1d379UsODb0TzAS2DYIP/lwEbfvafUaD2aNZIcbwJtYu2DQqO2+s/XBvDVA+w4yUyaewRwg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@tailwindcss/oxide-freebsd-x64@4.0.14':
+ resolution: {integrity: sha512-tXvtxbaZfcPfqBwW3f53lTcyH6EDT+1eT7yabwcfcxTs+8yTPqxsDUhrqe9MrnEzpNkd+R/QAjJapfd4tjWdLg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.14':
+ resolution: {integrity: sha512-cSeLNWWqIWeSTmBntQvyY2/2gcLX8rkPFfDDTQVF8qbRcRMVPLxBvFVJyfSAYRNch6ZyVH2GI6dtgALOBDpdNA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.0.14':
+ resolution: {integrity: sha512-bwDWLBalXFMDItcSXzFk6y7QKvj6oFlaY9vM+agTlwFL1n1OhDHYLZkSjaYsh6KCeG0VB0r7H8PUJVOM1LRZyg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.0.14':
+ resolution: {integrity: sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.0.14':
+ resolution: {integrity: sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tailwindcss/oxide-linux-x64-musl@4.0.14':
+ resolution: {integrity: sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.0.14':
+ resolution: {integrity: sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.0.14':
+ resolution: {integrity: sha512-rNXXMDJfCJLw/ZaFTOLOHoGULxyXfh2iXTGiChFiYTSgKBKQHIGEpV0yn5N25WGzJJ+VBnRjHzlmDqRV+d//oQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@tailwindcss/oxide@4.0.14':
+ resolution: {integrity: sha512-M8VCNyO/NBi5vJ2cRcI9u8w7Si+i76a7o1vveoGtbbjpEYJZYiyc7f2VGps/DqawO56l3tImIbq2OT/533jcrA==}
+ engines: {node: '>= 10'}
+
+ '@tailwindcss/vite@4.0.14':
+ resolution: {integrity: sha512-y69ztPTRFy+13EPS/7dEFVl7q2Goh1pQueVO8IfGeyqSpcx/joNJXFk0lLhMgUbF0VFJotwRSb9ZY7Xoq3r26Q==}
+ peerDependencies:
+ vite: ^5.2.0 || ^6
+
'@tanstack/config@0.17.1':
resolution: {integrity: sha512-kUqfsU5qO/kiptgkjumdKuu/W4i1iYKPW6pUujEH1I+rzZLGIqD6noq9LDVZRh78ArAiZj+VYrdC5jbrtmsI8A==}
engines: {node: '>=18'}
@@ -892,34 +1610,70 @@ packages:
'@types/babel__traverse@7.20.6':
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+ '@types/body-parser@1.19.5':
+ resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
'@types/conventional-commits-parser@5.0.1':
resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
+ '@types/cors@2.8.17':
+ resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
+
'@types/doctrine@0.0.9':
resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==}
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/express-serve-static-core@4.19.6':
+ resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
+
+ '@types/express@4.17.21':
+ resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
+
'@types/hast@3.0.4':
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+ '@types/http-errors@2.0.4':
+ resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
+
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ '@types/mime@1.3.5':
+ resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
+
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
- '@types/node@22.13.4':
- resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}
+ '@types/node@22.13.10':
+ resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==}
+
+ '@types/pg@8.11.11':
+ resolution: {integrity: sha512-kGT1qKM8wJQ5qlawUrEkXgvMSXoV213KfMGXcwfDwUIfUHXqXYXOfS1nE1LINRJVVVx5wCm70XnFlMHaIcQAfw==}
+
+ '@types/qs@6.9.18':
+ resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==}
+
+ '@types/range-parser@1.2.7':
+ resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
'@types/react-dom@19.0.4':
resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==}
peerDependencies:
'@types/react': ^19.0.0
- '@types/react@19.0.10':
- resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==}
+ '@types/react@19.0.12':
+ resolution: {integrity: sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==}
+
+ '@types/send@0.17.4':
+ resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
+
+ '@types/serve-static@1.15.7':
+ resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
@@ -927,14 +1681,6 @@ packages:
'@types/use-sync-external-store@0.0.6':
resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
- '@typescript-eslint/eslint-plugin@8.24.1':
- resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
'@typescript-eslint/eslint-plugin@8.26.1':
resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -943,13 +1689,6 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/parser@8.24.1':
- resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
'@typescript-eslint/parser@8.26.1':
resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -957,21 +1696,10 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/scope-manager@8.24.1':
- resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
'@typescript-eslint/scope-manager@8.26.1':
resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.24.1':
- resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
'@typescript-eslint/type-utils@8.26.1':
resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -979,33 +1707,16 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/types@8.24.1':
- resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
'@typescript-eslint/types@8.26.1':
resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.24.1':
- resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <5.8.0'
-
'@typescript-eslint/typescript-estree@8.26.1':
resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.24.1':
- resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
'@typescript-eslint/utils@8.26.1':
resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1013,25 +1724,81 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/visitor-keys@8.24.1':
- resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
'@typescript-eslint/visitor-keys@8.26.1':
resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@unrs/rspack-resolver-binding-darwin-arm64@1.2.2':
+ resolution: {integrity: sha512-i7z0B+C0P8Q63O/5PXJAzeFtA1ttY3OR2VSJgGv18S+PFNwD98xHgAgPOT1H5HIV6jlQP8Avzbp09qxJUdpPNw==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@unrs/rspack-resolver-binding-darwin-x64@1.2.2':
+ resolution: {integrity: sha512-YEdFzPjIbDUCfmehC6eS+AdJYtFWY35YYgWUnqqTM2oe/N58GhNy5yRllxYhxwJ9GcfHoNc6Ubze1yjkNv+9Qg==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@unrs/rspack-resolver-binding-freebsd-x64@1.2.2':
+ resolution: {integrity: sha512-TU4ntNXDgPN2giQyyzSnGWf/dVCem5lvwxg0XYvsvz35h5H19WrhTmHgbrULMuypCB3aHe1enYUC9rPLDw45mA==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.2':
+ resolution: {integrity: sha512-ik3w4/rU6RujBvNWiDnKdXi1smBhqxEDhccNi/j2rHaMjm0Fk49KkJ6XKsoUnD2kZ5xaMJf9JjailW/okfUPIw==}
+ cpu: [arm]
+ os: [linux]
+
+ '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.2':
+ resolution: {integrity: sha512-fp4Azi8kHz6TX8SFmKfyScZrMLfp++uRm2srpqRjsRZIIBzH74NtSkdEUHImR4G7f7XJ+sVZjCc6KDDK04YEpQ==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.2':
+ resolution: {integrity: sha512-gMiG3DCFioJxdGBzhlL86KcFgt9HGz0iDhw0YVYPsShItpN5pqIkNrI+L/Q/0gfDiGrfcE0X3VANSYIPmqEAlQ==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.2':
+ resolution: {integrity: sha512-n/4n2CxaUF9tcaJxEaZm+lqvaw2gflfWQ1R9I7WQgYkKEKbRKbpG/R3hopYdUmLSRI4xaW1Cy0Bz40eS2Yi4Sw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.2':
+ resolution: {integrity: sha512-cHyhAr6rlYYbon1L2Ag449YCj3p6XMfcYTP0AQX+KkQo025d1y/VFtPWvjMhuEsE2lLvtHm7GdJozj6BOMtzVg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.2':
+ resolution: {integrity: sha512-eogDKuICghDLGc32FtP+WniG38IB1RcGOGz0G3z8406dUdjJvxfHGuGs/dSlM9YEp/v0lEqhJ4mBu6X2nL9pog==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+
+ '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.2':
+ resolution: {integrity: sha512-7sWRJumhpXSi2lccX8aQpfFXHsSVASdWndLv8AmD8nDRA/5PBi8IplQVZNx2mYRx6+Bp91Z00kuVqpXO9NfCTg==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.2':
+ resolution: {integrity: sha512-hewo/UMGP1a7O6FG/ThcPzSJdm/WwrYDNkdGgWl6M18H6K6MSitklomWpT9MUtT5KGj++QJb06va/14QBC4pvw==}
+ cpu: [x64]
+ os: [win32]
+
'@vitejs/plugin-react@4.3.4':
resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.2.0 || ^5.0.0 || ^6.0.0
- '@vitest/expect@3.0.6':
- resolution: {integrity: sha512-zBduHf/ja7/QRX4HdP1DSq5XrPgdN+jzLOwaTq/0qZjYfgETNFCKf9nOAp2j3hmom3oTbczuUzrzg9Hafh7hNg==}
+ '@vitest/coverage-istanbul@3.0.9':
+ resolution: {integrity: sha512-/TXh2qmOhclmVPjOnPTpIO4Xr6l2P5EwyXQygenwq4/ZQ/vPsrz+GCRZF9kBeQi6xrGcHv368Si9PGImWQawVg==}
+ peerDependencies:
+ vitest: 3.0.9
+
+ '@vitest/expect@3.0.9':
+ resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==}
- '@vitest/mocker@3.0.6':
- resolution: {integrity: sha512-KPztr4/tn7qDGZfqlSPQoF2VgJcKxnDNhmfR3VgZ6Fy1bO8T9Fc1stUiTXtqz0yG24VpD00pZP5f8EOFknjNuQ==}
+ '@vitest/mocker@3.0.9':
+ resolution: {integrity: sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==}
peerDependencies:
msw: ^2.4.9
vite: ^5.0.0 || ^6.0.0
@@ -1041,20 +1808,20 @@ packages:
vite:
optional: true
- '@vitest/pretty-format@3.0.6':
- resolution: {integrity: sha512-Zyctv3dbNL+67qtHfRnUE/k8qxduOamRfAL1BurEIQSyOEFffoMvx2pnDSSbKAAVxY0Ej2J/GH2dQKI0W2JyVg==}
+ '@vitest/pretty-format@3.0.9':
+ resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==}
- '@vitest/runner@3.0.6':
- resolution: {integrity: sha512-JopP4m/jGoaG1+CBqubV/5VMbi7L+NQCJTu1J1Pf6YaUbk7bZtaq5CX7p+8sY64Sjn1UQ1XJparHfcvTTdu9cA==}
+ '@vitest/runner@3.0.9':
+ resolution: {integrity: sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==}
- '@vitest/snapshot@3.0.6':
- resolution: {integrity: sha512-qKSmxNQwT60kNwwJHMVwavvZsMGXWmngD023OHSgn873pV0lylK7dwBTfYP7e4URy5NiBCHHiQGA9DHkYkqRqg==}
+ '@vitest/snapshot@3.0.9':
+ resolution: {integrity: sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==}
- '@vitest/spy@3.0.6':
- resolution: {integrity: sha512-HfOGx/bXtjy24fDlTOpgiAEJbRfFxoX3zIGagCqACkFKKZ/TTOE6gYMKXlqecvxEndKFuNHcHqP081ggZ2yM0Q==}
+ '@vitest/spy@3.0.9':
+ resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==}
- '@vitest/utils@3.0.6':
- resolution: {integrity: sha512-18ktZpf4GQFTbf9jK543uspU03Q2qya7ZGya5yiZ0Gx0nnnalBvd5ZBislbl2EhLjM8A8rt4OilqKG7QwcGkvQ==}
+ '@vitest/utils@3.0.9':
+ resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==}
'@volar/language-core@2.4.12':
resolution: {integrity: sha512-RLrFdXEaQBWfSnYGVxvR2WrO6Bub0unkdHYIdC31HzIEqATIuuhRRzYu76iGPZ6OtA4Au1SnW0ZwIqPP217YhA==}
@@ -1089,13 +1856,17 @@ packages:
resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
hasBin: true
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn@8.14.0:
- resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ acorn@8.14.1:
+ resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -1176,6 +1947,9 @@ packages:
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
engines: {node: '>= 0.4'}
+ array-flatten@1.1.1:
+ resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
+
array-ify@1.0.0:
resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
@@ -1229,6 +2003,10 @@ packages:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
+ body-parser@1.20.3:
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
@@ -1244,12 +2022,19 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
bundle-require@5.1.0:
resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
esbuild: '>=0.18'
+ bytes@3.1.2:
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
+ engines: {node: '>= 0.8'}
+
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
@@ -1312,6 +2097,10 @@ packages:
resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
engines: {node: '>=18'}
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -1346,6 +2135,11 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ concurrently@9.1.2:
+ resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
@@ -1353,6 +2147,14 @@ packages:
resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==}
engines: {node: ^14.18.0 || >=16.10.0}
+ content-disposition@0.5.4:
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
+ engines: {node: '>= 0.6'}
+
+ content-type@1.0.5:
+ resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
+ engines: {node: '>= 0.6'}
+
conventional-changelog-angular@7.0.0:
resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==}
engines: {node: '>=16'}
@@ -1365,6 +2167,21 @@ packages:
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+ cookie-signature@1.0.6:
+ resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
+
+ cookie@0.7.1:
+ resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
+ engines: {node: '>= 0.6'}
+
+ cors@2.8.5:
+ resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
+ engines: {node: '>= 0.10'}
+
+ cross-spawn@6.0.6:
+ resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==}
+ engines: {node: '>=4.8'}
+
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
@@ -1401,6 +2218,14 @@ packages:
de-indent@1.0.2:
resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
debug@3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
@@ -1440,14 +2265,26 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
+ depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
+ destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
+ detect-libc@2.0.3:
+ resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
+ engines: {node: '>=8'}
+
diff@7.0.0:
resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==}
engines: {node: '>=0.3.1'}
@@ -1478,6 +2315,105 @@ packages:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
engines: {node: '>=12'}
+ drizzle-kit@0.30.5:
+ resolution: {integrity: sha512-l6dMSE100u7sDaTbLczibrQZjA35jLsHNqIV+jmhNVO3O8jzM6kywMOmV9uOz9ZVSCMPQhAZEFjL/qDPVrqpUA==}
+ hasBin: true
+
+ drizzle-orm@0.40.1:
+ resolution: {integrity: sha512-aPNhtiJiPfm3qxz1czrnIDkfvkSdKGXYeZkpG55NPTVI186LmK2fBLMi4dsHpPHlJrZeQ92D322YFPHADBALew==}
+ peerDependencies:
+ '@aws-sdk/client-rds-data': '>=3'
+ '@cloudflare/workers-types': '>=4'
+ '@electric-sql/pglite': '>=0.2.0'
+ '@libsql/client': '>=0.10.0'
+ '@libsql/client-wasm': '>=0.10.0'
+ '@neondatabase/serverless': '>=0.10.0'
+ '@op-engineering/op-sqlite': '>=2'
+ '@opentelemetry/api': ^1.4.1
+ '@planetscale/database': '>=1'
+ '@prisma/client': '*'
+ '@tidbcloud/serverless': '*'
+ '@types/better-sqlite3': '*'
+ '@types/pg': '*'
+ '@types/sql.js': '*'
+ '@vercel/postgres': '>=0.8.0'
+ '@xata.io/client': '*'
+ better-sqlite3: '>=7'
+ bun-types: '*'
+ expo-sqlite: '>=14.0.0'
+ gel: '>=2'
+ knex: '*'
+ kysely: '*'
+ mysql2: '>=2'
+ pg: '>=8'
+ postgres: '>=3'
+ prisma: '*'
+ sql.js: '>=1'
+ sqlite3: '>=5'
+ peerDependenciesMeta:
+ '@aws-sdk/client-rds-data':
+ optional: true
+ '@cloudflare/workers-types':
+ optional: true
+ '@electric-sql/pglite':
+ optional: true
+ '@libsql/client':
+ optional: true
+ '@libsql/client-wasm':
+ optional: true
+ '@neondatabase/serverless':
+ optional: true
+ '@op-engineering/op-sqlite':
+ optional: true
+ '@opentelemetry/api':
+ optional: true
+ '@planetscale/database':
+ optional: true
+ '@prisma/client':
+ optional: true
+ '@tidbcloud/serverless':
+ optional: true
+ '@types/better-sqlite3':
+ optional: true
+ '@types/pg':
+ optional: true
+ '@types/sql.js':
+ optional: true
+ '@vercel/postgres':
+ optional: true
+ '@xata.io/client':
+ optional: true
+ better-sqlite3:
+ optional: true
+ bun-types:
+ optional: true
+ expo-sqlite:
+ optional: true
+ gel:
+ optional: true
+ knex:
+ optional: true
+ kysely:
+ optional: true
+ mysql2:
+ optional: true
+ pg:
+ optional: true
+ postgres:
+ optional: true
+ prisma:
+ optional: true
+ sql.js:
+ optional: true
+ sqlite3:
+ optional: true
+
+ drizzle-zod@0.7.0:
+ resolution: {integrity: sha512-xgCRYYVEzRkeXTS33GSMgoowe3vKsMNBjSI+cwG1oLQVEhAWWbqtb/AAMlm7tkmV4fG/uJjEmWzdzlEmTgWOoQ==}
+ peerDependencies:
+ drizzle-orm: '>=0.36.0'
+ zod: '>=3.0.0'
+
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -1485,6 +2421,9 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
electron-to-chromium@1.5.102:
resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==}
@@ -1497,6 +2436,17 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
+ end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+
enhanced-resolve@5.18.1:
resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines: {node: '>=10.13.0'}
@@ -1509,6 +2459,10 @@ packages:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
+ env-paths@3.0.0:
+ resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
environment@1.1.0:
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
engines: {node: '>=18'}
@@ -1548,15 +2502,38 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
+ esbuild-register@3.6.0:
+ resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
+ peerDependencies:
+ esbuild: '>=0.12 <1'
+
+ esbuild@0.18.20:
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ esbuild@0.19.12:
+ resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
+ engines: {node: '>=12'}
+ hasBin: true
+
esbuild@0.25.0:
resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
engines: {node: '>=18'}
hasBin: true
+ esbuild@0.25.1:
+ resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==}
+ engines: {node: '>=18'}
+ hasBin: true
+
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
@@ -1567,8 +2544,8 @@ packages:
peerDependencies:
eslint: '>=6.0.0'
- eslint-config-prettier@10.0.1:
- resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==}
+ eslint-config-prettier@10.1.1:
+ resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
@@ -1582,8 +2559,8 @@ packages:
peerDependencies:
eslint: '>=8'
- eslint-plugin-import-x@4.7.0:
- resolution: {integrity: sha512-LHxq8V6SJ99hSFYAexxUKk3gVsjb8fuNRGsbMinwlJGvcuREP9SVzCCNKJ3POdDowEHdExy/bPN6YfjraueIXA==}
+ eslint-plugin-import-x@4.9.0:
+ resolution: {integrity: sha512-qdrsei0heLV8z9QpY2/PHF/r/3fF15w3JeVXqWlLzPMiiwYx0VAwIjxN6SzdaPVuGeIMAbQHHS1Wwdn1/bsCgw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1608,6 +2585,17 @@ packages:
eslint-config-prettier:
optional: true
+ eslint-plugin-react-hooks@5.2.0:
+ resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+
+ eslint-plugin-react-refresh@0.4.19:
+ resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==}
+ peerDependencies:
+ eslint: '>=8.40'
+
eslint-plugin-react@7.37.4:
resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==}
engines: {node: '>=4'}
@@ -1618,8 +2606,8 @@ packages:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- eslint-scope@8.2.0:
- resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
+ eslint-scope@8.3.0:
+ resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3:
@@ -1630,8 +2618,8 @@ packages:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.20.1:
- resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==}
+ eslint@9.22.0:
+ resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -1675,17 +2663,29 @@ packages:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+ execa@1.0.0:
+ resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
+ engines: {node: '>=6'}
+
execa@8.0.1:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
- expect-type@1.1.0:
- resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
+ expect-type@1.2.0:
+ resolution: {integrity: sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==}
engines: {node: '>=12.0.0'}
+ express@4.21.2:
+ resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
+ engines: {node: '>= 0.10.0'}
+
extendable-error@0.1.7:
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
@@ -1732,6 +2732,10 @@ packages:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
+ finalhandler@1.3.1:
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
+ engines: {node: '>= 0.8'}
+
find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
@@ -1759,6 +2763,18 @@ packages:
resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
engines: {node: '>= 6'}
+ forwarded@0.2.0:
+ resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
+ engines: {node: '>= 0.6'}
+
+ fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ fs-extra@11.3.0:
+ resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
+ engines: {node: '>=14.14'}
+
fs-extra@7.0.1:
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
engines: {node: '>=6 <7 || >=8'}
@@ -1767,9 +2783,6 @@ packages:
resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==}
engines: {node: '>=6 <7 || >=8'}
- fs.realpath@1.0.0:
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -1785,10 +2798,19 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ gel@2.0.1:
+ resolution: {integrity: sha512-gfem3IGvqKqXwEq7XseBogyaRwGsQGuE7Cw/yQsjLGdgiyqX92G1xENPCE0ltunPGcsJIa6XBOTx/PK169mOqw==}
+ engines: {node: '>= 18.0.0'}
+ hasBin: true
+
gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
get-east-asian-width@1.3.0:
resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
engines: {node: '>=18'}
@@ -1801,6 +2823,10 @@ packages:
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines: {node: '>= 0.4'}
+ get-stream@4.1.0:
+ resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==}
+ engines: {node: '>=6'}
+
get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
@@ -1824,10 +2850,6 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
- glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
@@ -1865,8 +2887,8 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- happy-dom@17.1.1:
- resolution: {integrity: sha512-OSTkBlmD/6Do7gCd7nZB5iFq1bF9VQg/iFmjHmxvVX2S1UiOpo6sT+aFNnu3XUsB8hCZb9+GZ0G1g1TaMiAggw==}
+ happy-dom@17.4.4:
+ resolution: {integrity: sha512-/Pb0ctk3HTZ5xEL3BZ0hK1AqDSAUuRQitOmROPHhfUYEWpmTImwfD8vFDGADmMAX0JYgbcgxWoLFKtsWhcpuVA==}
engines: {node: '>=18.0.0'}
has-bigints@1.1.0:
@@ -1904,6 +2926,13 @@ packages:
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
engines: {node: '>=18'}
+ html-escaper@2.0.2:
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+
+ http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+
http-proxy-agent@7.0.2:
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
@@ -1956,10 +2985,6 @@ packages:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
- inflight@1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
- deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
-
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
@@ -1971,6 +2996,10 @@ packages:
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
engines: {node: '>= 0.10'}
+ ipaddr.js@1.9.1:
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
+ engines: {node: '>= 0.10'}
+
is-array-buffer@3.0.5:
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: '>= 0.4'}
@@ -2062,6 +3091,10 @@ packages:
resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
engines: {node: '>= 0.4'}
+ is-stream@1.1.0:
+ resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
+ engines: {node: '>=0.10.0'}
+
is-stream@3.0.0:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2108,6 +3141,30 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ isexe@3.1.1:
+ resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
+ engines: {node: '>=16'}
+
+ istanbul-lib-coverage@3.2.2:
+ resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
+ engines: {node: '>=8'}
+
+ istanbul-lib-instrument@6.0.3:
+ resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-report@3.0.1:
+ resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+ engines: {node: '>=10'}
+
+ istanbul-lib-source-maps@5.0.6:
+ resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
+ engines: {node: '>=10'}
+
+ istanbul-reports@3.1.7:
+ resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+ engines: {node: '>=8'}
+
iterator.prototype@1.1.5:
resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
engines: {node: '>= 0.4'}
@@ -2115,6 +3172,10 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+ jiti@2.4.2:
+ resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
+ hasBin: true
+
jju@1.4.0:
resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
@@ -2184,10 +3245,78 @@ packages:
kolorist@1.8.0:
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ kysely@0.27.6:
+ resolution: {integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==}
+ engines: {node: '>=14.0.0'}
+
levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
+ lightningcss-darwin-arm64@1.29.2:
+ resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.29.2:
+ resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.29.2:
+ resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.29.2:
+ resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.29.2:
+ resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.29.2:
+ resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.29.2:
+ resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.29.2:
+ resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-win32-arm64-msvc@1.29.2:
+ resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.29.2:
+ resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.29.2:
+ resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
+ engines: {node: '>= 12.0.0'}
+
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
@@ -2198,8 +3327,8 @@ packages:
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
- lint-staged@15.4.3:
- resolution: {integrity: sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==}
+ lint-staged@15.5.0:
+ resolution: {integrity: sha512-WyCzSbfYGhK7cU+UuDDkzUiytbfbi0ZdPy2orwtM75P3WTtQBzmG40cCxIa8Ii2+XjfxzLH6Be46tUfWS85Xfg==}
engines: {node: '>=18.12.0'}
hasBin: true
@@ -2266,6 +3395,13 @@ packages:
magic-string@0.30.17:
resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+ magicast@0.3.5:
+ resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
+
+ make-dir@4.0.0:
+ resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+ engines: {node: '>=10'}
+
markdown-it@14.1.0:
resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
hasBin: true
@@ -2277,10 +3413,17 @@ packages:
mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+ media-typer@0.3.0:
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
+ engines: {node: '>= 0.6'}
+
meow@12.1.1:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
engines: {node: '>=16.10'}
+ merge-descriptors@1.0.3:
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
+
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -2288,6 +3431,10 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
+ methods@1.1.2:
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
+ engines: {node: '>= 0.6'}
+
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
@@ -2300,6 +3447,11 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
mimic-fn@4.0.0:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
@@ -2312,10 +3464,6 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
- minimatch@10.0.1:
- resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
- engines: {node: 20 || >=22}
-
minimatch@3.0.8:
resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==}
@@ -2343,6 +3491,9 @@ packages:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -2352,14 +3503,21 @@ packages:
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
- nanoid@3.3.8:
- resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
+ nice-try@1.0.5:
+ resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==}
+
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -2372,6 +3530,10 @@ packages:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ npm-run-path@2.0.2:
+ resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==}
+ engines: {node: '>=4'}
+
npm-run-path@5.3.0:
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2407,6 +3569,13 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
+ obuf@1.1.2:
+ resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
+
+ on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@@ -2433,13 +3602,14 @@ packages:
resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
engines: {node: '>= 0.4'}
- oxc-resolver@5.0.0:
- resolution: {integrity: sha512-66fopyAqCN8Mx4tzNiBXWbk8asCSuxUWN62gwTc3yfRs7JfWhX/eVJCf+fUrfbNOdQVOWn+o8pAKllp76ysMXA==}
-
p-filter@2.1.0:
resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
engines: {node: '>=8'}
+ p-finally@1.0.0:
+ resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+
p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -2477,6 +3647,10 @@ packages:
parse5@7.2.1:
resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
+ parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
@@ -2484,9 +3658,9 @@ packages:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
- path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
+ path-key@2.0.1:
+ resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==}
+ engines: {node: '>=4'}
path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
@@ -2503,6 +3677,9 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
+ path-to-regexp@0.1.12:
+ resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
+
path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
@@ -2514,6 +3691,48 @@ packages:
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
engines: {node: '>= 14.16'}
+ pg-cloudflare@1.1.1:
+ resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==}
+
+ pg-connection-string@2.7.0:
+ resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==}
+
+ pg-int8@1.0.1:
+ resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
+ engines: {node: '>=4.0.0'}
+
+ pg-numeric@1.0.2:
+ resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==}
+ engines: {node: '>=4'}
+
+ pg-pool@3.8.0:
+ resolution: {integrity: sha512-VBw3jiVm6ZOdLBTIcXLNdSotb6Iy3uOCwDGFAksZCXmi10nyRvnP2v3jl4d+IsLYRyXf6o9hIm/ZtUzlByNUdw==}
+ peerDependencies:
+ pg: '>=8.0'
+
+ pg-protocol@1.8.0:
+ resolution: {integrity: sha512-jvuYlEkL03NRvOoyoRktBK7+qU5kOvlAwvmrH8sr3wbLrOdVWsRxQfz8mMy9sZFsqJ1hEWNfdWKI4SAmoL+j7g==}
+
+ pg-types@2.2.0:
+ resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
+ engines: {node: '>=4'}
+
+ pg-types@4.0.2:
+ resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==}
+ engines: {node: '>=10'}
+
+ pg@8.14.1:
+ resolution: {integrity: sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==}
+ engines: {node: '>= 8.0.0'}
+ peerDependencies:
+ pg-native: '>=3.0.1'
+ peerDependenciesMeta:
+ pg-native:
+ optional: true
+
+ pgpass@1.0.5:
+ resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -2567,6 +3786,41 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
+ postgres-array@2.0.0:
+ resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
+ engines: {node: '>=4'}
+
+ postgres-array@3.0.4:
+ resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==}
+ engines: {node: '>=12'}
+
+ postgres-bytea@1.0.0:
+ resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
+ engines: {node: '>=0.10.0'}
+
+ postgres-bytea@3.0.0:
+ resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==}
+ engines: {node: '>= 6'}
+
+ postgres-date@1.0.7:
+ resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
+ engines: {node: '>=0.10.0'}
+
+ postgres-date@2.1.0:
+ resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==}
+ engines: {node: '>=12'}
+
+ postgres-interval@1.2.0:
+ resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
+ engines: {node: '>=0.10.0'}
+
+ postgres-interval@3.0.0:
+ resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==}
+ engines: {node: '>=12'}
+
+ postgres-range@1.1.4:
+ resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==}
+
postgres@3.4.5:
resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==}
engines: {node: '>=12'}
@@ -2584,8 +3838,8 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
- prettier@3.5.1:
- resolution: {integrity: sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==}
+ prettier@3.5.3:
+ resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
engines: {node: '>=14'}
hasBin: true
@@ -2596,11 +3850,18 @@ packages:
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ proxy-addr@2.0.7:
+ resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
+ engines: {node: '>= 0.10'}
+
publint@0.3.9:
resolution: {integrity: sha512-irTwfRfYW38vomkxxoiZQtFtUOQKpz5m0p9Z60z4xpXrl1KmvSrX1OMARvnnolB5usOXeNfvLj6d/W3rwXKfBQ==}
engines: {node: '>=18'}
hasBin: true
+ pump@3.0.2:
+ resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
+
punycode.js@2.3.1:
resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
engines: {node: '>=6'}
@@ -2609,12 +3870,24 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ qs@6.13.0:
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
+ engines: {node: '>=0.6'}
+
quansync@0.2.8:
resolution: {integrity: sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==}
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ raw-body@2.5.2:
+ resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
+ engines: {node: '>= 0.8'}
+
react-dom@19.0.0:
resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
peerDependencies:
@@ -2661,6 +3934,10 @@ packages:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
@@ -2706,12 +3983,23 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
+ rollup@4.36.0:
+ resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
rrweb-cssom@0.8.0:
resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
+ rspack-resolver@1.2.2:
+ resolution: {integrity: sha512-Fwc19jMBA3g+fxDJH2B4WxwZjE0VaaOL7OX/A4Wn5Zv7bOD/vyPZhzXfaO73Xc2GAlfi96g5fGUa378WbIGfFw==}
+
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
@@ -2720,6 +4008,9 @@ packages:
resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
engines: {node: '>=0.4'}
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
safe-push-apply@1.0.0:
resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
engines: {node: '>= 0.4'}
@@ -2738,6 +4029,10 @@ packages:
scheduler@0.25.0:
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -2752,6 +4047,14 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ send@0.19.0:
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@1.16.2:
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
+ engines: {node: '>= 0.8.0'}
+
set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
@@ -2764,22 +4067,37 @@ packages:
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
engines: {node: '>= 0.4'}
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
+ shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
+
shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shelljs@0.8.5:
- resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
- engines: {node: '>=4'}
+ shell-quote@1.8.2:
+ resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
+ engines: {node: '>= 0.4'}
+
+ shelljs@0.9.2:
+ resolution: {integrity: sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==}
+ engines: {node: '>=18'}
hasBin: true
- shx@0.3.4:
- resolution: {integrity: sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==}
- engines: {node: '>=6'}
+ shx@0.4.0:
+ resolution: {integrity: sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==}
+ engines: {node: '>=18'}
hasBin: true
side-channel-list@1.0.0:
@@ -2801,6 +4119,9 @@ packages:
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
@@ -2824,6 +4145,9 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@@ -2848,8 +4172,12 @@ packages:
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
- std-env@3.8.0:
- resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
+ statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ std-env@3.8.1:
+ resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==}
string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
@@ -2898,6 +4226,10 @@ packages:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
+ strip-eof@1.0.0:
+ resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==}
+ engines: {node: '>=0.10.0'}
+
strip-final-newline@3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
@@ -2934,6 +4266,12 @@ packages:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
+ tailwindcss@4.0.14:
+ resolution: {integrity: sha512-92YT2dpt671tFiHH/e1ok9D987N9fHD5VWoly1CdPD/Cd1HMglvZwP3nx2yTj2lbXDAHt8QssZkxTLCCTNL+xw==}
+
+ tailwindcss@4.0.17:
+ resolution: {integrity: sha512-OErSiGzRa6rLiOvaipsDZvLMSpsBZ4ysB4f0VKGXUrjw2jfkJRd6kjRKV2+ZmTCNvwtvgdDam5D7w6WXsdLJZw==}
+
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@@ -2942,6 +4280,10 @@ packages:
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
engines: {node: '>=8'}
+ test-exclude@7.0.1:
+ resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
+ engines: {node: '>=18'}
+
text-extensions@2.4.0:
resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
engines: {node: '>=8'}
@@ -2993,6 +4335,10 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
tough-cookie@5.1.1:
resolution: {integrity: sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==}
engines: {node: '>=16'}
@@ -3052,10 +4398,19 @@ packages:
typescript:
optional: true
+ tsx@4.19.3:
+ resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
+ type-is@1.6.18:
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
+ engines: {node: '>= 0.6'}
+
typed-array-buffer@1.0.3:
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines: {node: '>= 0.4'}
@@ -3072,16 +4427,16 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
- typedoc-plugin-frontmatter@1.2.1:
- resolution: {integrity: sha512-TKiOOQCxC1uUYldokAegap2oAtDy9QpsUoVDRohcB6Dm45T91qMgkWqHVS8qbCpDc4SJoGqmGTULGfrqeRqXtA==}
+ typedoc-plugin-frontmatter@1.3.0:
+ resolution: {integrity: sha512-xYQFMAecMlsRUjmf9oM/Sq2FVz4zlgcbIeVFNLdO118CHTN06gIKJNSlyExh9+Xl8sK0YhIvoQwViUURxritWA==}
peerDependencies:
- typedoc-plugin-markdown: '>=4.4.2'
+ typedoc-plugin-markdown: '>=4.5.0'
- typedoc-plugin-markdown@4.4.2:
- resolution: {integrity: sha512-kJVkU2Wd+AXQpyL6DlYXXRrfNrHrEIUgiABWH8Z+2Lz5Sq6an4dQ/hfvP75bbokjNDUskOdFlEEm/0fSVyC7eg==}
+ typedoc-plugin-markdown@4.5.2:
+ resolution: {integrity: sha512-n0wfkCQU4nts13v8RSWMzIGNMbDo4P+oumHW6JudriknJLJSzx7p19OKJP8rKXvBkA+SFFuT7mW8lkMZZROz4g==}
engines: {node: '>= 18'}
peerDependencies:
- typedoc: 0.27.x
+ typedoc: 0.28.x
typedoc@0.27.9:
resolution: {integrity: sha512-/z585740YHURLl9DN2jCWe6OW7zKYm6VoQ93H0sxZ1cwHQEQrUn5BJrEnkWhfzUdyO+BLGjnKUZ9iz9hKloFDw==}
@@ -3102,8 +4457,8 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- typescript@5.7.3:
- resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+ typescript@5.8.2:
+ resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
engines: {node: '>=14.17'}
hasBin: true
@@ -3128,6 +4483,10 @@ packages:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
+ unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
update-browserslist-db@1.1.2:
resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
hasBin: true
@@ -3142,8 +4501,16 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- vite-node@3.0.6:
- resolution: {integrity: sha512-s51RzrTkXKJrhNbUzQRsarjmAae7VmMPAsRT7lppVpIg6mK3zGthP9Hgz0YQQKuNcF+Ii7DfYk3Fxz40jRmePw==}
+ utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ vite-node@3.0.9:
+ resolution: {integrity: sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
@@ -3210,16 +4577,16 @@ packages:
yaml:
optional: true
- vitest@3.0.6:
- resolution: {integrity: sha512-/iL1Sc5VeDZKPDe58oGK4HUFLhw6b5XdY1MYawjuSaDA4sEfYlY9HnS6aCEG26fX+MgUi7MwlduTBHHAI/OvMA==}
+ vitest@3.0.9:
+ resolution: {integrity: sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/debug': ^4.1.12
'@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
- '@vitest/browser': 3.0.6
- '@vitest/ui': 3.0.6
+ '@vitest/browser': 3.0.9
+ '@vitest/ui': 3.0.9
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -3299,11 +4666,20 @@ packages:
resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==}
engines: {node: '>= 0.4'}
+ which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
hasBin: true
+ which@4.0.0:
+ resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
+ engines: {node: ^16.13.0 || >=18.0.0}
+ hasBin: true
+
why-is-node-running@2.3.0:
resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
engines: {node: '>=8'}
@@ -3347,6 +4723,14 @@ packages:
xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
@@ -3358,6 +4742,14 @@ packages:
engines: {node: '>= 14'}
hasBin: true
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -3429,7 +4821,7 @@ snapshots:
'@babel/helper-module-imports@7.25.9':
dependencies:
'@babel/traverse': 7.26.9
- '@babel/types': 7.26.9
+ '@babel/types': 7.26.10
transitivePeerDependencies:
- supports-color
@@ -3455,6 +4847,10 @@ snapshots:
'@babel/template': 7.26.9
'@babel/types': 7.26.9
+ '@babel/parser@7.26.10':
+ dependencies:
+ '@babel/types': 7.26.10
+
'@babel/parser@7.26.9':
dependencies:
'@babel/types': 7.26.9
@@ -3469,6 +4865,10 @@ snapshots:
'@babel/core': 7.26.9
'@babel/helper-plugin-utils': 7.26.5
+ '@babel/runtime@7.26.10':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
'@babel/runtime@7.26.9':
dependencies:
regenerator-runtime: 0.14.1
@@ -3491,6 +4891,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/types@7.26.10':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
'@babel/types@7.26.9':
dependencies:
'@babel/helper-string-parser': 7.25.9
@@ -3676,9 +5081,11 @@ snapshots:
'@csstools/css-tokenizer@3.0.3': {}
+ '@drizzle-team/brocli@0.10.2': {}
+
'@electric-sql/client@1.0.0':
optionalDependencies:
- '@rollup/rollup-darwin-arm64': 4.34.8
+ '@rollup/rollup-darwin-arm64': 4.36.0
'@emnapi/core@1.3.1':
dependencies:
@@ -3696,84 +5103,304 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@esbuild-kit/core-utils@3.3.2':
+ dependencies:
+ esbuild: 0.18.20
+ source-map-support: 0.5.21
+
+ '@esbuild-kit/esm-loader@2.6.5':
+ dependencies:
+ '@esbuild-kit/core-utils': 3.3.2
+ get-tsconfig: 4.10.0
+
+ '@esbuild/aix-ppc64@0.19.12':
+ optional: true
+
'@esbuild/aix-ppc64@0.25.0':
optional: true
+ '@esbuild/aix-ppc64@0.25.1':
+ optional: true
+
+ '@esbuild/android-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/android-arm64@0.19.12':
+ optional: true
+
'@esbuild/android-arm64@0.25.0':
optional: true
+ '@esbuild/android-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/android-arm@0.18.20':
+ optional: true
+
+ '@esbuild/android-arm@0.19.12':
+ optional: true
+
'@esbuild/android-arm@0.25.0':
optional: true
+ '@esbuild/android-arm@0.25.1':
+ optional: true
+
+ '@esbuild/android-x64@0.18.20':
+ optional: true
+
+ '@esbuild/android-x64@0.19.12':
+ optional: true
+
'@esbuild/android-x64@0.25.0':
optional: true
+ '@esbuild/android-x64@0.25.1':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.19.12':
+ optional: true
+
'@esbuild/darwin-arm64@0.25.0':
optional: true
+ '@esbuild/darwin-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/darwin-x64@0.18.20':
+ optional: true
+
+ '@esbuild/darwin-x64@0.19.12':
+ optional: true
+
'@esbuild/darwin-x64@0.25.0':
optional: true
+ '@esbuild/darwin-x64@0.25.1':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.19.12':
+ optional: true
+
'@esbuild/freebsd-arm64@0.25.0':
optional: true
+ '@esbuild/freebsd-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.19.12':
+ optional: true
+
'@esbuild/freebsd-x64@0.25.0':
optional: true
+ '@esbuild/freebsd-x64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-arm64@0.19.12':
+ optional: true
+
'@esbuild/linux-arm64@0.25.0':
optional: true
+ '@esbuild/linux-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-arm@0.18.20':
+ optional: true
+
+ '@esbuild/linux-arm@0.19.12':
+ optional: true
+
'@esbuild/linux-arm@0.25.0':
optional: true
+ '@esbuild/linux-arm@0.25.1':
+ optional: true
+
+ '@esbuild/linux-ia32@0.18.20':
+ optional: true
+
+ '@esbuild/linux-ia32@0.19.12':
+ optional: true
+
'@esbuild/linux-ia32@0.25.0':
optional: true
+ '@esbuild/linux-ia32@0.25.1':
+ optional: true
+
+ '@esbuild/linux-loong64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-loong64@0.19.12':
+ optional: true
+
'@esbuild/linux-loong64@0.25.0':
optional: true
+ '@esbuild/linux-loong64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.18.20':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.19.12':
+ optional: true
+
'@esbuild/linux-mips64el@0.25.0':
optional: true
+ '@esbuild/linux-mips64el@0.25.1':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.19.12':
+ optional: true
+
'@esbuild/linux-ppc64@0.25.0':
optional: true
+ '@esbuild/linux-ppc64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.19.12':
+ optional: true
+
'@esbuild/linux-riscv64@0.25.0':
optional: true
+ '@esbuild/linux-riscv64@0.25.1':
+ optional: true
+
+ '@esbuild/linux-s390x@0.18.20':
+ optional: true
+
+ '@esbuild/linux-s390x@0.19.12':
+ optional: true
+
'@esbuild/linux-s390x@0.25.0':
optional: true
+ '@esbuild/linux-s390x@0.25.1':
+ optional: true
+
+ '@esbuild/linux-x64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-x64@0.19.12':
+ optional: true
+
'@esbuild/linux-x64@0.25.0':
optional: true
+ '@esbuild/linux-x64@0.25.1':
+ optional: true
+
'@esbuild/netbsd-arm64@0.25.0':
optional: true
+ '@esbuild/netbsd-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.19.12':
+ optional: true
+
'@esbuild/netbsd-x64@0.25.0':
optional: true
+ '@esbuild/netbsd-x64@0.25.1':
+ optional: true
+
'@esbuild/openbsd-arm64@0.25.0':
optional: true
+ '@esbuild/openbsd-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.19.12':
+ optional: true
+
'@esbuild/openbsd-x64@0.25.0':
optional: true
+ '@esbuild/openbsd-x64@0.25.1':
+ optional: true
+
+ '@esbuild/sunos-x64@0.18.20':
+ optional: true
+
+ '@esbuild/sunos-x64@0.19.12':
+ optional: true
+
'@esbuild/sunos-x64@0.25.0':
optional: true
+ '@esbuild/sunos-x64@0.25.1':
+ optional: true
+
+ '@esbuild/win32-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/win32-arm64@0.19.12':
+ optional: true
+
'@esbuild/win32-arm64@0.25.0':
optional: true
+ '@esbuild/win32-arm64@0.25.1':
+ optional: true
+
+ '@esbuild/win32-ia32@0.18.20':
+ optional: true
+
+ '@esbuild/win32-ia32@0.19.12':
+ optional: true
+
'@esbuild/win32-ia32@0.25.0':
optional: true
+ '@esbuild/win32-ia32@0.25.1':
+ optional: true
+
+ '@esbuild/win32-x64@0.18.20':
+ optional: true
+
+ '@esbuild/win32-x64@0.19.12':
+ optional: true
+
'@esbuild/win32-x64@0.25.0':
optional: true
- '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1)':
+ '@esbuild/win32-x64@0.25.1':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.5.1(eslint@9.22.0(jiti@2.4.2))':
dependencies:
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
@@ -3786,11 +5413,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/core@0.11.0':
+ '@eslint/config-helpers@0.1.0': {}
+
+ '@eslint/core@0.12.0':
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.2.0':
+ '@eslint/eslintrc@3.3.0':
dependencies:
ajv: 6.12.6
debug: 4.4.0
@@ -3804,15 +5433,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.20.0': {}
-
'@eslint/js@9.22.0': {}
'@eslint/object-schema@2.1.6': {}
- '@eslint/plugin-kit@0.2.6':
+ '@eslint/plugin-kit@0.2.7':
dependencies:
- '@eslint/core': 0.11.0
+ '@eslint/core': 0.12.0
levn: 0.4.1
'@gerrit0/mini-shiki@1.27.2':
@@ -3843,6 +5470,8 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@istanbuljs/schema@0.1.3': {}
+
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
@@ -3870,7 +5499,7 @@ snapshots:
'@manypkg/find-root@1.1.0':
dependencies:
- '@babel/runtime': 7.26.9
+ '@babel/runtime': 7.26.10
'@types/node': 12.20.55
find-up: 4.1.0
fs-extra: 8.1.0
@@ -3884,31 +5513,59 @@ snapshots:
globby: 11.1.0
read-yaml-file: 1.1.0
- '@microsoft/api-extractor-model@7.29.6(@types/node@22.13.4)':
+ '@microsoft/api-extractor-model@7.29.6(@types/node@22.13.10)':
+ dependencies:
+ '@microsoft/tsdoc': 0.15.1
+ '@microsoft/tsdoc-config': 0.17.1
+ '@rushstack/node-core-library': 5.7.0(@types/node@22.13.10)
+ transitivePeerDependencies:
+ - '@types/node'
+
+ '@microsoft/api-extractor-model@7.30.4(@types/node@22.13.10)':
+ dependencies:
+ '@microsoft/tsdoc': 0.15.1
+ '@microsoft/tsdoc-config': 0.17.1
+ '@rushstack/node-core-library': 5.12.0(@types/node@22.13.10)
+ transitivePeerDependencies:
+ - '@types/node'
+ optional: true
+
+ '@microsoft/api-extractor@7.47.7(@types/node@22.13.10)':
dependencies:
+ '@microsoft/api-extractor-model': 7.29.6(@types/node@22.13.10)
'@microsoft/tsdoc': 0.15.1
'@microsoft/tsdoc-config': 0.17.1
- '@rushstack/node-core-library': 5.7.0(@types/node@22.13.4)
+ '@rushstack/node-core-library': 5.7.0(@types/node@22.13.10)
+ '@rushstack/rig-package': 0.5.3
+ '@rushstack/terminal': 0.14.0(@types/node@22.13.10)
+ '@rushstack/ts-command-line': 4.22.6(@types/node@22.13.10)
+ lodash: 4.17.21
+ minimatch: 3.0.8
+ resolve: 1.22.10
+ semver: 7.5.4
+ source-map: 0.6.1
+ typescript: 5.4.2
transitivePeerDependencies:
- '@types/node'
- '@microsoft/api-extractor@7.47.7(@types/node@22.13.4)':
+ '@microsoft/api-extractor@7.52.1(@types/node@22.13.10)':
dependencies:
- '@microsoft/api-extractor-model': 7.29.6(@types/node@22.13.4)
+ '@microsoft/api-extractor-model': 7.30.4(@types/node@22.13.10)
'@microsoft/tsdoc': 0.15.1
'@microsoft/tsdoc-config': 0.17.1
- '@rushstack/node-core-library': 5.7.0(@types/node@22.13.4)
+ '@rushstack/node-core-library': 5.12.0(@types/node@22.13.10)
'@rushstack/rig-package': 0.5.3
- '@rushstack/terminal': 0.14.0(@types/node@22.13.4)
- '@rushstack/ts-command-line': 4.22.6(@types/node@22.13.4)
+ '@rushstack/terminal': 0.15.1(@types/node@22.13.10)
+ '@rushstack/ts-command-line': 4.23.6(@types/node@22.13.10)
lodash: 4.17.21
minimatch: 3.0.8
resolve: 1.22.10
semver: 7.5.4
source-map: 0.6.1
- typescript: 5.4.2
+ typescript: 5.8.2
transitivePeerDependencies:
- '@types/node'
+ optional: true
'@microsoft/tsdoc-config@0.17.1':
dependencies:
@@ -3938,40 +5595,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.0
- '@oxc-resolver/binding-darwin-arm64@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-darwin-x64@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-freebsd-x64@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-linux-arm-gnueabihf@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-linux-arm64-gnu@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-linux-arm64-musl@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-linux-x64-gnu@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-linux-x64-musl@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-wasm32-wasi@5.0.0':
- dependencies:
- '@napi-rs/wasm-runtime': 0.2.7
- optional: true
-
- '@oxc-resolver/binding-win32-arm64-msvc@5.0.0':
- optional: true
-
- '@oxc-resolver/binding-win32-x64-msvc@5.0.0':
- optional: true
+ '@petamoriken/float16@3.9.2': {}
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -3980,72 +5604,143 @@ snapshots:
'@publint/pack@0.1.2': {}
- '@rollup/pluginutils@5.1.4(rollup@4.34.8)':
+ '@rollup/pluginutils@5.1.4(rollup@4.36.0)':
dependencies:
'@types/estree': 1.0.6
estree-walker: 2.0.2
picomatch: 4.0.2
optionalDependencies:
- rollup: 4.34.8
+ rollup: 4.36.0
'@rollup/rollup-android-arm-eabi@4.34.8':
optional: true
+ '@rollup/rollup-android-arm-eabi@4.36.0':
+ optional: true
+
'@rollup/rollup-android-arm64@4.34.8':
optional: true
+ '@rollup/rollup-android-arm64@4.36.0':
+ optional: true
+
'@rollup/rollup-darwin-arm64@4.34.8':
optional: true
+ '@rollup/rollup-darwin-arm64@4.36.0':
+ optional: true
+
'@rollup/rollup-darwin-x64@4.34.8':
optional: true
+ '@rollup/rollup-darwin-x64@4.36.0':
+ optional: true
+
'@rollup/rollup-freebsd-arm64@4.34.8':
optional: true
+ '@rollup/rollup-freebsd-arm64@4.36.0':
+ optional: true
+
'@rollup/rollup-freebsd-x64@4.34.8':
optional: true
+ '@rollup/rollup-freebsd-x64@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-arm-gnueabihf@4.34.8':
optional: true
+ '@rollup/rollup-linux-arm-gnueabihf@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-arm-musleabihf@4.34.8':
optional: true
+ '@rollup/rollup-linux-arm-musleabihf@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-arm64-gnu@4.34.8':
optional: true
+ '@rollup/rollup-linux-arm64-gnu@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-arm64-musl@4.34.8':
optional: true
+ '@rollup/rollup-linux-arm64-musl@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-loongarch64-gnu@4.34.8':
optional: true
+ '@rollup/rollup-linux-loongarch64-gnu@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
optional: true
+ '@rollup/rollup-linux-powerpc64le-gnu@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-riscv64-gnu@4.34.8':
optional: true
+ '@rollup/rollup-linux-riscv64-gnu@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-s390x-gnu@4.34.8':
optional: true
+ '@rollup/rollup-linux-s390x-gnu@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-x64-gnu@4.34.8':
optional: true
+ '@rollup/rollup-linux-x64-gnu@4.36.0':
+ optional: true
+
'@rollup/rollup-linux-x64-musl@4.34.8':
optional: true
+ '@rollup/rollup-linux-x64-musl@4.36.0':
+ optional: true
+
'@rollup/rollup-win32-arm64-msvc@4.34.8':
optional: true
+ '@rollup/rollup-win32-arm64-msvc@4.36.0':
+ optional: true
+
'@rollup/rollup-win32-ia32-msvc@4.34.8':
optional: true
+ '@rollup/rollup-win32-ia32-msvc@4.36.0':
+ optional: true
+
'@rollup/rollup-win32-x64-msvc@4.34.8':
optional: true
- '@rushstack/node-core-library@5.7.0(@types/node@22.13.4)':
+ '@rollup/rollup-win32-x64-msvc@4.36.0':
+ optional: true
+
+ '@rushstack/node-core-library@5.12.0(@types/node@22.13.10)':
+ dependencies:
+ ajv: 8.13.0
+ ajv-draft-04: 1.0.0(ajv@8.13.0)
+ ajv-formats: 3.0.1(ajv@8.13.0)
+ fs-extra: 11.3.0
+ import-lazy: 4.0.0
+ jju: 1.4.0
+ resolve: 1.22.10
+ semver: 7.5.4
+ optionalDependencies:
+ '@types/node': 22.13.10
+ optional: true
+
+ '@rushstack/node-core-library@5.7.0(@types/node@22.13.10)':
dependencies:
ajv: 8.13.0
ajv-draft-04: 1.0.0(ajv@8.13.0)
@@ -4056,29 +5751,47 @@ snapshots:
resolve: 1.22.10
semver: 7.5.4
optionalDependencies:
- '@types/node': 22.13.4
+ '@types/node': 22.13.10
'@rushstack/rig-package@0.5.3':
dependencies:
resolve: 1.22.10
strip-json-comments: 3.1.1
- '@rushstack/terminal@0.14.0(@types/node@22.13.4)':
+ '@rushstack/terminal@0.14.0(@types/node@22.13.10)':
+ dependencies:
+ '@rushstack/node-core-library': 5.7.0(@types/node@22.13.10)
+ supports-color: 8.1.1
+ optionalDependencies:
+ '@types/node': 22.13.10
+
+ '@rushstack/terminal@0.15.1(@types/node@22.13.10)':
dependencies:
- '@rushstack/node-core-library': 5.7.0(@types/node@22.13.4)
+ '@rushstack/node-core-library': 5.12.0(@types/node@22.13.10)
supports-color: 8.1.1
optionalDependencies:
- '@types/node': 22.13.4
+ '@types/node': 22.13.10
+ optional: true
- '@rushstack/ts-command-line@4.22.6(@types/node@22.13.4)':
+ '@rushstack/ts-command-line@4.22.6(@types/node@22.13.10)':
dependencies:
- '@rushstack/terminal': 0.14.0(@types/node@22.13.4)
+ '@rushstack/terminal': 0.14.0(@types/node@22.13.10)
'@types/argparse': 1.0.38
argparse: 1.0.10
string-argv: 0.3.2
transitivePeerDependencies:
- '@types/node'
+ '@rushstack/ts-command-line@4.23.6(@types/node@22.13.10)':
+ dependencies:
+ '@rushstack/terminal': 0.15.1(@types/node@22.13.10)
+ '@types/argparse': 1.0.38
+ argparse: 1.0.10
+ string-argv: 0.3.2
+ transitivePeerDependencies:
+ - '@types/node'
+ optional: true
+
'@shikijs/engine-oniguruma@1.29.2':
dependencies:
'@shikijs/types': 1.29.2
@@ -4093,16 +5806,16 @@ snapshots:
'@standard-schema/spec@1.0.0': {}
- '@stylistic/eslint-plugin-js@4.2.0(eslint@9.20.1)':
+ '@stylistic/eslint-plugin-js@4.2.0(eslint@9.22.0(jiti@2.4.2))':
dependencies:
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
eslint-visitor-keys: 4.2.0
espree: 10.3.0
- '@stylistic/eslint-plugin@4.0.1(eslint@9.20.1)(typescript@5.7.3)':
+ '@stylistic/eslint-plugin@4.2.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
- '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3)
- eslint: 9.20.1
+ '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ eslint: 9.22.0(jiti@2.4.2)
eslint-visitor-keys: 4.2.0
espree: 10.3.0
estraverse: 5.3.0
@@ -4118,12 +5831,73 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@tanstack/config@0.17.1(@types/node@22.13.4)(eslint@9.20.1)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))':
+ '@tailwindcss/node@4.0.14':
dependencies:
- '@tanstack/eslint-config': 0.1.0(eslint@9.20.1)(typescript@5.7.3)
+ enhanced-resolve: 5.18.1
+ jiti: 2.4.2
+ tailwindcss: 4.0.14
+
+ '@tailwindcss/oxide-android-arm64@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-arm64@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-darwin-x64@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-freebsd-x64@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-gnu@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-linux-arm64-musl@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-gnu@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-linux-x64-musl@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-win32-arm64-msvc@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide-win32-x64-msvc@4.0.14':
+ optional: true
+
+ '@tailwindcss/oxide@4.0.14':
+ optionalDependencies:
+ '@tailwindcss/oxide-android-arm64': 4.0.14
+ '@tailwindcss/oxide-darwin-arm64': 4.0.14
+ '@tailwindcss/oxide-darwin-x64': 4.0.14
+ '@tailwindcss/oxide-freebsd-x64': 4.0.14
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.14
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.0.14
+ '@tailwindcss/oxide-linux-arm64-musl': 4.0.14
+ '@tailwindcss/oxide-linux-x64-gnu': 4.0.14
+ '@tailwindcss/oxide-linux-x64-musl': 4.0.14
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.0.14
+ '@tailwindcss/oxide-win32-x64-msvc': 4.0.14
+
+ '@tailwindcss/vite@4.0.14(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))':
+ dependencies:
+ '@tailwindcss/node': 4.0.14
+ '@tailwindcss/oxide': 4.0.14
+ lightningcss: 1.29.2
+ tailwindcss: 4.0.14
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
+
+ '@tanstack/config@0.17.1(@types/node@22.13.10)(eslint@9.22.0(jiti@2.4.2))(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))':
+ dependencies:
+ '@tanstack/eslint-config': 0.1.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
'@tanstack/publish-config': 0.1.0
- '@tanstack/typedoc-config': 0.1.0(typescript@5.7.3)
- '@tanstack/vite-config': 0.1.0(@types/node@22.13.4)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
+ '@tanstack/typedoc-config': 0.1.0(typescript@5.8.2)
+ '@tanstack/vite-config': 0.1.0(@types/node@22.13.10)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
transitivePeerDependencies:
- '@types/node'
- eslint
@@ -4132,15 +5906,15 @@ snapshots:
- typescript
- vite
- '@tanstack/eslint-config@0.1.0(eslint@9.20.1)(typescript@5.7.3)':
+ '@tanstack/eslint-config@0.1.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
'@eslint/js': 9.22.0
- '@stylistic/eslint-plugin-js': 4.2.0(eslint@9.20.1)
- eslint-plugin-import-x: 4.7.0(eslint@9.20.1)(typescript@5.7.3)
- eslint-plugin-n: 17.16.2(eslint@9.20.1)
+ '@stylistic/eslint-plugin-js': 4.2.0(eslint@9.22.0(jiti@2.4.2))
+ eslint-plugin-import-x: 4.9.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ eslint-plugin-n: 17.16.2(eslint@9.22.0(jiti@2.4.2))
globals: 16.0.0
- typescript-eslint: 8.26.1(eslint@9.20.1)(typescript@5.7.3)
- vue-eslint-parser: 9.4.3(eslint@9.20.1)
+ typescript-eslint: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ vue-eslint-parser: 9.4.3(eslint@9.22.0(jiti@2.4.2))
transitivePeerDependencies:
- eslint
- supports-color
@@ -4157,20 +5931,20 @@ snapshots:
'@tanstack/store@0.7.0': {}
- '@tanstack/typedoc-config@0.1.0(typescript@5.7.3)':
+ '@tanstack/typedoc-config@0.1.0(typescript@5.8.2)':
dependencies:
- typedoc: 0.27.9(typescript@5.7.3)
- typedoc-plugin-frontmatter: 1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.7.3)))
- typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.7.3))
+ typedoc: 0.27.9(typescript@5.8.2)
+ typedoc-plugin-frontmatter: 1.3.0(typedoc-plugin-markdown@4.5.2(typedoc@0.27.9(typescript@5.8.2)))
+ typedoc-plugin-markdown: 4.5.2(typedoc@0.27.9(typescript@5.8.2))
transitivePeerDependencies:
- typescript
- '@tanstack/vite-config@0.1.0(@types/node@22.13.4)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))':
+ '@tanstack/vite-config@0.1.0(@types/node@22.13.10)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))':
dependencies:
- rollup-plugin-preserve-directives: 0.4.0(rollup@4.34.8)
- vite-plugin-dts: 4.2.3(@types/node@22.13.4)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
- vite-plugin-externalize-deps: 0.9.0(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
- vite-tsconfig-paths: 5.1.4(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
+ rollup-plugin-preserve-directives: 0.4.0(rollup@4.36.0)
+ vite-plugin-dts: 4.2.3(@types/node@22.13.10)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+ vite-plugin-externalize-deps: 0.9.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+ vite-tsconfig-paths: 5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
transitivePeerDependencies:
- '@types/node'
- rollup
@@ -4181,7 +5955,7 @@ snapshots:
'@testing-library/dom@10.4.0':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/runtime': 7.26.9
+ '@babel/runtime': 7.26.10
'@types/aria-query': 5.0.4
aria-query: 5.3.0
chalk: 4.1.2
@@ -4199,15 +5973,15 @@ snapshots:
lodash: 4.17.21
redent: 3.0.0
- '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
+ '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.12))(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)':
dependencies:
- '@babel/runtime': 7.26.9
+ '@babel/runtime': 7.26.10
'@testing-library/dom': 10.4.0
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
optionalDependencies:
- '@types/react': 19.0.10
- '@types/react-dom': 19.0.4(@types/react@19.0.10)
+ '@types/react': 19.0.12
+ '@types/react-dom': 19.0.4(@types/react@19.0.12)
'@tybys/wasm-util@0.9.0':
dependencies:
@@ -4239,147 +6013,138 @@ snapshots:
dependencies:
'@babel/types': 7.26.9
+ '@types/body-parser@1.19.5':
+ dependencies:
+ '@types/connect': 3.4.38
+ '@types/node': 22.13.10
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 22.13.10
+
'@types/conventional-commits-parser@5.0.1':
dependencies:
- '@types/node': 22.13.4
+ '@types/node': 22.13.10
+
+ '@types/cors@2.8.17':
+ dependencies:
+ '@types/node': 22.13.10
'@types/doctrine@0.0.9': {}
'@types/estree@1.0.6': {}
+ '@types/express-serve-static-core@4.19.6':
+ dependencies:
+ '@types/node': 22.13.10
+ '@types/qs': 6.9.18
+ '@types/range-parser': 1.2.7
+ '@types/send': 0.17.4
+
+ '@types/express@4.17.21':
+ dependencies:
+ '@types/body-parser': 1.19.5
+ '@types/express-serve-static-core': 4.19.6
+ '@types/qs': 6.9.18
+ '@types/serve-static': 1.15.7
+
'@types/hast@3.0.4':
dependencies:
'@types/unist': 3.0.3
+ '@types/http-errors@2.0.4': {}
+
'@types/json-schema@7.0.15': {}
+ '@types/mime@1.3.5': {}
+
'@types/node@12.20.55': {}
- '@types/node@22.13.4':
+ '@types/node@22.13.10':
dependencies:
undici-types: 6.20.0
- '@types/react-dom@19.0.4(@types/react@19.0.10)':
+ '@types/pg@8.11.11':
+ dependencies:
+ '@types/node': 22.13.10
+ pg-protocol: 1.8.0
+ pg-types: 4.0.2
+
+ '@types/qs@6.9.18': {}
+
+ '@types/range-parser@1.2.7': {}
+
+ '@types/react-dom@19.0.4(@types/react@19.0.12)':
dependencies:
- '@types/react': 19.0.10
+ '@types/react': 19.0.12
- '@types/react@19.0.10':
+ '@types/react@19.0.12':
dependencies:
csstype: 3.1.3
+ '@types/send@0.17.4':
+ dependencies:
+ '@types/mime': 1.3.5
+ '@types/node': 22.13.10
+
+ '@types/serve-static@1.15.7':
+ dependencies:
+ '@types/http-errors': 2.0.4
+ '@types/node': 22.13.10
+ '@types/send': 0.17.4
+
'@types/unist@3.0.3': {}
'@types/use-sync-external-store@0.0.6': {}
- '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3)':
- dependencies:
- '@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.24.1
- '@typescript-eslint/type-utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.24.1
- eslint: 9.20.1
- graphemer: 1.4.0
- ignore: 5.3.2
- natural-compare: 1.4.0
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
'@typescript-eslint/scope-manager': 8.26.1
- '@typescript-eslint/type-utils': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
+ '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
'@typescript-eslint/visitor-keys': 8.26.1
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/scope-manager': 8.24.1
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.24.1
- debug: 4.4.0
- eslint: 9.20.1
- typescript: 5.7.3
+ ts-api-utils: 2.0.1(typescript@5.8.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.26.1(eslint@9.20.1)(typescript@5.7.3)':
+ '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
'@typescript-eslint/scope-manager': 8.26.1
'@typescript-eslint/types': 8.26.1
- '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2)
'@typescript-eslint/visitor-keys': 8.26.1
debug: 4.4.0
- eslint: 9.20.1
- typescript: 5.7.3
+ eslint: 9.22.0(jiti@2.4.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.24.1':
- dependencies:
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/visitor-keys': 8.24.1
-
'@typescript-eslint/scope-manager@8.26.1':
dependencies:
'@typescript-eslint/types': 8.26.1
'@typescript-eslint/visitor-keys': 8.26.1
- '@typescript-eslint/type-utils@8.24.1(eslint@9.20.1)(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
- '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3)
- debug: 4.4.0
- eslint: 9.20.1
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/type-utils@8.26.1(eslint@9.20.1)(typescript@5.7.3)':
+ '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3)
- '@typescript-eslint/utils': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2)
+ '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
debug: 4.4.0
- eslint: 9.20.1
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
+ eslint: 9.22.0(jiti@2.4.2)
+ ts-api-utils: 2.0.1(typescript@5.8.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.24.1': {}
-
'@typescript-eslint/types@8.26.1': {}
- '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/visitor-keys': 8.24.1
- debug: 4.4.0
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.1
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/typescript-estree@8.26.1(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.26.1(typescript@5.8.2)':
dependencies:
'@typescript-eslint/types': 8.26.1
'@typescript-eslint/visitor-keys': 8.26.1
@@ -4388,91 +6153,126 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.1
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@8.24.1(eslint@9.20.1)(typescript@5.7.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
- '@typescript-eslint/scope-manager': 8.24.1
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
- eslint: 9.20.1
- typescript: 5.7.3
+ ts-api-utils: 2.0.1(typescript@5.8.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.26.1(eslint@9.20.1)(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.26.1
'@typescript-eslint/types': 8.26.1
- '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3)
- eslint: 9.20.1
- typescript: 5.7.3
+ '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2)
+ eslint: 9.22.0(jiti@2.4.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.24.1':
- dependencies:
- '@typescript-eslint/types': 8.24.1
- eslint-visitor-keys: 4.2.0
-
'@typescript-eslint/visitor-keys@8.26.1':
dependencies:
'@typescript-eslint/types': 8.26.1
eslint-visitor-keys: 4.2.0
- '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))':
+ '@unrs/rspack-resolver-binding-darwin-arm64@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-darwin-x64@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-freebsd-x64@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-linux-arm64-musl@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-linux-x64-gnu@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-linux-x64-musl@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-wasm32-wasi@1.2.2':
+ dependencies:
+ '@napi-rs/wasm-runtime': 0.2.7
+ optional: true
+
+ '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.2.2':
+ optional: true
+
+ '@unrs/rspack-resolver-binding-win32-x64-msvc@1.2.2':
+ optional: true
+
+ '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))':
dependencies:
'@babel/core': 7.26.9
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.9)
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vitest/coverage-istanbul@3.0.9(vitest@3.0.9(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))':
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ debug: 4.4.0
+ istanbul-lib-coverage: 3.2.2
+ istanbul-lib-instrument: 6.0.3
+ istanbul-lib-report: 3.0.1
+ istanbul-lib-source-maps: 5.0.6
+ istanbul-reports: 3.1.7
+ magicast: 0.3.5
+ test-exclude: 7.0.1
+ tinyrainbow: 2.0.0
+ vitest: 3.0.9(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@3.0.6':
+ '@vitest/expect@3.0.9':
dependencies:
- '@vitest/spy': 3.0.6
- '@vitest/utils': 3.0.6
+ '@vitest/spy': 3.0.9
+ '@vitest/utils': 3.0.9
chai: 5.2.0
tinyrainbow: 2.0.0
- '@vitest/mocker@3.0.6(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))':
+ '@vitest/mocker@3.0.9(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))':
dependencies:
- '@vitest/spy': 3.0.6
+ '@vitest/spy': 3.0.9
estree-walker: 3.0.3
magic-string: 0.30.17
optionalDependencies:
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
- '@vitest/pretty-format@3.0.6':
+ '@vitest/pretty-format@3.0.9':
dependencies:
tinyrainbow: 2.0.0
- '@vitest/runner@3.0.6':
+ '@vitest/runner@3.0.9':
dependencies:
- '@vitest/utils': 3.0.6
+ '@vitest/utils': 3.0.9
pathe: 2.0.3
- '@vitest/snapshot@3.0.6':
+ '@vitest/snapshot@3.0.9':
dependencies:
- '@vitest/pretty-format': 3.0.6
+ '@vitest/pretty-format': 3.0.9
magic-string: 0.30.17
pathe: 2.0.3
- '@vitest/spy@3.0.6':
+ '@vitest/spy@3.0.9':
dependencies:
tinyspy: 3.0.2
- '@vitest/utils@3.0.6':
+ '@vitest/utils@3.0.9':
dependencies:
- '@vitest/pretty-format': 3.0.6
+ '@vitest/pretty-format': 3.0.9
loupe: 3.1.3
tinyrainbow: 2.0.0
@@ -4490,7 +6290,7 @@ snapshots:
'@vue/compiler-core@3.5.13':
dependencies:
- '@babel/parser': 7.26.9
+ '@babel/parser': 7.26.10
'@vue/shared': 3.5.13
entities: 4.5.0
estree-walker: 2.0.2
@@ -4506,7 +6306,7 @@ snapshots:
de-indent: 1.0.2
he: 1.2.0
- '@vue/language-core@2.1.6(typescript@5.7.3)':
+ '@vue/language-core@2.1.6(typescript@5.8.2)':
dependencies:
'@volar/language-core': 2.4.12
'@vue/compiler-dom': 3.5.13
@@ -4517,7 +6317,7 @@ snapshots:
muggle-string: 0.4.1
path-browserify: 1.0.1
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.8.2
'@vue/shared@3.5.13': {}
@@ -4526,11 +6326,16 @@ snapshots:
jsonparse: 1.3.1
through: 2.3.8
- acorn-jsx@5.3.2(acorn@8.14.0):
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
+ acorn-jsx@5.3.2(acorn@8.14.1):
dependencies:
- acorn: 8.14.0
+ acorn: 8.14.1
- acorn@8.14.0: {}
+ acorn@8.14.1: {}
agent-base@7.1.3: {}
@@ -4600,6 +6405,8 @@ snapshots:
call-bound: 1.0.3
is-array-buffer: 3.0.5
+ array-flatten@1.1.1: {}
+
array-ify@1.0.0: {}
array-includes@3.1.8:
@@ -4670,6 +6477,23 @@ snapshots:
dependencies:
is-windows: 1.0.2
+ body-parser@1.20.3:
+ dependencies:
+ bytes: 3.1.2
+ content-type: 1.0.5
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.13.0
+ raw-body: 2.5.2
+ type-is: 1.6.18
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
brace-expansion@1.1.11:
dependencies:
balanced-match: 1.0.2
@@ -4690,11 +6514,15 @@ snapshots:
node-releases: 2.0.19
update-browserslist-db: 1.1.2(browserslist@4.24.4)
+ buffer-from@1.1.2: {}
+
bundle-require@5.1.0(esbuild@0.25.0):
dependencies:
esbuild: 0.25.0
load-tsconfig: 0.2.5
+ bytes@3.1.2: {}
+
cac@6.7.14: {}
call-bind-apply-helpers@1.0.2:
@@ -4757,6 +6585,12 @@ snapshots:
slice-ansi: 5.0.0
string-width: 7.2.0
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -4784,10 +6618,26 @@ snapshots:
concat-map@0.0.1: {}
+ concurrently@9.1.2:
+ dependencies:
+ chalk: 4.1.2
+ lodash: 4.17.21
+ rxjs: 7.8.2
+ shell-quote: 1.8.2
+ supports-color: 8.1.1
+ tree-kill: 1.2.2
+ yargs: 17.7.2
+
confbox@0.1.8: {}
consola@3.4.0: {}
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ content-type@1.0.5: {}
+
conventional-changelog-angular@7.0.0:
dependencies:
compare-func: 2.0.0
@@ -4801,6 +6651,23 @@ snapshots:
convert-source-map@2.0.0: {}
+ cookie-signature@1.0.6: {}
+
+ cookie@0.7.1: {}
+
+ cors@2.8.5:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
+ cross-spawn@6.0.6:
+ dependencies:
+ nice-try: 1.0.5
+ path-key: 2.0.1
+ semver: 5.7.2
+ shebang-command: 1.2.0
+ which: 1.3.1
+
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
@@ -4843,6 +6710,10 @@ snapshots:
de-indent@1.0.2: {}
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+
debug@3.2.7:
dependencies:
ms: 2.1.3
@@ -4871,10 +6742,16 @@ snapshots:
delayed-stream@1.0.0: {}
+ depd@2.0.0: {}
+
dequal@2.0.3: {}
+ destroy@1.2.0: {}
+
detect-indent@6.1.0: {}
+ detect-libc@2.0.3: {}
+
diff@7.0.0: {}
dir-glob@3.0.1:
@@ -4899,6 +6776,29 @@ snapshots:
dotenv@16.4.7: {}
+ drizzle-kit@0.30.5:
+ dependencies:
+ '@drizzle-team/brocli': 0.10.2
+ '@esbuild-kit/esm-loader': 2.6.5
+ esbuild: 0.19.12
+ esbuild-register: 3.6.0(esbuild@0.19.12)
+ gel: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ drizzle-orm@0.40.1(@types/pg@8.11.11)(gel@2.0.1)(kysely@0.27.6)(pg@8.14.1)(postgres@3.4.5):
+ optionalDependencies:
+ '@types/pg': 8.11.11
+ gel: 2.0.1
+ kysely: 0.27.6
+ pg: 8.14.1
+ postgres: 3.4.5
+
+ drizzle-zod@0.7.0(drizzle-orm@0.40.1(@types/pg@8.11.11)(gel@2.0.1)(kysely@0.27.6)(pg@8.14.1)(postgres@3.4.5))(zod@3.24.2):
+ dependencies:
+ drizzle-orm: 0.40.1(@types/pg@8.11.11)(gel@2.0.1)(kysely@0.27.6)(pg@8.14.1)(postgres@3.4.5)
+ zod: 3.24.2
+
dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -4907,6 +6807,8 @@ snapshots:
eastasianwidth@0.2.0: {}
+ ee-first@1.1.1: {}
+
electron-to-chromium@1.5.102: {}
emoji-regex@10.4.0: {}
@@ -4915,6 +6817,14 @@ snapshots:
emoji-regex@9.2.2: {}
+ encodeurl@1.0.2: {}
+
+ encodeurl@2.0.0: {}
+
+ end-of-stream@1.4.4:
+ dependencies:
+ once: 1.4.0
+
enhanced-resolve@5.18.1:
dependencies:
graceful-fs: 4.2.11
@@ -4927,6 +6837,8 @@ snapshots:
entities@4.5.0: {}
+ env-paths@3.0.0: {}
+
environment@1.1.0: {}
es-abstract@1.23.9:
@@ -5029,6 +6941,64 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
+ esbuild-register@3.6.0(esbuild@0.19.12):
+ dependencies:
+ debug: 4.4.0
+ esbuild: 0.19.12
+ transitivePeerDependencies:
+ - supports-color
+
+ esbuild@0.18.20:
+ optionalDependencies:
+ '@esbuild/android-arm': 0.18.20
+ '@esbuild/android-arm64': 0.18.20
+ '@esbuild/android-x64': 0.18.20
+ '@esbuild/darwin-arm64': 0.18.20
+ '@esbuild/darwin-x64': 0.18.20
+ '@esbuild/freebsd-arm64': 0.18.20
+ '@esbuild/freebsd-x64': 0.18.20
+ '@esbuild/linux-arm': 0.18.20
+ '@esbuild/linux-arm64': 0.18.20
+ '@esbuild/linux-ia32': 0.18.20
+ '@esbuild/linux-loong64': 0.18.20
+ '@esbuild/linux-mips64el': 0.18.20
+ '@esbuild/linux-ppc64': 0.18.20
+ '@esbuild/linux-riscv64': 0.18.20
+ '@esbuild/linux-s390x': 0.18.20
+ '@esbuild/linux-x64': 0.18.20
+ '@esbuild/netbsd-x64': 0.18.20
+ '@esbuild/openbsd-x64': 0.18.20
+ '@esbuild/sunos-x64': 0.18.20
+ '@esbuild/win32-arm64': 0.18.20
+ '@esbuild/win32-ia32': 0.18.20
+ '@esbuild/win32-x64': 0.18.20
+
+ esbuild@0.19.12:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.19.12
+ '@esbuild/android-arm': 0.19.12
+ '@esbuild/android-arm64': 0.19.12
+ '@esbuild/android-x64': 0.19.12
+ '@esbuild/darwin-arm64': 0.19.12
+ '@esbuild/darwin-x64': 0.19.12
+ '@esbuild/freebsd-arm64': 0.19.12
+ '@esbuild/freebsd-x64': 0.19.12
+ '@esbuild/linux-arm': 0.19.12
+ '@esbuild/linux-arm64': 0.19.12
+ '@esbuild/linux-ia32': 0.19.12
+ '@esbuild/linux-loong64': 0.19.12
+ '@esbuild/linux-mips64el': 0.19.12
+ '@esbuild/linux-ppc64': 0.19.12
+ '@esbuild/linux-riscv64': 0.19.12
+ '@esbuild/linux-s390x': 0.19.12
+ '@esbuild/linux-x64': 0.19.12
+ '@esbuild/netbsd-x64': 0.19.12
+ '@esbuild/openbsd-x64': 0.19.12
+ '@esbuild/sunos-x64': 0.19.12
+ '@esbuild/win32-arm64': 0.19.12
+ '@esbuild/win32-ia32': 0.19.12
+ '@esbuild/win32-x64': 0.19.12
+
esbuild@0.25.0:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.0
@@ -5057,18 +7027,48 @@ snapshots:
'@esbuild/win32-ia32': 0.25.0
'@esbuild/win32-x64': 0.25.0
+ esbuild@0.25.1:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.1
+ '@esbuild/android-arm': 0.25.1
+ '@esbuild/android-arm64': 0.25.1
+ '@esbuild/android-x64': 0.25.1
+ '@esbuild/darwin-arm64': 0.25.1
+ '@esbuild/darwin-x64': 0.25.1
+ '@esbuild/freebsd-arm64': 0.25.1
+ '@esbuild/freebsd-x64': 0.25.1
+ '@esbuild/linux-arm': 0.25.1
+ '@esbuild/linux-arm64': 0.25.1
+ '@esbuild/linux-ia32': 0.25.1
+ '@esbuild/linux-loong64': 0.25.1
+ '@esbuild/linux-mips64el': 0.25.1
+ '@esbuild/linux-ppc64': 0.25.1
+ '@esbuild/linux-riscv64': 0.25.1
+ '@esbuild/linux-s390x': 0.25.1
+ '@esbuild/linux-x64': 0.25.1
+ '@esbuild/netbsd-arm64': 0.25.1
+ '@esbuild/netbsd-x64': 0.25.1
+ '@esbuild/openbsd-arm64': 0.25.1
+ '@esbuild/openbsd-x64': 0.25.1
+ '@esbuild/sunos-x64': 0.25.1
+ '@esbuild/win32-arm64': 0.25.1
+ '@esbuild/win32-ia32': 0.25.1
+ '@esbuild/win32-x64': 0.25.1
+
escalade@3.2.0: {}
+ escape-html@1.0.3: {}
+
escape-string-regexp@4.0.0: {}
- eslint-compat-utils@0.5.1(eslint@9.20.1):
+ eslint-compat-utils@0.5.1(eslint@9.22.0(jiti@2.4.2)):
dependencies:
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
semver: 7.7.1
- eslint-config-prettier@10.0.1(eslint@9.20.1):
+ eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.2)):
dependencies:
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -5078,25 +7078,24 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-es-x@7.8.0(eslint@9.20.1):
+ eslint-plugin-es-x@7.8.0(eslint@9.22.0(jiti@2.4.2)):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
- eslint: 9.20.1
- eslint-compat-utils: 0.5.1(eslint@9.20.1)
+ eslint: 9.22.0(jiti@2.4.2)
+ eslint-compat-utils: 0.5.1(eslint@9.22.0(jiti@2.4.2))
- eslint-plugin-import-x@4.7.0(eslint@9.20.1)(typescript@5.7.3):
+ eslint-plugin-import-x@4.9.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2):
dependencies:
'@types/doctrine': 0.0.9
- '@typescript-eslint/utils': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
debug: 4.4.0
doctrine: 3.0.0
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
eslint-import-resolver-node: 0.3.9
get-tsconfig: 4.10.0
- is-glob: 4.0.3
- minimatch: 10.0.1
- oxc-resolver: 5.0.0
+ picomatch: 4.0.2
+ rspack-resolver: 1.2.2
semver: 7.7.1
stable-hash: 0.0.5
tslib: 2.8.1
@@ -5104,28 +7103,36 @@ snapshots:
- supports-color
- typescript
- eslint-plugin-n@17.16.2(eslint@9.20.1):
+ eslint-plugin-n@17.16.2(eslint@9.22.0(jiti@2.4.2)):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2))
enhanced-resolve: 5.18.1
- eslint: 9.20.1
- eslint-plugin-es-x: 7.8.0(eslint@9.20.1)
+ eslint: 9.22.0(jiti@2.4.2)
+ eslint-plugin-es-x: 7.8.0(eslint@9.22.0(jiti@2.4.2))
get-tsconfig: 4.10.0
globals: 15.15.0
ignore: 5.3.2
minimatch: 9.0.5
semver: 7.7.1
- eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.0.1(eslint@9.20.1))(eslint@9.20.1)(prettier@3.5.1):
+ eslint-plugin-prettier@5.2.3(eslint-config-prettier@10.1.1(eslint@9.22.0(jiti@2.4.2)))(eslint@9.22.0(jiti@2.4.2))(prettier@3.5.3):
dependencies:
- eslint: 9.20.1
- prettier: 3.5.1
+ eslint: 9.22.0(jiti@2.4.2)
+ prettier: 3.5.3
prettier-linter-helpers: 1.0.0
synckit: 0.9.2
optionalDependencies:
- eslint-config-prettier: 10.0.1(eslint@9.20.1)
+ eslint-config-prettier: 10.1.1(eslint@9.22.0(jiti@2.4.2))
+
+ eslint-plugin-react-hooks@5.2.0(eslint@9.22.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.22.0(jiti@2.4.2)
+
+ eslint-plugin-react-refresh@0.4.19(eslint@9.22.0(jiti@2.4.2)):
+ dependencies:
+ eslint: 9.22.0(jiti@2.4.2)
- eslint-plugin-react@7.37.4(eslint@9.20.1):
+ eslint-plugin-react@7.37.4(eslint@9.22.0(jiti@2.4.2)):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
@@ -5133,7 +7140,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -5152,7 +7159,7 @@ snapshots:
esrecurse: 4.3.0
estraverse: 5.3.0
- eslint-scope@8.2.0:
+ eslint-scope@8.3.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
@@ -5161,15 +7168,16 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
- eslint@9.20.1:
+ eslint@9.22.0(jiti@2.4.2):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
+ '@eslint-community/eslint-utils': 4.5.1(eslint@9.22.0(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.19.2
- '@eslint/core': 0.11.0
- '@eslint/eslintrc': 3.2.0
- '@eslint/js': 9.20.0
- '@eslint/plugin-kit': 0.2.6
+ '@eslint/config-helpers': 0.1.0
+ '@eslint/core': 0.12.0
+ '@eslint/eslintrc': 3.3.0
+ '@eslint/js': 9.22.0
+ '@eslint/plugin-kit': 0.2.7
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.2
@@ -5180,7 +7188,7 @@ snapshots:
cross-spawn: 7.0.6
debug: 4.4.0
escape-string-regexp: 4.0.0
- eslint-scope: 8.2.0
+ eslint-scope: 8.3.0
eslint-visitor-keys: 4.2.0
espree: 10.3.0
esquery: 1.6.0
@@ -5197,19 +7205,21 @@ snapshots:
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.4.2
transitivePeerDependencies:
- supports-color
espree@10.3.0:
dependencies:
- acorn: 8.14.0
- acorn-jsx: 5.3.2(acorn@8.14.0)
+ acorn: 8.14.1
+ acorn-jsx: 5.3.2(acorn@8.14.1)
eslint-visitor-keys: 4.2.0
espree@9.6.1:
dependencies:
- acorn: 8.14.0
- acorn-jsx: 5.3.2(acorn@8.14.0)
+ acorn: 8.14.1
+ acorn-jsx: 5.3.2(acorn@8.14.1)
eslint-visitor-keys: 3.4.3
esprima@4.0.1: {}
@@ -5232,8 +7242,20 @@ snapshots:
esutils@2.0.3: {}
+ etag@1.8.1: {}
+
eventemitter3@5.0.1: {}
+ execa@1.0.0:
+ dependencies:
+ cross-spawn: 6.0.6
+ get-stream: 4.1.0
+ is-stream: 1.1.0
+ npm-run-path: 2.0.2
+ p-finally: 1.0.0
+ signal-exit: 3.0.7
+ strip-eof: 1.0.0
+
execa@8.0.1:
dependencies:
cross-spawn: 7.0.6
@@ -5246,7 +7268,43 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- expect-type@1.1.0: {}
+ expect-type@1.2.0: {}
+
+ express@4.21.2:
+ dependencies:
+ accepts: 1.3.8
+ array-flatten: 1.1.1
+ body-parser: 1.20.3
+ content-disposition: 0.5.4
+ content-type: 1.0.5
+ cookie: 0.7.1
+ cookie-signature: 1.0.6
+ debug: 2.6.9
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 1.3.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ merge-descriptors: 1.0.3
+ methods: 1.1.2
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ path-to-regexp: 0.1.12
+ proxy-addr: 2.0.7
+ qs: 6.13.0
+ range-parser: 1.2.1
+ safe-buffer: 5.2.1
+ send: 0.19.0
+ serve-static: 1.16.2
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ type-is: 1.6.18
+ utils-merge: 1.0.1
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
extendable-error@0.1.7: {}
@@ -5290,6 +7348,18 @@ snapshots:
dependencies:
to-regex-range: 5.0.1
+ finalhandler@1.3.1:
+ dependencies:
+ debug: 2.6.9
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.1
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
find-up@4.1.0:
dependencies:
locate-path: 5.0.0
@@ -5323,6 +7393,17 @@ snapshots:
es-set-tostringtag: 2.1.0
mime-types: 2.1.35
+ forwarded@0.2.0: {}
+
+ fresh@0.5.2: {}
+
+ fs-extra@11.3.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ optional: true
+
fs-extra@7.0.1:
dependencies:
graceful-fs: 4.2.11
@@ -5335,8 +7416,6 @@ snapshots:
jsonfile: 4.0.0
universalify: 0.1.2
- fs.realpath@1.0.0: {}
-
fsevents@2.3.3:
optional: true
@@ -5353,8 +7432,21 @@ snapshots:
functions-have-names@1.2.3: {}
+ gel@2.0.1:
+ dependencies:
+ '@petamoriken/float16': 3.9.2
+ debug: 4.4.0
+ env-paths: 3.0.0
+ semver: 7.7.1
+ shell-quote: 1.8.2
+ which: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
gensync@1.0.0-beta.2: {}
+ get-caller-file@2.0.5: {}
+
get-east-asian-width@1.3.0: {}
get-intrinsic@1.2.7:
@@ -5375,6 +7467,10 @@ snapshots:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
+ get-stream@4.1.0:
+ dependencies:
+ pump: 3.0.2
+
get-stream@8.0.1: {}
get-symbol-description@1.1.0:
@@ -5404,15 +7500,6 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
- glob@7.2.3:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
-
globals@11.12.0: {}
globals@14.0.0: {}
@@ -5443,7 +7530,7 @@ snapshots:
graphemer@1.4.0: {}
- happy-dom@17.1.1:
+ happy-dom@17.4.4:
dependencies:
webidl-conversions: 7.0.0
whatwg-mimetype: 3.0.0
@@ -5477,6 +7564,16 @@ snapshots:
dependencies:
whatwg-encoding: 3.1.1
+ html-escaper@2.0.2: {}
+
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.3
@@ -5520,11 +7617,6 @@ snapshots:
indent-string@4.0.0: {}
- inflight@1.0.6:
- dependencies:
- once: 1.4.0
- wrappy: 1.0.2
-
inherits@2.0.4: {}
internal-slot@1.1.0:
@@ -5535,6 +7627,8 @@ snapshots:
interpret@1.4.0: {}
+ ipaddr.js@1.9.1: {}
+
is-array-buffer@3.0.5:
dependencies:
call-bind: 1.0.8
@@ -5626,6 +7720,8 @@ snapshots:
dependencies:
call-bound: 1.0.3
+ is-stream@1.1.0: {}
+
is-stream@3.0.0: {}
is-string@1.1.1:
@@ -5668,6 +7764,39 @@ snapshots:
isexe@2.0.0: {}
+ isexe@3.1.1: {}
+
+ istanbul-lib-coverage@3.2.2: {}
+
+ istanbul-lib-instrument@6.0.3:
+ dependencies:
+ '@babel/core': 7.26.9
+ '@babel/parser': 7.26.10
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-coverage: 3.2.2
+ semver: 7.7.1
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-lib-report@3.0.1:
+ dependencies:
+ istanbul-lib-coverage: 3.2.2
+ make-dir: 4.0.0
+ supports-color: 7.2.0
+
+ istanbul-lib-source-maps@5.0.6:
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ debug: 4.4.0
+ istanbul-lib-coverage: 3.2.2
+ transitivePeerDependencies:
+ - supports-color
+
+ istanbul-reports@3.1.7:
+ dependencies:
+ html-escaper: 2.0.2
+ istanbul-lib-report: 3.0.1
+
iterator.prototype@1.1.5:
dependencies:
define-data-property: 1.1.4
@@ -5683,6 +7812,8 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jiti@2.4.2: {}
+
jju@1.4.0: {}
joycon@3.1.1: {}
@@ -5763,11 +7894,59 @@ snapshots:
kolorist@1.8.0: {}
+ kysely@0.27.6:
+ optional: true
+
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
+ lightningcss-darwin-arm64@1.29.2:
+ optional: true
+
+ lightningcss-darwin-x64@1.29.2:
+ optional: true
+
+ lightningcss-freebsd-x64@1.29.2:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.29.2:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.29.2:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.29.2:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.29.2:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.29.2:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.29.2:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.29.2:
+ optional: true
+
+ lightningcss@1.29.2:
+ dependencies:
+ detect-libc: 2.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.29.2
+ lightningcss-darwin-x64: 1.29.2
+ lightningcss-freebsd-x64: 1.29.2
+ lightningcss-linux-arm-gnueabihf: 1.29.2
+ lightningcss-linux-arm64-gnu: 1.29.2
+ lightningcss-linux-arm64-musl: 1.29.2
+ lightningcss-linux-x64-gnu: 1.29.2
+ lightningcss-linux-x64-musl: 1.29.2
+ lightningcss-win32-arm64-msvc: 1.29.2
+ lightningcss-win32-x64-msvc: 1.29.2
+
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
@@ -5776,7 +7955,7 @@ snapshots:
dependencies:
uc.micro: 2.1.0
- lint-staged@15.4.3:
+ lint-staged@15.5.0:
dependencies:
chalk: 5.4.1
commander: 13.1.0
@@ -5855,6 +8034,16 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
+ magicast@0.3.5:
+ dependencies:
+ '@babel/parser': 7.26.10
+ '@babel/types': 7.26.10
+ source-map-js: 1.2.1
+
+ make-dir@4.0.0:
+ dependencies:
+ semver: 7.7.1
+
markdown-it@14.1.0:
dependencies:
argparse: 2.0.1
@@ -5868,12 +8057,18 @@ snapshots:
mdurl@2.0.0: {}
+ media-typer@0.3.0: {}
+
meow@12.1.1: {}
+ merge-descriptors@1.0.3: {}
+
merge-stream@2.0.0: {}
merge2@1.4.1: {}
+ methods@1.1.2: {}
+
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -5885,16 +8080,14 @@ snapshots:
dependencies:
mime-db: 1.52.0
+ mime@1.6.0: {}
+
mimic-fn@4.0.0: {}
mimic-function@5.0.1: {}
min-indent@1.0.1: {}
- minimatch@10.0.1:
- dependencies:
- brace-expansion: 2.0.1
-
minimatch@3.0.8:
dependencies:
brace-expansion: 1.1.11
@@ -5915,13 +8108,15 @@ snapshots:
mlly@1.7.4:
dependencies:
- acorn: 8.14.0
+ acorn: 8.14.1
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.5.4
mri@1.2.0: {}
+ ms@2.0.0: {}
+
ms@2.1.3: {}
muggle-string@0.4.1: {}
@@ -5932,16 +8127,24 @@ snapshots:
object-assign: 4.1.1
thenify-all: 1.6.0
- nanoid@3.3.8: {}
+ nanoid@3.3.11: {}
natural-compare@1.4.0: {}
+ negotiator@0.6.3: {}
+
+ nice-try@1.0.5: {}
+
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
node-releases@2.0.19: {}
+ npm-run-path@2.0.2:
+ dependencies:
+ path-key: 2.0.1
+
npm-run-path@5.3.0:
dependencies:
path-key: 4.0.0
@@ -5983,6 +8186,12 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.1
+ obuf@1.1.2: {}
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
once@1.4.0:
dependencies:
wrappy: 1.0.2
@@ -6014,24 +8223,12 @@ snapshots:
object-keys: 1.1.1
safe-push-apply: 1.0.0
- oxc-resolver@5.0.0:
- optionalDependencies:
- '@oxc-resolver/binding-darwin-arm64': 5.0.0
- '@oxc-resolver/binding-darwin-x64': 5.0.0
- '@oxc-resolver/binding-freebsd-x64': 5.0.0
- '@oxc-resolver/binding-linux-arm-gnueabihf': 5.0.0
- '@oxc-resolver/binding-linux-arm64-gnu': 5.0.0
- '@oxc-resolver/binding-linux-arm64-musl': 5.0.0
- '@oxc-resolver/binding-linux-x64-gnu': 5.0.0
- '@oxc-resolver/binding-linux-x64-musl': 5.0.0
- '@oxc-resolver/binding-wasm32-wasi': 5.0.0
- '@oxc-resolver/binding-win32-arm64-msvc': 5.0.0
- '@oxc-resolver/binding-win32-x64-msvc': 5.0.0
-
p-filter@2.1.0:
dependencies:
p-map: 2.1.0
+ p-finally@1.0.0: {}
+
p-limit@2.3.0:
dependencies:
p-try: 2.2.0
@@ -6066,11 +8263,13 @@ snapshots:
dependencies:
entities: 4.5.0
+ parseurl@1.3.3: {}
+
path-browserify@1.0.1: {}
path-exists@4.0.0: {}
- path-is-absolute@1.0.1: {}
+ path-key@2.0.1: {}
path-key@3.1.1: {}
@@ -6083,12 +8282,66 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
+ path-to-regexp@0.1.12: {}
+
path-type@4.0.0: {}
pathe@2.0.3: {}
pathval@2.0.0: {}
+ pg-cloudflare@1.1.1:
+ optional: true
+
+ pg-connection-string@2.7.0:
+ optional: true
+
+ pg-int8@1.0.1: {}
+
+ pg-numeric@1.0.2: {}
+
+ pg-pool@3.8.0(pg@8.14.1):
+ dependencies:
+ pg: 8.14.1
+ optional: true
+
+ pg-protocol@1.8.0: {}
+
+ pg-types@2.2.0:
+ dependencies:
+ pg-int8: 1.0.1
+ postgres-array: 2.0.0
+ postgres-bytea: 1.0.0
+ postgres-date: 1.0.7
+ postgres-interval: 1.2.0
+ optional: true
+
+ pg-types@4.0.2:
+ dependencies:
+ pg-int8: 1.0.1
+ pg-numeric: 1.0.2
+ postgres-array: 3.0.4
+ postgres-bytea: 3.0.0
+ postgres-date: 2.1.0
+ postgres-interval: 3.0.0
+ postgres-range: 1.1.4
+
+ pg@8.14.1:
+ dependencies:
+ pg-connection-string: 2.7.0
+ pg-pool: 3.8.0(pg@8.14.1)
+ pg-protocol: 1.8.0
+ pg-types: 2.2.0
+ pgpass: 1.0.5
+ optionalDependencies:
+ pg-cloudflare: 1.1.1
+ optional: true
+
+ pgpass@1.0.5:
+ dependencies:
+ split2: 4.2.0
+ optional: true
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -6109,19 +8362,47 @@ snapshots:
possible-typed-array-names@1.1.0: {}
- postcss-load-config@6.0.1(postcss@8.5.3)(yaml@2.7.0):
+ postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
+ jiti: 2.4.2
postcss: 8.5.3
+ tsx: 4.19.3
yaml: 2.7.0
postcss@8.5.3:
dependencies:
- nanoid: 3.3.8
+ nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
+ postgres-array@2.0.0:
+ optional: true
+
+ postgres-array@3.0.4: {}
+
+ postgres-bytea@1.0.0:
+ optional: true
+
+ postgres-bytea@3.0.0:
+ dependencies:
+ obuf: 1.1.2
+
+ postgres-date@1.0.7:
+ optional: true
+
+ postgres-date@2.1.0: {}
+
+ postgres-interval@1.2.0:
+ dependencies:
+ xtend: 4.0.2
+ optional: true
+
+ postgres-interval@3.0.0: {}
+
+ postgres-range@1.1.4: {}
+
postgres@3.4.5: {}
prelude-ls@1.2.1: {}
@@ -6132,7 +8413,7 @@ snapshots:
prettier@2.8.8: {}
- prettier@3.5.1: {}
+ prettier@3.5.3: {}
pretty-format@27.5.1:
dependencies:
@@ -6146,6 +8427,11 @@ snapshots:
object-assign: 4.1.1
react-is: 16.13.1
+ proxy-addr@2.0.7:
+ dependencies:
+ forwarded: 0.2.0
+ ipaddr.js: 1.9.1
+
publint@0.3.9:
dependencies:
'@publint/pack': 0.1.2
@@ -6153,14 +8439,32 @@ snapshots:
picocolors: 1.1.1
sade: 1.8.1
+ pump@3.0.2:
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+
punycode.js@2.3.1: {}
punycode@2.3.1: {}
+ qs@6.13.0:
+ dependencies:
+ side-channel: 1.1.0
+
quansync@0.2.8: {}
queue-microtask@1.2.3: {}
+ range-parser@1.2.1: {}
+
+ raw-body@2.5.2:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+
react-dom@19.0.0(react@19.0.0):
dependencies:
react: 19.0.0
@@ -6214,6 +8518,8 @@ snapshots:
gopd: 1.2.0
set-function-name: 2.0.2
+ require-directory@2.1.1: {}
+
require-from-string@2.0.2: {}
resolve-from@4.0.0: {}
@@ -6243,11 +8549,11 @@ snapshots:
rfdc@1.4.1: {}
- rollup-plugin-preserve-directives@0.4.0(rollup@4.34.8):
+ rollup-plugin-preserve-directives@0.4.0(rollup@4.36.0):
dependencies:
- '@rollup/pluginutils': 5.1.4(rollup@4.34.8)
+ '@rollup/pluginutils': 5.1.4(rollup@4.36.0)
magic-string: 0.30.17
- rollup: 4.34.8
+ rollup: 4.36.0
rollup@4.34.8:
dependencies:
@@ -6274,12 +8580,55 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.34.8
fsevents: 2.3.3
+ rollup@4.36.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.36.0
+ '@rollup/rollup-android-arm64': 4.36.0
+ '@rollup/rollup-darwin-arm64': 4.36.0
+ '@rollup/rollup-darwin-x64': 4.36.0
+ '@rollup/rollup-freebsd-arm64': 4.36.0
+ '@rollup/rollup-freebsd-x64': 4.36.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.36.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.36.0
+ '@rollup/rollup-linux-arm64-gnu': 4.36.0
+ '@rollup/rollup-linux-arm64-musl': 4.36.0
+ '@rollup/rollup-linux-loongarch64-gnu': 4.36.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.36.0
+ '@rollup/rollup-linux-s390x-gnu': 4.36.0
+ '@rollup/rollup-linux-x64-gnu': 4.36.0
+ '@rollup/rollup-linux-x64-musl': 4.36.0
+ '@rollup/rollup-win32-arm64-msvc': 4.36.0
+ '@rollup/rollup-win32-ia32-msvc': 4.36.0
+ '@rollup/rollup-win32-x64-msvc': 4.36.0
+ fsevents: 2.3.3
+
rrweb-cssom@0.8.0: {}
+ rspack-resolver@1.2.2:
+ optionalDependencies:
+ '@unrs/rspack-resolver-binding-darwin-arm64': 1.2.2
+ '@unrs/rspack-resolver-binding-darwin-x64': 1.2.2
+ '@unrs/rspack-resolver-binding-freebsd-x64': 1.2.2
+ '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.2.2
+ '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.2.2
+ '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.2.2
+ '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.2.2
+ '@unrs/rspack-resolver-binding-linux-x64-musl': 1.2.2
+ '@unrs/rspack-resolver-binding-wasm32-wasi': 1.2.2
+ '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.2.2
+ '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.2.2
+
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
sade@1.8.1:
dependencies:
mri: 1.2.0
@@ -6292,6 +8641,8 @@ snapshots:
has-symbols: 1.1.0
isarray: 2.0.5
+ safe-buffer@5.2.1: {}
+
safe-push-apply@1.0.0:
dependencies:
es-errors: 1.3.0
@@ -6311,6 +8662,8 @@ snapshots:
scheduler@0.25.0: {}
+ semver@5.7.2: {}
+
semver@6.3.1: {}
semver@7.5.4:
@@ -6319,6 +8672,33 @@ snapshots:
semver@7.7.1: {}
+ send@0.19.0:
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ serve-static@1.16.2:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.0
+ transitivePeerDependencies:
+ - supports-color
+
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
@@ -6341,22 +8721,33 @@ snapshots:
es-errors: 1.3.0
es-object-atoms: 1.1.1
+ setprototypeof@1.2.0: {}
+
+ shebang-command@1.2.0:
+ dependencies:
+ shebang-regex: 1.0.0
+
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
+ shebang-regex@1.0.0: {}
+
shebang-regex@3.0.0: {}
- shelljs@0.8.5:
+ shell-quote@1.8.2: {}
+
+ shelljs@0.9.2:
dependencies:
- glob: 7.2.3
+ execa: 1.0.0
+ fast-glob: 3.3.3
interpret: 1.4.0
rechoir: 0.6.2
- shx@0.3.4:
+ shx@0.4.0:
dependencies:
minimist: 1.2.8
- shelljs: 0.8.5
+ shelljs: 0.9.2
side-channel-list@1.0.0:
dependencies:
@@ -6388,6 +8779,8 @@ snapshots:
siginfo@2.0.0: {}
+ signal-exit@3.0.7: {}
+
signal-exit@4.1.0: {}
simple-git@3.27.0:
@@ -6412,6 +8805,11 @@ snapshots:
source-map-js@1.2.1: {}
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
source-map@0.6.1: {}
source-map@0.8.0-beta.0:
@@ -6431,7 +8829,9 @@ snapshots:
stackback@0.0.2: {}
- std-env@3.8.0: {}
+ statuses@2.0.1: {}
+
+ std-env@3.8.1: {}
string-argv@0.3.2: {}
@@ -6507,6 +8907,8 @@ snapshots:
strip-bom@3.0.0: {}
+ strip-eof@1.0.0: {}
+
strip-final-newline@3.0.0: {}
strip-indent@3.0.0:
@@ -6542,10 +8944,20 @@ snapshots:
'@pkgr/core': 0.1.1
tslib: 2.8.1
+ tailwindcss@4.0.14: {}
+
+ tailwindcss@4.0.17: {}
+
tapable@2.2.1: {}
term-size@2.2.1: {}
+ test-exclude@7.0.1:
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ glob: 10.4.5
+ minimatch: 9.0.5
+
text-extensions@2.4.0: {}
thenify-all@1.6.0:
@@ -6587,6 +8999,8 @@ snapshots:
dependencies:
is-number: 7.0.0
+ toidentifier@1.0.1: {}
+
tough-cookie@5.1.1:
dependencies:
tldts: 6.1.78
@@ -6603,19 +9017,19 @@ snapshots:
tree-kill@1.2.2: {}
- ts-api-utils@2.0.1(typescript@5.7.3):
+ ts-api-utils@2.0.1(typescript@5.8.2):
dependencies:
- typescript: 5.7.3
+ typescript: 5.8.2
ts-interface-checker@0.1.13: {}
- tsconfck@3.1.5(typescript@5.7.3):
+ tsconfck@3.1.5(typescript@5.8.2):
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.8.2
tslib@2.8.1: {}
- tsup@8.4.0(@microsoft/api-extractor@7.47.7(@types/node@22.13.4))(postcss@8.5.3)(typescript@5.7.3)(yaml@2.7.0):
+ tsup@8.4.0(@microsoft/api-extractor@7.52.1(@types/node@22.13.10))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0):
dependencies:
bundle-require: 5.1.0(esbuild@0.25.0)
cac: 6.7.14
@@ -6625,7 +9039,7 @@ snapshots:
esbuild: 0.25.0
joycon: 3.1.1
picocolors: 1.1.1
- postcss-load-config: 6.0.1(postcss@8.5.3)(yaml@2.7.0)
+ postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.0)
resolve-from: 5.0.0
rollup: 4.34.8
source-map: 0.8.0-beta.0
@@ -6634,19 +9048,31 @@ snapshots:
tinyglobby: 0.2.12
tree-kill: 1.2.2
optionalDependencies:
- '@microsoft/api-extractor': 7.47.7(@types/node@22.13.4)
+ '@microsoft/api-extractor': 7.52.1(@types/node@22.13.10)
postcss: 8.5.3
- typescript: 5.7.3
+ typescript: 5.8.2
transitivePeerDependencies:
- jiti
- supports-color
- tsx
- yaml
+ tsx@4.19.3:
+ dependencies:
+ esbuild: 0.25.0
+ get-tsconfig: 4.10.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
+ type-is@1.6.18:
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+
typed-array-buffer@1.0.3:
dependencies:
call-bound: 1.0.3
@@ -6680,37 +9106,37 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typedoc-plugin-frontmatter@1.2.1(typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.7.3))):
+ typedoc-plugin-frontmatter@1.3.0(typedoc-plugin-markdown@4.5.2(typedoc@0.27.9(typescript@5.8.2))):
dependencies:
- typedoc-plugin-markdown: 4.4.2(typedoc@0.27.9(typescript@5.7.3))
+ typedoc-plugin-markdown: 4.5.2(typedoc@0.27.9(typescript@5.8.2))
yaml: 2.7.0
- typedoc-plugin-markdown@4.4.2(typedoc@0.27.9(typescript@5.7.3)):
+ typedoc-plugin-markdown@4.5.2(typedoc@0.27.9(typescript@5.8.2)):
dependencies:
- typedoc: 0.27.9(typescript@5.7.3)
+ typedoc: 0.27.9(typescript@5.8.2)
- typedoc@0.27.9(typescript@5.7.3):
+ typedoc@0.27.9(typescript@5.8.2):
dependencies:
'@gerrit0/mini-shiki': 1.27.2
lunr: 2.3.9
markdown-it: 14.1.0
minimatch: 9.0.5
- typescript: 5.7.3
+ typescript: 5.8.2
yaml: 2.7.0
- typescript-eslint@8.26.1(eslint@9.20.1)(typescript@5.7.3):
+ typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3)
- '@typescript-eslint/parser': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.26.1(eslint@9.20.1)(typescript@5.7.3)
- eslint: 9.20.1
- typescript: 5.7.3
+ '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)
+ eslint: 9.22.0(jiti@2.4.2)
+ typescript: 5.8.2
transitivePeerDependencies:
- supports-color
typescript@5.4.2: {}
- typescript@5.7.3: {}
+ typescript@5.8.2: {}
uc.micro@2.1.0: {}
@@ -6729,6 +9155,8 @@ snapshots:
universalify@2.0.1: {}
+ unpipe@1.0.0: {}
+
update-browserslist-db@1.1.2(browserslist@4.24.4):
dependencies:
browserslist: 4.24.4
@@ -6743,13 +9171,17 @@ snapshots:
dependencies:
react: 19.0.0
- vite-node@3.0.6(@types/node@22.13.4)(yaml@2.7.0):
+ utils-merge@1.0.1: {}
+
+ vary@1.1.2: {}
+
+ vite-node@3.0.9(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
cac: 6.7.14
debug: 4.4.0
es-module-lexer: 1.6.0
pathe: 2.0.3
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -6764,75 +9196,78 @@ snapshots:
- tsx
- yaml
- vite-plugin-dts@4.2.3(@types/node@22.13.4)(rollup@4.34.8)(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0)):
+ vite-plugin-dts@4.2.3(@types/node@22.13.10)(rollup@4.36.0)(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)):
dependencies:
- '@microsoft/api-extractor': 7.47.7(@types/node@22.13.4)
- '@rollup/pluginutils': 5.1.4(rollup@4.34.8)
+ '@microsoft/api-extractor': 7.47.7(@types/node@22.13.10)
+ '@rollup/pluginutils': 5.1.4(rollup@4.36.0)
'@volar/typescript': 2.4.12
- '@vue/language-core': 2.1.6(typescript@5.7.3)
+ '@vue/language-core': 2.1.6(typescript@5.8.2)
compare-versions: 6.1.1
debug: 4.4.0
kolorist: 1.8.0
local-pkg: 0.5.1
magic-string: 0.30.17
- typescript: 5.7.3
+ typescript: 5.8.2
optionalDependencies:
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
- vite-plugin-externalize-deps@0.9.0(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0)):
+ vite-plugin-externalize-deps@0.9.0(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)):
dependencies:
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
- vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0)):
+ vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)):
dependencies:
debug: 4.4.0
globrex: 0.1.2
- tsconfck: 3.1.5(typescript@5.7.3)
+ tsconfck: 3.1.5(typescript@5.8.2)
optionalDependencies:
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0):
+ vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
- esbuild: 0.25.0
+ esbuild: 0.25.1
postcss: 8.5.3
- rollup: 4.34.8
+ rollup: 4.36.0
optionalDependencies:
- '@types/node': 22.13.4
+ '@types/node': 22.13.10
fsevents: 2.3.3
+ jiti: 2.4.2
+ lightningcss: 1.29.2
+ tsx: 4.19.3
yaml: 2.7.0
- vitest@3.0.6(@types/node@22.13.4)(happy-dom@17.1.1)(jsdom@26.0.0)(yaml@2.7.0):
+ vitest@3.0.9(@types/node@22.13.10)(happy-dom@17.4.4)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0):
dependencies:
- '@vitest/expect': 3.0.6
- '@vitest/mocker': 3.0.6(vite@6.2.2(@types/node@22.13.4)(yaml@2.7.0))
- '@vitest/pretty-format': 3.0.6
- '@vitest/runner': 3.0.6
- '@vitest/snapshot': 3.0.6
- '@vitest/spy': 3.0.6
- '@vitest/utils': 3.0.6
+ '@vitest/expect': 3.0.9
+ '@vitest/mocker': 3.0.9(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0))
+ '@vitest/pretty-format': 3.0.9
+ '@vitest/runner': 3.0.9
+ '@vitest/snapshot': 3.0.9
+ '@vitest/spy': 3.0.9
+ '@vitest/utils': 3.0.9
chai: 5.2.0
debug: 4.4.0
- expect-type: 1.1.0
+ expect-type: 1.2.0
magic-string: 0.30.17
pathe: 2.0.3
- std-env: 3.8.0
+ std-env: 3.8.1
tinybench: 2.9.0
tinyexec: 0.3.2
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 6.2.2(@types/node@22.13.4)(yaml@2.7.0)
- vite-node: 3.0.6(@types/node@22.13.4)(yaml@2.7.0)
+ vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
+ vite-node: 3.0.9(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(tsx@4.19.3)(yaml@2.7.0)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 22.13.4
- happy-dom: 17.1.1
+ '@types/node': 22.13.10
+ happy-dom: 17.4.4
jsdom: 26.0.0
transitivePeerDependencies:
- jiti
@@ -6850,10 +9285,10 @@ snapshots:
vscode-uri@3.1.0: {}
- vue-eslint-parser@9.4.3(eslint@9.20.1):
+ vue-eslint-parser@9.4.3(eslint@9.22.0(jiti@2.4.2)):
dependencies:
debug: 4.4.0
- eslint: 9.20.1
+ eslint: 9.22.0(jiti@2.4.2)
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
@@ -6938,10 +9373,18 @@ snapshots:
gopd: 1.2.0
has-tostringtag: 1.0.2
+ which@1.3.1:
+ dependencies:
+ isexe: 2.0.0
+
which@2.0.2:
dependencies:
isexe: 2.0.0
+ which@4.0.0:
+ dependencies:
+ isexe: 3.1.1
+
why-is-node-running@2.3.0:
dependencies:
siginfo: 2.0.0
@@ -6975,12 +9418,29 @@ snapshots:
xmlchars@2.2.0: {}
+ xtend@4.0.2:
+ optional: true
+
+ y18n@5.0.8: {}
+
yallist@3.1.1: {}
yallist@4.0.0: {}
yaml@2.7.0: {}
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
yocto-queue@0.1.0: {}
zod@3.24.2: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 000000000..46bf6069f
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,3 @@
+packages:
+ - "packages/**"
+ - "examples/react/*"
diff --git a/prompt-plan.md b/prompt-plan.md
index 94193e514..bbe31c104 100644
--- a/prompt-plan.md
+++ b/prompt-plan.md
@@ -1,7 +1,7 @@
Below you'll find a structured approach to building out the Sync Library in a methodical, test-driven manner. We'll start with a high-level blueprint, then refine it into progressively smaller steps, and finally provide a series of prompts (in code blocks) that you could feed into a code-generation LLM to implement those steps. Each prompt includes test scaffolding/best practices to ensure minimal breakage between steps.
1. High-Level Blueprint
-Core Data Structures & Storage
+ Core Data Structures & Storage
Set up basic interfaces: Transaction, Mutation, SyncConfig, etc.
Implement persistent storage using IndexedDB (or fallback) to store transactions and states.
@@ -33,8 +33,7 @@ Final integration tests ensuring that useCollection ties together:
Persistent transaction state.
Retry flows.
Sync merges.
-Confirm that no orphan code remains untested or unexposed.
-2. First Iteration of Chunks (Broad Steps)
+Confirm that no orphan code remains untested or unexposed. 2. First Iteration of Chunks (Broad Steps)
Below is an initial breakdown of the blueprint into several implementable chunks. Each chunk is big enough to introduce a complete feature, but small enough to be tested thoroughly before moving on.
Initialize Repo & Basic Types
@@ -84,8 +83,7 @@ Cleanup, Diagnostics, & Final Testing
Add advanced error handling with NonRetriableError.
Provide event hooks or logs for transaction lifecycle.
-Review for orphan code or untested flows, fill coverage gaps.
-3. Second Iteration of Chunks (More Detailed)
+Review for orphan code or untested flows, fill coverage gaps. 3. Second Iteration of Chunks (More Detailed)
We’ll now break the above steps into even smaller, iterative sub-steps. Each sub-step is just enough to add one new piece of functionality with minimal changes in code or tests.
Project Setup 1.1. Initialize a TypeScript/Node project.
@@ -142,7 +140,7 @@ Advanced Error Handling & Final Polish 11.1. Introduce NonRetriableError logic.
11.4. Ship final library with complete usage examples.
4. Third Iteration of Chunks (Right-Sized Steps)
-Let’s refine again. Each step below should be small enough to implement in a single coding session (ideally < 1–2 hours) with clear acceptance criteria. The prompts we generate in the next section will map to these steps.
+ Let’s refine again. Each step below should be small enough to implement in a single coding session (ideally < 1–2 hours) with clear acceptance criteria. The prompts we generate in the next section will map to these steps.
Project Initialization
@@ -200,8 +198,7 @@ Advanced Errors, Logging, & Final Check
Step 11A: Add NonRetriableError usage to skip retries.
Step 11B: Integrate optional logging or event callbacks.
Step 11C: Final coverage check: remove or unify any code that is orphaned.
-Step 11D: Conclude with a final release.
-5. Prompts for a Code Generation LLM (Step-by-Step)
+Step 11D: Conclude with a final release. 5. Prompts for a Code Generation LLM (Step-by-Step)
Below is a series of prompts to feed into a code-generation LLM. Each prompt corresponds to one or more of the steps listed above, in the order you’d implement them. Remember: these prompts assume a fresh environment each time you run them, so each code snippet should be self-contained or reference files from previous steps.
Each prompt is enclosed in triple backticks with the language set to text. You can copy these directly into your code-gen environment, or adapt them as needed.
@@ -232,45 +229,45 @@ Continue in the “sync-lib” project. Implement the basic types and helpers:
4. Create a `getLockedObjects` stub in `src/utils.ts` that returns an empty Set for now.
5. Provide tests in `tests/types.test.ts` or similar. Just verify correct import and instantiation of these structures.
-Output all relevant files and tests.
+Output all relevant files and tests.
Prompt 3: IndexedDB Storage
text
Copy
Now create a file `src/TransactionStore.ts` that handles storing and retrieving transactions in IndexedDB:
-1. Use an existing IndexedDB wrapper or a minimal approach.
-2. Implement methods:
+1. Use an existing IndexedDB wrapper or a minimal approach.
+2. Implement methods:
- `getTransactions(): Promise`
- `putTransaction(tx: Transaction): Promise`
- `deleteTransaction(id: string): Promise`
3. In `tests/TransactionStore.test.ts`, write tests to confirm that transactions can be created, fetched, updated, and deleted.
4. Provide the code for these files and show the passing test results.
-Prompt 4: TransactionManager & Lifecycle
-text
-Copy
-Add a class `TransactionManager` in `src/TransactionManager.ts`:
+ Prompt 4: TransactionManager & Lifecycle
+ text
+ Copy
+ Add a class `TransactionManager` in `src/TransactionManager.ts`:
-1. It should have:
+5. It should have:
- A constructor that takes a reference to `TransactionStore`.
- `createTransaction(mutations: PendingMutation[], strategy: MutationStrategy): Promise`.
- `updateTransactionState(id: string, newState: TransactionState): Promise`.
- Exponential backoff scheduling in a function `scheduleRetry(id: string, attemptNumber: number): Promise`.
-2. Test it in `tests/TransactionManager.test.ts`, covering:
+6. Test it in `tests/TransactionManager.test.ts`, covering:
- Creating a transaction in `pending` state.
- Updating states to `persisting`, `completed`, `failed`.
- Scheduling retries (just store the time we’d retry, no actual timer yet).
-3. Output the new files and tests with passing results.
-Prompt 5: Ordered vs. Parallel Logic
-text
-Copy
-Enhance `TransactionManager` with separate flows for ordered and parallel modes:
-
-1. Extend `createTransaction` to accept a `type` field from `MutationStrategy` which is either 'ordered' or 'parallel'.
-2. If 'ordered', new transactions should have a `queued_behind` if the previous transaction isn't done.
-3. If 'parallel', run immediately without queueing.
-4. In `tests/TransactionManager.test.ts`, add concurrency tests:
- - Create multiple transactions in ordered mode, ensure only one runs at a time.
- - Create multiple transactions in parallel mode, ensure none queue behind each other.
+7. Output the new files and tests with passing results.
+ Prompt 5: Ordered vs. Parallel Logic
+ text
+ Copy
+ Enhance `TransactionManager` with separate flows for ordered and parallel modes:
+
+8. Extend `createTransaction` to accept a `type` field from `MutationStrategy` which is either 'ordered' or 'parallel'.
+9. If 'ordered', new transactions should have a `queued_behind` if the previous transaction isn't done.
+10. If 'parallel', run immediately without queueing.
+11. In `tests/TransactionManager.test.ts`, add concurrency tests:
+ - Create multiple transactions in ordered mode, ensure only one runs at a time.
+ - Create multiple transactions in parallel mode, ensure none queue behind each other.
Provide updated code and test results.
Prompt 6: Basic useCollection Hook
@@ -284,7 +281,7 @@ Create a new file `src/useCollection.ts`:
- Maintain some local `data` state (can be an empty object for now).
- On `update` (etc.), create a transaction via `TransactionManager`.
- Currently, do nothing else (no real network calls).
-4. Write a new test file `tests/useCollection.test.ts` using React Testing Library or similar.
+4. Write a new test file `tests/useCollection.test.ts` using React Testing Library or similar.
- Render a component that calls `useCollection`.
- Ensure that `update` or `insert` triggers transaction creation.
- Verify that `data` is unchanged for now since we haven't implemented optimism.
@@ -308,8 +305,8 @@ text
Copy
Update `mutationFn` to include a mock `persist` method:
-1. `persist`: Wait a short random time (like 100-500ms), succeed half the time, fail half the time.
-2. On failure, ensure `TransactionManager` triggers a retry (up to 4 retries).
+1. `persist`: Wait a short random time (like 100-500ms), succeed half the time, fail half the time.
+2. On failure, ensure `TransactionManager` triggers a retry (up to 4 retries).
3. Add tests to confirm that:
- If it fails, the transaction eventually either succeeds (within 4 retries) or ends up in `failed`.
- The local state reverts if it fails after all retries, remains if it eventually succeeds.
@@ -320,7 +317,7 @@ text
Copy
Add final details for parallel merges and lock management:
-1. For ordered mode, if a transaction is `persisting`, the next transaction should wait.
+1. For ordered mode, if a transaction is `persisting`, the next transaction should wait.
2. After `persisting` finishes, remove the lock, let the next proceed.
3. For parallel mode, if a custom merge function is provided, call it on each sync update to combine pending changes.
4. Write concurrency tests in `tests/TransactionManager.test.ts` or a new file:
@@ -341,16 +338,16 @@ Integrate a real `setup` call and demonstrate an end-to-end flow:
- Calls `update`, triggers a successful persist, verifies updated data.
- Calls `update`, triggers a fail, verifies revert or retry.
4. Show all relevant code and passing test results.
-Prompt 11: Advanced Errors, Logging, & Cleanup
-text
-Copy
-Complete the library with advanced features and a final pass:
-
-1. Use `NonRetriableError` if a certain API status indicates a permanent failure (e.g., 400).
-2. Add optional logging or event hooks in `TransactionManager` to track state transitions.
-3. Confirm no orphan code is left, unify any duplicated logic, finalize all type exports in `src/index.ts`.
-4. Provide the final code layout with a short README explaining usage.
-5. Show the final test coverage or evidence of complete testing.
+ Prompt 11: Advanced Errors, Logging, & Cleanup
+ text
+ Copy
+ Complete the library with advanced features and a final pass:
+
+5. Use `NonRetriableError` if a certain API status indicates a permanent failure (e.g., 400).
+6. Add optional logging or event hooks in `TransactionManager` to track state transitions.
+7. Confirm no orphan code is left, unify any duplicated logic, finalize all type exports in `src/index.ts`.
+8. Provide the final code layout with a short README explaining usage.
+9. Show the final test coverage or evidence of complete testing.
Summarize final library structure and usage.
Final Notes
diff --git a/spec.md b/spec.md
index 24183549a..cb945ab33 100644
--- a/spec.md
+++ b/spec.md
@@ -1,23 +1,26 @@
# Sync Library Technical Specification
## Overview
+
A general mutation library for sync engines that can write to any API. The library provides automatic optimistic updates, retry handling, and flexible mutation strategies for different types of updates.
## Core Concepts
### Collections
+
- Collections represent synchronized datasets that can be mutated locally and persisted to a backend
- Each collection is identified by its sync configuration
- Multiple components can share the same collection instance
- Collections maintain both synced state and optimistic updates
### Mutations
+
Two primary mutation strategies:
+
1. **Ordered** (default)
- Mutations queue behind active transactions
- Strict ordering of changes
- Automatic rollback of dependent transactions
-
2. **Parallel**
- All mutations can fire API calls immediately
- Custom merge function to handle sync updates
@@ -25,6 +28,7 @@ Two primary mutation strategies:
- No queueing or dependency management
### Transactions
+
- Track the state and history of mutations
- Include retry attempts and error information
- Support both ordered and parallel mutation patterns
@@ -35,6 +39,7 @@ Two primary mutation strategies:
## API Design
### Collection Hook
+
```typescript
const useCollection = (config: {
sync: SyncConfig
@@ -51,18 +56,18 @@ const useCollection = (config: {
```
### Sync Configuration
+
```typescript
type SyncConfig = {
id: string
- setup: (params: {
- onUpdate: (data: any) => void
- }) => Promise<{
+ setup: (params: { onUpdate: (data: any) => void }) => Promise<{
data: any
}>
}
```
### Mutation Function
+
```typescript
type MutationFn = {
// Persist changes to backend
@@ -82,14 +87,15 @@ type MutationFn = {
```
### Transaction State
+
```typescript
-type TransactionState =
- | 'queued' // Waiting for another transaction to complete
- | 'pending' // Created but not yet persisting
- | 'persisting' // Currently running mutationFn.persist()
- | 'persisted_awaiting_sync' // Persist succeeded, waiting for sync
- | 'completed' // Fully completed
- | 'failed' // Failed (includes dependency cancellations)
+type TransactionState =
+ | "queued" // Waiting for another transaction to complete
+ | "pending" // Created but not yet persisting
+ | "persisting" // Currently running mutationFn.persist()
+ | "persisted_awaiting_sync" // Persist succeeded, waiting for sync
+ | "completed" // Fully completed
+ | "failed" // Failed (includes dependency cancellations)
type Transaction = {
id: string
@@ -101,7 +107,7 @@ type Transaction = {
current_attempt: number
queued_behind?: string
error?: {
- transaction_id?: string // For dependency failures
+ transaction_id?: string // For dependency failures
message: string
error: Error
}
@@ -123,40 +129,42 @@ type PendingMutation = {
metadata: unknown
created_at: Date
updated_at: Date
- state: 'created' | 'persisting' | 'synced'
+ state: "created" | "persisting" | "synced"
}
```
### Mutation Strategy
+
```typescript
type MutationStrategy = {
- type: 'ordered' | 'parallel'
+ type: "ordered" | "parallel"
merge?: (syncedData: any, pendingMutations: PendingMutation[]) => any
}
```
### Error Handling
+
```typescript
class NonRetriableError extends Error {
constructor(message: string) {
super(message)
- this.name = 'NonRetriableError'
+ this.name = "NonRetriableError"
}
}
```
### Lock Management
+
```typescript
// Helper function to determine locked objects from transaction state
function getLockedObjects(transactions: Transaction[]): Set {
return new Set(
transactions
- .filter(t =>
- t.state === 'persisting' ||
- t.state === 'persisted_awaiting_sync'
+ .filter(
+ (t) => t.state === "persisting" || t.state === "persisted_awaiting_sync"
)
- .flatMap(t => t.mutations)
- .map(m => m.modified.id)
+ .flatMap((t) => t.mutations)
+ .map((m) => m.modified.id)
)
}
```
@@ -164,6 +172,7 @@ function getLockedObjects(transactions: Transaction[]): Set {
## Implementation Details
### Transaction Persistence
+
- All transactions automatically persist to survive page reloads
- Uses IndexedDB by default
- Logs error if persistence setup fails
@@ -171,12 +180,14 @@ function getLockedObjects(transactions: Transaction[]): Set {
- Assumes successful sync if page closed after persist succeeds
### Retry Handling
+
- Retry by default for all errors
- NonRetriableError to opt out of retries
- Default 4 retries (5 total attempts) per transaction
- Exponential backoff with configurable options
### Optimistic Updates
+
- Applied immediately upon mutation
- Maintained until backend sync completes
- For parallel mutations, reapplied after syncs via merge function
@@ -184,13 +195,16 @@ function getLockedObjects(transactions: Transaction[]): Set {
- Dropped after successful persist if page reloads before sync completes
### Sync Integration
+
- Sync mechanism provided by developer
- Updates to locked objects queue until transaction completes
- Parallel mutations use merge function to handle concurrent updates
- Sync instance passed to mutationFn for coordination
### Transaction Management
+
1. Ordered Transactions:
+
- Lock detection via transaction state
- Queue dependent mutations
- Roll back on failure
@@ -203,6 +217,7 @@ function getLockedObjects(transactions: Transaction[]): Set {
- No rollback on failure
### State Management
+
- Track all transactions with full history
- Maintain optimistic updates separately
- Queue updates to locked objects
@@ -214,16 +229,19 @@ function getLockedObjects(transactions: Transaction[]): Set {
The library provides several key extension points for advanced functionality:
### Error Handling
+
- Custom retry strategies
- Extended error classification beyond NonRetriableError
- Error transformation and aggregation
### Merge Strategies
+
- Custom merge functions for parallel mutations
- Advanced conflict resolution
- Domain-specific merge logic
### Monitoring
+
- Transaction event subscribers
- Custom logging and metrics
- Debug tooling and visualization
@@ -232,6 +250,7 @@ The library provides several key extension points for advanced functionality:
## Testing Utilities
### Basic Test Harness
+
```typescript
const { collection, syncControl } = createTestCollection({
initialData: any
@@ -245,6 +264,7 @@ syncControl.failNextPersist()
```
### Future Testing Enhancements
+
- Network condition simulation
- Persistence recovery testing
- Parallel/ordered mutation interaction testing
@@ -252,11 +272,13 @@ syncControl.failNextPersist()
- Time-travel debugging
## State Exposure
+
- All transaction state available via useTransactions hook
- Support for building debugging tools
- Event subscription for state changes
## Future Considerations
+
- SSR support via Provider pattern
- RSC support via HydrationBoundary
- Advanced debugging tools
diff --git a/src/test-setup.ts b/src/test-setup.ts
deleted file mode 100644
index df6631eeb..000000000
--- a/src/test-setup.ts
+++ /dev/null
@@ -1 +0,0 @@
-import "@testing-library/jest-dom"
diff --git a/todo-app/.env.example b/todo-app/.env.example
deleted file mode 100644
index 1b50c7847..000000000
--- a/todo-app/.env.example
+++ /dev/null
@@ -1,9 +0,0 @@
-DB_HOST=localhost
-DB_PORT=54321
-DB_USER=postgres
-DB_PASSWORD=postgres
-DB_NAME=todo_app
-
-# Electric configuration
-ELECTRIC_URL=http://localhost:5133
-ELECTRIC_PG_PROXY=postgres://postgres:proxy_password@localhost:65432/todo_app
diff --git a/todo-app/.gitignore b/todo-app/.gitignore
deleted file mode 100644
index a547bf36d..000000000
--- a/todo-app/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-dist
-dist-ssr
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-.DS_Store
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
diff --git a/todo-app/package.json b/todo-app/package.json
deleted file mode 100644
index b8e9fb380..000000000
--- a/todo-app/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "todo-app",
- "private": true,
- "version": "0.0.0",
- "type": "module",
- "scripts": {
- "dev": "docker-compose up -d && concurrently \"pnpm api:dev\" \"vite\"",
- "build": "tsc -b && vite build",
- "lint": "eslint .",
- "preview": "vite preview",
- "db:generate": "drizzle-kit generate",
- "db:push": "tsx scripts/migrate.ts",
- "db:studio": "drizzle-kit studio",
- "db:ensure-config": "tsx scripts/ensure-default-config.ts",
- "api:dev": "tsx watch src/api/server.ts"
- },
- "dependencies": {
- "@types/use-sync-external-store": "^0.0.6",
- "cors": "^2.8.5",
- "drizzle-orm": "^0.39.3",
- "drizzle-zod": "^0.7.0",
- "express": "^4.19.2",
- "kysely": "^0.27.3",
- "mitt": "^3.0.1",
- "pg": "^8.13.3",
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
- "zod": "^3.24.2"
- },
- "devDependencies": {
- "@eslint/js": "^9.19.0",
- "@tailwindcss/vite": "^4.0.8",
- "@types/cors": "^2.8.17",
- "@types/express": "^4.17.21",
- "@types/pg": "^8.11.11",
- "@types/react": "^19.0.8",
- "@types/react-dom": "^19.0.3",
- "@vitejs/plugin-react": "^4.4.4",
- "concurrently": "^9.1.2",
- "dotenv": "^16.4.7",
- "drizzle-kit": "^0.30.4",
- "eslint": "^9.19.0",
- "eslint-plugin-react-hooks": "^5.0.0",
- "eslint-plugin-react-refresh": "^0.4.18",
- "globals": "^15.14.0",
- "tailwindcss": "^4.0.8",
- "tsx": "^4.19.3",
- "typescript": "~5.7.2",
- "typescript-eslint": "^8.22.0",
- "vite": "^6.1.0"
- }
-}
diff --git a/todo-app/pnpm-lock.yaml b/todo-app/pnpm-lock.yaml
deleted file mode 100644
index 6b6f8043b..000000000
--- a/todo-app/pnpm-lock.yaml
+++ /dev/null
@@ -1,4267 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- .:
- dependencies:
- '@types/use-sync-external-store':
- specifier: ^0.0.6
- version: 0.0.6
- cors:
- specifier: ^2.8.5
- version: 2.8.5
- drizzle-orm:
- specifier: ^0.39.3
- version: 0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3)
- drizzle-zod:
- specifier: ^0.7.0
- version: 0.7.0(drizzle-orm@0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3))(zod@3.24.2)
- express:
- specifier: ^4.19.2
- version: 4.21.2
- kysely:
- specifier: ^0.27.3
- version: 0.27.5
- mitt:
- specifier: ^3.0.1
- version: 3.0.1
- pg:
- specifier: ^8.13.3
- version: 8.13.3
- react:
- specifier: ^19.0.0
- version: 19.0.0
- react-dom:
- specifier: ^19.0.0
- version: 19.0.0(react@19.0.0)
- zod:
- specifier: ^3.24.2
- version: 3.24.2
- devDependencies:
- '@eslint/js':
- specifier: ^9.19.0
- version: 9.21.0
- '@tailwindcss/vite':
- specifier: ^4.0.8
- version: 4.0.8(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))
- '@types/cors':
- specifier: ^2.8.17
- version: 2.8.17
- '@types/express':
- specifier: ^4.17.21
- version: 4.17.21
- '@types/pg':
- specifier: ^8.11.11
- version: 8.11.11
- '@types/react':
- specifier: ^19.0.8
- version: 19.0.10
- '@types/react-dom':
- specifier: ^19.0.3
- version: 19.0.4(@types/react@19.0.10)
- '@vitejs/plugin-react':
- specifier: ^4.3.4
- version: 4.3.4(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))
- concurrently:
- specifier: ^9.1.2
- version: 9.1.2
- dotenv:
- specifier: ^16.4.7
- version: 16.4.7
- drizzle-kit:
- specifier: ^0.30.4
- version: 0.30.4
- eslint:
- specifier: ^9.19.0
- version: 9.21.0(jiti@2.4.2)
- eslint-plugin-react-hooks:
- specifier: ^5.0.0
- version: 5.1.0(eslint@9.21.0(jiti@2.4.2))
- eslint-plugin-react-refresh:
- specifier: ^0.4.18
- version: 0.4.19(eslint@9.21.0(jiti@2.4.2))
- globals:
- specifier: ^15.14.0
- version: 15.15.0
- tailwindcss:
- specifier: ^4.0.8
- version: 4.0.8
- tsx:
- specifier: ^4.19.3
- version: 4.19.3
- typescript:
- specifier: ~5.7.2
- version: 5.7.3
- typescript-eslint:
- specifier: ^8.22.0
- version: 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- vite:
- specifier: ^6.1.0
- version: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3)
-
-packages:
-
- '@ampproject/remapping@2.3.0':
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
-
- '@babel/code-frame@7.26.2':
- resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/compat-data@7.26.8':
- resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.26.9':
- resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.26.9':
- resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.26.5':
- resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.25.9':
- resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.26.0':
- resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-plugin-utils@7.26.5':
- resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.25.9':
- resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.25.9':
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-option@7.25.9':
- resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.26.9':
- resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.26.9':
- resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/plugin-transform-react-jsx-self@7.25.9':
- resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-react-jsx-source@7.25.9':
- resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/template@7.26.9':
- resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.26.9':
- resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.26.9':
- resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
- engines: {node: '>=6.9.0'}
-
- '@drizzle-team/brocli@0.10.2':
- resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==}
-
- '@esbuild-kit/core-utils@3.3.2':
- resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
- deprecated: 'Merged into tsx: https://tsx.is'
-
- '@esbuild-kit/esm-loader@2.6.5':
- resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
- deprecated: 'Merged into tsx: https://tsx.is'
-
- '@esbuild/aix-ppc64@0.19.12':
- resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/aix-ppc64@0.24.2':
- resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/aix-ppc64@0.25.0':
- resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.18.20':
- resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm64@0.19.12':
- resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm64@0.24.2':
- resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm64@0.25.0':
- resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.18.20':
- resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-arm@0.19.12':
- resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-arm@0.24.2':
- resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-arm@0.25.0':
- resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.18.20':
- resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/android-x64@0.19.12':
- resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/android-x64@0.24.2':
- resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/android-x64@0.25.0':
- resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.18.20':
- resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-arm64@0.19.12':
- resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-arm64@0.24.2':
- resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-arm64@0.25.0':
- resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.18.20':
- resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.19.12':
- resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.24.2':
- resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.25.0':
- resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.18.20':
- resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-arm64@0.19.12':
- resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-arm64@0.24.2':
- resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-arm64@0.25.0':
- resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.18.20':
- resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.19.12':
- resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.24.2':
- resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.25.0':
- resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.18.20':
- resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm64@0.19.12':
- resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm64@0.24.2':
- resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm64@0.25.0':
- resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.18.20':
- resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-arm@0.19.12':
- resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-arm@0.24.2':
- resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-arm@0.25.0':
- resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.18.20':
- resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-ia32@0.19.12':
- resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-ia32@0.24.2':
- resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-ia32@0.25.0':
- resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.18.20':
- resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-loong64@0.19.12':
- resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-loong64@0.24.2':
- resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-loong64@0.25.0':
- resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.18.20':
- resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.19.12':
- resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.24.2':
- resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.25.0':
- resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.18.20':
- resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.19.12':
- resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.24.2':
- resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.25.0':
- resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.18.20':
- resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.19.12':
- resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.24.2':
- resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.25.0':
- resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.18.20':
- resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-s390x@0.19.12':
- resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-s390x@0.24.2':
- resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-s390x@0.25.0':
- resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.18.20':
- resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/linux-x64@0.19.12':
- resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/linux-x64@0.24.2':
- resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/linux-x64@0.25.0':
- resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-arm64@0.24.2':
- resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
- '@esbuild/netbsd-arm64@0.25.0':
- resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.18.20':
- resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.19.12':
- resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.24.2':
- resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.25.0':
- resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-arm64@0.24.2':
- resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-arm64@0.25.0':
- resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.18.20':
- resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.19.12':
- resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.24.2':
- resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.25.0':
- resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/sunos-x64@0.18.20':
- resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/sunos-x64@0.19.12':
- resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/sunos-x64@0.24.2':
- resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/sunos-x64@0.25.0':
- resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.18.20':
- resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-arm64@0.19.12':
- resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-arm64@0.24.2':
- resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-arm64@0.25.0':
- resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.18.20':
- resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-ia32@0.19.12':
- resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-ia32@0.24.2':
- resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-ia32@0.25.0':
- resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.18.20':
- resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
- '@esbuild/win32-x64@0.19.12':
- resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
- '@esbuild/win32-x64@0.24.2':
- resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
- '@esbuild/win32-x64@0.25.0':
- resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
- '@eslint-community/eslint-utils@4.4.1':
- resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
- 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.1':
- resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
- '@eslint/config-array@0.19.2':
- resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@0.12.0':
- resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/eslintrc@3.3.0':
- resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/js@9.21.0':
- resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/object-schema@2.1.6':
- resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/plugin-kit@0.2.7':
- resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@humanfs/core@0.19.1':
- resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
- engines: {node: '>=18.18.0'}
-
- '@humanfs/node@0.16.6':
- resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
- engines: {node: '>=18.18.0'}
-
- '@humanwhocodes/module-importer@1.0.1':
- resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
- engines: {node: '>=12.22'}
-
- '@humanwhocodes/retry@0.3.1':
- resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
- engines: {node: '>=18.18'}
-
- '@humanwhocodes/retry@0.4.2':
- resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
- engines: {node: '>=18.18'}
-
- '@jridgewell/gen-mapping@0.3.8':
- resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/set-array@1.2.1':
- resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
- '@jridgewell/trace-mapping@0.3.25':
- resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
-
- '@nodelib/fs.scandir@2.1.5':
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.stat@2.0.5':
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.walk@1.2.8':
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
-
- '@rollup/rollup-android-arm-eabi@4.34.8':
- resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==}
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.34.8':
- resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==}
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-darwin-arm64@4.34.8':
- resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==}
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.34.8':
- resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==}
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-freebsd-arm64@4.34.8':
- resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.34.8':
- resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==}
- cpu: [x64]
- os: [freebsd]
-
- '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
- resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-musleabihf@4.34.8':
- resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-gnu@4.34.8':
- resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-musl@4.34.8':
- resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
- resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
- resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-gnu@4.34.8':
- resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-s390x-gnu@4.34.8':
- resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==}
- cpu: [s390x]
- os: [linux]
-
- '@rollup/rollup-linux-x64-gnu@4.34.8':
- resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-linux-x64-musl@4.34.8':
- resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-win32-arm64-msvc@4.34.8':
- resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==}
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.34.8':
- resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==}
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.34.8':
- resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==}
- cpu: [x64]
- os: [win32]
-
- '@tailwindcss/node@4.0.8':
- resolution: {integrity: sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==}
-
- '@tailwindcss/oxide-android-arm64@4.0.8':
- resolution: {integrity: sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [android]
-
- '@tailwindcss/oxide-darwin-arm64@4.0.8':
- resolution: {integrity: sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- '@tailwindcss/oxide-darwin-x64@4.0.8':
- resolution: {integrity: sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- '@tailwindcss/oxide-freebsd-x64@4.0.8':
- resolution: {integrity: sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [freebsd]
-
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8':
- resolution: {integrity: sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==}
- engines: {node: '>= 10'}
- cpu: [arm]
- os: [linux]
-
- '@tailwindcss/oxide-linux-arm64-gnu@4.0.8':
- resolution: {integrity: sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@tailwindcss/oxide-linux-arm64-musl@4.0.8':
- resolution: {integrity: sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@tailwindcss/oxide-linux-x64-gnu@4.0.8':
- resolution: {integrity: sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@tailwindcss/oxide-linux-x64-musl@4.0.8':
- resolution: {integrity: sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@tailwindcss/oxide-win32-arm64-msvc@4.0.8':
- resolution: {integrity: sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
-
- '@tailwindcss/oxide-win32-x64-msvc@4.0.8':
- resolution: {integrity: sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
-
- '@tailwindcss/oxide@4.0.8':
- resolution: {integrity: sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==}
- engines: {node: '>= 10'}
-
- '@tailwindcss/vite@4.0.8':
- resolution: {integrity: sha512-+SAq44yLzYlzyrb7QTcFCdU8Xa7FOA0jp+Xby7fPMUie+MY9HhJysM7Vp+vL8qIp8ceQJfLD+FjgJuJ4lL6nyg==}
- peerDependencies:
- vite: ^5.2.0 || ^6
-
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-
- '@types/babel__generator@7.6.8':
- resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
-
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-
- '@types/babel__traverse@7.20.6':
- resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
-
- '@types/body-parser@1.19.5':
- resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
-
- '@types/connect@3.4.38':
- resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
-
- '@types/cors@2.8.17':
- resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
-
- '@types/estree@1.0.6':
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
-
- '@types/express-serve-static-core@4.19.6':
- resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
-
- '@types/express@4.17.21':
- resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
-
- '@types/http-errors@2.0.4':
- resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/mime@1.3.5':
- resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
-
- '@types/node@22.13.5':
- resolution: {integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==}
-
- '@types/pg@8.11.11':
- resolution: {integrity: sha512-kGT1qKM8wJQ5qlawUrEkXgvMSXoV213KfMGXcwfDwUIfUHXqXYXOfS1nE1LINRJVVVx5wCm70XnFlMHaIcQAfw==}
-
- '@types/qs@6.9.18':
- resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==}
-
- '@types/range-parser@1.2.7':
- resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
-
- '@types/react-dom@19.0.4':
- resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==}
- peerDependencies:
- '@types/react': ^19.0.0
-
- '@types/react@19.0.10':
- resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==}
-
- '@types/send@0.17.4':
- resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
-
- '@types/serve-static@1.15.7':
- resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
-
- '@types/use-sync-external-store@0.0.6':
- resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
-
- '@typescript-eslint/eslint-plugin@8.25.0':
- resolution: {integrity: sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/parser@8.25.0':
- resolution: {integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/scope-manager@8.25.0':
- resolution: {integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/type-utils@8.25.0':
- resolution: {integrity: sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/types@8.25.0':
- resolution: {integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/typescript-estree@8.25.0':
- resolution: {integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/utils@8.25.0':
- resolution: {integrity: sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/visitor-keys@8.25.0':
- resolution: {integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@vitejs/plugin-react@4.3.4':
- resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- vite: ^4.2.0 || ^5.0.0 || ^6.0.0
-
- accepts@1.3.8:
- resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
- engines: {node: '>= 0.6'}
-
- acorn-jsx@5.3.2:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- acorn@8.14.0:
- resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
- array-flatten@1.1.1:
- resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- body-parser@1.20.3:
- resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
- brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
-
- brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- browserslist@4.24.4:
- resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
-
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
- bytes@3.1.2:
- resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
- engines: {node: '>= 0.8'}
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.3:
- resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
- engines: {node: '>= 0.4'}
-
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- caniuse-lite@1.0.30001700:
- resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- concurrently@9.1.2:
- resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==}
- engines: {node: '>=18'}
- hasBin: true
-
- content-disposition@0.5.4:
- resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
- engines: {node: '>= 0.6'}
-
- content-type@1.0.5:
- resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
- engines: {node: '>= 0.6'}
-
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
- cookie-signature@1.0.6:
- resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
-
- cookie@0.7.1:
- resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
- engines: {node: '>= 0.6'}
-
- cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
- engines: {node: '>= 0.10'}
-
- cross-spawn@7.0.6:
- resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
- engines: {node: '>= 8'}
-
- csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
-
- debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.4.0:
- resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- deep-is@0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-
- depd@2.0.0:
- resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
- engines: {node: '>= 0.8'}
-
- destroy@1.2.0:
- resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
- detect-libc@1.0.3:
- resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
- engines: {node: '>=0.10'}
- hasBin: true
-
- dotenv@16.4.7:
- resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
- engines: {node: '>=12'}
-
- drizzle-kit@0.30.4:
- resolution: {integrity: sha512-B2oJN5UkvwwNHscPWXDG5KqAixu7AUzZ3qbe++KU9SsQ+cZWR4DXEPYcvWplyFAno0dhRJECNEhNxiDmFaPGyQ==}
- hasBin: true
-
- drizzle-orm@0.39.3:
- resolution: {integrity: sha512-EZ8ZpYvDIvKU9C56JYLOmUskazhad+uXZCTCRN4OnRMsL+xAJ05dv1eCpAG5xzhsm1hqiuC5kAZUCS924u2DTw==}
- peerDependencies:
- '@aws-sdk/client-rds-data': '>=3'
- '@cloudflare/workers-types': '>=4'
- '@electric-sql/pglite': '>=0.2.0'
- '@libsql/client': '>=0.10.0'
- '@libsql/client-wasm': '>=0.10.0'
- '@neondatabase/serverless': '>=0.10.0'
- '@op-engineering/op-sqlite': '>=2'
- '@opentelemetry/api': ^1.4.1
- '@planetscale/database': '>=1'
- '@prisma/client': '*'
- '@tidbcloud/serverless': '*'
- '@types/better-sqlite3': '*'
- '@types/pg': '*'
- '@types/sql.js': '*'
- '@vercel/postgres': '>=0.8.0'
- '@xata.io/client': '*'
- better-sqlite3: '>=7'
- bun-types: '*'
- expo-sqlite: '>=14.0.0'
- knex: '*'
- kysely: '*'
- mysql2: '>=2'
- pg: '>=8'
- postgres: '>=3'
- prisma: '*'
- sql.js: '>=1'
- sqlite3: '>=5'
- peerDependenciesMeta:
- '@aws-sdk/client-rds-data':
- optional: true
- '@cloudflare/workers-types':
- optional: true
- '@electric-sql/pglite':
- optional: true
- '@libsql/client':
- optional: true
- '@libsql/client-wasm':
- optional: true
- '@neondatabase/serverless':
- optional: true
- '@op-engineering/op-sqlite':
- optional: true
- '@opentelemetry/api':
- optional: true
- '@planetscale/database':
- optional: true
- '@prisma/client':
- optional: true
- '@tidbcloud/serverless':
- optional: true
- '@types/better-sqlite3':
- optional: true
- '@types/pg':
- optional: true
- '@types/sql.js':
- optional: true
- '@vercel/postgres':
- optional: true
- '@xata.io/client':
- optional: true
- better-sqlite3:
- optional: true
- bun-types:
- optional: true
- expo-sqlite:
- optional: true
- knex:
- optional: true
- kysely:
- optional: true
- mysql2:
- optional: true
- pg:
- optional: true
- postgres:
- optional: true
- prisma:
- optional: true
- sql.js:
- optional: true
- sqlite3:
- optional: true
-
- drizzle-zod@0.7.0:
- resolution: {integrity: sha512-xgCRYYVEzRkeXTS33GSMgoowe3vKsMNBjSI+cwG1oLQVEhAWWbqtb/AAMlm7tkmV4fG/uJjEmWzdzlEmTgWOoQ==}
- peerDependencies:
- drizzle-orm: '>=0.36.0'
- zod: '>=3.0.0'
-
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- ee-first@1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
-
- electron-to-chromium@1.5.104:
- resolution: {integrity: sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g==}
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- encodeurl@1.0.2:
- resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
- engines: {node: '>= 0.8'}
-
- encodeurl@2.0.0:
- resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
- engines: {node: '>= 0.8'}
-
- enhanced-resolve@5.18.1:
- resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
- engines: {node: '>=10.13.0'}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- esbuild-register@3.6.0:
- resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
- peerDependencies:
- esbuild: '>=0.12 <1'
-
- esbuild@0.18.20:
- resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
- engines: {node: '>=12'}
- hasBin: true
-
- esbuild@0.19.12:
- resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
- engines: {node: '>=12'}
- hasBin: true
-
- esbuild@0.24.2:
- resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==}
- engines: {node: '>=18'}
- hasBin: true
-
- esbuild@0.25.0:
- resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
- engines: {node: '>=18'}
- hasBin: true
-
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
-
- escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
-
- escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
-
- eslint-plugin-react-hooks@5.1.0:
- resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==}
- engines: {node: '>=10'}
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
-
- eslint-plugin-react-refresh@0.4.19:
- resolution: {integrity: sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==}
- peerDependencies:
- eslint: '>=8.40'
-
- eslint-scope@8.2.0:
- resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint-visitor-keys@3.4.3:
- resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- eslint-visitor-keys@4.2.0:
- resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint@9.21.0:
- resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- hasBin: true
- peerDependencies:
- jiti: '*'
- peerDependenciesMeta:
- jiti:
- optional: true
-
- espree@10.3.0:
- resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- esquery@1.6.0:
- resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
- engines: {node: '>=0.10'}
-
- esrecurse@4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
-
- estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
-
- esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
-
- etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
-
- express@4.21.2:
- resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
- engines: {node: '>= 0.10.0'}
-
- fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-
- fast-glob@3.3.3:
- resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
- engines: {node: '>=8.6.0'}
-
- fast-json-stable-stringify@2.1.0:
- resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-
- fast-levenshtein@2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-
- fastq@1.19.0:
- resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
-
- file-entry-cache@8.0.0:
- resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- finalhandler@1.3.1:
- resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
- engines: {node: '>= 0.8'}
-
- find-up@5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- engines: {node: '>=10'}
-
- flat-cache@4.0.1:
- resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
-
- flatted@3.3.3:
- resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
-
- forwarded@0.2.0:
- resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
- engines: {node: '>= 0.6'}
-
- fresh@0.5.2:
- resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
- engines: {node: '>= 0.6'}
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- get-tsconfig@4.10.0:
- resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
-
- glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
-
- glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
-
- globals@11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
-
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
- globals@15.15.0:
- resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
- engines: {node: '>=18'}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- http-errors@2.0.0:
- resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
- engines: {node: '>= 0.8'}
-
- iconv-lite@0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
- engines: {node: '>=0.10.0'}
-
- ignore@5.3.2:
- resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
- engines: {node: '>= 4'}
-
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
-
- imurmurhash@0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- ipaddr.js@1.9.1:
- resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
- engines: {node: '>= 0.10'}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- jiti@2.4.2:
- resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
- hasBin: true
-
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
- json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
- json-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@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
-
- kysely@0.27.5:
- resolution: {integrity: sha512-s7hZHcQeSNKpzCkHRm8yA+0JPLjncSWnjb+2TIElwS2JAqYr+Kv3Ess+9KFfJS0C1xcQ1i9NkNHpWwCYpHMWsA==}
- engines: {node: '>=14.0.0'}
-
- levn@0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
-
- lightningcss-darwin-arm64@1.29.1:
- resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [darwin]
-
- lightningcss-darwin-x64@1.29.1:
- resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [darwin]
-
- lightningcss-freebsd-x64@1.29.1:
- resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [freebsd]
-
- lightningcss-linux-arm-gnueabihf@1.29.1:
- resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm]
- os: [linux]
-
- lightningcss-linux-arm64-gnu@1.29.1:
- resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [linux]
-
- lightningcss-linux-arm64-musl@1.29.1:
- resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [linux]
-
- lightningcss-linux-x64-gnu@1.29.1:
- resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
-
- lightningcss-linux-x64-musl@1.29.1:
- resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
-
- lightningcss-win32-arm64-msvc@1.29.1:
- resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [win32]
-
- lightningcss-win32-x64-msvc@1.29.1:
- resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [win32]
-
- lightningcss@1.29.1:
- resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==}
- engines: {node: '>= 12.0.0'}
-
- locate-path@6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- engines: {node: '>=10'}
-
- lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- lru-cache@5.1.1:
- resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- media-typer@0.3.0:
- resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
- engines: {node: '>= 0.6'}
-
- merge-descriptors@1.0.3:
- resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
-
- merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
-
- methods@1.1.2:
- resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
- engines: {node: '>= 0.6'}
-
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
- mime@1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- engines: {node: '>=4'}
- hasBin: true
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- mitt@3.0.1:
- resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
-
- ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- nanoid@3.3.8:
- resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- natural-compare@1.4.0:
- resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-
- negotiator@0.6.3:
- resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
- engines: {node: '>= 0.6'}
-
- node-releases@2.0.19:
- resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
-
- object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- engines: {node: '>=0.10.0'}
-
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- obuf@1.1.2:
- resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==}
-
- on-finished@2.4.1:
- resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
- engines: {node: '>= 0.8'}
-
- optionator@0.9.4:
- resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
- engines: {node: '>= 0.8.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'}
-
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
- parseurl@1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- engines: {node: '>= 0.8'}
-
- path-exists@4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- engines: {node: '>=8'}
-
- path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- path-to-regexp@0.1.12:
- resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
-
- pg-cloudflare@1.1.1:
- resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==}
-
- pg-connection-string@2.7.0:
- resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==}
-
- pg-int8@1.0.1:
- resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
- engines: {node: '>=4.0.0'}
-
- pg-numeric@1.0.2:
- resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==}
- engines: {node: '>=4'}
-
- pg-pool@3.7.1:
- resolution: {integrity: sha512-xIOsFoh7Vdhojas6q3596mXFsR8nwBQBXX5JiV7p9buEVAGqYL4yFzclON5P9vFrpu1u7Zwl2oriyDa89n0wbw==}
- peerDependencies:
- pg: '>=8.0'
-
- pg-protocol@1.7.1:
- resolution: {integrity: sha512-gjTHWGYWsEgy9MsY0Gp6ZJxV24IjDqdpTW7Eh0x+WfJLFsm/TJx1MzL6T0D88mBvkpxotCQ6TwW6N+Kko7lhgQ==}
-
- pg-types@2.2.0:
- resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
- engines: {node: '>=4'}
-
- pg-types@4.0.2:
- resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==}
- engines: {node: '>=10'}
-
- pg@8.13.3:
- resolution: {integrity: sha512-P6tPt9jXbL9HVu/SSRERNYaYG++MjnscnegFh9pPHihfoBSujsrka0hyuymMzeJKFWrcG8wvCKy8rCe8e5nDUQ==}
- engines: {node: '>= 8.0.0'}
- peerDependencies:
- pg-native: '>=3.0.1'
- peerDependenciesMeta:
- pg-native:
- optional: true
-
- pgpass@1.0.5:
- resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
-
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- postcss@8.5.3:
- resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
- engines: {node: ^10 || ^12 || >=14}
-
- postgres-array@2.0.0:
- resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
- engines: {node: '>=4'}
-
- postgres-array@3.0.2:
- resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==}
- engines: {node: '>=12'}
-
- postgres-bytea@1.0.0:
- resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
- engines: {node: '>=0.10.0'}
-
- postgres-bytea@3.0.0:
- resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==}
- engines: {node: '>= 6'}
-
- postgres-date@1.0.7:
- resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
- engines: {node: '>=0.10.0'}
-
- postgres-date@2.1.0:
- resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==}
- engines: {node: '>=12'}
-
- postgres-interval@1.2.0:
- resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
- engines: {node: '>=0.10.0'}
-
- postgres-interval@3.0.0:
- resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==}
- engines: {node: '>=12'}
-
- postgres-range@1.1.4:
- resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==}
-
- prelude-ls@1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- engines: {node: '>= 0.8.0'}
-
- proxy-addr@2.0.7:
- resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
- engines: {node: '>= 0.10'}
-
- punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
-
- qs@6.13.0:
- resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
- engines: {node: '>=0.6'}
-
- queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-
- range-parser@1.2.1:
- resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
- engines: {node: '>= 0.6'}
-
- raw-body@2.5.2:
- resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
- engines: {node: '>= 0.8'}
-
- react-dom@19.0.0:
- resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
- peerDependencies:
- react: ^19.0.0
-
- react-refresh@0.14.2:
- resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
- engines: {node: '>=0.10.0'}
-
- react@19.0.0:
- resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
- engines: {node: '>=0.10.0'}
-
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
- resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
-
- reusify@1.0.4:
- resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-
- rollup@4.34.8:
- resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
- run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-
- rxjs@7.8.2:
- resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
- safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
-
- scheduler@0.25.0:
- resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
-
- semver@6.3.1:
- resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
-
- semver@7.7.1:
- resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
- engines: {node: '>=10'}
- hasBin: true
-
- send@0.19.0:
- resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
- engines: {node: '>= 0.8.0'}
-
- serve-static@1.16.2:
- resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
- engines: {node: '>= 0.8.0'}
-
- setprototypeof@1.2.0:
- resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
-
- shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
-
- shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
-
- shell-quote@1.8.2:
- resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==}
- engines: {node: '>= 0.4'}
-
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
- engines: {node: '>=0.10.0'}
-
- source-map-support@0.5.21:
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
-
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
-
- split2@4.2.0:
- resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
- engines: {node: '>= 10.x'}
-
- statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
- engines: {node: '>= 0.8'}
-
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
- strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- supports-color@8.1.1:
- resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
- engines: {node: '>=10'}
-
- tailwindcss@4.0.8:
- resolution: {integrity: sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==}
-
- tapable@2.2.1:
- resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
- engines: {node: '>=6'}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- toidentifier@1.0.1:
- resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
- engines: {node: '>=0.6'}
-
- tree-kill@1.2.2:
- resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
- hasBin: true
-
- ts-api-utils@2.0.1:
- resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
- engines: {node: '>=18.12'}
- peerDependencies:
- typescript: '>=4.8.4'
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- tsx@4.19.3:
- resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- type-check@0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- engines: {node: '>= 0.8.0'}
-
- type-is@1.6.18:
- resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
- engines: {node: '>= 0.6'}
-
- typescript-eslint@8.25.0:
- resolution: {integrity: sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
- typescript@5.7.3:
- resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- undici-types@6.20.0:
- resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
-
- unpipe@1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- engines: {node: '>= 0.8'}
-
- update-browserslist-db@1.1.2:
- resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
-
- uri-js@4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
-
- utils-merge@1.0.1:
- resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
- engines: {node: '>= 0.4.0'}
-
- vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
-
- vite@6.1.1:
- resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==}
- engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
- jiti: '>=1.21.0'
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- sass-embedded: '*'
- stylus: '*'
- sugarss: '*'
- 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
-
- which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
-
- word-wrap@1.2.5:
- resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
- engines: {node: '>=0.10.0'}
-
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
- xtend@4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
-
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
-
- yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
-
- yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
-
- yocto-queue@0.1.0:
- resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
- engines: {node: '>=10'}
-
- zod@3.24.2:
- resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
-
-snapshots:
-
- '@ampproject/remapping@2.3.0':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
-
- '@babel/code-frame@7.26.2':
- dependencies:
- '@babel/helper-validator-identifier': 7.25.9
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/compat-data@7.26.8': {}
-
- '@babel/core@7.26.9':
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.9
- '@babel/helper-compilation-targets': 7.26.5
- '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9)
- '@babel/helpers': 7.26.9
- '@babel/parser': 7.26.9
- '@babel/template': 7.26.9
- '@babel/traverse': 7.26.9
- '@babel/types': 7.26.9
- convert-source-map: 2.0.0
- debug: 4.4.0
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.26.9':
- dependencies:
- '@babel/parser': 7.26.9
- '@babel/types': 7.26.9
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
- jsesc: 3.1.0
-
- '@babel/helper-compilation-targets@7.26.5':
- dependencies:
- '@babel/compat-data': 7.26.8
- '@babel/helper-validator-option': 7.25.9
- browserslist: 4.24.4
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-module-imports@7.25.9':
- dependencies:
- '@babel/traverse': 7.26.9
- '@babel/types': 7.26.9
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)':
- dependencies:
- '@babel/core': 7.26.9
- '@babel/helper-module-imports': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
- '@babel/traverse': 7.26.9
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-plugin-utils@7.26.5': {}
-
- '@babel/helper-string-parser@7.25.9': {}
-
- '@babel/helper-validator-identifier@7.25.9': {}
-
- '@babel/helper-validator-option@7.25.9': {}
-
- '@babel/helpers@7.26.9':
- dependencies:
- '@babel/template': 7.26.9
- '@babel/types': 7.26.9
-
- '@babel/parser@7.26.9':
- dependencies:
- '@babel/types': 7.26.9
-
- '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.9)':
- dependencies:
- '@babel/core': 7.26.9
- '@babel/helper-plugin-utils': 7.26.5
-
- '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.9)':
- dependencies:
- '@babel/core': 7.26.9
- '@babel/helper-plugin-utils': 7.26.5
-
- '@babel/template@7.26.9':
- dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/parser': 7.26.9
- '@babel/types': 7.26.9
-
- '@babel/traverse@7.26.9':
- dependencies:
- '@babel/code-frame': 7.26.2
- '@babel/generator': 7.26.9
- '@babel/parser': 7.26.9
- '@babel/template': 7.26.9
- '@babel/types': 7.26.9
- debug: 4.4.0
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
-
- '@babel/types@7.26.9':
- dependencies:
- '@babel/helper-string-parser': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
-
- '@drizzle-team/brocli@0.10.2': {}
-
- '@esbuild-kit/core-utils@3.3.2':
- dependencies:
- esbuild: 0.18.20
- source-map-support: 0.5.21
-
- '@esbuild-kit/esm-loader@2.6.5':
- dependencies:
- '@esbuild-kit/core-utils': 3.3.2
- get-tsconfig: 4.10.0
-
- '@esbuild/aix-ppc64@0.19.12':
- optional: true
-
- '@esbuild/aix-ppc64@0.24.2':
- optional: true
-
- '@esbuild/aix-ppc64@0.25.0':
- optional: true
-
- '@esbuild/android-arm64@0.18.20':
- optional: true
-
- '@esbuild/android-arm64@0.19.12':
- optional: true
-
- '@esbuild/android-arm64@0.24.2':
- optional: true
-
- '@esbuild/android-arm64@0.25.0':
- optional: true
-
- '@esbuild/android-arm@0.18.20':
- optional: true
-
- '@esbuild/android-arm@0.19.12':
- optional: true
-
- '@esbuild/android-arm@0.24.2':
- optional: true
-
- '@esbuild/android-arm@0.25.0':
- optional: true
-
- '@esbuild/android-x64@0.18.20':
- optional: true
-
- '@esbuild/android-x64@0.19.12':
- optional: true
-
- '@esbuild/android-x64@0.24.2':
- optional: true
-
- '@esbuild/android-x64@0.25.0':
- optional: true
-
- '@esbuild/darwin-arm64@0.18.20':
- optional: true
-
- '@esbuild/darwin-arm64@0.19.12':
- optional: true
-
- '@esbuild/darwin-arm64@0.24.2':
- optional: true
-
- '@esbuild/darwin-arm64@0.25.0':
- optional: true
-
- '@esbuild/darwin-x64@0.18.20':
- optional: true
-
- '@esbuild/darwin-x64@0.19.12':
- optional: true
-
- '@esbuild/darwin-x64@0.24.2':
- optional: true
-
- '@esbuild/darwin-x64@0.25.0':
- optional: true
-
- '@esbuild/freebsd-arm64@0.18.20':
- optional: true
-
- '@esbuild/freebsd-arm64@0.19.12':
- optional: true
-
- '@esbuild/freebsd-arm64@0.24.2':
- optional: true
-
- '@esbuild/freebsd-arm64@0.25.0':
- optional: true
-
- '@esbuild/freebsd-x64@0.18.20':
- optional: true
-
- '@esbuild/freebsd-x64@0.19.12':
- optional: true
-
- '@esbuild/freebsd-x64@0.24.2':
- optional: true
-
- '@esbuild/freebsd-x64@0.25.0':
- optional: true
-
- '@esbuild/linux-arm64@0.18.20':
- optional: true
-
- '@esbuild/linux-arm64@0.19.12':
- optional: true
-
- '@esbuild/linux-arm64@0.24.2':
- optional: true
-
- '@esbuild/linux-arm64@0.25.0':
- optional: true
-
- '@esbuild/linux-arm@0.18.20':
- optional: true
-
- '@esbuild/linux-arm@0.19.12':
- optional: true
-
- '@esbuild/linux-arm@0.24.2':
- optional: true
-
- '@esbuild/linux-arm@0.25.0':
- optional: true
-
- '@esbuild/linux-ia32@0.18.20':
- optional: true
-
- '@esbuild/linux-ia32@0.19.12':
- optional: true
-
- '@esbuild/linux-ia32@0.24.2':
- optional: true
-
- '@esbuild/linux-ia32@0.25.0':
- optional: true
-
- '@esbuild/linux-loong64@0.18.20':
- optional: true
-
- '@esbuild/linux-loong64@0.19.12':
- optional: true
-
- '@esbuild/linux-loong64@0.24.2':
- optional: true
-
- '@esbuild/linux-loong64@0.25.0':
- optional: true
-
- '@esbuild/linux-mips64el@0.18.20':
- optional: true
-
- '@esbuild/linux-mips64el@0.19.12':
- optional: true
-
- '@esbuild/linux-mips64el@0.24.2':
- optional: true
-
- '@esbuild/linux-mips64el@0.25.0':
- optional: true
-
- '@esbuild/linux-ppc64@0.18.20':
- optional: true
-
- '@esbuild/linux-ppc64@0.19.12':
- optional: true
-
- '@esbuild/linux-ppc64@0.24.2':
- optional: true
-
- '@esbuild/linux-ppc64@0.25.0':
- optional: true
-
- '@esbuild/linux-riscv64@0.18.20':
- optional: true
-
- '@esbuild/linux-riscv64@0.19.12':
- optional: true
-
- '@esbuild/linux-riscv64@0.24.2':
- optional: true
-
- '@esbuild/linux-riscv64@0.25.0':
- optional: true
-
- '@esbuild/linux-s390x@0.18.20':
- optional: true
-
- '@esbuild/linux-s390x@0.19.12':
- optional: true
-
- '@esbuild/linux-s390x@0.24.2':
- optional: true
-
- '@esbuild/linux-s390x@0.25.0':
- optional: true
-
- '@esbuild/linux-x64@0.18.20':
- optional: true
-
- '@esbuild/linux-x64@0.19.12':
- optional: true
-
- '@esbuild/linux-x64@0.24.2':
- optional: true
-
- '@esbuild/linux-x64@0.25.0':
- optional: true
-
- '@esbuild/netbsd-arm64@0.24.2':
- optional: true
-
- '@esbuild/netbsd-arm64@0.25.0':
- optional: true
-
- '@esbuild/netbsd-x64@0.18.20':
- optional: true
-
- '@esbuild/netbsd-x64@0.19.12':
- optional: true
-
- '@esbuild/netbsd-x64@0.24.2':
- optional: true
-
- '@esbuild/netbsd-x64@0.25.0':
- optional: true
-
- '@esbuild/openbsd-arm64@0.24.2':
- optional: true
-
- '@esbuild/openbsd-arm64@0.25.0':
- optional: true
-
- '@esbuild/openbsd-x64@0.18.20':
- optional: true
-
- '@esbuild/openbsd-x64@0.19.12':
- optional: true
-
- '@esbuild/openbsd-x64@0.24.2':
- optional: true
-
- '@esbuild/openbsd-x64@0.25.0':
- optional: true
-
- '@esbuild/sunos-x64@0.18.20':
- optional: true
-
- '@esbuild/sunos-x64@0.19.12':
- optional: true
-
- '@esbuild/sunos-x64@0.24.2':
- optional: true
-
- '@esbuild/sunos-x64@0.25.0':
- optional: true
-
- '@esbuild/win32-arm64@0.18.20':
- optional: true
-
- '@esbuild/win32-arm64@0.19.12':
- optional: true
-
- '@esbuild/win32-arm64@0.24.2':
- optional: true
-
- '@esbuild/win32-arm64@0.25.0':
- optional: true
-
- '@esbuild/win32-ia32@0.18.20':
- optional: true
-
- '@esbuild/win32-ia32@0.19.12':
- optional: true
-
- '@esbuild/win32-ia32@0.24.2':
- optional: true
-
- '@esbuild/win32-ia32@0.25.0':
- optional: true
-
- '@esbuild/win32-x64@0.18.20':
- optional: true
-
- '@esbuild/win32-x64@0.19.12':
- optional: true
-
- '@esbuild/win32-x64@0.24.2':
- optional: true
-
- '@esbuild/win32-x64@0.25.0':
- optional: true
-
- '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))':
- dependencies:
- eslint: 9.21.0(jiti@2.4.2)
- eslint-visitor-keys: 3.4.3
-
- '@eslint-community/regexpp@4.12.1': {}
-
- '@eslint/config-array@0.19.2':
- dependencies:
- '@eslint/object-schema': 2.1.6
- debug: 4.4.0
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/core@0.12.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@eslint/eslintrc@3.3.0':
- dependencies:
- ajv: 6.12.6
- debug: 4.4.0
- espree: 10.3.0
- globals: 14.0.0
- ignore: 5.3.2
- import-fresh: 3.3.1
- js-yaml: 4.1.0
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/js@9.21.0': {}
-
- '@eslint/object-schema@2.1.6': {}
-
- '@eslint/plugin-kit@0.2.7':
- dependencies:
- '@eslint/core': 0.12.0
- levn: 0.4.1
-
- '@humanfs/core@0.19.1': {}
-
- '@humanfs/node@0.16.6':
- dependencies:
- '@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.3.1
-
- '@humanwhocodes/module-importer@1.0.1': {}
-
- '@humanwhocodes/retry@0.3.1': {}
-
- '@humanwhocodes/retry@0.4.2': {}
-
- '@jridgewell/gen-mapping@0.3.8':
- dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/set-array@1.2.1': {}
-
- '@jridgewell/sourcemap-codec@1.5.0': {}
-
- '@jridgewell/trace-mapping@0.3.25':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
-
- '@nodelib/fs.scandir@2.1.5':
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
-
- '@nodelib/fs.stat@2.0.5': {}
-
- '@nodelib/fs.walk@1.2.8':
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.19.0
-
- '@rollup/rollup-android-arm-eabi@4.34.8':
- optional: true
-
- '@rollup/rollup-android-arm64@4.34.8':
- optional: true
-
- '@rollup/rollup-darwin-arm64@4.34.8':
- optional: true
-
- '@rollup/rollup-darwin-x64@4.34.8':
- optional: true
-
- '@rollup/rollup-freebsd-arm64@4.34.8':
- optional: true
-
- '@rollup/rollup-freebsd-x64@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-arm-gnueabihf@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-arm-musleabihf@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-arm64-gnu@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-arm64-musl@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-loongarch64-gnu@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-powerpc64le-gnu@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-riscv64-gnu@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-s390x-gnu@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-x64-gnu@4.34.8':
- optional: true
-
- '@rollup/rollup-linux-x64-musl@4.34.8':
- optional: true
-
- '@rollup/rollup-win32-arm64-msvc@4.34.8':
- optional: true
-
- '@rollup/rollup-win32-ia32-msvc@4.34.8':
- optional: true
-
- '@rollup/rollup-win32-x64-msvc@4.34.8':
- optional: true
-
- '@tailwindcss/node@4.0.8':
- dependencies:
- enhanced-resolve: 5.18.1
- jiti: 2.4.2
- tailwindcss: 4.0.8
-
- '@tailwindcss/oxide-android-arm64@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-darwin-arm64@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-darwin-x64@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-freebsd-x64@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-linux-arm64-gnu@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-linux-arm64-musl@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-linux-x64-gnu@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-linux-x64-musl@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-win32-arm64-msvc@4.0.8':
- optional: true
-
- '@tailwindcss/oxide-win32-x64-msvc@4.0.8':
- optional: true
-
- '@tailwindcss/oxide@4.0.8':
- optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.0.8
- '@tailwindcss/oxide-darwin-arm64': 4.0.8
- '@tailwindcss/oxide-darwin-x64': 4.0.8
- '@tailwindcss/oxide-freebsd-x64': 4.0.8
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.8
- '@tailwindcss/oxide-linux-arm64-gnu': 4.0.8
- '@tailwindcss/oxide-linux-arm64-musl': 4.0.8
- '@tailwindcss/oxide-linux-x64-gnu': 4.0.8
- '@tailwindcss/oxide-linux-x64-musl': 4.0.8
- '@tailwindcss/oxide-win32-arm64-msvc': 4.0.8
- '@tailwindcss/oxide-win32-x64-msvc': 4.0.8
-
- '@tailwindcss/vite@4.0.8(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))':
- dependencies:
- '@tailwindcss/node': 4.0.8
- '@tailwindcss/oxide': 4.0.8
- lightningcss: 1.29.1
- tailwindcss: 4.0.8
- vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3)
-
- '@types/babel__core@7.20.5':
- dependencies:
- '@babel/parser': 7.26.9
- '@babel/types': 7.26.9
- '@types/babel__generator': 7.6.8
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.20.6
-
- '@types/babel__generator@7.6.8':
- dependencies:
- '@babel/types': 7.26.9
-
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.26.9
- '@babel/types': 7.26.9
-
- '@types/babel__traverse@7.20.6':
- dependencies:
- '@babel/types': 7.26.9
-
- '@types/body-parser@1.19.5':
- dependencies:
- '@types/connect': 3.4.38
- '@types/node': 22.13.5
-
- '@types/connect@3.4.38':
- dependencies:
- '@types/node': 22.13.5
-
- '@types/cors@2.8.17':
- dependencies:
- '@types/node': 22.13.5
-
- '@types/estree@1.0.6': {}
-
- '@types/express-serve-static-core@4.19.6':
- dependencies:
- '@types/node': 22.13.5
- '@types/qs': 6.9.18
- '@types/range-parser': 1.2.7
- '@types/send': 0.17.4
-
- '@types/express@4.17.21':
- dependencies:
- '@types/body-parser': 1.19.5
- '@types/express-serve-static-core': 4.19.6
- '@types/qs': 6.9.18
- '@types/serve-static': 1.15.7
-
- '@types/http-errors@2.0.4': {}
-
- '@types/json-schema@7.0.15': {}
-
- '@types/mime@1.3.5': {}
-
- '@types/node@22.13.5':
- dependencies:
- undici-types: 6.20.0
-
- '@types/pg@8.11.11':
- dependencies:
- '@types/node': 22.13.5
- pg-protocol: 1.7.1
- pg-types: 4.0.2
-
- '@types/qs@6.9.18': {}
-
- '@types/range-parser@1.2.7': {}
-
- '@types/react-dom@19.0.4(@types/react@19.0.10)':
- dependencies:
- '@types/react': 19.0.10
-
- '@types/react@19.0.10':
- dependencies:
- csstype: 3.1.3
-
- '@types/send@0.17.4':
- dependencies:
- '@types/mime': 1.3.5
- '@types/node': 22.13.5
-
- '@types/serve-static@1.15.7':
- dependencies:
- '@types/http-errors': 2.0.4
- '@types/node': 22.13.5
- '@types/send': 0.17.4
-
- '@types/use-sync-external-store@0.0.6': {}
-
- '@typescript-eslint/eslint-plugin@8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
- dependencies:
- '@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.25.0
- '@typescript-eslint/type-utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.25.0
- eslint: 9.21.0(jiti@2.4.2)
- graphemer: 1.4.0
- ignore: 5.3.2
- natural-compare: 1.4.0
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/scope-manager': 8.25.0
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.25.0
- debug: 4.4.0
- eslint: 9.21.0(jiti@2.4.2)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/scope-manager@8.25.0':
- dependencies:
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/visitor-keys': 8.25.0
-
- '@typescript-eslint/type-utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- debug: 4.4.0
- eslint: 9.21.0(jiti@2.4.2)
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/types@8.25.0': {}
-
- '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/visitor-keys': 8.25.0
- debug: 4.4.0
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.1
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2))
- '@typescript-eslint/scope-manager': 8.25.0
- '@typescript-eslint/types': 8.25.0
- '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3)
- eslint: 9.21.0(jiti@2.4.2)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/visitor-keys@8.25.0':
- dependencies:
- '@typescript-eslint/types': 8.25.0
- eslint-visitor-keys: 4.2.0
-
- '@vitejs/plugin-react@4.3.4(vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3))':
- dependencies:
- '@babel/core': 7.26.9
- '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.9)
- '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9)
- '@types/babel__core': 7.20.5
- react-refresh: 0.14.2
- vite: 6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3)
- transitivePeerDependencies:
- - supports-color
-
- accepts@1.3.8:
- dependencies:
- mime-types: 2.1.35
- negotiator: 0.6.3
-
- acorn-jsx@5.3.2(acorn@8.14.0):
- dependencies:
- acorn: 8.14.0
-
- acorn@8.14.0: {}
-
- ajv@6.12.6:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
-
- ansi-regex@5.0.1: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- argparse@2.0.1: {}
-
- array-flatten@1.1.1: {}
-
- balanced-match@1.0.2: {}
-
- body-parser@1.20.3:
- dependencies:
- bytes: 3.1.2
- content-type: 1.0.5
- debug: 2.6.9
- depd: 2.0.0
- destroy: 1.2.0
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- on-finished: 2.4.1
- qs: 6.13.0
- raw-body: 2.5.2
- type-is: 1.6.18
- unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
-
- brace-expansion@1.1.11:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- brace-expansion@2.0.1:
- dependencies:
- balanced-match: 1.0.2
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
- browserslist@4.24.4:
- dependencies:
- caniuse-lite: 1.0.30001700
- electron-to-chromium: 1.5.104
- node-releases: 2.0.19
- update-browserslist-db: 1.1.2(browserslist@4.24.4)
-
- buffer-from@1.1.2: {}
-
- bytes@3.1.2: {}
-
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- call-bound@1.0.3:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- get-intrinsic: 1.3.0
-
- callsites@3.1.0: {}
-
- caniuse-lite@1.0.30001700: {}
-
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- cliui@8.0.1:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
-
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
- concat-map@0.0.1: {}
-
- concurrently@9.1.2:
- dependencies:
- chalk: 4.1.2
- lodash: 4.17.21
- rxjs: 7.8.2
- shell-quote: 1.8.2
- supports-color: 8.1.1
- tree-kill: 1.2.2
- yargs: 17.7.2
-
- content-disposition@0.5.4:
- dependencies:
- safe-buffer: 5.2.1
-
- content-type@1.0.5: {}
-
- convert-source-map@2.0.0: {}
-
- cookie-signature@1.0.6: {}
-
- cookie@0.7.1: {}
-
- cors@2.8.5:
- dependencies:
- object-assign: 4.1.1
- vary: 1.1.2
-
- cross-spawn@7.0.6:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- csstype@3.1.3: {}
-
- debug@2.6.9:
- dependencies:
- ms: 2.0.0
-
- debug@4.4.0:
- dependencies:
- ms: 2.1.3
-
- deep-is@0.1.4: {}
-
- depd@2.0.0: {}
-
- destroy@1.2.0: {}
-
- detect-libc@1.0.3: {}
-
- dotenv@16.4.7: {}
-
- drizzle-kit@0.30.4:
- dependencies:
- '@drizzle-team/brocli': 0.10.2
- '@esbuild-kit/esm-loader': 2.6.5
- esbuild: 0.19.12
- esbuild-register: 3.6.0(esbuild@0.19.12)
- transitivePeerDependencies:
- - supports-color
-
- drizzle-orm@0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3):
- optionalDependencies:
- '@types/pg': 8.11.11
- kysely: 0.27.5
- pg: 8.13.3
-
- drizzle-zod@0.7.0(drizzle-orm@0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3))(zod@3.24.2):
- dependencies:
- drizzle-orm: 0.39.3(@types/pg@8.11.11)(kysely@0.27.5)(pg@8.13.3)
- zod: 3.24.2
-
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
- ee-first@1.1.1: {}
-
- electron-to-chromium@1.5.104: {}
-
- emoji-regex@8.0.0: {}
-
- encodeurl@1.0.2: {}
-
- encodeurl@2.0.0: {}
-
- enhanced-resolve@5.18.1:
- dependencies:
- graceful-fs: 4.2.11
- tapable: 2.2.1
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- esbuild-register@3.6.0(esbuild@0.19.12):
- dependencies:
- debug: 4.4.0
- esbuild: 0.19.12
- transitivePeerDependencies:
- - supports-color
-
- esbuild@0.18.20:
- optionalDependencies:
- '@esbuild/android-arm': 0.18.20
- '@esbuild/android-arm64': 0.18.20
- '@esbuild/android-x64': 0.18.20
- '@esbuild/darwin-arm64': 0.18.20
- '@esbuild/darwin-x64': 0.18.20
- '@esbuild/freebsd-arm64': 0.18.20
- '@esbuild/freebsd-x64': 0.18.20
- '@esbuild/linux-arm': 0.18.20
- '@esbuild/linux-arm64': 0.18.20
- '@esbuild/linux-ia32': 0.18.20
- '@esbuild/linux-loong64': 0.18.20
- '@esbuild/linux-mips64el': 0.18.20
- '@esbuild/linux-ppc64': 0.18.20
- '@esbuild/linux-riscv64': 0.18.20
- '@esbuild/linux-s390x': 0.18.20
- '@esbuild/linux-x64': 0.18.20
- '@esbuild/netbsd-x64': 0.18.20
- '@esbuild/openbsd-x64': 0.18.20
- '@esbuild/sunos-x64': 0.18.20
- '@esbuild/win32-arm64': 0.18.20
- '@esbuild/win32-ia32': 0.18.20
- '@esbuild/win32-x64': 0.18.20
-
- esbuild@0.19.12:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.19.12
- '@esbuild/android-arm': 0.19.12
- '@esbuild/android-arm64': 0.19.12
- '@esbuild/android-x64': 0.19.12
- '@esbuild/darwin-arm64': 0.19.12
- '@esbuild/darwin-x64': 0.19.12
- '@esbuild/freebsd-arm64': 0.19.12
- '@esbuild/freebsd-x64': 0.19.12
- '@esbuild/linux-arm': 0.19.12
- '@esbuild/linux-arm64': 0.19.12
- '@esbuild/linux-ia32': 0.19.12
- '@esbuild/linux-loong64': 0.19.12
- '@esbuild/linux-mips64el': 0.19.12
- '@esbuild/linux-ppc64': 0.19.12
- '@esbuild/linux-riscv64': 0.19.12
- '@esbuild/linux-s390x': 0.19.12
- '@esbuild/linux-x64': 0.19.12
- '@esbuild/netbsd-x64': 0.19.12
- '@esbuild/openbsd-x64': 0.19.12
- '@esbuild/sunos-x64': 0.19.12
- '@esbuild/win32-arm64': 0.19.12
- '@esbuild/win32-ia32': 0.19.12
- '@esbuild/win32-x64': 0.19.12
-
- esbuild@0.24.2:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.24.2
- '@esbuild/android-arm': 0.24.2
- '@esbuild/android-arm64': 0.24.2
- '@esbuild/android-x64': 0.24.2
- '@esbuild/darwin-arm64': 0.24.2
- '@esbuild/darwin-x64': 0.24.2
- '@esbuild/freebsd-arm64': 0.24.2
- '@esbuild/freebsd-x64': 0.24.2
- '@esbuild/linux-arm': 0.24.2
- '@esbuild/linux-arm64': 0.24.2
- '@esbuild/linux-ia32': 0.24.2
- '@esbuild/linux-loong64': 0.24.2
- '@esbuild/linux-mips64el': 0.24.2
- '@esbuild/linux-ppc64': 0.24.2
- '@esbuild/linux-riscv64': 0.24.2
- '@esbuild/linux-s390x': 0.24.2
- '@esbuild/linux-x64': 0.24.2
- '@esbuild/netbsd-arm64': 0.24.2
- '@esbuild/netbsd-x64': 0.24.2
- '@esbuild/openbsd-arm64': 0.24.2
- '@esbuild/openbsd-x64': 0.24.2
- '@esbuild/sunos-x64': 0.24.2
- '@esbuild/win32-arm64': 0.24.2
- '@esbuild/win32-ia32': 0.24.2
- '@esbuild/win32-x64': 0.24.2
-
- esbuild@0.25.0:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.0
- '@esbuild/android-arm': 0.25.0
- '@esbuild/android-arm64': 0.25.0
- '@esbuild/android-x64': 0.25.0
- '@esbuild/darwin-arm64': 0.25.0
- '@esbuild/darwin-x64': 0.25.0
- '@esbuild/freebsd-arm64': 0.25.0
- '@esbuild/freebsd-x64': 0.25.0
- '@esbuild/linux-arm': 0.25.0
- '@esbuild/linux-arm64': 0.25.0
- '@esbuild/linux-ia32': 0.25.0
- '@esbuild/linux-loong64': 0.25.0
- '@esbuild/linux-mips64el': 0.25.0
- '@esbuild/linux-ppc64': 0.25.0
- '@esbuild/linux-riscv64': 0.25.0
- '@esbuild/linux-s390x': 0.25.0
- '@esbuild/linux-x64': 0.25.0
- '@esbuild/netbsd-arm64': 0.25.0
- '@esbuild/netbsd-x64': 0.25.0
- '@esbuild/openbsd-arm64': 0.25.0
- '@esbuild/openbsd-x64': 0.25.0
- '@esbuild/sunos-x64': 0.25.0
- '@esbuild/win32-arm64': 0.25.0
- '@esbuild/win32-ia32': 0.25.0
- '@esbuild/win32-x64': 0.25.0
-
- escalade@3.2.0: {}
-
- escape-html@1.0.3: {}
-
- escape-string-regexp@4.0.0: {}
-
- eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)):
- dependencies:
- eslint: 9.21.0(jiti@2.4.2)
-
- eslint-plugin-react-refresh@0.4.19(eslint@9.21.0(jiti@2.4.2)):
- dependencies:
- eslint: 9.21.0(jiti@2.4.2)
-
- eslint-scope@8.2.0:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-visitor-keys@3.4.3: {}
-
- eslint-visitor-keys@4.2.0: {}
-
- eslint@9.21.0(jiti@2.4.2):
- dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2))
- '@eslint-community/regexpp': 4.12.1
- '@eslint/config-array': 0.19.2
- '@eslint/core': 0.12.0
- '@eslint/eslintrc': 3.3.0
- '@eslint/js': 9.21.0
- '@eslint/plugin-kit': 0.2.7
- '@humanfs/node': 0.16.6
- '@humanwhocodes/module-importer': 1.0.1
- '@humanwhocodes/retry': 0.4.2
- '@types/estree': 1.0.6
- '@types/json-schema': 7.0.15
- ajv: 6.12.6
- chalk: 4.1.2
- cross-spawn: 7.0.6
- debug: 4.4.0
- escape-string-regexp: 4.0.0
- eslint-scope: 8.2.0
- eslint-visitor-keys: 4.2.0
- espree: 10.3.0
- esquery: 1.6.0
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
- find-up: 5.0.0
- glob-parent: 6.0.2
- ignore: 5.3.2
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- json-stable-stringify-without-jsonify: 1.0.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
- natural-compare: 1.4.0
- optionator: 0.9.4
- optionalDependencies:
- jiti: 2.4.2
- transitivePeerDependencies:
- - supports-color
-
- espree@10.3.0:
- dependencies:
- acorn: 8.14.0
- acorn-jsx: 5.3.2(acorn@8.14.0)
- eslint-visitor-keys: 4.2.0
-
- esquery@1.6.0:
- dependencies:
- estraverse: 5.3.0
-
- esrecurse@4.3.0:
- dependencies:
- estraverse: 5.3.0
-
- estraverse@5.3.0: {}
-
- esutils@2.0.3: {}
-
- etag@1.8.1: {}
-
- express@4.21.2:
- dependencies:
- accepts: 1.3.8
- array-flatten: 1.1.1
- body-parser: 1.20.3
- content-disposition: 0.5.4
- content-type: 1.0.5
- cookie: 0.7.1
- cookie-signature: 1.0.6
- debug: 2.6.9
- depd: 2.0.0
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 1.3.1
- fresh: 0.5.2
- http-errors: 2.0.0
- merge-descriptors: 1.0.3
- methods: 1.1.2
- on-finished: 2.4.1
- parseurl: 1.3.3
- path-to-regexp: 0.1.12
- proxy-addr: 2.0.7
- qs: 6.13.0
- range-parser: 1.2.1
- safe-buffer: 5.2.1
- send: 0.19.0
- serve-static: 1.16.2
- setprototypeof: 1.2.0
- statuses: 2.0.1
- type-is: 1.6.18
- utils-merge: 1.0.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
- fast-deep-equal@3.1.3: {}
-
- fast-glob@3.3.3:
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.8
-
- fast-json-stable-stringify@2.1.0: {}
-
- fast-levenshtein@2.0.6: {}
-
- fastq@1.19.0:
- dependencies:
- reusify: 1.0.4
-
- file-entry-cache@8.0.0:
- dependencies:
- flat-cache: 4.0.1
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- finalhandler@1.3.1:
- dependencies:
- debug: 2.6.9
- encodeurl: 2.0.0
- escape-html: 1.0.3
- on-finished: 2.4.1
- parseurl: 1.3.3
- statuses: 2.0.1
- unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
-
- find-up@5.0.0:
- dependencies:
- locate-path: 6.0.0
- path-exists: 4.0.0
-
- flat-cache@4.0.1:
- dependencies:
- flatted: 3.3.3
- keyv: 4.5.4
-
- flatted@3.3.3: {}
-
- forwarded@0.2.0: {}
-
- fresh@0.5.2: {}
-
- fsevents@2.3.3:
- optional: true
-
- function-bind@1.1.2: {}
-
- gensync@1.0.0-beta.2: {}
-
- get-caller-file@2.0.5: {}
-
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
- get-tsconfig@4.10.0:
- dependencies:
- resolve-pkg-maps: 1.0.0
-
- glob-parent@5.1.2:
- dependencies:
- is-glob: 4.0.3
-
- glob-parent@6.0.2:
- dependencies:
- is-glob: 4.0.3
-
- globals@11.12.0: {}
-
- globals@14.0.0: {}
-
- globals@15.15.0: {}
-
- gopd@1.2.0: {}
-
- graceful-fs@4.2.11: {}
-
- graphemer@1.4.0: {}
-
- has-flag@4.0.0: {}
-
- has-symbols@1.1.0: {}
-
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
- http-errors@2.0.0:
- dependencies:
- depd: 2.0.0
- inherits: 2.0.4
- setprototypeof: 1.2.0
- statuses: 2.0.1
- toidentifier: 1.0.1
-
- iconv-lite@0.4.24:
- dependencies:
- safer-buffer: 2.1.2
-
- ignore@5.3.2: {}
-
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
-
- imurmurhash@0.1.4: {}
-
- inherits@2.0.4: {}
-
- ipaddr.js@1.9.1: {}
-
- is-extglob@2.1.1: {}
-
- is-fullwidth-code-point@3.0.0: {}
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- is-number@7.0.0: {}
-
- isexe@2.0.0: {}
-
- jiti@2.4.2: {}
-
- js-tokens@4.0.0: {}
-
- js-yaml@4.1.0:
- dependencies:
- argparse: 2.0.1
-
- jsesc@3.1.0: {}
-
- json-buffer@3.0.1: {}
-
- json-schema-traverse@0.4.1: {}
-
- json-stable-stringify-without-jsonify@1.0.1: {}
-
- json5@2.2.3: {}
-
- keyv@4.5.4:
- dependencies:
- json-buffer: 3.0.1
-
- kysely@0.27.5: {}
-
- levn@0.4.1:
- dependencies:
- prelude-ls: 1.2.1
- type-check: 0.4.0
-
- lightningcss-darwin-arm64@1.29.1:
- optional: true
-
- lightningcss-darwin-x64@1.29.1:
- optional: true
-
- lightningcss-freebsd-x64@1.29.1:
- optional: true
-
- lightningcss-linux-arm-gnueabihf@1.29.1:
- optional: true
-
- lightningcss-linux-arm64-gnu@1.29.1:
- optional: true
-
- lightningcss-linux-arm64-musl@1.29.1:
- optional: true
-
- lightningcss-linux-x64-gnu@1.29.1:
- optional: true
-
- lightningcss-linux-x64-musl@1.29.1:
- optional: true
-
- lightningcss-win32-arm64-msvc@1.29.1:
- optional: true
-
- lightningcss-win32-x64-msvc@1.29.1:
- optional: true
-
- lightningcss@1.29.1:
- dependencies:
- detect-libc: 1.0.3
- optionalDependencies:
- lightningcss-darwin-arm64: 1.29.1
- lightningcss-darwin-x64: 1.29.1
- lightningcss-freebsd-x64: 1.29.1
- lightningcss-linux-arm-gnueabihf: 1.29.1
- lightningcss-linux-arm64-gnu: 1.29.1
- lightningcss-linux-arm64-musl: 1.29.1
- lightningcss-linux-x64-gnu: 1.29.1
- lightningcss-linux-x64-musl: 1.29.1
- lightningcss-win32-arm64-msvc: 1.29.1
- lightningcss-win32-x64-msvc: 1.29.1
-
- locate-path@6.0.0:
- dependencies:
- p-locate: 5.0.0
-
- lodash.merge@4.6.2: {}
-
- lodash@4.17.21: {}
-
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
-
- math-intrinsics@1.1.0: {}
-
- media-typer@0.3.0: {}
-
- merge-descriptors@1.0.3: {}
-
- merge2@1.4.1: {}
-
- methods@1.1.2: {}
-
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- mime-db@1.52.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
- mime@1.6.0: {}
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.11
-
- minimatch@9.0.5:
- dependencies:
- brace-expansion: 2.0.1
-
- mitt@3.0.1: {}
-
- ms@2.0.0: {}
-
- ms@2.1.3: {}
-
- nanoid@3.3.8: {}
-
- natural-compare@1.4.0: {}
-
- negotiator@0.6.3: {}
-
- node-releases@2.0.19: {}
-
- object-assign@4.1.1: {}
-
- object-inspect@1.13.4: {}
-
- obuf@1.1.2: {}
-
- on-finished@2.4.1:
- dependencies:
- ee-first: 1.1.1
-
- optionator@0.9.4:
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.4.1
- prelude-ls: 1.2.1
- type-check: 0.4.0
- word-wrap: 1.2.5
-
- p-limit@3.1.0:
- dependencies:
- yocto-queue: 0.1.0
-
- p-locate@5.0.0:
- dependencies:
- p-limit: 3.1.0
-
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
- parseurl@1.3.3: {}
-
- path-exists@4.0.0: {}
-
- path-key@3.1.1: {}
-
- path-to-regexp@0.1.12: {}
-
- pg-cloudflare@1.1.1:
- optional: true
-
- pg-connection-string@2.7.0: {}
-
- pg-int8@1.0.1: {}
-
- pg-numeric@1.0.2: {}
-
- pg-pool@3.7.1(pg@8.13.3):
- dependencies:
- pg: 8.13.3
-
- pg-protocol@1.7.1: {}
-
- pg-types@2.2.0:
- dependencies:
- pg-int8: 1.0.1
- postgres-array: 2.0.0
- postgres-bytea: 1.0.0
- postgres-date: 1.0.7
- postgres-interval: 1.2.0
-
- pg-types@4.0.2:
- dependencies:
- pg-int8: 1.0.1
- pg-numeric: 1.0.2
- postgres-array: 3.0.2
- postgres-bytea: 3.0.0
- postgres-date: 2.1.0
- postgres-interval: 3.0.0
- postgres-range: 1.1.4
-
- pg@8.13.3:
- dependencies:
- pg-connection-string: 2.7.0
- pg-pool: 3.7.1(pg@8.13.3)
- pg-protocol: 1.7.1
- pg-types: 2.2.0
- pgpass: 1.0.5
- optionalDependencies:
- pg-cloudflare: 1.1.1
-
- pgpass@1.0.5:
- dependencies:
- split2: 4.2.0
-
- picocolors@1.1.1: {}
-
- picomatch@2.3.1: {}
-
- postcss@8.5.3:
- dependencies:
- nanoid: 3.3.8
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
- postgres-array@2.0.0: {}
-
- postgres-array@3.0.2: {}
-
- postgres-bytea@1.0.0: {}
-
- postgres-bytea@3.0.0:
- dependencies:
- obuf: 1.1.2
-
- postgres-date@1.0.7: {}
-
- postgres-date@2.1.0: {}
-
- postgres-interval@1.2.0:
- dependencies:
- xtend: 4.0.2
-
- postgres-interval@3.0.0: {}
-
- postgres-range@1.1.4: {}
-
- prelude-ls@1.2.1: {}
-
- proxy-addr@2.0.7:
- dependencies:
- forwarded: 0.2.0
- ipaddr.js: 1.9.1
-
- punycode@2.3.1: {}
-
- qs@6.13.0:
- dependencies:
- side-channel: 1.1.0
-
- queue-microtask@1.2.3: {}
-
- range-parser@1.2.1: {}
-
- raw-body@2.5.2:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- unpipe: 1.0.0
-
- react-dom@19.0.0(react@19.0.0):
- dependencies:
- react: 19.0.0
- scheduler: 0.25.0
-
- react-refresh@0.14.2: {}
-
- react@19.0.0: {}
-
- require-directory@2.1.1: {}
-
- resolve-from@4.0.0: {}
-
- resolve-pkg-maps@1.0.0: {}
-
- reusify@1.0.4: {}
-
- rollup@4.34.8:
- dependencies:
- '@types/estree': 1.0.6
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.34.8
- '@rollup/rollup-android-arm64': 4.34.8
- '@rollup/rollup-darwin-arm64': 4.34.8
- '@rollup/rollup-darwin-x64': 4.34.8
- '@rollup/rollup-freebsd-arm64': 4.34.8
- '@rollup/rollup-freebsd-x64': 4.34.8
- '@rollup/rollup-linux-arm-gnueabihf': 4.34.8
- '@rollup/rollup-linux-arm-musleabihf': 4.34.8
- '@rollup/rollup-linux-arm64-gnu': 4.34.8
- '@rollup/rollup-linux-arm64-musl': 4.34.8
- '@rollup/rollup-linux-loongarch64-gnu': 4.34.8
- '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8
- '@rollup/rollup-linux-riscv64-gnu': 4.34.8
- '@rollup/rollup-linux-s390x-gnu': 4.34.8
- '@rollup/rollup-linux-x64-gnu': 4.34.8
- '@rollup/rollup-linux-x64-musl': 4.34.8
- '@rollup/rollup-win32-arm64-msvc': 4.34.8
- '@rollup/rollup-win32-ia32-msvc': 4.34.8
- '@rollup/rollup-win32-x64-msvc': 4.34.8
- fsevents: 2.3.3
-
- run-parallel@1.2.0:
- dependencies:
- queue-microtask: 1.2.3
-
- rxjs@7.8.2:
- dependencies:
- tslib: 2.8.1
-
- safe-buffer@5.2.1: {}
-
- safer-buffer@2.1.2: {}
-
- scheduler@0.25.0: {}
-
- semver@6.3.1: {}
-
- semver@7.7.1: {}
-
- send@0.19.0:
- dependencies:
- debug: 2.6.9
- depd: 2.0.0
- destroy: 1.2.0
- encodeurl: 1.0.2
- escape-html: 1.0.3
- etag: 1.8.1
- fresh: 0.5.2
- http-errors: 2.0.0
- mime: 1.6.0
- ms: 2.1.3
- on-finished: 2.4.1
- range-parser: 1.2.1
- statuses: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- serve-static@1.16.2:
- dependencies:
- encodeurl: 2.0.0
- escape-html: 1.0.3
- parseurl: 1.3.3
- send: 0.19.0
- transitivePeerDependencies:
- - supports-color
-
- setprototypeof@1.2.0: {}
-
- shebang-command@2.0.0:
- dependencies:
- shebang-regex: 3.0.0
-
- shebang-regex@3.0.0: {}
-
- shell-quote@1.8.2: {}
-
- side-channel-list@1.0.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-map@1.0.1:
- dependencies:
- call-bound: 1.0.3
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-weakmap@1.0.2:
- dependencies:
- call-bound: 1.0.3
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
- side-channel-map: 1.0.1
-
- side-channel@1.1.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
- side-channel-list: 1.0.0
- side-channel-map: 1.0.1
- side-channel-weakmap: 1.0.2
-
- source-map-js@1.2.1: {}
-
- source-map-support@0.5.21:
- dependencies:
- buffer-from: 1.1.2
- source-map: 0.6.1
-
- source-map@0.6.1: {}
-
- split2@4.2.0: {}
-
- statuses@2.0.1: {}
-
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-json-comments@3.1.1: {}
-
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- supports-color@8.1.1:
- dependencies:
- has-flag: 4.0.0
-
- tailwindcss@4.0.8: {}
-
- tapable@2.2.1: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
- toidentifier@1.0.1: {}
-
- tree-kill@1.2.2: {}
-
- ts-api-utils@2.0.1(typescript@5.7.3):
- dependencies:
- typescript: 5.7.3
-
- tslib@2.8.1: {}
-
- tsx@4.19.3:
- dependencies:
- esbuild: 0.25.0
- get-tsconfig: 4.10.0
- optionalDependencies:
- fsevents: 2.3.3
-
- type-check@0.4.0:
- dependencies:
- prelude-ls: 1.2.1
-
- type-is@1.6.18:
- dependencies:
- media-typer: 0.3.0
- mime-types: 2.1.35
-
- typescript-eslint@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3):
- dependencies:
- '@typescript-eslint/eslint-plugin': 8.25.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)
- eslint: 9.21.0(jiti@2.4.2)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- typescript@5.7.3: {}
-
- undici-types@6.20.0: {}
-
- unpipe@1.0.0: {}
-
- update-browserslist-db@1.1.2(browserslist@4.24.4):
- dependencies:
- browserslist: 4.24.4
- escalade: 3.2.0
- picocolors: 1.1.1
-
- uri-js@4.4.1:
- dependencies:
- punycode: 2.3.1
-
- utils-merge@1.0.1: {}
-
- vary@1.1.2: {}
-
- vite@6.1.1(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(tsx@4.19.3):
- dependencies:
- esbuild: 0.24.2
- postcss: 8.5.3
- rollup: 4.34.8
- optionalDependencies:
- '@types/node': 22.13.5
- fsevents: 2.3.3
- jiti: 2.4.2
- lightningcss: 1.29.1
- tsx: 4.19.3
-
- which@2.0.2:
- dependencies:
- isexe: 2.0.0
-
- word-wrap@1.2.5: {}
-
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- xtend@4.0.2: {}
-
- y18n@5.0.8: {}
-
- yallist@3.1.1: {}
-
- yargs-parser@21.1.1: {}
-
- yargs@17.7.2:
- dependencies:
- cliui: 8.0.1
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
-
- yocto-queue@0.1.0: {}
-
- zod@3.24.2: {}
diff --git a/todo.md b/todo.md
index 450b3f8ed..cb443d45f 100644
--- a/todo.md
+++ b/todo.md
@@ -1,126 +1,75 @@
# TODO: Sync Library Implementation
## 1. Project Initialization
+
- [ ] **1A**: Create & configure a new TypeScript project
- - [ ] Initialize `package.json`
- - [ ] Add `tsconfig.json` with standard TS settings
- - [ ] Set up Jest or Vitest test runner
-- [ ] **1B**: Linting & Formatting
- - [ ] Install ESLint / Prettier (or similar)
- - [ ] Add minimal lint/format config
- - [ ] Create a "hello world" test in `tests/hello.test.ts` to verify everything works
+ - [ ] Initialize `package.json`
+ - [ ] Add `tsconfig.json` with standard TS settings
+ - [ ] Set up Jest or Vitest test runner
+- [ ] **1B**: Linting & Formatting - [ ] Install ESLint / Prettier (or similar) - [ ] Add minimal lint/format config - [ ] Create a "hello world" test in `tests/hello.test.ts` to verify everything works
## 2. Types & Basic Helpers
-- [ ] **2A**: Define **core interfaces** in `src/types.ts`
- - [ ] `TransactionState`
- - [ ] `Attempt`
- - [ ] `PendingMutation`
- - [ ] `Transaction`
-- [ ] **2B**: Define **Sync-related types** in `src/types.ts`
- - [ ] `SyncConfig`
- - [ ] `MutationFn`
- - [ ] `MutationStrategy`
+
+- [ ] **2A**: Define **core interfaces** in `src/types.ts` - [ ] `TransactionState` - [ ] `Attempt` - [ ] `PendingMutation` - [ ] `Transaction`
+- [ ] **2B**: Define **Sync-related types** in `src/types.ts` - [ ] `SyncConfig` - [ ] `MutationFn` - [ ] `MutationStrategy`
- [ ] **2C**: Create `NonRetriableError` in `src/errors.ts`
- [ ] **2D**: Create a placeholder `getLockedObjects` in `src/utils.ts` (return empty `Set` for now)
-- [ ] **2E**: Unit tests in `tests/types.test.ts`
- - [ ] Confirm each interface/type is defined correctly
- - [ ] Verify basic usage or shape checking
+- [ ] **2E**: Unit tests in `tests/types.test.ts` - [ ] Confirm each interface/type is defined correctly - [ ] Verify basic usage or shape checking
## 3. IndexedDB Storage
-- [ ] **3A**: Implement `TransactionStore` in `src/TransactionStore.ts`
- - [ ] `getTransactions(): Promise`
- - [ ] `putTransaction(tx: Transaction): Promise`
- - [ ] `deleteTransaction(id: string): Promise`
- - [ ] Internally use IndexedDB or an equivalent library
-- [ ] **3B**: Write tests in `tests/TransactionStore.test.ts`
- - [ ] Confirm create/update/delete flow
- - [ ] Verify correct reading of stored transactions
+
+- [ ] **3A**: Implement `TransactionStore` in `src/TransactionStore.ts` - [ ] `getTransactions(): Promise` - [ ] `putTransaction(tx: Transaction): Promise` - [ ] `deleteTransaction(id: string): Promise` - [ ] Internally use IndexedDB or an equivalent library
+- [ ] **3B**: Write tests in `tests/TransactionStore.test.ts` - [ ] Confirm create/update/delete flow - [ ] Verify correct reading of stored transactions
## 4. TransactionManager & Lifecycle
-- [ ] **4A**: Create `TransactionManager` in `src/TransactionManager.ts`
- - [ ] Constructor accepts `TransactionStore`
- - [ ] `createTransaction(mutations: PendingMutation[], strategy: MutationStrategy): Promise`
-- [ ] **4B**: Add lifecycle state management
- - [ ] `updateTransactionState(id: string, newState: TransactionState): Promise`
- - [ ] Transitions: `pending`, `persisting`, `completed`, `failed`, etc.
+
+- [ ] **4A**: Create `TransactionManager` in `src/TransactionManager.ts` - [ ] Constructor accepts `TransactionStore` - [ ] `createTransaction(mutations: PendingMutation[], strategy: MutationStrategy): Promise`
+- [ ] **4B**: Add lifecycle state management - [ ] `updateTransactionState(id: string, newState: TransactionState): Promise` - [ ] Transitions: `pending`, `persisting`, `completed`, `failed`, etc.
- [ ] **4C**: Implement exponential backoff in `scheduleRetry(id: string, attemptNumber: number)`
-- [ ] **4D**: Write tests in `tests/TransactionManager.test.ts`
- - [ ] Creating a new transaction
- - [ ] Changing transaction states & verifying correctness
- - [ ] Checking scheduled retry times (no actual timer needed, just stored times)
+- [ ] **4D**: Write tests in `tests/TransactionManager.test.ts` - [ ] Creating a new transaction - [ ] Changing transaction states & verifying correctness - [ ] Checking scheduled retry times (no actual timer needed, just stored times)
## 5. Modes: Ordered vs. Parallel
+
- [ ] **5A**: Extend `TransactionManager` to handle a `type` field in `MutationStrategy` (either `'ordered'` or `'parallel'`)
-- [ ] **5B**: Ordered logic
- - [ ] Enqueue new transactions if an existing one is still `persisting` or `queued`
-- [ ] **5C**: Parallel logic
- - [ ] Immediately mark transactions `pending` or `persisting`
- - [ ] No explicit queue
-- [ ] **5D**: Concurrency tests in `tests/TransactionManager.test.ts`
- - [ ] Multiple transactions in ordered mode (should not persist in parallel)
- - [ ] Multiple transactions in parallel mode (should run immediately)
+- [ ] **5B**: Ordered logic - [ ] Enqueue new transactions if an existing one is still `persisting` or `queued`
+- [ ] **5C**: Parallel logic - [ ] Immediately mark transactions `pending` or `persisting` - [ ] No explicit queue
+- [ ] **5D**: Concurrency tests in `tests/TransactionManager.test.ts` - [ ] Multiple transactions in ordered mode (should not persist in parallel) - [ ] Multiple transactions in parallel mode (should run immediately)
## 6. Basic `useCollection` Hook
-- [ ] **6A**: Create `src/useCollection.ts`
- - [ ] Export `useCollection(config: { sync: SyncConfig; mutationFn?: MutationFn })`
- - [ ] Return `{ data, update, insert, delete: deleteFn, withMutation }`
-- [ ] **6B**: Connect to `TransactionManager`
- - [ ] On `update/insert/delete`, call `createTransaction()`
-- [ ] **6C**: Basic test in `tests/useCollection.test.ts`
- - [ ] Render a React component using the hook
- - [ ] Call `update()` or `insert()`
- - [ ] Confirm that a transaction is created (verify some state in manager or a mock function)
- - [ ] `data` can be empty or unchanged for now
+
+- [ ] **6A**: Create `src/useCollection.ts` - [ ] Export `useCollection(config: { sync: SyncConfig; mutationFn?: MutationFn })` - [ ] Return `{ data, update, insert, delete: deleteFn, withMutation }`
+- [ ] **6B**: Connect to `TransactionManager` - [ ] On `update/insert/delete`, call `createTransaction()`
+- [ ] **6C**: Basic test in `tests/useCollection.test.ts` - [ ] Render a React component using the hook - [ ] Call `update()` or `insert()` - [ ] Confirm that a transaction is created (verify some state in manager or a mock function) - [ ] `data` can be empty or unchanged for now
## 7. Optimistic Updates
+
- [ ] **7A**: Implement local data state inside `useCollection`
- [ ] **7B**: On transaction creation, immediately apply changes to `data`
- [ ] **7C**: On transaction failure, revert changes
-- [ ] **7D**: Write new tests in `tests/useCollection.test.ts`
- - [ ] Simulate success -> `data` remains updated
- - [ ] Simulate failure -> `data` reverts
+- [ ] **7D**: Write new tests in `tests/useCollection.test.ts` - [ ] Simulate success -> `data` remains updated - [ ] Simulate failure -> `data` reverts
## 8. Mock Persist & Retry
-- [ ] **8A**: Add a **mock** `persist` method in `mutationFn`
- - [ ] Wait ~100–500ms
- - [ ] 50% chance success, 50% chance fail
-- [ ] **8B**: On failure, trigger retries in `TransactionManager`
- - [ ] Up to 4 retries
-- [ ] **8C**: Unit tests for retry behavior
- - [ ] Verify final transaction state after repeated failures -> `failed`
- - [ ] Verify success after a retry -> `completed`
- - [ ] Check local data for revert vs. final updates
+
+- [ ] **8A**: Add a **mock** `persist` method in `mutationFn` - [ ] Wait ~100–500ms - [ ] 50% chance success, 50% chance fail
+- [ ] **8B**: On failure, trigger retries in `TransactionManager` - [ ] Up to 4 retries
+- [ ] **8C**: Unit tests for retry behavior - [ ] Verify final transaction state after repeated failures -> `failed` - [ ] Verify success after a retry -> `completed` - [ ] Check local data for revert vs. final updates
## 9. Sync Merges & Lock Management
-- [ ] **9A**: For ordered mode, block subsequent transactions while one is `persisting`
- - [ ] Release lock after `persisting` transaction completes
-- [ ] **9B**: Provide a **minimal or no-op** merge function for parallel mode
- - [ ] Reapply optimistic updates on new sync data
+
+- [ ] **9A**: For ordered mode, block subsequent transactions while one is `persisting` - [ ] Release lock after `persisting` transaction completes
+- [ ] **9B**: Provide a **minimal or no-op** merge function for parallel mode - [ ] Reapply optimistic updates on new sync data
- [ ] **9C**: Allow a custom merge function to be passed in
-- [ ] **9D**: Add concurrency tests
- - [ ] Locking logic in ordered mode
- - [ ] Parallel concurrency with merges
+- [ ] **9D**: Add concurrency tests - [ ] Locking logic in ordered mode - [ ] Parallel concurrency with merges
## 10. Real `setup` & Integration
-- [ ] **10A**: Implement a real or mock `setup` in `SyncConfig`
- - [ ] Fetch initial data from an endpoint or test fixture
-- [ ] **10B**: Evolve the mock `persist` into a more realistic approach
- - [ ] Possibly call a local in-memory server or a test-based REST endpoint
-- [ ] **10C**: Write integration test in `tests/integration.test.ts`
- - [ ] Confirm initial data is loaded
- - [ ] Perform a successful update -> data updates
- - [ ] Perform a failing update -> confirm revert or eventual success with retry
- - [ ] Ensure everything ties together end-to-end
+
+- [ ] **10A**: Implement a real or mock `setup` in `SyncConfig` - [ ] Fetch initial data from an endpoint or test fixture
+- [ ] **10B**: Evolve the mock `persist` into a more realistic approach - [ ] Possibly call a local in-memory server or a test-based REST endpoint
+- [ ] **10C**: Write integration test in `tests/integration.test.ts` - [ ] Confirm initial data is loaded - [ ] Perform a successful update -> data updates - [ ] Perform a failing update -> confirm revert or eventual success with retry - [ ] Ensure everything ties together end-to-end
## 11. Advanced Errors, Logging & Cleanup
-- [ ] **11A**: Utilize `NonRetriableError`
- - [ ] E.g., if API returns 400, throw `NonRetriableError` and skip retries
-- [ ] **11B**: Optional logging / event hooks in `TransactionManager`
- - [ ] Provide ways to track or debug transaction states
-- [ ] **11C**: Final code cleanup
- - [ ] Remove stubs/orphan code
- - [ ] Ensure everything is exported from `src/index.ts` or a root file
-- [ ] **11D**: Final coverage check / polish
- - [ ] Ensure tests cover all key flows
- - [ ] Document usage in a short README or doc
+- [ ] **11A**: Utilize `NonRetriableError` - [ ] E.g., if API returns 400, throw `NonRetriableError` and skip retries
+- [ ] **11B**: Optional logging / event hooks in `TransactionManager` - [ ] Provide ways to track or debug transaction states
+- [ ] **11C**: Final code cleanup - [ ] Remove stubs/orphan code - [ ] Ensure everything is exported from `src/index.ts` or a root file
+- [ ] **11D**: Final coverage check / polish - [ ] Ensure tests cover all key flows - [ ] Document usage in a short README or doc
diff --git a/tsconfig.json b/tsconfig.json
index d80e52776..c48c73fd9 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -24,13 +24,16 @@
"jsx": "react-jsx"
},
"include": [
- "src/**/*.ts",
- "src/**/*.tsx",
- "test/**/*.ts",
- "vite.config.ts",
+ "src/**/*.ts",
+ "src/**/*.tsx",
+ "test/**/*.ts",
+ "vite.config.ts",
"vitest.config.ts",
"todo-app/**/*.ts",
- "todo-app/**/*.tsx"
+ "todo-app/**/*.tsx",
+ "examples/**/*.ts",
+ "examples/**/*.tsx",
+ "eslint.config.mjs"
],
"exclude": ["node_modules"]
}
diff --git a/vite.config.ts b/vite.config.ts
deleted file mode 100644
index 28fbf2512..000000000
--- a/vite.config.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { defineConfig, mergeConfig } from "vite"
-
-import { tanstackViteConfig } from "@tanstack/config/vite"
-
-const config = defineConfig({
- // Framework plugins, vitest config, etc.
-})
-
-export default mergeConfig(
- config,
- tanstackViteConfig({
- entry: `./src/index.ts`,
- srcDir: `./src`,
- })
-)
diff --git a/vitest.config.ts b/vitest.config.ts
deleted file mode 100644
index 0625c1bb6..000000000
--- a/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { defineConfig } from "vitest/config"
-import react from "@vitejs/plugin-react"
-
-export default defineConfig({
- plugins: [react()],
- test: {
- globals: true,
- environment: `jsdom`,
- setupFiles: [`./src/test-setup.ts`],
- },
-})